Spark: Add spark_jobDetails facet

Problem
See discussion
Solution
One-line summary:
Added SparkJobDetailsFacet, capturing information about Spark application jobs, e.g. jobId, jobDescription, jobGroup, jobCallSite. This allows to track OpenLineage RunEvent with specific Spark job in SparkUI.
Checklist

[X] You've signed-off your work
[X] Your pull request title follows our guidelines
[X] Your changes are accompanied by tests (if relevant)
[X] Your change contains a small diff and is self-contained
[ ] You've updated any relevant documentation (if relevant)
[X] Your comment includes a one-liner for the changelog about the specific purpose of the change (if necessary)
[ ] You've versioned the core OpenLineage model or facets according to SchemaVer (if relevant)
[ ] You've added a header to source files (if relevant)

SPDX-License-Identifier: Apache-2.0
Copyright 2018-2023 contributors to the OpenLineage project

Actually, I'm not sure if this facet should be in run facets or job facets.


Is the project still maintained?

I see too many bugs on issues panel and 15 pull request pending from 2 years. Any news? Is the project still maintained?

Also, I'd like to know about Swift 4 migration

There is no PR with a successful build  pending. If someone do the swift 4 migration with no coverage regression I will merge it.

@dcharbonnier how about pull request https://github.com/Haneke/HanekeSwift/pull/421? The CI build is failing but the failure seems to be with CI config, not due to error in the code?

If you want to send a PR to fix the CI config I will be happy to merge it @Aeon


DO NOT MERGE. Needs for deckhouse 1.64

Overview

What this PR does / why we need it

Special notes for your reviewer

Don't delete the branch!


sqlite CRUD opertion added in python

Description
sqlite CRUD opertion added in python
Reference Issue number #197
Type of change
Choosing one or more options from the following as per the nature of your Pull request.
NOTE: Check boxes using [x]

[ ] Bug fix (non-breaking change which fixes an issue)
[X ] New feature (non-breaking change which adds functionality)
[ ] Documentation Update

Checklist:

[ X] I have named my files and folder, according to this project's guidelines.
[ X] My code follows the style guidelines of this project.
[ X] My Pull Request has a descriptive title. (not a vague title like Update index.md)
[ X] I have commented on my code, particularly in hard-to-understand areas.
[ X] I have created a helpful and easy to understand README.md, with problem description and my name.
[ X] I have included a requirements.txt file (if external libraries are required.)
[ X] My changes do not produce any warnings.
[ X] I have starred this repository.
[ X] I have added a working sample/screenshot of the script.
[ X] I have checked for trailing spaces in file names and none have them.
[ X] I have added (your-name)[your-github-profile-link] in CONTRIBUTORS.md

@Naziya-Parveen All these should be in a single file and user can perform crud for terminal itself. The program must be menu driven.

Please check it now.

@Naziya-Parveen 'clear' is not recognized as an internal or external command, operable program or batch file. Warning during exec.

It's working perfectly fine. You can replace clear() with cls() if clear() is not supported.

@Naziya-Parveen Could you add that as a comment?

@pratik-choudhari I have added. Please check the README.md file.


B-20527-INT Add moves.assigned cols, create queue management FF

Agility ticket
Feature flags repo PR
Summary
This PR adds columns to the moves table to track the assigned office_user, and creates a feature flag for queue management.

looks good, ready to go!


feat(edit): add OSS upload for rich-text editor

Fix: #99

Support for uploading pictures to OSS in rich-text editor, and keep the same format for the file uploaded.

After post to topic:

lgtm


Busboy default charset is latin1

Link to reproduction
No response
Describe the Bug
Uploading files with any characters outside latin1 breaks
To Reproduce
Upload any file with nonlatin characters in filename
Payload Version
any
Adapters and Plugins
No response

Basically pass this as default to busboy:
defCharset: 'utf8',
defParamCharset: 'utf8'

file for testing attached:


Have a way of registering a "supported" list of viz types

Is your feature request related to a problem? Please describe.
There is a need to include experimental viz types like https://github.com/apache/incubator-superset/commit/43ed9a68964b5fecb0a64fe3077c7c077619b37a
Currently, we hardcord the viz types we want to register in various preset files in superset.
Describe the solution you'd like
It seems we need a config value in superset called SUPPORTED_VIZ_TYPES, which contains an array of keys of supported viz types (e.g. 'table', 'word_cloud', ...) and different instances of superset can choose to include or exclude experimental viz types like kelper. Available values for SUPPORTED_VIZ_TYPES will be populated by superset-ui using keys of plugins that are found undersuperset-ui and superset-ui-legacy
Describe alternatives you've considered
We could define one-off feature flags for kepler in superset but it doesn't seem right as the viz plugin themselves would be located in superset-ui or superset-ui-legacy.
Additional context
None.
@kristw @williaster @mistercrunch

I propose another solution.

First of all, make kepler a plugin. This can be a standalone repo for single plugin npm package.
Every organization defines their own preset as separate npm packages: e.g. superset-preset-chart-airbnb, superset-preset-chart-lyft. These presets can live in organization-specific repositories or even personal ones such as superset-preset-chart-kristw. Then in lyft preset you can include kepler plugin.
Then in Superset, this is the part I haven't fully figured out yet, be able to point which preset to use. We can make script to add preset and make it npm install and update some config file that webpack reads from and substitute the default with the specified one. The complex part is to ensure only uncustomized files are checked into main repo and developer experience is not interrupted too much.


DS-169: Fix broken icons in Micro Journeys

Jira
https://pegadigitalit.atlassian.net/browse/DS-169
Summary
Fix broken icons in Micro Journeys GrapesJS editor.
Details
The bug was introduced when Icon was refactored to use BoltElement as its renderer in #1861.
The underlying issue was not BoltElement itself but one of the custom decorator functions used by BoltElement.
The jsonSchemaProps function loops through the schema and automatically adds schema props to Web Components. It was also adding Twig-only props like attributes, content, items. Everywhere else, having these Twig-only props defined on our Web Components is harmless. However, GrapesJS uses its own attributes prop to store data on each element. When the editor loads, GrapesJS tries to write to element.attributes which LitElement is already using as a prop. GrapesJS fails to write its data to the element and/or the web component's own internal schema blows up, or some of both.
We intended to filter out these props anyway. So that's what I did and it fixes the issue.
How to test
To see the bug, go to Micro Journeys demo on latest release. Click the "edit" button and notice how the "asset-presentation" icon disappears (it's next to the text, "It’s not mind-reading. It’s signals").
Checkout this branch and view the same page locally. Verify the icon does not disappear and it persists on save.

Heads up, I also included this as part of the hotfix to 2.26.  I'm also merging it normally here.


Separate types into a pkg/ importable package

Models resides in internal so it can't be used by an outside package. Separating it into pkg/gridproxytypes for example gives additional benefit of not requiring sub dependencies of tfgridclient_proxy in the project that uses it.

done https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/grid-proxy/pkg/types


Add filtered RV display to build display item

See bottom left of image
We should also hide the RV if the user has not set a filter yet, as the total RV value can be misleading to most users. Presumably if they set a filter, they at least understand RV a bit more and how it doesn't directly correlate to build quality

If filtered RV is to be put on the build page it would be fun to graph against it too

I'd create another issue for that, since that's a different can of worms, both as a concept, and code-wise

I recommend combining this with #870, and use a tooltip with those buttons.
I want to discourage the UX workflow where a user will have to go to the "overview" tab to change this setting, then come back.

Per-char RV filter will be removed


What does Google think of async_wrap in the browser?

Part of my efforts with async_wrap are to consolidate async boundary linking between node/io.js and the browser. I'm wondering if the WG participants from Google have any comments/insight/interest to share in the idea of an async_wrap-like thing in the browser.
I'd like to see a standardized interface (in more than just Chrome) to track exits and returns to JavaScript-land from async calls. Is this a thing Google is already thinking about? Implementing? Using internally? Would people even want it in the browser? Is there valuable insight to be had from either Google or the iojs team?
@natduca @ofrobots

Is there some light(heavy?) reading you can point me at to help me understand async wrap better? I got the crash course in the vc a few weeks ago, but it was super high level so I don't think I can quite yet provide feedback one way or another. :)

Roughly, it works something like this:
var kCallInitHook = 0
var asyncHooksObject = {}
async_wrap.setupHooks(asyncHooksObject, function init () {
  // init event handler
}, function before () {
  // before event handler
}, function after () {
  // after event handler
})
// Turn above hooks on by setting `kCallInitHook` to 1
asyncHooksObject[kCallInitHook] = 1

// init triggers on call
fs.readFile(file, function (err, res) {
  // before triggers before running callback

  // stuff happens in callback

  // after triggers after running callback
})

Inside the init, before and after functions, you have a shared context object that you can use to associate the entry into a JS callback to the originating call. It could be useful for generating long stack-traces, automatic tracing, or more complicated things like continuation-local-storage.
Now, the first two can mostly be achieved through something like trace_event. Implementing something like continuation-local-storage, however, requires active interaction with the code being traced. This is super useful for things like tracing user behaviour.  Even if you are only interested in a couple particular things, you still have to patch everything because the event loop will jump between tasks and you will lose track of the last relevant parent call to find your context object.
What I am hoping for is for browsers to adopt a similar concept to async_wrap, such that one could at least have an id assigned to each synchronous context and have all callbacks link back to their appropriate parent context somehow. That way the call tree could be traversed to find the last relevant parent id and link directly to that without needing to care about any of the things that happened between the two.

closing old AsyncWrap issues, please start a new thread if appropriate


npm install doesn't work OSX

Following the instructions here: https://www.npmjs.com/package/elm
➜  ~ npm i -g elm
npm WARN deprecated<EMAIL_ADDRESS>use uuid module instead
/usr/local/bin/elm -> /usr/local/lib/node_modules/elm/binwrappers/elm
/usr/local/bin/elm-make -> /usr/local/lib/node_modules/elm/binwrappers/elm-make
/usr/local/bin/elm-reactor -> /usr/local/lib/node_modules/elm/binwrappers/elm-reactor
/usr/local/bin/elm-package -> /usr/local/lib/node_modules/elm/binwrappers/elm-package
/usr/local/bin/elm-repl -> /usr/local/lib/node_modules/elm/binwrappers/elm-repl

><EMAIL_ADDRESS>install /usr/local/lib/node_modules/elm
> node install.js

Error decompressing darwin-x64.tar.gz Error: unknown compression method
npm ERR! Darwin 15.4.0
npm ERR! argv "/usr/local/Cellar/node/5.9.1/bin/node" "/usr/local/bin/npm" "i" "-g" "elm"
npm ERR! node v5.9.1
npm ERR! npm  v3.7.3
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node install.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the elm package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node install.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs elm
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls elm
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/joneshf/npm-debug.log

➜  ~ uname -a
Darwin Hardys-MacBook-Pro.local 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64

OS X El Capitan 10.11.4 (15E65)
➜  ~ npm --version
3.7.3

Let me know if you need more information.

Seems it was a problem with my node version: https://github.com/nodejs/node/issues/5852
Updating to the latest seems to make all things right with the world.


Remove use of feature flag in credentials that we don't use any more.

This should fix our broken nightly builds.

This change wasn't sufficient.
This issue should get it sorted: https://github.com/huonw/travis-cargo/issues/33 .

Personally I would re-instate a blank unstable feature instead, because that attribute is intended to ensure that we don't allow warnings on stable and beta, and I think it'd be best to keep it.
Adding an empty unstable = [] to the Cargo.toml should fix the problem.

Ah, my understanding of it wasn't nuanced enough.  I thought if we removed the line it'd enforce deny_warnings by default since that's probably what we want.
Added the feature back into the Cargo file.

Nightly is "fixed."  It's now failing on the well-know "out of memory" issue: https://github.com/rusoto/rusoto/issues/513 .


how to track custom events using Watson?

I would like to add to my Watson dialog the capability to indicate that a certain custom event should be tracked (for example, to do some custom analytics later on) given a particular user response within the dialog (e.g. only some of the 'yes' responses by the bot user should be tracked as 'helpful' responses, so I might want to emit/track a 'helpful response' event given these specific 'yes' responses). How would I do this? Is there a best practice? I imagine that I might need to add a new field to the message object that would be available later on to some other middleware (which would in turn emit this custom event to some server), but I'm not sure how to do this. Any info will be appreciated.

I've managed to apparently add a field to the Watson response (via JSON editor in Watson Assistant) that carries info. about a custom event. Then I've been able to access this information via this middleware by referring to: message.WatsonData.output., and I've decided to use this to implement this custom event tracking. Any comments on this, or info. about best practices?

For the record in case it helps somebody else: I ended up realizing that this option was not really a good one after all, since the additional field I was adding to the watsonData.output property was not something that persisted in cases where the dialog node in which the field was added to was an 'internal' dialog node (by this I mean a dialog node that is processed and may produce response text but it is not 'final' -in the sense that it may cause execution to jump to other nodes which are still going to be contributing to the response offered to the user).
My solution was to create an array context variable that keeps track of all the custom events I need to track (this array is appended to as Watson executes a complete processing path). After processing the Watson response, my bot application then tracks all these events, clears the array and continues.


Console output is full of xcrun: error: unable to lookup item 'PlatformVersion' from command line tools installation

After rust-lang/rust updated cc from 1.0.79 to 1.0.90 (https://github.com/rust-lang/rust/pull/119199), I started seeing several copies of this message appearing on my console during a build:
warning<EMAIL_ADDRESS>xcrun: error: unable to lookup item 'PlatformVersion' from command line tools installation
warning<EMAIL_ADDRESS>xcrun: error: unable to lookup item 'PlatformVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'

warning<EMAIL_ADDRESS>xcrun: error: unable to lookup item 'PlatformVersion' from command line tools installation
warning<EMAIL_ADDRESS>xcrun: error: unable to lookup item 'PlatformVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'

My build still seems to work just fine, so I'm trying to figure out the appropriate way to resolve these annoying console messages.
It seems that the changes made in #943 don't interact nicely with macOS systems that have the command-line developer tools installed, but don't have a full Xcode installation.

I seem to have the same warnings on my macOS, which also don't have the full xcode installed
cc @BlackHoleFox

For reference, the xcrun message is the same as what I would get when running this command manually:
$ xcrun --show-sdk-platform-version
xcrun: error: unable to lookup item 'PlatformVersion' from command line tools installation
xcrun: error: unable to lookup item 'PlatformVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'

For whatever reason, the --show-sdk-platform-version flag doesn't work with Apple's own CommandLineTools.

Yes, --show-sdk-path, --show-sdk-version, and --show-sdk-build-version all work fine with CommandLineTools.
It's only --show-sdk-platform-path and --show-sdk-platform-version that are broken.

And yes, /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/SDKSettings.json exists and seems to be full of information.

Those ended platform flags up not being what I thought they were (shocker, a poorly documented command line flag was deceptive!) so I'm removing their usage soon. The new changeset will just read from the SDK's JSON file (thanks for confirming its there for you) to get the data it needs. This is exactly what clang does so hopefully the weird issues go away.

This issue was not there until version 1.0.83, I switched back to 1.0.83 from 1.0.90 and it works.

I encountered a similar issue:
cargo:warning=xcrun: error: unable to lookup item 'PlatformVersion' from command line tools installation   cargo:warning=xcrun: error: unable to lookup item 'PlatformVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'   cargo:warning=macOS deployment target (10.7) too low, it will be increase
My Mac information:
ProductName:		macOS
ProductVersion:		14.4.1
BuildVersion:		23E22
This error message showed that xcrun could not find the version number. After finding the answer in a post on
Stack Overflow
Finally, I solved the problem by downloading the Xcode application and successfully compiled librocksdb-sys.
Hope this helps you.

I've occured on building duckdb-rs.
In this case, setting MACOSX_DEPLOYMENT_TARGET environment variable led to work around this problem.
export MACOSX_DEPLOYMENT_TARGET=10.11
cargo run

MACOSX_DEPLOYMENT_TARGET=14.4.1 cargo build ... was a workaround for me


fix: support sf cli

What does this PR do?
changes how the cli name and version are used in the outdatedCliVersionCheck diagnostic test.  rather than parsing it from the cliVersion string, just use the oclif config object.
What issues does this PR fix or reference?
@W-11862622@

QA Notes

linked and ran succesfully,
installed 7.169.0 and saw fail - using latest or latest-rc CLI version


feat(content-docs): displayed_sidebar front matter

Motivation
Resolve #5686. This PR:

Adds a displayed_sidebar front matter option;
Deprecates the ref item type (in documentation);

We will not deprecate the ref because it's a nice alternative to setting both pagination_* and displayed_sidebar front matter.

Rewrites the sidebar documentation to make it (hopefully) far less confusing by providing a rigorous spec for shorthands and pagination generation.

We will add hide_sidebar in another PR where we hopefully port the same DX to other front matter options like hide_table_of_contents.
There's a slight behavior inconsistency between ref and doc when generating pagination: ref are completely ignored while doc will become the next and prev. I personally think that's fine.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Added two sidebar cases
Some unit tests

Has there been any progress on this RP?

@Mysterious-Dev This will be prioritized for the next release. It's actually not a major feature (just ~50 lines of changes) so yes, it will become mature whenever we feel like working on it😉

Okay

@slorber Please review this for the next week. Let's make it into the next release because I'm constantly asked of this on Discord.

@Josh-Cena It is great, when to release?

Probably in a week or two, no solid plan yet :)

Good guys, thanks for your hard work! :-)   BTW, how to download a .md file from the docs/assets dir ? it seems docusaurus always treat .md as a page but not a file for download.

@Josh-Cena could you give me a advice to download a .mdfile from the docs/assets dir? :-)

You can use the @site alias to tell Docusaurus that this file is an asset: [download this<EMAIL_ADDRESS>

@blling Please don't use GitHub as a support forum. We have a lot of other channels: https://docusaurus.io/community/support

For your question, we don't have a way to exclude things from the autogenerated slice as of now, so your only chance is to put this file out of the docs directory.

@Josh-Cena maybe add a sidebar_ignore front matter is great :-)
I will use other channels from tomorrow，thx for your hard work，i like this doc tool :-)

For your question, we don't have a way to exclude things from the autogenerated slice as of now, so your only chance is to put this file out of the docs directory.

Hmm, I think using the _file.md prefix should work no?

Ah yeah, that should work too 🤔

@slorber @Josh-Cena there is a warning when use _file.md

I see, but it works right?

I see, but it works right?

it works :-)

@Josh-Cena we don't have any ref api doc for this: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter
Do you want to add it? Otherwise I'll do it

Interesting—yes, you can send a PR and I may take a look


Applying a canvas transform to the editor viewport doesn't apply to all node position markers

Godot version
v4.0.beta3.official [01ae26d31]
System information
Debian GNU/Linux 11.5, Nvidia RTX 2070 Super (470.141.03)
Issue description
I'm applying a scale and translate transform to my viewport canvas in the editor. It works as intented except that markers for nodes that aren't selected don't scale and translate. When I select a node the position in the 2D editor is right, but when it's not selected it's shown where it would be if the viewport canvas hadn't been changed.
I expect the node position markers to not change position depending on the selected status. I'm trying to put a hires layer over the game that works in the editor too so I can add visual information about the nodes.
Steps to reproduce
See the attached project. Selecting node 1 and node 2 alternatively and their position marks change. When it's selected the position is right according to the transform applied, when it's unselected the position shown is that of the node without the transform.
Minimal reproduction project
test.zip

The transform is neither applied to the tilemap editor.

The original issue is located in canvas_item_editor_plugin.cpp, by brief look many transform related calculations are not done properly in there (e.g. canvas transform is not taken into account, like observed in this example). The problem is it's 6k-lines file thus it's not so straightforward to understand how things work in there. And it's not like the canvas transform is skipped only in one place etc. Seems quite time consuming to investigate and fix it properly.

The transform is neither applied to the tilemap editor.

Do you mean everything is drawn ignoring the canvas transform set or just the editor stuff like grid etc.? Because in what you reported the problem is the editor stuff like position markers, lock/unlock markers, input/rects for picking etc. Canvas items themselves are drawn properly (e.g. sprites or custom drawing in _draw).

The original issue is located in canvas_item_editor_plugin.cpp, by brief look many transform related calculations are not done properly in there (e.g. canvas transform is not taken into account, like observed in this example). The problem is it's 6k-lines file thus it's not so straightforward to understand how things work in there. And it's not like the canvas transform is skipped only in one place etc. Seems quite time consuming to investigate and fix it properly.

OK. I understand. I hope someone can give it a check someday.

The transform is neither applied to the tilemap editor.

Do you mean everything is drawn ignoring the canvas transform set or just the editor stuff like grid etc.? Because in what you reported the problem is the editor stuff like position markers, lock/unlock markers, input/rects for picking etc. Canvas items themselves are drawn properly (e.g. sprites or custom drawing in _draw).

Yes, just the editor stuff, grids, etc. Tiles are shown correctly, same as sprites and drawings.

Yes, just the editor stuff, grids, etc. Tiles are shown correctly, same as sprites and drawings.

Then it's the same issue, the TileMapEditorTilesPlugin is drawing its stuff according to a Control passed to it by the CanvasItemEditor (and CanvasItemEditor is not applying canvas transform to such control in the first place).


Add acknowledgement responses when a command is being executed

something that might be cool is if gort could have a custom acknowledgement command when it is starting to execute a command in a bundle. larger container images that take time to pull on a fresh kubernetes node could leave a user questioning whether or not the command was recognized, which could lead to instances of commands being sent to gort multiple times, etc.

Great idea!
I could see a few ways we could do this:

Post a message saying the command had been identified and was in progress, either immediately or after a delay of a few seconds without the command completing. This message could also be deleted after the command was complete.
Post in a thread under the original message.
Add a reaction to the original message. More platform specific, but both Slack and Discord support this.

Do we want to call this one complete for now and create a new issue to refine it?

sure, sounds great. thanks!


Certain search queries currently do not work properly

In v1.2.3, I added escaping to search queries for /search and /suggest because certain characters used in regular expressions would cause the request to crash and return an error 500. However, now it won't include those characters at all in the search.
Example of failing query: https://coli-conc.gbv.de/api/suggest?voc=http:%2F%2Fdewey.info%2Fscheme%2Fedition%2Fe23%2F&search=612.112
Search query before escaping: 612.112
Search query after escaping: 612\.112
MongoDB search query: {"$and":[{"$or":[{"_id":"612\\.112"},{"$text":{"$search":"\"612\\.112\""}},{"_keywordsLabels":{"$regex":"^612\\.112"}}]},{"$or":[{"inScheme.uri":"http://bartoc.org/en/node/241"},{"inScheme.uri":"http://www.wikidata.org/entity/Q48460"},{"inScheme.uri":"http://dewey.info/scheme/edition/e23/"}]}]}
As you can see, for some reason after assembling the MongoDB search query, the \ that's supposed to escape the . gets escaped itself (despite not using any escaping methods). When the escaping step is skipped, then it'll use 612.112 where the . is interpreted as part of a regular expression.

The problem was that we were providing a string as a regular expression for the Mongo query, and the / that was supposed to escape the . was then interpreted as a normal character instead of an escaping character. The solution is to use RegExp objects instead of strings.


Heading is broken

Heading used to display at different sizes, but now all Heading elements are the same font size.

https://pricelinelabs.github.io/design-system/Heading/

If this was done intentionally we should update banner to specify fontSize={2} for the Banner component's Heading.h5


[flutter roll] replicate the revert in release branch

Hello, we would like to apply the revert to our release branch as well. But I encountered merge conflicts again. I blindly accepted all incoming changes to resolve merge conflicts. Can you take a look if that works? If it doesn't, we might need your help to open a revert against this release branch as well. Thank you!

@XilaiZhang I would recommend with these kinds of reverts to link in the description to:

tracking issue
the original commit on master
the revert commit on master

that way later on, if we want to revisit what happened, less research is required :)

Thanks for the advice! yes besides that the initial cherry-pick attempt from release branch is https://github.com/flutter/flutter/pull/101947/commits/9046c98ce7a68ac9112e06557fb235595587fc88. And the cherry-pick on release branch after merge conflict resolution was https://github.com/flutter/flutter/pull/101947/commits/2ede9c8c17b5155116a81e1a89edc7c4971433f4.


Dangerously long stack trace when syncing a new node

I was doing some memory profiling over the weekend, and over the course of 60h of profiling I've got this stack trace that was 5763 frames long:
clone
start_thread
std::sys::unix::thread::Thread::new::thread_start
<alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
<alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
core::ops::function::FnOnce::call_once{{vtable.shim}}
std::sys_common::backtrace::__rust_begin_short_backtrace
tokio::runtime::context::enter
tokio::runtime::blocking::pool::Inner::run
tokio::runtime::task::harness::Harness<T,S>::poll
<std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
tokio::runtime::task::core::Core<T,S>::poll
futures_executor::local_pool::block_on
std::thread::local::LocalKey<T>::with
<tracing_futures::Instrumented<T> as core::future::future::Future>::poll
<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
<sc_service::task_manager::prometheus_future::PrometheusFuture<T> as core::future::future::Future>::poll
<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
<sc_consensus_babe::BabeVerifier<Block,Client,SelectChain,CAW,CIDP> as sp_consensus::import_queue::Verifier<Block>>::verify::{{closure}}
sp_block_builder::BlockBuilder::check_inherents
sp_block_builder::runtime_decl_for_BlockBuilder::check_inherents_call_api_at
<sc_service::client::client::Client<B,E,Block,RA> as sp_api::CallApiAt<Block>>::call_api_at
<sc_service::client::call_executor::LocalCallExecutor<Block,B,E> as sc_client_api::call_executor::CallExecutor<Block>>::contextual_call
<kusama_runtime::RuntimeApiImpl<__SR_API_BLOCK__,RuntimeApiImplCall> as sp_api::Core<__SR_API_BLOCK__>>::Core_initialize_block_runtime_api_impl
sp_api::runtime_decl_for_Core::initialize_block_call_api_at
<sc_service::client::client::Client<B,E,Block,RA> as sp_api::CallApiAt<Block>>::call_api_at
<sc_service::client::call_executor::LocalCallExecutor<Block,B,E> as sc_client_api::call_executor::CallExecutor<Block>>::contextual_call
sp_state_machine::execution::StateMachine<B,H,N,Exec>::execute_using_consensus_failure_handler
sp_state_machine::execution::StateMachine<B,H,N,Exec>::execute_aux
<sc_executor::native_executor::NativeExecutor<D> as sp_core::traits::CodeExecutor>::call
sc_executor::wasm_runtime::RuntimeCache::with_instance
sc_executor::native_executor::WasmExecutor::with_instance::{{closure}}
std::thread::local::LocalKey<T>::with
std::panicking::try
sc_executor_common::wasm_runtime::WasmInstance::call_export
<sc_executor_wasmi::WasmiInstance as sc_executor_common::wasm_runtime::WasmInstance>::call
wasmi::func::FuncInstance::invoke
wasmi::runner::Interpreter::start_execution
wasmi::func::FuncInstance::invoke
<sc_executor_wasmi::FunctionExecutor as wasmi::host::Externals>::invoke_index
<<sp_io::storage::HostFunctions as sp_wasm_interface::HostFunctions>::host_functions::ExtStorageNextKeyVersion1 as sp_wasm_interface::Function>::execute
sp_io::storage::next_key_version_1
tracing::span::Span::in_scope
std::thread::local::LocalKey<T>::with
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
...repeats 5685 times...
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
<sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key
sp_state_machine::trie_backend_essence::TrieBackendEssence<S,H>::next_storage_key_from_root
<trie_db::triedb::TrieDBIterator<L> as trie_db::TrieIterator<L>>::seek
trie_db::iterator::TrieDBNodeIterator<L>::seek_prefix
trie_db::triedb::TrieDB<L>::get_raw_or_lookup
<sp_state_machine::trie_backend_essence::TrieBackendEssence<S,H> as hash_db::HashDBRef<H,alloc::vec::Vec<u8>>>::get
<sp_state_machine::trie_backend_essence::TrieBackendEssence<S,H> as hash_db::HashDB<H,alloc::vec::Vec<u8>>>::get
<sc_client_db::StorageDb<Block> as sp_state_machine::trie_backend_essence::Storage<<<Block as sp_runtime::traits::Block>::Header as sp_runtime::traits::Header>::Hashing>>::get
sc_state_db::StateDb<BlockHash,Key>::get
<sp_database::kvdb::DbAdapter<D> as sp_database::Database<H>>::get
<kvdb_rocksdb::Database as kvdb::KeyValueDB>::get
kvdb_rocksdb::Database::get
rocksdb::db::DB::get_pinned_cf_opt
rocksdb_get_pinned_cf
rocksdb::DBImpl::Get(rocksdb::ReadOptions const&, rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::PinnableSlice*) [clone .localalias]
rocksdb::DBImpl::GetImpl(rocksdb::ReadOptions const&, rocksdb::Slice const&, rocksdb::DBImpl::GetImplOptions&)
rocksdb::MemTableListVersion::Get(rocksdb::LookupKey const&, std::string*, std::string*, rocksdb::Status*, rocksdb::MergeContext*, unsigned long*, unsigned long*, rocksdb::ReadOptions const&, rocksdb::ReadCallback*, bool*)
rocksdb::MemTableListVersion::GetFromList(std::__cxx11::list<rocksdb::MemTable*, std::allocator<rocksdb::MemTable*>>*, rocksdb::LookupKey const&, std::string*, std::string*, rocksdb::Status*, rocksdb::MergeContext*, unsigned long*, unsigned long*, rocksdb::ReadOptions const&, rocksdb::ReadCallback*, bool*)
rocksdb::MemTable::Get(rocksdb::LookupKey const&, std::string*, std::string*, rocksdb::Status*, rocksdb::MergeContext*, unsigned long*, unsigned long*, rocksdb::ReadOptions const&, rocksdb::ReadCallback*, bool*, bool)
rocksdb::MemTable::GetFromTable(rocksdb::LookupKey const&, unsigned long, bool, rocksdb::ReadCallback*, bool*, std::string*, std::string*, rocksdb::Status*, rocksdb::MergeContext*, unsigned long*, bool*, bool*)
rocksdb::(anonymous namespace)::SkipListRep::Get(rocksdb::LookupKey const&, void*, bool (*)(void*, char const*))
rocksdb::SaveValue(void*, char const*)
std::string::_M_replace(unsigned long, unsigned long, char const*, unsigned long)
std::string::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)

The <sp_state_machine::ext::Ext<H,N,B> as sp_externalities::Externalities>::next_storage_key appears 5693 times in total in this stack trace; looks like unbound recursion.
This happened during a fresh sync of a new node on Kusama, with interpreted WASM execution, with freshly compiled polkadot from f0ce0ca1f8b03d5ad3b80ce66793f18bde21cd14.
Probably the same issue as https://github.com/paritytech/substrate/issues/4527 if I'd had to guess.

Maybe relates to https://github.com/paritytech/polkadot/issues/3053#issuecomment-848991368 as well. Something isn't right.

Two things to fix here:

Externalities::next_storage_key should not be recursive.
It should not be linear time w.r.t. the overlay size. Looks like currently if there's a lot of None items in the overlay, it will iterate them all until it finds an existing key. Instead the overlay should probably maintain two separate BtreeMaps for existing and non-existing key.


[newrelic-pixie] Add support for talking to Pixie's staging

Is this a new chart
No.
What this PR does / why we need it:
When the chart is configured to send data to New Relic's staging, it will talk to Pixie's staging environment.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [mychartname])

Looks like nrStaging will trigger both the use of pixie staging and NR staging. Is this the intended behavior? I wonder if there would be an use case for using staging for one thing and not the other.


HHH-16820 When batching enabled the LockModeType is ignored

https://hibernate.atlassian.net/browse/HHH-16820

superseded by https://github.com/hibernate/hibernate-orm/pull/6854


Update VERSION to 2.3.1

Bug fix version related to problems with the --force-on-exists and --fail-on-found flags.

Updated PR to include a blurb in the release history. Will tag after this is merged.


Permission denied: AH00072: make_sock: could not bind to address <IP_ADDRESS>:80

My docker compose snippet for bar assistant:
  bar-assistant:
    image: kmikus12/bar-assistant-server:v1.0.4
    container_name: bar-assistant
    depends_on:
      - meilisearch
      - meili-redis
    environment:
      - APP_URL=http://<IP Address>:8900
      - MEILISEARCH_KEY=<$MEILI_MASTER_KEY>
      - MEILISEARCH_HOST=http://<IP Adddress>:7700
      - REDIS_HOST=redis
    restart: unless-stopped
    volumes:
      - /volume2/docker/bar/ba:/var/www/cocktails/storage
    ports:
      - 8900:80

Log:
AH00015: Unable to open logs
Updating search index settings...
Syncing cocktails and ingredients to meilisearch...
Adding routes and config to cache...
   INFO  Configuration cached successfully.
   INFO  Routes cached successfully.
Application ready!
(13)Permission denied: AH00072: make_sock: could not bind to address <IP_ADDRESS>:80
no listening sockets available, shutting down

Please can you advise where I've gone wrong? Tried both 1.0.5 and 1.0.4

Possibly related to #12
Try switching to named volumes, change the following:
- /volume2/docker/bar/ba:/var/www/cocktails/storage

to
- ba-storage:/var/www/cocktails/storage

And add the following at the end of the file
volumes:
  ba-storage:

You can refrence the following compose file: https://github.com/bar-assistant/docker/blob/master/docker-compose.yml

That's not the problem.. The container is running so all folder mappings are there and happy. It's not able to bind port 80.

Since this is not your whole compose file, do you have only bar assistant services in it or any other. Maybe something else is already listening on the port 80.

As per the ports section of my compose:
ports:
- 8900:80
It shouldn't be trying to bind to port 80

If I remember, I might have had this exact same problem until I did what the developer suggests regarding using named storages. Did you actually try that? I know it doesn't sound related, but give it a shot.

Tried this, however no different.
:(

Had to add:
user: 0:0
before it would work. Not happy with it as a solution though as that's now running as root.

Yeah, that should not be needed to run.
On what hardware are you running this? I have an instance on my RPI3, desktop PCs and a server and everything is working fine.

A synology NAS. DS918+ to be precise
Of note with everything as it stands in my compose it works perfectly, builds the database, imports the ingredients etc all the way up until it tries to bind the port as per the original log above. It only works from there on if I add "user: 0:0" to the compose.

Any update on this, please?

I can't do much without successfully recreating that error locally.
Can you share your minimal docker compose file that creates this error.

version: "3"
services:
Setup Meilisearch instance
meilisearch:
container_name: meilisearch
image: getmeili/meilisearch:v0.29
environment:
- MEILI_MASTER_KEY=$MEILI_MASTER_KEY
- MEILI_ENV=production
restart: unless-stopped
ports:
- 7700:7700
volumes:
- /volume2/docker/bar/meili:/meili_data
networks:
- bar
Redis for session and file cache
meili-redis:
image: redis
container_name: meili-redis
environment:
- ALLOW_EMPTY_PASSWORD=yes
restart: unless-stopped
networks:
- bar
Bar Assistant API
bar-assistant:
image: kmikus12/bar-assistant-server
container_name: bar-assistant
user: 0:0
depends_on:
- meilisearch
- meili-redis
environment:
- APP_URL=$BAR_URL
- MEILISEARCH_KEY=$MEILI_MASTER_KEY
- MEILISEARCH_HOST=$MEILI_HOST
- REDIS_HOST=redis
- ALLOW_REGISTRATION=false
restart: unless-stopped
volumes:
- /volume2/docker/bar/ba:/var/www/cocktails/storage
ports:
- 8900:80
networks:
- bar
Bar Assistant Client
salt-rim:
image: kmikus12/salt-rim
container_name: salt-rim
depends_on:
- meilisearch
- bar-assistant
environment:
- API_URL=$API_URL
restart: unless-stopped
ports:
- 8980:8080
networks:
- bar
##NETWORKS
networks:
bar:
external: true

Here's my modified version of your compose file that works for me:
version: "3"

services:
  # Setup Meilisearch instance
  meilisearch:
    container_name: meilisearch
    image: getmeili/meilisearch:v0.29
    environment:
      - MEILI_MASTER_KEY=masterKey
      - MEILI_ENV=production
    restart: unless-stopped
    ports:
      - 7778:7700
    volumes:
      - ./meili:/meili_data
    networks:
      - bar
  # Redis for session and file cache
  meili-redis:
    image: redis
    container_name: meili-redis
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    restart: unless-stopped
    networks:
      - bar
  # Bar Assistant API
  bar-assistant:
    image: kmikus12/bar-assistant-server
    container_name: bar-assistant
    # user: 0:0
    depends_on:
      - meilisearch
      - meili-redis
    environment:
      - APP_URL=http://localhost:8900
      - MEILISEARCH_KEY=masterKey
      - MEILISEARCH_HOST=http://localhost:7778
      - REDIS_HOST=redis
      - ALLOW_REGISTRATION=false
    restart: unless-stopped
    volumes:
      - ./ba:/var/www/cocktails/storage
    ports:
      - 8900:80
    networks:
      - bar
  # Bar Assistant Client
  salt-rim:
    image: kmikus12/salt-rim
    container_name: salt-rim
    depends_on:
      - meilisearch
      - bar-assistant
    environment:
      - API_URL=http://localhost:8900
    restart: unless-stopped
    ports:
      - 8980:8080
    networks:
      - bar
##NETWORKS
networks:
  bar:
    external: true

You probably have some specific server configuration, like maybe you are running docker in rootless mode, but you need root privileges to bind port 80.
I'm not sure, but you don't have to necessarily use user: 0:0, you could create a new user that is in a docker group and use his GID and UID.
Otherwise I can't help you much, you could maybe test it on another hardware or on your local pc and see if it works there.

If I try to do anything other than root I get the following in bar-assistant:
Application .env file not found, creating a new .env file...
cp: cannot create regular file '.env': Permission denied

I have a feeling this has to do with Docker restrictions related to the synology OS. Just a guess, but I know Synology OS has a specific treatment of Docker

If I try to do anything other than root I get the following in bar-assistant:
Application .env file not found, creating a new .env file...
cp: cannot create regular file '.env': Permission denied
Why bind to 80 if it requires root, why not do something similar to salt-rim with bar-assistant and bind to a non root port?

Yes, that issue is related to #12 , you need to use named volumes to fix that.
Port 80 is http port and is by default used by php-apache docker image. I have plans to refactor docker image to php-fpm and I will then change the main port, but I have no idea when will that be released.
You could also fork the repository and build your own image with the changed port and see if that helps.

I get the same error with the named volumes even when using anything but a root account.

Do you have a vanilla Linux build you can test on? I still think this all just has to do with Synology being weird.

I accept the fact that it's a Synology isn't likely to be helping, however on the grounds that I'm running 70 other containers, including linuxserver/swag (which uses port 80 and 443) and have run a plethora of other containers. I can't believe it's just down to it being Synology.

New docker improvements are now available as a release candidate.
I welcome you to try the new setup, you can find the guide here.
If you are still having problems please open a new issue.


appbar with tabs

Thanks for this amazing framework!
I'm trying to create an appbar with integrated tabs. Something like this: http://material-design.storage.googleapis.com/publish/material_v_4/material_ext_publish/0B6Okdz75tqQsOUdyb0FjQTJTdlk/components_tabs_usage_mobile3.png
Anyone has an idea on how to best achieve this?
Thanks!

Yes you can with somethings like
       <AppBar title={utils.getNameAccount(account)}
          iconElementLeft={appBarLeft}
          iconElementRight={appBarRight} style={styles.appBar}>
          <Tabs onChange={this.onChangeTabs} style={styles.tabs}>
            <Tab label={xxxx} />
            <Tab label={xxxx} />
            <Tab label={xxxx} />
          </Tabs>
        </AppBar>

Thanks Olivier
I did have to use some extra styling for padding but it worked.
Thanks.

This is a hack waiting #773 to ba addressed.

Hi, thank you for this framework and the hack above!
Sadly there is one problem I am facing:
When using Tabs with the AppBar, there should not be this menu icon. So I disable it using showMenuIconButton={false} .
This makes the title disappear:

Without the styles from the hack it looks like this:

Have you any ideas?
Thank you in advance!

@shilch That looks like an issue with the flexboxes. Try playing with the flex styles.

Guys put your tabs inside a title of AppBar  try this
<AppBar  title={ <Tabs onChange={this.onChangeTabs} style={styles.tabs}>       <Tab label={xxxx} />         <Tab label={xxxx} />         <Tab label={xxxx} />       </Tabs> } />

Try like this
const styles = {
    paddingLeft: "20px"
};

const HeaderMenu = () => (

      Blog
      Event
      Technology

);

<AppBar title={<HeaderMenu/>} />

Hello,
I am having difficulty getting the Appbar to wrap around with tabs, when the all of the tabs do not fit onto one line, this works automatically with strings but for tabs I'm not sure what to do.
This is my current set up using tabs inside the app bar
        <AppBar
          component="div"
          className={classes.secondaryBar}
          color="primary"
          position="sticky"
          elevation={10}
        >
          <Tabs value={getValue()} textColor="inherit" >
            <Tab key={'overview'} label="Overview" href={`/EditContracts/${tab}`}/>
              {arr}
            <AddTab value={props.numberOfSections + 1} addSection={tab2==='addSection'}/>
          </Tabs>
          {props.loading ? <LinearProgress color="secondary" /> : null}
        </AppBar>


--public-network-access flag is missing for "az postgres flexible-server update"

Describe the bug
We are able to change the public access flag from the UI for the Azure PostgreSQL Flexible server.
However that option seems to be missing from in the Azure CLI.
For example: We cannot do az postgres flexible-server update --public-network-access all
Below option is available for the regular postgres server.
You can see this option in the help.
az postgres server update --help
    --public --public-network-access : Enable or disable public network access to server. When
                                       disabled, only connections made through Private Links can
                                       reach this server. Allowed values are : Enabled, Disabled,
                                       all, <IP_ADDRESS>, <SingleIP>, <StartIP-DestinationIP>. Default is
                                       Enabled.

Related command
az postgres flexible-server update --public-network-access all
Errors
unrecognized arguments: --public-network-access all
Issue script & Debug output
Unable to update public access flag for Azure PostgreSQL Flexible server through the Azure CLI
Expected behavior
Should be able to update public access flag for Azure PostgreSQL Flexible server through the Azure CLI
Environment Summary
azure-cli 2.59.0
Additional context
Below screenshot is to show where we can change the same in the UI, after the server is created.

Thank you for opening this issue, we will look into it.

@sunilagarwal @niklarin Any update on this issue ? Cc : @yonzhan

This is also something that I would like to see added. As a workaround I tried the following command az postgres flexible-server update --name server0name --resource-group my-resource-group --set network.publicNetworkAccess=Disabled which does seem to disable public network access but annoyingly the command overall returns an error:
('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

Thanks @kishendas for reporting this.
We're working on it so that we provide for postgres flexible-server the exact same experience that we're providing for mysql flexible-server. That is, for the create command, we accept the following input for --public-access:
    --public-access         : Determines the public access. Enter single or range of IP addresses to
                              be included in the allowed list of IPs. IP address ranges must be
                              dash-separated and not contain any spaces. Specifying <IP_ADDRESS> allows
                              public access from any resources deployed within Azure to access your
                              server. Setting it to "None" sets the server in public access mode but
                              does not create a firewall rule.

And for the update command we will accept these:
    --public-access           : Enable or disable the public access on a server.  Allowed values:
                                Disabled, Enabled.

For creating, updating, showing or listing firewall-rules on already existing instances, you should be using the following command group:
Group
    az postgres flexible-server firewall-rule : Manage firewall rules for a server.

Commands:
    create : Create a new firewall rule for a flexible server.
    delete : Delete a firewall rule.
    list   : List all firewall rules for a flexible server.
    show   : Get the details of a firewall rule.
    update : Update a firewall rule.

To search AI knowledge base for examples, use: az find "az postgres flexible-server firewall-rule"

While we bake that functionality, you could use the approach suggested by @jackmtpt in the comment above.


CurrencyFormatter

NumberFormatter (org.apache.royale.html.accessories.NumberFormatter) has a thousandsSeparator attribute but CurrencyFormatter (org.apache.royale.html.accessories.CurrencyFormatter) does NOT. The original flash builder component had a thousandsSeparator for the CurrencyFormatter.
Is there a reason for this and/or how can I implement a thousandsSeparator for the CurrencyFormatter..?
Thanks in advance!

The Basic components are meant to be as small as possible and add functionality in a pay-as-you-go fashion (PAYG).  Since not all users will need a CurrencyFormatter with a thousand's separator, the version you referenced does not support it.  But feel free to offer a patch that adds a subclass of CurrencyFormatter (maybe CurrencyFormatterWithThousandsSeparator) with the desired functionality.


invalid files should be able to be archived, deleted, or just kept

atm if files are invalid they are just deleted, this is as a result of SendSafely sometimes sending back incorrect file sizes (usually only off a few bytes). Note they are still wrong if the file is downloaded from their UI, so the problem is in the API, it seems they skip the validation or just have a tolerance.

add flags --delete-invalid-files --archive-invalid-files
default strategy should be no-op and report which means this depends on #16

going to simplify this and just log the error but keep the file anyway


Calculate velocity to jump to the target

I'm trying to create a ball that will bounce off rectangles and jump to the next rectangle. All i can know is ball's position, next rectangle's position and jump angle. I found similar question at unity forum (https://forum.unity.com/threads/how-to-calculate-force-needed-to-jump-towards-target-point.372288/). I tried to adapt code from Iron-Warrior's solution for my project, but i have problem that my ball constantly jumps strongly over the next rectangle.
Here is the code that i got:
const ball = Bodies.circle(0, 0, 10);

const rectangles = Array(20)
  .fill(0)
  .map((_, i) => Bodies.rectangle(i * 140, 200, 20, 20, { isStatic: true }));

Events.on(engine, 'collisionStart', (event) => {
  event.pairs.forEach((pair) => {
    if (pair.bodyA === ball) {
      const target = rectangles[rectangles.indexOf(pair.bodyB) + 1];

      const gravity = engine.gravity.y;
      const initialAngle = 60;
      const yOffset = ball.position.y - target.position.y;

      const angle = initialAngle * (Math.PI / 180);

      const distance = Vector.magnitude(Vector.sub(ball.position, target.position));

      const initialVelocity =
        (1 / Math.cos(angle)) *
        Math.sqrt(
          (0.5 * gravity * Math.pow(distance, 2)) / (distance * Math.tan(angle) + yOffset),
        );

      const velocity = {
        x: initialVelocity * Math.cos(angle),
        y: -initialVelocity * Math.sin(angle),
      };

      // i believe there is no need to rotate velocity
      // const angleBetweenObjects = Vector.angle(ball.position, target.position);
      // const finalVelocity = Vector.rotate(velocity, angleBetweenObjects);

      Body.setVelocity(ball, velocity);
    }
  });
});

Composite.add(engine.world, [ball, ...rectangles]);

I also found that if i set engine.velocityIterations, for example, to 100, then my ball jumps from the first rectangle to the left edge of the second, and then jumps over the third one
Here is codesandbox example:
https://codesandbox.io/p/sandbox/relaxed-shape-9wy3kt

Context: this question on Stack Overflow

@ggorlen yeah. There is a great solution on this question on Stack Overflow, thanks to kikon. The main problem was with collisitonStart event (should use collisionActive) and angular velocity of circle (should set it to 0 after setVelocity).


Merged in main. refactored .jsconfig.json next.config.js, package.json

refactored package.json, package-lock.json, etc into src rather than the root directory.

Approving myself


Make the upcoming glyf table with cubics opt-in, behind a flag

Now that a glyf table with support for cubic curves is on the roadmap for OpenType 2.0 and that fontTools already supports that output, it can happen that such a glyf table gets produced inadvertently and results in a font that doesn't work except in bleeding-edge environments that run the latest Harfbuzz.
Previously, trying to introduce cubic béziers into the glyf table would crash, and I think it should keep crashing by default for the time being, until at least the spec of the new table format is officially released and implementers can catch up. The new format could be behind a flag, either on fontTools using the config system, or specifically on ttGlyphPens as suggested by @anthrotype .
We'll look into reproducing this issue and possibly propose a PR.

More context from @anthrotype

fontmake or ufo2ft would not currently let you build such cubic ttf fonts, because cu2qu is always run for ttfs at the moment. it's only if you build the fonts yourself (e.g. fontBuilder) using fonttools API that you may incur in this. [...] the bar for that is relatively high.

I think decompiling/compiling glyf with cubic flags should continue to work without flags of sorts. but building new cubic glyf glyphs shouhld be guarded by a flag so it doesn't happen accidentally.

FWIW for Google Fonts use we'd much rather have an opt-in to any capability to produce off-spec fonts. If my icon compiler (using fontbuilder) forgets to cu2qu I want an error (as was the case before), not the silent production of a binary that won't work when I deploy it.

maybe we can leave the TTGlyphPen as it is and just need to change the FontBuilder. We can an option to FontBuilder constructor with the glyphDataFormat=0 defaulting to the currently spec'ed format (0, no cubics); if one passes cubic TTGlyphs to setupGlyf method and did not explicitly request glyphDataFormat=1 when making the builder, then it means they didn't want to do it intentionally and we let it fail with an error.

maybe we can leave the TTGlyphPen as it is and just need to change the FontBuilder. We can add an option to FontBuilder constructor with the glyphDataFormat=0 defaulting to the currently spec'ed format (0, no cubics) and that's going to be used in the setupHead method as well; then if one passes cubic TTGlyphs to setupGlyf method and did not explicitly request glyphDataFormat=1 when making the builder, then it means they didn't want to do it intentionally and we let it fail with an error.

SGTM.


Remove minimumMasterNodes from camunda-platform-core-kind-values.yaml

Which problem does the PR fix?
minimumMasterNodes is ignored in Elasticsearch versions >= 7 according to https://github.com/elastic/helm-charts/blob/main/elasticsearch/README.md#configuration
What's in this PR?
Remove minimumMasterNodes from camunda-platform-core-kind-values.yaml
Checklist
Please make sure to follow our Contributing Guide.

Before opening the PR:

[x] There is no other open pull request for the same update/change.
[ ] The commits follow our Commit Guidelines.
[ ] Tests for charts are added (if needed).
[ ] The main Helm chart and sub-chart are updated (if needed).
[ ] In-repo documentation are updated (if needed).

After opening the PR:

[x] Did you sign our CLA (Contributor License Agreement)? It will show once you open the PR.
[ ] Did all checks/tests pass in the PR?

I tested by setting:
elasticsearch:
  minimumMasterNodes: 100

and confirmed that nothing happened. I also read the elasticsearch helm chart and verified that this option is not actually used.  I approve.

I'll merge in a moment.  I wonder why our CI didn't automatically trigger for this change.

Hmm.. I wonder why our CI didn't automatically trigger for this change.

we don't have a CI pipeline for KIND yet.


Correct two words path by using an underscore

Correct two words path by using an underscore

Apologies, I merged before John reviewed it. Please revert if John disagrees.


Add a "WinObjC project" template to our Visual Studio extension

On your website - https://developer.microsoft.com/en-us/windows/bridges/ios it says:
"Import your Xcode project into Visual Studio by using the vsimporter tool included with the SDK, or start writing your next great Universal Windows Platform app in Visual Studio using Objective-C."
So the first part works pretty well - importing an xcode project. But for the 2nd part of that - how do I start writing a new application? There are no templates for ObjC in the new project dialog box.

Hi @darkoverlordofdata,
Thanks for trying this out. We're currently missing our project templates, as the original WinObjC originally focused on importing Xcode projects. I'm going to mark this as a task for our backlog.
Right now, the easiest way to get a "new" project would be to convert a mostly empty Xcode project. Sorry about that!

I understand - I'm concerned because Microsoft has a history of releasing unfinished projects that go nowhere due to lack of interest due to the project being unfinished. IronPython come to mind.

Actually, this solution is not working. When I copy one of the samples to it's own folder, and open it in VS, I get the one or more solutions did not open correctly error, and it is unable to compile.

You have an FAQ: Adding Objective C to an Existing Project, but it does not work. So I found an issue on that which is 1 year old - Cannot add Objective C to an Existing Project #2818, and still not fixed. This is starting to make GNUstep look good.

Ok, I finally got a project working by itself without being inside the WinObjC folder structure. I downloaded the code for this tutorial, and ran vsimporter, and it works! https://www.raywenderlich.com/3002-beginning-opengl-es-2-0-with-glkit-part-1


[No QA] fix: null check for app state subscription added

Details

Fixed the logout blank screen issue due to a missing null check.

Fixed Issues

$ https://github.com/Expensify/App/issues/6932
Tests

QA Steps

Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[x] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

@TomatoToaster Before you merge, I would recommend checking the discussion on upgrading the RN in the linked issue.

Also, if we want to merge this PR, it needs the CP Staging label, right?

🚀 Deployed to staging by @TomatoToaster in version: 1.1.24-19 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
failure ❌

🚀 Deployed to production by @francoisl in version: 1.1.24-19 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
failure ❌


Add notes app[Day 33]

Successfully reviewed and verified

notes-app us already added to the source [#28]. Closing this PR now.


[release-1.14] reduce workload entry unregistration retry times

Manual cherrypick required.
#42757 failed to apply on top of branch "release-1.14":
Applying: reduce workload entry unregistration retry times
Using index info to reconstruct a base tree...
A	pilot/pkg/autoregistration/controller.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/controller/workloadentry/workloadentry_controller.go
CONFLICT (content): Merge conflict in pilot/pkg/controller/workloadentry/workloadentry_controller.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 reduce workload entry unregistration retry times
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Dupe


Failed to parse NetParameter file

I use your demo and try to run in eclipse, but I got an error that : A/native(21720): upgrade_proto.cpp:75 Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: /sdcard/caffe_mobile/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
I don't change anything in your code. So what should I do to solve the problem?
By the way, I check the code and find it created on 3/26/15.
Thank you for your help and your code.

Sorry, I've never tried to run this project using eclipse (as this is basically a android studio project). Did you put everything required into the device yet (https://github.com/sh1r0/caffe-android-demo#quick-start)?

I am sure that I have done the requirements that your suggest at the project. And I can find the file in my phone in the correct path. The error happened while the  function caffeMobile.loadModel() is called. But this function is a native function and I can't debug it.
By the way, I am not familiar with android. Would you tell me what tool you use to run this project?
Thank you for your help.

As I said, this is a android studio project (http://developer.android.com/sdk/).

I will try it. Thank you.

I tried with Android Studio and got similar error:
22608-22608/com.sh1r0.caffe_android_demo A/native: upgrade_proto.cpp:68 Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: /sdcard/caffe_mobile/bvlc_reference_caffenet/deploy.prototxt
The file exists in the phone, I also checked it if the app can access by checking result of File.exists

Solve it with use the previous deploy.prototxt file, the deploy.prototxt that pushed on Feb 26, 2016 is not compatible. My guess since the caffe lib so used is also the old one, they changed the parsing implementation on the latest caffe lib

@jimmod Thanks for your information, input data were switched to Input layers in https://github.com/BVLC/caffe/commit/2cc3844cb2a4a72de10d321781dc8f994bef95c7. I'll fix it asap.

Solved in https://github.com/sh1r0/caffe-android-demo/commit/a5f9d854b9578a0bfd3c50c26cba1f55e2823af0.


problem with SMTP?

Hello!
I have used Ghosler in real production for the first time. Many users do not receive the email. I attach the "error logs".
I used for this: Gmail with port 465 (TLS).

[2023-12-24 10:28:36 UTC] => [ERROR] => Newsletter: Error: Data command failed: 421-4.3.0 Temporary System Problem. Try again later (10). For more information, 421-4.3.0 go to 421 4.3.0  https://support.google.com/a/answer/3221692 g3-20020a05600c310300b0040c6b2c8fa9sm21226207wmo.41 - gsmtp
at SMTPConnection._formatError (/home/juani/Escritorio/node_modules/nodemailer/lib/smtp-connection/index.js:790:19)
at SMTPConnection._actionDATA (/home/juani/Escritorio/node_modules/nodemailer/lib/smtp-connection/index.js:1678:34)
at SMTPConnection.<anonymous> (/home/juani/Escritorio/node_modules/nodemailer/lib/smtp-connection/index.js:1650:26)
at SMTPConnection._processResponse (/home/juani/Escritorio/node_modules/nodemailer/lib/smtp-connection/index.js:969:20)
at SMTPConnection._onData (/home/juani/Escritorio/node_modules/nodemailer/lib/smtp-connection/index.js:755:14)
at SMTPConnection._onSocketData (/home/juani/Escritorio/node_modules/nodemailer/lib/smtp-connection/index.js:193:44)
at TLSSocket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)

That's a very good number of users for trying Ghosler 😉.

If you observe the logs, you'll see this -
Data command failed: 421-4.3.0 Temporary System Problem. Try again later (10).
For more information, 421-4.3.0 go to 421 4.3.0  https://support.google.com/a/answer/3221692

A quick search revealed this page - https://support.google.com/a/answer/3726730 which shows the error codes, also the one shown in the logs.
421, | "4.3.0", Temporary System Problem. Try again later.
This doesn't seem like a problem with Ghosler but with Gmail & SMTP.

I also notice that this can also be caused due to sending bulk emails via Gmail.
See - https://stackoverflow.com/a/55358989/6819340.
Seems like I'd have to add a sleep timer logic.
But given the amount of users, it might take that much of seconds to send emails.

I also notice that this can also be caused due to sending bulk emails via Gmail. See - https://stackoverflow.com/a/55358989/6819340.
Seems like I'd have to add a sleep timer logic. But given the amount of users, it might take that much of seconds to send emails.

It doesn't matter if it takes longer, as long as everything is sent correctly 🙏😁.

I'd agree on that to some extent but make sure to check that Gmail SMTP also has strict limits.
See: https://support.google.com/a/answer/166852.

Absolutely right... We would have to look for a SMTP server with larger limits.... Without this, the tool (in my case) would not be very valid :(

I will try the MailRelay SMTP server:
https://mailrelay.com/es/precios/
Limit of 80K emails per SMTP / month. More than enough.

I think if we use a sleep based logic, it will take a lot of time to send all emails.
Assuming the same number of subscribers as yours i.e 1,292, and sending op. might take around 1 to 2 seconds, add the delay on it of roughly 1 second. The sending time goes over 30 minutes.
I don't think this is feasible, performance wise, because Gmail has a strict sending limits.

Yes, I totally agree with you. I close the issue as it is not a Ghosler error.

@viriatusX ghosler update to update the app to the latest version.

Hi @ItzNotABug
I am not opening an incident as it is more of a query than an incident. I have contracted AWS SES as my SMTP provider. I have a limit of 50K/day and 14 emails per second. Something curious happens. Ghosler has managed to send 588 of the 1352 emails correctly.
I ask with ignorance. I have seen that Ghosler uses nodemailer. Is this configured in your program as infinite<EMAIL_ADDRESS>I don't know if Nodemailer will be blocking so much mass mailing as well.
Ghosler shows this error:
[2024-01-08 17:59:39 UTC] => [ERROR] => Newsletter: Error: Message failed: 454 Throttling failure: Maximum sending rate exceeded.
It shows as if it is checking the AWS SES limit, but this is not the case. Googling I see this article from 2015 (https://github.com/nodemailer/nodemailer/issues/436) also about the same "pool" issue.
If nodemailer is not the problem. Is there a way for Ghosler to detect the members that did not receive the email and do a "retry".  If it detects that there are 1352 members (in my case) but only 588 emails sent. I don't know if it detects which emails could not be sent, and proceed with a retry.
Thanks!!

Hey @viriatusX
Thanks for flagging this.
I think it is actually a throttle limit by SES & I also guess that similar limits might be added by other major players too. Looking up on similar usecases, I see that a way to manage this could be by using rateLimit flag to the underlying transporter.
I'll investigate more on this.

I don't think we need the pool flag as it it involves setting up maxMessages per connection & the rateLimit flag is also marked @deprecated. My current choice is to introduce a batching logic with a defined delay.

Flow:

Assuming 1500 subscribers
Splitting the subscribers further into batches, default 10 = 150 Batches
After sending email on each batch, we wait via a delay, default 1000ms (1 second)

Note: This introduces a delay in sending the emails but this is manageable and isn't too exponential unlike our previous discussions.

Both these options (emails per batch, delay between batches) can be configured via settings, for each mail configuration.


Package for YunoHost private cloud distro?

It would be very handy to have the provision of a Zulip server by the YunoHost turnkey SaaS distro.
https://yunohost.org
https://yunohost.org/en/packaging_publishing
https://yunohost.org/en/packaging_sso_ldap_integration
There is previous work by someone but it is older and not in YunoHost itself; https://github.com/bachy/zulip_ynh

@mxmilkiib thanks for the feedback! Probably this is best worked on by someone in the yunohost community, though we'd be very happy to provide support for anyone working on this in #backend on chat.zulip.org.

Closing since as noted above, this seems like something the YunoHost community typically maintains.


Malformed auth challenge header on layer upload

I am using the latest genuinetools/reg master api to move images from one registry to another.
Ping, Login, HasLayer and Listing are working fine on both the target and source registry.
However I get this error when I try to push the layer to the target registry which is in version 2.6.2.
"Post https://target.example.com/v2/pdr/tls-proxy/blobs/uploads/:
malformed auth challenge header: 'Bearer realm=\"https://docker.example.com/v2/token\",service=\"target.example.com\",scope=\"repository:pdr/tls-proxy:pull,push\"'"
time="2018-06-02T18:24:47+02:00" level=info msg="Tag := 1.3.2"

This is the log excerpt from the registry itself.
time="2018-06-02T21:25:09.957720975Z"
level=warning msg="error authorizing context: authorization token required"
go.version=go1.7.6
http.request.contenttype="application/octet-stream"
http.request.host=target.example.com
http.request.id=78dc7065-d1cc-4e09-923c-9d96527f0a3d
http.request.method=POST
http.request.remoteaddr=<IP_ADDRESS>
http.request.uri="/v2/pdr/tls-proxy/blobs/uploads/"
http.request.useragent="Go-http-client/2.0"
instance.id=19e1450d-f69e-4fe2-9463-025bd1d4426e service=registry
vars.name="pdr/tls-proxy" version=v2.6.2

<IP_ADDRESS> - - [02/Jun/2018:21:25:09 +0000] "POST /v2/pdr/tls-proxy/blobs/uploads/ HTTP/1.1" 401 228 "" "Go-http-client/2.0"

I think I found the error, it is because of the push, pull scope
See Line 39


Better recursion to non-direct precedents handling

Steps to reproduce:
        $a   = [ "Array a" ];
        $b   = [ "Array b" ];
        $a[] = &$b;
        $b[] = &$a;
        $c   = [ &$b ];

        s( $a );
        s( $b );
        s( $c );

Output:
┌──────────────────────────────────────────────────────────────────────────────┐
│                                      $a                                      │
└──────────────────────────────────────────────────────────────────────────────┘
array (2) [
    string (7) "Array a"
    & array (2) [
        string (7) "Array b"
        & array (2) *RECURSION*
    ]
]
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Called from <redacted>

┌──────────────────────────────────────────────────────────────────────────────┐
│                                      $b                                      │
└──────────────────────────────────────────────────────────────────────────────┘
array (2) [
    string (7) "Array b"
    & array (2) [
        string (7) "Array a"
        & array (2) *RECURSION*
    ]
]
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Called from <redacted>

┌──────────────────────────────────────────────────────────────────────────────┐
│                                      $c                                      │
└──────────────────────────────────────────────────────────────────────────────┘
array (1) [
    & array (2) [
        string (7) "Array b"
        & array (2) *RECURSION*
    ]
]
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Called from <redacted>

$c output is wrong; the parser engine needs an object reference map, it now assumes all references are one and the same entity (which, to be fair, usually is true).

I've mentioned before that I think this can't be done - and I'll attempt to explain it again here.
The problem
Let's take a very simple example: We have an array who's only element is a reference to itself:
$a = [];
$a[] = &$a;

This can be visualized like this:

Now, lets make a copy of this array and see what we're looking at:
$_a = $a;

This can be visualized like this:

Now you can see, it actually does take 2 redirects before it hits recursion.
Because kint takes parameters by value, the implicit copy will be done to every array passed into kint. This is what causes the initial problem of kint having to go through the array twice to find the recursion - the first time it's going through a copy, so it's not actually recursing yet.
It doesn't affect objects since they are passed by reference by default, and it doesn't affect arrays below the root since they aren't copied, their references are copied. This is why this bug only appears if the toplevel array is the one being referenced.
Check if it's the same data
The obvious solution is to pass the object by reference, but there are multiple problems with this.

You lose the ability to use func_get_args() so you have to flood the function definition with parameters
You can no longer debug constants

Obviously this isn't going to work, so the next best thing is to check if the arrays look the same. (Which is what kint tries to do today)
Check if it looks like the same data
Unfortunately, there's no way to distinguish values from references in PHP, so we have to store the entire structure of the toplevel array and compare it against every child array we come across.
We also have to do this with the flawed recusion handling or we'll run out of memory. Even built in PHP equality gives you "Fatal error:  Nesting level too deep - recursive dependency?" - you'd think they'd have something for that but no!)
This could be done with a second parser (I dread to think!) but lets just use print_r as an example here: We now have to store the print_r of the toplevel array, and then run a print_r on every child array recursively and compare the output with our stored output.

This will take a long long time
This will eat a lot of memory (I know for a fact print_r output can go over a gig in zend)
This won't help in an example where we actually do want to debug $_a since it will incorrectly assume it's an $a that's been copied by the function call

Unfortunately looking at the technical limitations and the fact it still won't work in edge cases, this isn't viable either.
IMHO the default PHP behaviour of showing the extra recursion is the most correct you can expect.
A third option
As I write this I've come up with another potential way to fix this, but it's hare-brained and probably won't work so take it with a bag of salt:
If we hit a recursion point we should be able to repeat the access path up to that point to hit it again. Prototype:
$a = ['a' => ['b' => []]];
$a['a']['b']['c'] = &$a;

$b['a']['b']['c'] = [4 => &$a];

$c = ['a' => ['b' => ['c' => &$a]]];

function recursion_prototype(&$var, $path, $num_checks = 20){
    $lastvar = $var;
    for ($i = 0; $i < $num_checks; $i++){
        if (!$lastvar = eval('return isset($lastvar'.$path.') ? $lastvar'.$path.' : null;'))
            break;
    }

    if ($lastvar)
        echo "Recursion!\n";
    else
        echo "No recursion!\n";
}

recursion_prototype($a['a']['b']['c'], "['a']['b']['c']");
recursion_prototype($b['a']['b']['c'], "['a']['b']['c']");
recursion_prototype($c['a']['b']['c'], "['a']['b']['c']");

Of course this would need eval to work (yuck) - but it would detect "apparent" recursion without needing to store a huge print_r.
All that said I still believe the default PHP behaviour is both correct and preferable: as the third example shows, arrays that just happen to have the same contents will incorrectly determine recursion.

While this is theoretically doable with PHP 5.6+ ...&$opts syntax, this precludes the use of literals when dumping. That's not going to work. I'm going to close this as wontfix for now as it seems to be impossible to achieve with current PHP implementations.


Add support for font-size-adjust into the font stack

font-size-adjust allows you to amend the aspect value of fallback fonts to match your original font: https://www.w3.org/TR/css-fonts-3/#font-size-adjust-prop. A specific use case for us would be getting foreign characters that are not in NTA to show up with matching metrics.
For NTA the original aspect ratios are 0.5 for regular text and 0.525 for bold (this can be tested by adding a font-size-adjust to gov.uk and adjusting the property until no difference is seen when it’s toggled). Applying these values makes the fallback of Arial match NTA’s metrics.
Current support is Firefox (and Chrome behind a flag). Testing shows minor changes, but it could be useful in certain situations, for example:
NTA (with or without font-size-adjust):

Arial with font-size-adjust:

Arial without font-size-adjust:

Looks good to me :+1:. Do you have equivalent screenshots for the bold variant?

Oh yeah, knew I’d forgotten something. There’s actually no difference either way with the bold weight, but we need to include it in case the bold text is down the cascade from a font-size-adjust: 0.5.
NTA with font-size-adjust:

Arial with font-size-adjust:

Arial without font-size-adjust:

:+1:


redirect to the first node by default

Codecov Report

Merging #492 into master will decrease coverage by 0.04%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #492      +/-   ##
==========================================
- Coverage   31.31%   31.26%   -0.05%
==========================================
  Files          20       20
  Lines        1980     1983       +3
  Branches      235      235
==========================================
  Hits          620      620
- Misses       1312     1315       +3
  Partials       48       48

Impacted Files
Coverage Δ

app/scripts/controllers/cluster.js
1.39% <0%> (-0.03%)
:arrow_down:

Continue to review full report at Codecov.

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


Add: Flower Planting With No Adjacent

Codecov Report

Merging #524 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #524   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files         168    169    +1
  Lines        1664   1678   +14
=====================================
+ Hits         1664   1678   +14

Impacted Files
Coverage Δ

...th-no-adjacent/flower_planting_with_no_adjacent.go
100% <100%> (ø)

Continue to review full report at Codecov.

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


Make ~/ resolution show up at design time.

This change results in proper errors for tags that utilize ~/inside of local functions at design time.

Turns out my VS changes that I did for the last release 99% cover improper coloring of this scenario. The 1 case that it doesn't is when a user utilizes the itemid attribute on a non-standard HTML tag:

Addresses #10734

LOL EZ.
Is there anything we can do to improve the error message? Should we mention ~/ specifically in the error message? I could see a lot of confusion coming from this error message about tag helpers and saying "but there isn't a tag helper???"

I could see a lot of confusion coming from this error message about tag helpers and saying "but there isn't a tag helper???"

Ya I could add an example to the analyzer error which utilizes ~/ as an example to make it extra clear.

@rynowak Updated error message to be: The method contains a TagHelper and therefore must be async and return a Task. For instance, usage of ~/ typically results in a TagHelper and requires an async Task returning parent method.


EXTRA_ARGS not passed to Questa vsim

Hello,
EXTRA_ARGS var is not passed to the vsim args when using Questa Simulator.

I just started to use cocotb and have same problem: EXTRA_ARGS is not passed to simulator.
Inside Makefile.questa I clearly see that EXTRA_ARGS is not passed to vsim.
This option highly required for designs that uses libraries from FPGA-manufacturer to simulate, so I have to add this manually into Makefile.questa file...

I am quite sure I fixed that.
Please check if you are up to date with recent master branch.  That's how I solved problem:
export VSIM_ARGS=" -L altera_mf_ver -L lpm_ver " linux32 make ARCH=i686 SIM=modelsim
VSIM_ARGS works perfectly!

It does highlight a slight discrepancy in the docs / Makefiles which needs fixing.
We should have COMPILE_ARGS passed to the compilation stage, SIM_ARGS passed to the simulation stage and EXTRA_ARGS passed to both.  This avoids simulator specific commands such as VSIM_ARGS which makes it harder to create environments that will be portable between simulators.
Unfortunately right now the makefiles don't all conform to this pattern so this is a bug that does need addressing.

The problem is that simulators handle compilation/elaboration and simulation phases different way.
For Icarus and VCS it is as above, COMPILE_ARGS and EXTRA_ARGS appended for compilation command and SIM_ARGS and EXTRA_ARGS for simulation.
Cadence IUS is one-step, so it can be done EXTRA_ARGS += COMPILE_ARGS + SIM ARGS (Currently only EXTRA_ARGS works).
But for Questa it is a bit more difficult, as there are 3 phases, including also a call for the Questa application run. I suggest introducing a BIN_EXTRA_ARGS to fix this for Questa, and maybe it will be useful in the future for other simulators.  So BIN_EXTRA_ARGS will be passed the same way as EXTRA_ARGS for other simulators, except Questa, where it will be passed only to the vsim command this way:
vsim $(BIN_EXTRA_ARGS) -do runsim.do
It seems Aldec works the same way, but I have no option to test it. Could any Aldec user comment on that?

I am going to clean this issue to provide a uniform Makefiles syntax.
Given that simulators may have different syntax for compilation/simulation args we can either (1) differentiate simulator-specific compilation/simulation args (e.g. by introducing VSIM_ARGS, VCS_ARGS, IRUN_ARGS...) or provide a uniform syntax (2). An example testbench makefile would be (assume we use only Icarus and Questa):
(1)
...
ICOM_ARGS += -DFOO
VCOM_ARGS  += +define+FOO
...
(2)
...
ifeq($(SIM),questa)
COMPILE_ARGS += +define+FOO
else
COMPILE_ARGS += -DFOO
endif
...

The same must be done for BIN_EXTRA_ARGS as explained in my previous comment.
Please provide some feedback which version you thinks is better.

Please provide some feedback which version you thinks is better.

Similar to me sightly going into direction of (2)


Make suffix an option.

At current the encoded file name is hardcoded to have the suffix 'encoding'.  This allows the suffix to be changed as a command line option.

PR looks good, could you rebase and update the Changelog? After that, it is good to go.


Add an option to memoize #hash

For objects that are immutable it doesn't make sense to calculate #hash every time it's called, it should be possible to extend the API to provide a configuration for memoizing hash, maybe something like this:
class AintChanging
  include Dry::Equalizer(:foo, :bar, immutable: true)
end

This would configure the module to define #hash method with memoization.

the flag approach seems like it has some pitfalls. such an object is immutable from when? what if #hash is called and cached before that point in construction?
i wonder if #freeze could be used for this instead, on a per-instance level:
class MaybeFrozen
  include Dry::Equalizer(:foo, :bar)

  def hash(*)
    return super unless frozen?

    @equalizer_hash_cache ||= super
  end
end

if this seems like a good approach, i could work up a PR.

such an object is immutable from when?

Right from the start, as in, its initialization. I don't think the library should be defensive like you suggested.


source_id registration of RegIPSL

label
RegIPSL
label_extended
regional Earth system model of IPSL
source_id
RegIPSL
source_type
AORCM
release_year
2019
activity_participation
DD
institution_id
UBA-CIMA-IFAECI
further_info_url
https://gitlab.in2p3.fr/ipsl/lmd/intro/regipsl/regipsl/-/wikis/home
What license do you choose?
CC BY 4.0

Looks good, thanks
This is a different version as compared to that to be used in Med-CORDEX, right? Please, check, the simulation status for this model and update the estimated completion dates (the current one is overdue) or status by opening an issue here.

It would be also good to discuss the registration of RegIPSL with IPSL to have consistent RCM acronym (versions etc.) for different CORDEX domains.


[packages] android-platform_tests shardIndex 0 and 2 times out very frequently

In some cases I'm needing to re-run this 3-4 times for PRs that run all package tests. I originally thought it was random shards, but it seems to consistently be shard 2 in my recent experience, so either there's a specific test there that's triggering it, or (less likely since we just added shards recently) that shard is overload.

I'm seeing several with shard 0 too.

Here's the timing information from a good run of shard 2 over the weekend:
|| Running for go_router [@0:00]
|| Running for go_router_builder [@0:00]
|| Running for google_identity_services_web [@0:00]
|| Running for google_maps_flutter/google_maps_flutter [@0:00]
|| Running for google_maps_flutter_android [@4:04]
|| Running for google_maps_flutter_ios [@11:27]
|| Running for google_maps_flutter_platform_interface [@11:27]
|| Running for google_maps_flutter_web [@11:27]
|| Running for google_sign_in/google_sign_in [@11:27]
|| Running for google_sign_in_android [@14:29]
|| Running for google_sign_in_ios [@16:59]
|| Running for google_sign_in_platform_interface [@16:59]
|| Running for google_sign_in_web [@16:59]
|| Running for image_picker/image_picker [@16:59]

Here are several bad runs from today and yesterday:
|| Running for go_router [@0:00]
|| Running for go_router_builder [@0:00]
|| Running for google_identity_services_web [@0:00]
|| Running for google_maps_flutter/google_maps_flutter [@0:00]
|| Running for google_maps_flutter_android [@4:00]
|| Running for google_maps_flutter_ios [@10:47]
|| Running for google_maps_flutter_platform_interface [@10:47]
|| Running for google_maps_flutter_web [@10:47]
|| Running for google_sign_in/google_sign_in [@10:47]
|| Running for google_sign_in_android [@14:10]

|| Running for go_router [@0:00]
|| Running for go_router_builder [@0:00]
|| Running for google_identity_services_web [@0:00]
|| Running for google_maps_flutter/google_maps_flutter [@0:00]
|| Running for google_maps_flutter_android [@4:33]
|| Running for google_maps_flutter_ios [@20:50]
|| Running for google_maps_flutter_platform_interface [@20:50]
|| Running for google_maps_flutter_web [@20:50]
|| Running for google_sign_in/google_sign_in [@20:50]
|| Running for google_sign_in_android [@33:22]
|| Running for google_sign_in_ios [@40:54]
|| Running for google_sign_in_platform_interface [@40:54]
|| Running for google_sign_in_web [@40:54]
|| Running for image_picker/image_picker [@40:54]

|| Running for go_router [@0:00]
|| Running for go_router_builder [@0:00]
|| Running for google_identity_services_web [@0:00]
|| Running for google_maps_flutter/google_maps_flutter [@0:00]
|| Running for google_maps_flutter_android [@4:09]
|| Running for google_maps_flutter_ios [@13:23]
|| Running for google_maps_flutter_platform_interface [@13:23]
|| Running for google_maps_flutter_web [@13:23]
|| Running for google_sign_in/google_sign_in [@13:23]
|| Running for google_sign_in_android [@31:48]

|| Running for go_router [@0:00]
|| Running for go_router_builder [@0:00]
|| Running for google_identity_services_web [@0:00]
|| Running for google_maps_flutter/google_maps_flutter [@0:00]
|| Running for google_maps_flutter_android [@3:58]
|| Running for google_maps_flutter_ios [@30:36]
|| Running for google_maps_flutter_platform_interface [@30:36]
|| Running for google_maps_flutter_web [@30:36]
|| Running for google_sign_in/google_sign_in [@30:36]
|| Running for google_sign_in_android [@43:35]

I checked the logs, and only one of them (the first) has any retries, and then only once.
This is looking more and more like a problem with FTL itself. Take google_maps_flutter_android for example, which usually takes about 6-9 minutes, but took 16 once and 27 once.
Looking deeper into that 27-minutes run, the FTL console shows that for each of the two runs (legacy renderer and latest renderer, which are two different builds and FTL invocations) tests took about 30 seconds, and the logs there only span about 2 minutes, so it's not that our tests are hanging. Yet the test matrix logging from FTL is showing really long elapsed times (log messages where the state didn't change removed for brevity):
11:15:33 Test matrix status: Pending:2
11:15:45 Test matrix status: Pending:2
11:15:57 Test matrix status: Running:2
...
11:17:34 Test matrix status: Finished:1 Running:1
...
11:32:16 Test matrix status: Finished:1 Running:1
11:32:28 Test matrix status: Finished:2

11:33:20 Test matrix status: Pending:2
11:33:32 Test matrix status: Pending:2
11:33:44 Test matrix status: Running:2
...
11:35:21 Test matrix status: Finished:1 Running:1
...
11:40:35 Test matrix status: Finished:1 Running:1
11:40:47 Test matrix status: Finished:2

So that first run took almost 20 minutes to run 30 seconds worth of tests. I'm not sure what the "pending" vs "running" status actually entails; maybe we're in a long queue for one of the devices? It's notable that in both cases one finishes almost immediately, and we're spending basically all of the time waiting for the other one.

The behavior we're seeing exactly matches the description of https://github.com/flutter/flutter/wiki/Understanding-Packages-tests#firebase-test-lab-also-known-as-ftl
I don't see either of our devices on the deprecation list though, and the API lists both of their capacity as "high".

The FTL device logs have timestamps, and for the ones I've checked so far it's definitely the startqlteue 26 that's starting later.

I'm going to try removing this device, which based on my investigation should resolve the CI issues.
I filed https://github.com/flutter/flutter/issues/130010 to track adding legacy testing a different way.


Fixed buttons and language-menu

I fixed the buttons look on mobile and changed font of language menu.

Thanks.


permit/forbid_mass_assignment_of matchers seem a bit useless

There are several issues with the permit/forbid_mass_assignment_of matchers.

As new attributes are added to permitted attributes, permit_mass_assignment_of will continue to pass.
Since everything that isn't permitted is explicitly forbidden, forbid_mass_assignment seems illogical. It isn't specific attributes you should care about being forbidden, the only thing that matters is what the permitted attributes actually are.
Can't use these matchers to test if permitted attributes is empty.

Let's say we have this policy:
class PostPolicy < ApplicationPolicy
  def permitted_attributes
    if user.admin?
      [:title, :content]
    else
      []
    end
  end
end

You're test case will look something like this:
RSpec.describe PostPolicy do
  subject { described_class.new(user, post) }
  let(:user) { create(:user) }
  let(:post) { build(:post) }
  context "as a user" do
    it { is_expected.to forbid_mass_assignment_of([:title, :content]) }
  end
  context "as an admin" do
    let(:user) { create(:user, :admin) }
    it { is_expected.to permit_mass_assignment_of([:title, :content]) }
  end
end

Say we add :flair to the permitted attributes in PostPolicy. All the tests still pass. Compare this with doing the test like this:
RSpec.describe PostPolicy do
  subject { described_class.new(user, post) }
  let(:user) { create(:user) }
  let(:post) { build(:post) }
  context "as a user" do
    it "permits the correct attributes" do
      expect(subject.permitted_attributes).to eq([])
   end
  end
  context "as an admin" do
    let(:user) { create(:user, :admin) }
    it "permits the correct attributes" do
      expect(subject.permitted_attributes).to contain_exactly(:title, :content)
   end
  end
end

With this test, the new code will cause the test to fail, making it obvious that the functionality of the policy has changed.

I appear be coming at this from a different angle to you. In my use cases I have been testing for very specific attributes being permitted or forbidden under different user contexts, rather than testing for an exact set of attributes being permitted or forbidden.
For better or worse, this approach is less comprehensive, instead focusing on what is most important to test from a security standpoint. If a particular field is always permitted under every user context (that also has permission to modify the record) then I may not need to test whether it is permitted if there are other tests that check to see if the record can be updated. Over-testing can potentially obscure what is important from the security standpoint.

Since everything that isn't permitted is explicitly forbidden, forbid_mass_assignment seems illogical.

An attribute may only be forbidden under one user context, while being permitted under another. Being able to explicitly check that an attribute called publish is forbidden under a visitor user context and permitted under an author user context is useful.
That said, it may be worth adding some examples to the readme for testing that an exact set of attributes are permitted even if this is outside the scope of Pundit Matchers. If you are interesting in doing this, please create a PR.


Support 25% of charts from Corporate Dashboard

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/75
Originally created by @joshlambert on 2018-08-21 18:15:32

We should aim to be able to represent 25% of the charts within the Corporate dashboard as part of 0.7.0

View 4 previous comments from the original issue on GitLab


Watch .git/info/exclude the same way .gitignore is

In the same way that VS Code watches .gitignore and acts immediately upon changes to it, without a need to reload the source-code view, it should watch .git/info/exclude and act the same way.
As it is currently, when one edits and saves that file, one then has to reload the source-code view for the repo in order to have it reflect those changes.
Maybe a separate issue, but it would also be nice to be able to add multiply selected items to .git/info/exclude.  Currently even with multiple items selected, only the first is added to the file.

Thank you very much for filing this issue. Given that there is currently a workaround and low interest I will close this feature request.

As it is currently, when one edits and saves that file, one then has to reload the source-code view for the repo in order to have it reflect those changes.


Implement best practices for cloudflared app

Coming from here.
The goal of this issue is to have the App eventually adhere to standard cloud-native best-practices. The points below are to be considered non-exhaustive. Feel free to add some that make sense and remove some that don't. If this issue does not make sense (e.g. is a duplicate or covers a deprecated app) please close it.
Expected outcome:

[ ] the app has properly set PDBs (as percentages)
[ ] the app can scale horizontally based on Custom Metrics (if it makes sense)
[ ] the app runs with more than 1 replica by default (if it needs HA)
[ ] the app does not use emptyDir volumes if not strictly necessary

Thinking of deprecating this issue. Please also see https://github.com/giantswarm/roadmap/issues/1107

wont do because of - https://github.com/giantswarm/giantswarm/issues/29681