Disable overflow tableInsert tests for 331+

Signed-off-by: Ahmed Hussein (amahussein<EMAIL_ADDRESS>Related to #6165
Disable tests with overflow table inserts for Spark3.3.1+ until shims supports the new UnaryExpre CheckOverflowInTableInsert
Context:

https://github.com/NVIDIA/spark-rapids/issues/6185
https://github.com/NVIDIA/spark-rapids/issues/6165

build


fix raw editing functionality

seems like the path passing to raw editing is not correct , and raise the error  like
failed to load

fixed during implementing the opendal backend


[Bug report] Missing external fluxes from split-transmon

Documentation check
If the bug manifests in unexpected behavior (as opposed to a crash), confirm that you have consulted the
API documentation

[ ] I have checked the API documentation.
[ ] I could not locate relevant information in the documentation or information is missing.

Describe the bug
When constructing a split-junction transmon from explicit circuit elements (not using the pre-made class), no external flux variables are created. Thus, flux biasing the transmon is impossible.
Expected behavior
Expected one external flux variable to be able to bias the split-junction transmon.
To Reproduce
Here's the code I use to create the transmon:
import scqubits as scqub

tmon_yaml = """# transmon circuit
branches:
- ["JJ", 1, 0, EJ=12,.01]
- ["JJ", 1, 0, EJ,0.01]
- ["C", 0, 1, EC=0.2]
"""

tmon = scqub.Circuit.from_yaml(tmon_yaml, from_file=False,
                               ext_basis="discretized")

tmon.sym_external_fluxes()

OS and version used (please complete the following information):

OS: macOS 12.1
scqubits version 3.0.0
Python version 3.8

Additional context
I tried this both with a floating and with a grounded transmon and received the same result. When I replace one junction with an inductor with $E_L = E_J$, I get the expected external flux variable, but not the expected eigenspectrum. I was hoping I could just define this using only junctions and a capacitor, to avoid making extra nodes, but perhaps that is just not possible?
EDIT: I guess I'm not sure if this is a bug, it's just not what I expected. What's the correct work-around?
Also do you want me to keep posting issues to get help figuring out scQubits or is there a discord/slack/somethingelse channel?

I can confirm that issue, and we are looking into a bug fix.
There's a temporary workaround: switch the order of nodes in one of the two JJ branches:
tmon_yaml = """# transmon circuit
branches:
- ["JJ", 1, 0, EJ=12,.01]
- ["JJ", 0, 1, EJ,0.01]
- ["C", 0, 1, EC=0.2]
"""

I'm also noticing that the method tmon.offset_charge_values() returns an empty list, but I expected [0]. Maybe this has something to do with the weird eigenvalues I'm getting.

This issue has been addressed with https://github.com/scqubits/scqubits/commit/1dab4f11fdcd68ea87fdcb086de846d5355607ee and released with v3.0.2.


Key.from_securesystemslib_key() raise ValueError

Fixes #1818
Description of the changes being introduced by the pull request:
If a securesystemslib.FormatError is raised inside
Key.from_securesystemslib_key() then reraise ValueError.
This is done so that our users don't have to import securesystemslib
in order to handle the error and because the securesystemslib error
itself is securesystemslib implementation-specific.
Signed-off-by: Martin Vrachev<EMAIL_ADDRESS>Please verify and check that the pull request fulfills the following
requirements:

[ ] The code follows the Code Style Guidelines
[ ] Tests have been added for the bug fix or new feature
[ ] Docs have been added for the bug fix or new feature

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.003%) to 98.346%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
1121

Relevant Lines:
1137

💛  - Coveralls


Fixed asset.ready() for prefiltered cubemaps

Fixes https://github.com/playcanvas/engine/issues/4246
I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

Prefiltered cubemap has a complex "loaded" state:

Prefiltered data can be loaded only.
Faces can be loaded only.
Both can be loaded.

And depending on the situation, they all are valid cases. This is made to prevent unnecessary face loading (when they are not used) while loading prefiltered data for PBR.

Had a test against the test cases that maksims listed above. In all cases, .loaded is true if the asset is used in the scene as skybox.
I also tested it as environment with a material and had the same results.
The case where this would potentially fail is if loadFaces is called on the cubemap asset after only the prefilter'ed data is loaded.
While the faces are loading, the cubemap asset loaded flag would still be true. It's an edge case that I think is fine to leave for now?

Prefiltered cubemap has a complex "loaded" state:

Prefiltered data can be loaded only.
Faces can be loaded only.
Both can be loaded.

And depending on the situation, they all are valid cases. This is made to prevent unnecessary face loading (when they are not used) while loading prefiltered data for PBR.

The complexity originates from the fact that a cubemap asset contains both a cubemap and/or prefiltered lighting data. These two things should not be the same asset. We can't easily change it now, but my hope is we can add a new prefiltered asset in future (perhaps storing the 2d equirect image directly, perhaps as png) and then deprecate the magical invisible prefiltered data on the cubemap.

Yeah tbh I kinda expected the cubemap asset to handle loaded correctly (since I rewrote it! 😀), but am less sure about all the other asset types. They'd need proper testing.

To be defensive, maybe we should do the following?
if (this.loaded || this.resource) {

Created a project that has all the assets and tests ready() against them.
https://playcanvas.com/project/927453/overview


enable built-in LS backend binary for Linux

now watch this PR: https://github.com/apple/swift/pull/6858
in the meantime, I also investigate a workaround.

the PR is merged. However,

The build script has been changed to allow source kit to be built on Linux. It does not yet exist in the standard installation however, which means that it's not in the downloadable packages that come from swift.org.

so we still wait SR-1676

I think all that's needed (if you're building it yourself) is to add a component name to the installable components, but I've not worked on that yet.
Sent from my iPhone 📱

On 20 Jan 2017, at 02:28, Jin Mingjian<EMAIL_ADDRESS>wrote:
now watch this PR: apple/swift#6858
in the meantime, I also investigate a workaround.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@alblue yes, I still hope the sourcekit lib in linux can be shipped with the official download. Because it is too large(70MB?) for download. But if this will not become true in a short term(as you hinted here), I am still open to have a workaround for the Linux side users.

given the reason in #9, SDE does not ship the bulit-in binary any more.


Bug with mailto buttons on android

There's a problem in the consistency of how browsers manages mail to, then, I've been trying to make it work on android without luck, there's client side libraries, but they will not work without js support.
In general I think we have 2 choices, code the service for all sites (1 service for the complete network), or just place the plain emails, they will get scrapped any way with the current implementation.

It doesn't support mailto from forms but it does for a links.


BIP32: Interpretation of derivation paths relative to non-master nodes

I'm submitting a ... question about the decisions made in the repository / feature request.

Summary

When using deriveHdPath to derive a node using a "relative" path, the prefix m or M must be included even when the source node is not a master(depth 0) node.
For example if I have a source node with absolute path m/1/2 and I want to reach a destination node with absolute path m/1/2/3/4, I must specify the relative path between them as m/3/4. I think it would be more intuitive to accept the relative path as /3/4 or 3/4 or ./3/4 as m should be reserved for nodes with depth 0 and m/3/4 should result in a node with depth 2.
It could also accept m/1/2/3/4 and then, observing that the starting node has depth 2 and index 2, drop the appropriate prefix from the derivation path and proceed from there.
  // Derive a master node:
  const masterNode = deriveHdPrivateNodeFromSeed(crypto, hexToBin("000102030405060708090a0b0c0d0e0f"));
  if (!masterNode.valid) return console.error(`Error with initial derivation.`);
  console.log('Master node depth:', masterNode.depth);  // 0

  // Derive a depth 2 node:
  const depth2Path = "m/1/2";
  const depth2Node = deriveHdPath(crypto, masterNode, depth2Path);
  if(typeof depth2Node === 'string') return console.error(depth2Node);
  console.log('Node depth:', depth2Node.depth); // 2

  // Derive a depth 4 node (absolute path):
  const depth4Path = "m/1/2/3/4";
  const depth4Node = deriveHdPath(crypto, depth2Node, depth4Path);
  if(typeof depth4Node === 'string') return console.error(depth4Node);
  console.log('Node depth:', depth4Node.depth); // 6 (expected 4)

  // Dervice a depth 4 node (relative path, absolute notation):
  const depth4PathRelativeAbs = "m/3/4";
  const depth4NodeRelativeAbs = deriveHdPath(crypto, depth2Node, depth4PathRelativeAbs);
  if(typeof depth4NodeRelativeAbs === 'string') return console.error(depth4NodeRelativeAbs);
  console.log('Node depth:', depth4NodeRelativeAbs.depth); // 4

  // Derive a depth 4 node (relative path, currently generates an error):
  const depth4PathRelative = "/3/4";
  const depth4NodeRelative = deriveHdPath(crypto, depth2Node, depth4PathRelative);
  if(typeof depth4NodeRelative === 'string') return console.error(depth4NodeRelative); // Error
  console.log('Node depth:', depth4NodeRelative.depth);

Other information

See here for an executable demo of the code above.

Thanks for opening an issue @rnbrady! You're definitely right, this was an oversight in the original API. I like your idea for denoting the "relative" derivation too.
Since it's not part of the BIP32 spec, I think using a unique character to denote relative derivation might be clearer,  so I think I'd prefer the ./ prefix rather than just /.
One minor issue: we can't check that the provided node is actually the correct one for the designated part of the path:
  const masterNode = deriveHdPrivateNodeFromSeed(crypto, hexToBin("000102030405060708090a0b0c0d0e0f"));
  if (!masterNode.valid) return console.error(`Error with initial derivation.`);
  console.log('Master node depth:', masterNode.depth);  // 0

  const depth2Path = "m/1'/0";
  const depth2Node = deriveHdPath(crypto, masterNode, depth2Path);
  if(typeof depth2Node === 'string') return console.error(depth2Node);
  // depth2Node is "m/1'/0"

  const depth4Path = "m/2'/0/0/0";
  const depth4Node = deriveHdPath(crypto, depth2Node, depth4Path);
  if(typeof depth4Node === 'string') return console.error(depth4Node);
  // depth4Node is "m/1'/0/0/0" rather than "m/2'/0/0/0"

Though I think we can just note that prominently in the tsdocs.
It also looks like we're not validating depth to confirm it is less than or equal to the maximum of 255, so we should add a HdNodeDerivationError.depthExceedsMaximum too.
I'll try to get this in the next major release. 👍 (Happy to take a PR as well!)

That is a good point re not being able to detect whether the path matches the node.  The alternative would be to return an error if an absolute path is requested with a non-master starting node.
I am picturing a wallet with caching of nodes for master derivation.
node = deriveHdPath(c, master, prefix + suffix)

Today I learned that by convention wallet apps which provide a xpub for export (e.g. Electron Cash, Bitcoin.com Wallet, Crescent) will provide the xpub for the account level node (depth 3). This makes sense as the first 3 levels are usually hardened (m/44'/145'/0') per BIP44 which makes the master xpub useless (these apps seems to support only one such "account", there is not way to add more other than by creating whole new HDWs at mnemonic / seed / master node level, which I found counterintuitive).
So it looks like the depth 3 import followed by relative path derivation would be a common use case. I'll ask around for thoughts on how devs would expect to handle.

To summarize some out-of-band discussion: no matter how we design this API, some unintuitive-ness is going to remain due to choices in BIP32. (You can see the same excessive complexity in how HD keys are currently defined for the compiler.)
Most notably, developers often don't understand that a path like M/0'/0 (or M/0H/0) is fundamentally impossible according to the syntax defined by BIP32 – you cannot perform hardened derivation with a master public key, and the M indicates that the "master" node is "neutered" (the terminology used by BIP32 to indicate conversion from an extended private key to an extended public key).
In the BIP32 spec, this is clarified by wrapping the "neutered" node in N( ... ) to indicate at which step the conversion occurs, and derivation continues from that point using the public derivation algorithm. Though this is itself an odd choice: the purpose of the path syntax is to simplify the description of nested function calls with an easy-to-parse "pipe" syntax: derivePrivate(derivePrivate(derivePrivate(master, 0), 1), 2) becomes m/0/1/2. Instead of building in a syntax for abstracting the N(...) function too, BIP32 just places it directly in the path: derivePublic(derivePublic(neuter(derivePrivate(master, 0H)), 1), 2) becomes N(m/0H)/1/2. Note also the logical inconsistency here: the / character normally abbreviates derivePrivate([prefix], [suffix]), but if the N( ... ) is present in the path, that changes to derivePublic([prefix], [suffix]) when outside of the "neutered" segment of the path.
This all to say: I think these baked-in "gotchas" and inconsistencies might warrant defining a more consistent dialect of the BIP32 path syntax.
Some goals:

all paths should be "supported" – no clever "gotchas" like M/0' not being possible (even though the user clearly wants neuter(derivePrivate(master, 0))).
paths should indicate their own validation strategy – I really like @rnbrady's intuition that given the path m/1/2/3/4 and a node of depth 2, the method should know to simply finish the derivation with derivePrivate(derivePrivate(node, 3), 4). Likewise, if given a node which already has a depth of 4, deriveHdPath should know that something unexpected is happening and return an error (to avoid someone eventually losing money/keys). It would be great if our path syntax maximizes our ability to validate and return errors with unexpected inputs.

It might also be useful to choose a different prefix character (other than m or M) to make it extremely easy to differentiate our syntax from those trying to adhere more closely to BIP32.

One proposal, example:

Algorithm: derivePublic(derivePublic(neuter(derivePrivate(m, 0H)), 1), 2))
BIP32: N(m/0')/1/2
Our absolute path: r/0'/p/1/2

uppercase/alphanumeric format: R/0H/P/1/2

Our relative path from r/0': ./p/1/2

uppercase/alphanumeric format: ./P/1/2

Our relative path from r/0'/p: ./1/2
Our relative path from r/0'/p/1: ./2

"Absolute" paths – paths which define the path to a public or private key from a "level 0" node – should be prefixed with r/ instead of m/ or M/ (for "root" – we can switch our internal terminology to replace master with root in this codebase). There's no need to distinguish between "neutered" and non-"neutered" roots.
"Relative" paths would be prefixed with ./ (some other libraries already use this syntax, but since it's not standardized by BIP32, I don't think we need to worry about distinguishing our paths from those libraries).
Instead of codifying the "neutered" terminology with the character N, we use p to represent where the node is converted to "public". (This is also good to help differentiate ours from the BIP32 spec syntax.) We could also pick another verb like "convert", "public", "expose", "reveal", etc., but I haven't thought of anything that seems more intuitive than p for "public". (It also works logically as an abbreviation for "private" or "private-to-public". Either way, it's clearly the level at which the conversion happens and further derivations switch algorithms.)
By convention, both r and p should be lowercase, which improves legibility (over capitalized characters). Hardened derivation is represented with ' (as is already common, though this is not standardized in BIP32). This is also helpful for legibility vs H as used by the BIP32 syntax.
Because there are cases where capital characters are useful (e.g. QR code alphanumeric mode), we should also standardize an uppercase syntax, where we also replace ' with H (since ' can't be used), e.g. R/0H/P/1/2. Each path must use either the lowercase or uppercase formats, mixed case paths would return an error.

Thoughts?
With this path syntax, we'd be able to simplify hdPublicKeyDerivationPath, privateDerivationPath, and publicDerivationPath in bitauth template HD keys to just path, since each component can be easily derived.

Thinking about it more: using the p character as a separator makes it hard to visually parse the "depth" of a path, so it's easy to confuse two paths as being the same depth:

r/0/1/2
r/0/p/2

Maybe a better option is to use a colon (:) to indicate the separation (and paths may have no more than one colon). So our example becomes:

Algorithm: derivePublic(derivePublic(neuter(derivePrivate(m, 0H)), 1), 2))
BIP32: N(m/0')/1/2
Our absolute path: r/0':1/2

uppercase/alphanumeric format: R/0H:1/2

Our relative path from r/0': ./:1/2

uppercase/alphanumeric format: (same)

Our relative path from r/0':: ./1/2
Our relative path from r/0':1: ./2

This makes depth much clearer (and reduces the visual noise of extra / characters):

r/0/1/2
r/0:2

Note, it's still possible to indicate in the path whether the final result should be the public or private node:

private: r/0'/1'/2
public: r/0'/1'/2:

(Also considered separating with /: rather than just :, but that seems to add unnecessary visual noise in most cases.)

One remaining ambiguity with using : – should relative paths be prefixed with ./ even if that segment wouldn't otherwise have an initial /?
E.g. for absolute path r/0'/1':2/3, given the node at r/0'/1' (which is a private node), what is the relative path? Some options:
(This sort of became a stream of consciousness – we may have to settle on the exact syntax after trying some implementations.)

Option 1: always prefix with ./
This starts with ./, so many developers will intuitively recognize it as a relative path. But it also means that getting the relative path from the absolute path is more complicated than splitting the absolute path at the right character (we only add ./ if the suffix doesn't already have a /):

Our absolute path: r/0'/1':2/3
Our relative path from r/0': ./1':2/3
Our relative path from r/0'/1': ./:2/3 (4 /s total)
Our relative path from r/0'/1':: ./2/3 (4 /s total)
Our relative path from r/0'/1':2: ./3

Option 2: only add the .
This doesn't require any logic to move from absolute to relative paths – the . stands in for the exact path of the source node. But it's much less clear to an unfamiliar developer that they're looking at a relative path:

Our absolute path: r/0'/1':2/3
Our relative path from r/0': ./1':2/3
Our relative path from r/0'/1': .:2/3 (same 3 /s)
Our relative path from r/0'/1':: .2/3 (same 3 /s)
Our relative path from r/0'/1':2: ./3

Option 3: switch to /: as the separator
This makes relative paths start with ./ so they're clearly "relative", and it also makes splitting the absolute path a little clearer. Though it may be less clear which node has the "public-to-private" transformation applied:

Our absolute path: r/0'/1'/:2/3
Our relative path from r/0': ./1':2/3
Our relative path from r/0'/1': ./:2/3
Our relative path from r/0'/1'/:: ./2/3 (note: 5 /s here)
Our relative path from r/0'/1'/:2: ./3

Option 4a: switch to :/ as the separator
Like option 2, relative paths wouldn't start with ./, so it's a little less clear. As a positive, the : is within the "segment" (between / ... /) of the node where the conversion happens, so you can think of it as another modifier like hardening (') for the node where it appears. E.g. r/0': takes a root private node, and derives hardened node 0, then derives its public node.
Applied:

Algorithm: derivePublic(derivePublic(neuter(derivePrivate(m, 0H)), 1), 2))
Our absolute path: r/0'/1':/2/3
Our relative path from r/0': ./1':/2/3
Our relative path from r/0'/1': .:/2/3 (strange .: prefix)
Our relative path from r/0'/1':: ./2/3
Our relative path from r/0'/1':/2: ./3

Option 4b: switch to :/ as the separator, require ./
This could also use the approach from option 1, where we just always require relative paths to start with ./ (so "absolute-to-relative" is a little more complex):

Our absolute path: r/0'/1':/2/3
Our relative path from r/0': ./1':/2/3
Our relative path from r/0'/1': ./:/2/3 (adds ./, so 5 /s total)
Our relative path from r/0'/1':: ./2/3
Our relative path from r/0'/1':/2: ./3

This makes the implementation messier than option 4a though.
Option 5: abandon ./, just split the path
We could abandon trying to prefix relative paths with ./, and simply split the absolute path at the precise token where the path is divided:

Our absolute path: r/0'/1':2/3
Our relative path from r/0': /1':2/3
Our relative path from r/0'/1': :2/3
Our relative path from r/0'/1':: 2/3
Our relative path from r/0'/1':2: /3

After fighting with the other options, this is looking very good 😅

Maybe the best option: don't support relative paths. YAGNI
There are probably exceptionally few applications where it would be a good idea to even use a relative path. For the most part, explicitly-defined absolute paths are the best choice: they're easy to parse, extremely clear, and can offer built-in safeguards (like sanity-checking the depth of the provided node against the depth of the requested absolute path).
With an absolute path, you can also easily determine whether a public or private node is needed to complete the derivation. E.g. for the path r/0'/1':2/3, if we only have a root public node, derivation isn't possible. But if we have a public node at depth 2, deriveHdPath can trust that we've given it r/0'/1': and complete the final 2/3.
In the unusual case that the user wants a "relative path", it's probably safer for them to compute an absolute path from the relative components they expect to use, then provide that absolute path to our safer, absolute-paths-only derivation method (which will sanity-check their result and error if something unexpected happens).

Wow, thanks for the great write-up. A few observations in response:
On the necessity of relative paths

Maybe the best option: don't support relative paths. YAGNI

I think there are some significant use cases where it is needed. For example imagine a business owner operates a BIP44 style HDW with the following accounts:

m/44'/145'/0': Current account
m/44'/145'/1': Retail store 1
m/44'/145'/2': Retail store 2
m/44'/145'/3': E-commerce site

The business owner would provide his webmaster and each store manager with a unique extended public key with depth 3. They would load those xpubs into their point-of-sale (POS) system or payment backend, which would then do a relative derivation ./0/i for each payment they take.
The combination of derivation path m/44'/145'/0' combined with exporting a depth 3 extended public key N(m/44'/145'/0') is common. I have personally used such a scheme (without knowing it at the time) at my meetups to take payments for beer and food. The Bitcoin Cash Register app runs on tablets operated by bar staff and generates addresses based on an imported xpub, which has been exported from the Bitcoin.com Wallet where I hold the private keys for the meetup's wallets. Having gone back to check the xpubs, they are depth 3. I've also confirmed that Electron Cash behaves the same way.
In the BIP32 spec this use case is referred to as Unsecure money receiver. There is also a Recurrent business-to-business transactions use case which would have similar requirements for relative paths.
The developer of such a POS system needs to do a relative derivation to generate the payment addresses. It seems strange to expect them to add an (arbitrary) prefix to form an absolute path, only so that the library can strip it back off again to perform the relative derivation.
Some opinions on the options presented
I don't see the benefit of introducing a new prefix, especially now that I understand the meaning of M properly.  I found r to be ambiguous as it could stand for either root or relative.
I don't see the benefit of adding a positional neuter symbol such as : or p, because:

Its presence anywhere to the left of any ' will generate an error.
Its presence anywhere else indicates a neutered node as the final result.
Its position makes no difference to that result.

Having considered all of this, the scheme that now makes most sense to me is:

keep everything as is (private node implies private derivation),
add support for relative paths (I prefer Option 5, i.e. no introduction of new characters),
a developer wanting a neutered result should explicitly call deriveHdPublicNode rather than relying on a symbol in the path.

Unfortunately my understanding of BitAuth templates and compilers is minimal so I wasn't able to  take their requirements into consideration.

Ya, after this discussion, I think you're right – we should probably leave the API mostly as-is, and just allow support for "relative" paths without any new character scheme, e.g. 2/3. Public nodes produce public nodes, private nodes produce private nodes, and I'll have to make sure that the final documentation introduces the concepts clearly enough to make the API understandable. 👍
For future completeness of this discussion, this BIP proposal now exists too: BIP32 Path Templates. Though I don't think Libauth needs to support it at all – it's easy to for a downstream library to create an implementation with the primitives provided by Libauth's BIP32 support.


Tooltip gets stuck on the page fix

Details

https://github.com/Expensify/App/issues/12025#issuecomment-1305714746
Fixed Issues

$ https://github.com/Expensify/App/issues/12025

PROPOSAL: GH_LINK_ISSUE(COMMENT)
Tests

Decrease the screen size
Hover over any contact at chat navigator
When the tooltip appears open the chat
Hover at back button until the tooltip shows up then press back
The Tooltip should disappear after clicking on the chat / pressing back and only re-appear when hovering clickable items

[x] Verify that no errors appear in the JS console

QA Steps
Same as tests

[x] Verify that no errors appear in the JS console

PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

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

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

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

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

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

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

Screenshots

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop
https://user-images.githubusercontent.com/75031127/200887531-d94c13cb-4b99-42e1-a39e-d4be1742e433.mp4

iOS

Android

I have read the CLA Document and I hereby sign the CLA

recheck

recheck

Hey @getusha, hope you are doing well.
Sorry for not commenting here sooner!

Do you mind adding evidences for Desktop too? Also checking the missing items of your PR Author Checklist section? (I know this is just a Web and Desktop issue but we need to check all of them)

Also, in the Fixed Issues section, can you change the content to the URL itself after the dollar sign like this:
$ https://github.com/Expensify/App/issues/12025
PROPOSAL: GH_LINK_ISSUE(COMMENT)

Do you mind adding a couple more items to the Tests describing what behavior should be happening after the click? I think it would be something like "The clickable mouse tooltip should disappear after clicking on the chat and only re-appear when hovering clickable items"

One last thing, can you comment in the QA Steps section something like "Same as Tests" so no one thinks there are NO QA steps?

@getusha Great to see your first PR! For your next one, please make sure to link the issue correctly as described in the template, like so: $ https://github.com/Expensify/App/issues/12025

@PauloGasparSv Thanks, I will add the listed requests

@PauloGasparSv  @rushatgabhane @chiragsalian
Can we get this reviewed? Thank you.

Thank you @rushatgabhane
All set?

The recent commit addresses the Value must be omitted for boolean attributes lint error.
Let's get this approved and :tada:

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Sure @rushatgabhane working on it. will update you

Seems like we have the resetsOnClickOutside prop applied inside ReportActionItem's Hoverable we need to pass a new prop to check if the prop is from the Tooltip

That don't seem like a good idea, instead we should add isTooltipComponent prop to the Hoverable inside the Tooltip
And
 if(this.props.resetsOnClickOutside && this.props.isTooltipComponent) {

Should I raise new PR for this?

I am about to raise the new PR

There might be something related to it?

Can you raise the new PR @rushatgabhane ?

-        if(this.props.resetsOnClickOutside && this.props.isTooltipComponent) {
-           this.setIsHovered(false)
-        }

+        if(this.props.resetsOnClickOutside && this.props.isTooltipComponent) {
+           this.setIsHovered(false)
+        }

for Tooltip's Hoverable
+                isTooltipComponent

Great, I think we should go with that.

Well so let's take the new prop approach

Here is the new PR https://github.com/Expensify/App/pull/12681
@rushatgabhane

We can remove the other one?

@rushatgabhane
Great is that not causing additional bugs?

🚀 Deployed to staging by @chiragsalian in version: 1.2.28-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by @chiragsalian in version: 1.2.28-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @roryabraham in version: 1.2.28-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Comment regarding https://github.com/Expensify/App/issues/13146 BZ checklist.
This PR has been identified for introducing the https://github.com/Expensify/App/issues/13146 issue. This is an edge case, where resetting the hoverable state click on Chrome the hoverable state will be active again but in Safari the hoverable state is active after some movement.
The explanation and the example can be checked on this comment.
Thanks!


OCM-12486 | fix: Fixed network custom templates runner

OCM-12486

I see this returns an error instead of giving the default AWS SDK error now; but does this fix the bug? Just making sure

I see this returns an error instead of giving the default AWS SDK error now; but does this fix the bug? Just making sure

Tested it and it seems to be working yes

rosa create network aa --param=Name=dmoskale --param=Region=us-west-2 --template-dir /home/denism/dev/rosa/cmd/create/machinepool/templates --param=AvailabilityZoneCount=3 --param=Tags=Key1=Value1,Key2=Value2 --param=VpcCidr=<IP_ADDRESS>/20
INFO[0001] Creating CloudFormation client
INFO[0001] Creating CloudFormation stack
INFO[0013] ---------------------------------------------
INFO[0013] Resource: InternetGateway, Status: CREATE_IN_PROGRESS, Reason: Eventual consistency check initiated
INFO[0013] Resource: ElasticIP1, Status: CREATE_IN_PROGRESS, Reason: Eventual consistency check initiated
INFO[0013] Resource: ElasticIP2, Status: CREATE_IN_PROGRESS, Reason: Eventual consistency check initiated

/lgtm

/cherrypick release_1.2.48


Fixed simde_mm_prefetch warnings

Closes: #996

#996

@epixu Any thoughts on this emscripten error?
https://github.com/simd-everywhere/simde/actions/runs/4411656252/jobs/7731674536?pr=997#step:8:606

unexpected runtime library name: roundevenf

@Epixu Any thoughts on this emscripten error?
https://github.com/simd-everywhere/simde/actions/runs/4411656252/jobs/7731674536?pr=997#step:8:606

unexpected runtime library name: roundevenf

Sorry, I have no idea what it is about, it shouldn't be related to my warnings fix afaik.

Fixed in https://github.com/simd-everywhere/simde/commit/9c3d0dc0b20c019b8ef19ebf8e44cd3fe6fb1aa2


redev: note on client partition objects

This PR adds a documentation comment addressing the point raised in #24 regarding empty partition objects for clients in the Redev constructor.

Looks good. Should we also assert that the partitions are empty when Redev is constructed on the client?


Make the devide by 0 button actually devide by 0

Currently when you press the divide by 0 there is no actual division taking place: there is just a call to an artificial crash. I fixed it so there is an actual division taking place and the answer is displayed in a notification just in case it succeeds.

Is... Is this a serious submission?
The button is to showcase the fake "crash" dialog

Kinda serous, would you like me to make PozzNX also functional :-) ? If it was to showcase the error popup I will close the pull request.

The new demo will have actual showcases with meaningful buttons instead of memes like the current example.


[Question] PropertyFieldCollectionData: number input shows placeholder instead of 0

Category

[ ] Enhancement
[ ] Bug
[x] Question

Version
Please specify what version of the library you are using: [v3.2.0]
Using PropertyFieldCollectionData with a number input (CustomCollectionFieldType.number), a value of 0 seems to clear the input field's contents and show the placeholder text instead of showing 0. This is problematic when 0 is a valid input.

Is this expected behaviour? If it is, would it be useful to make it configurable?

Thanks @M365Bass for reporting this one and sorry for the long delay.
It is definitely a bug.
And it has been finally fixed. Will be included in the next release.

Thanks @AJIXuMuK - appreciate your efforts 👏🏻


SSHOperator returns last line for xcom_push, not full results

Dear Airflow Maintainers,
Before I tell you about my issue, let me describe my environment:
Environment

Version of Airflow (e.g. a release version, running your own fork, running off master -- provide a git log snippet):
Airflow Version 1.7
Scheduler with Local Executor against RDS Postgres

Now that you know a little about me, let me tell you about the issue I am having:
Description of Issue

What did you expect to happen? SSHOperator returns only the last line of the results of the bash command for and xcom_push. I expected the full results.

Reproduction Steps

Any SSHOperator with xcom_push=True.

Please create Jira if you still think this is an issue.


Make it compatible with python==3.10 and cuda==12.1

Looks great, thank you!
Before we merge, can you reproduce (some of) the original numbers with this updated version?

Thanks! By the way, the current dependencies should allow python 3.9+, shall we decrease the minimum version?

That's possible, but perhaps now setting the version as 3.10 will make it easier later to bump up the other version requirements?

3.9 is still quite used by ml folks, and there are no 3.10+ specific features we use in the codebase, so I'd probably go for 3.9+

Sure, I'll update the PR today.

Just tested on python3.9, and it seems to be working fine.


program target doesn't supply port to avrdude

I'm using platformio to program ATMega328p chip using Arduino Nano as programmer.
The command I'm using is following:
platformio run -t program
It gets translated to this:
"/home/radek/.platformio/packages/tool-avrdude/avrdude" -v -p atmega328p -C "/home/radek/.platformio/packages/tool-avrdude/avrdude.conf" -c stk500v1 -U flash:w:.pioenvs/ATMega328p_8MHz/firmware.hex:i
There is no serial port supplied to avrdude and the programming process fails because avrdude tries to use /dev/ttyS0 by default. I was not able to supply the port nor on commandline using --upload-port nor in the environment definition.
I've figured out that following patch fixes the issue for me (but I'm not sure if it won't break something else):
diff -up ./builder/scripts/atmelavr.py.fix ./builder/scripts/atmelavr.py
--- ./builder/scripts/atmelavr.py.fix   2016-02-12 22:11:00.452578300 +0100
+++ ./builder/scripts/atmelavr.py       2016-02-12 22:11:16.791028191 +0100
@@ -27,8 +27,8 @@ from platformio.util import get_serialpo

 def BeforeUpload(target, source, env):  # pylint: disable=W0613,W0621

-    if "program" in COMMAND_LINE_TARGETS:
-        return
+    #if "program" in COMMAND_LINE_TARGETS:
+    #    return

     if "micronucleus" in env['UPLOADER']:
         print "Please unplug/plug device ..."

Please read docs and "Arduino as ISP" http://docs.platformio.org/en/latest/platforms/atmelavr.html#upload-using-programmer
program target does't append options/flags automatically. This target is intended for the case where you need specific flags/options.

Ah, I was not aware of that, thank you.


Add support for Three.EffectComposer and Three.ShaderPass

Hi,
Support for EffectComposer to be able to render nice graphic effects with ShaderPass would be nice. It seams that you though about it in WHS.World as there is a this._composer in start() but doesn't work yet.
Do you have a roadmap for this feature, and/or already though about how to deal with it ?
Version:

[x] r10 (dev)
[ ] r9
[ ] r8
[ ] r7

Issue type:

[ ] Bug
[x] Proposal/Enhancement
[ ] Question

 Tested on:
###### --- Desktop
   - [ ] Chrome
   - [ ] Chrome Canary
   - [ ] Chrome dev-channel
   - [ ] Firefox
   - [ ] Opera
   - [ ] Microsoft IE
   - [ ] Microsoft Edge
--- Android

[ ] Chrome
[ ] Firefox
[ ] Opera

--- IOS

[ ] Chrome
[ ] Firefox
[ ] Opera

@typedef42 Sure, will check it today or tomorrow. Is there some other postprocessing api i should check with it?

well, one use case I have would be to use additional RenderTarget to compose some glow effect on top of my stardard render buffer.
The way I use it with Three.js is that :

I create another Three.camera and another Three.scene that contains only glow meshes I use in my shaders pass.
Then I create a new WebGLRenderTarget (witch I belive create a new FrameBuffer under the hood).
I bind this RenderTarget to the WebGLRenderer with a Three.EffectComposer
I add one RenderPass and several ShaderPass to my composer.

Here is a snippet of what it would look like in pseudo Three.js code :
// in my case only need one renderer instance, don't kwow if one could need more than one...
this.renderer = new THREE.WebGLRenderer();
this.dom.appendChild(this.renderer.domElement);

// ---------------------------------------
// Render to screen buffer
this.scene = new THREE.Scene();
this.camera = new THREE.Camera(...);

const renderModel = new THREE.RenderPass(this.scene, this.camera);
this.mainRenderTarget = new THREE.WebGLRenderTarget(size...);

// this would get the output of my Glow RenderTarget defined bellow
this.glowResultPass = new THREE.ShaderPass(AdditiveShaderForExample);
this.glowResultPass.uniforms['tAdd'].value = this.glowComposer.renderTarget1;

this.mainComposer = new THREE.EffectComposer(this.renderer, this.mainRenderTarget);
this.mainComposer.addPass(renderModel);
this.mainComposer.addPass(new THREE.ShaderPass(AntialiasingShader));
this.mainComposer.addPass(this.glowResultPass);
// ---------------------------------------

// ---------------------------------------
// Render Target 1 buffer (for glow for example)
this.glowScene = new THREE.Scene();
this.glowCamera = new THREE.Camera(...);

this.glowRenderTarget = new THREE.WebGLRenderTarget(size);
const glowRenderModel = new THREE.RenderPass(this.glowScene, this.glowCamera);
const glowPass1 = new THREE.ShaderPass(...);
const glowPass2 = new THREE.ShaderPass(...);
const glowPass3 = new THREE.ShaderPass(...);

// this is where you bind the renderer with the rendertarget. In my case I bind it to the main and only renderer, but I guess i could be another renderer.
this.glowComposer = new THREE.EffectComposer(this.renderer, this.glowRenderTarget);
this.glowComposer.addPass(glowRenderModel);
this.glowComposer.addPass(glowPass1);
this.glowComposer.addPass(glowPass2);
this.glowComposer.addPass(glowPass3);
// ---------------------------------------

The way I would implement that into whitestorm, I can see two options :
1/ Wrap the whole process in a new WHS core class. Some king of WHS.PostProcessor for example. (less elegant I think and weird since a PostProcessor will need its own scene and camera...)
2/ Modify the WHS.World class enought that it can handle a WebGLRenderer or a WebGLRenderTarget (or both at the same time) and a EffectComposer and RenderPass/ShaderPass etc. It would also provide a way to easly instanciate multiple WHS.World and bind the WebGLRender of the 'main' WHS.World to the others.
I think it make sense since I basically render different Worlds (one for glow, one for occlusion etc) with different kind of meshes, that I mix one on top the other at the end in the main World composer.
This is the kind of rendering I end up with, and why I need this feature to switch to WHS. image
Don't known if I'll have the time to fork and make a try at this weekend, but if you have a look at it, it's awesome !

@typedef42 Effect composer is that thing that lack in whitestormjs currently. Nice that you want to implement it, me too.
So, you need to follow some simple rules (make a pull request):

Make all your changes in dev branch. I will later merge it to master.
You may add new classes (no problems with that).
You may make some pull requests (different ways of implementation). We will later choose the best one (most rational).

Also, can you upload a repo that you are working on to GitHub (and share a link here)? We will later make a showcase section and put all projects made using whitestormjs there. Thanks for all that work that you do to help this project grow:)

ok, I'll take a look at it when I can, following the repo rules, no problem.
I first need to 'revive' this old project using THREE r60 and es5, and migrate it to ESNext and up to date THREE.js / whitestormjs

@typedef42 Some things / commands that will be useful for you in development and testing:

run npm install fisrt (install all npm modules, even devDependencies, check that your NODE_ENV is "development" before that).
run gulp dev. It is a universal command for development:) It will run all examples by localhost:8080. You can changes whitestorm.js source (src/framework) and examples source at src/examples/, everything will be compiled immediately.

For other CLI commands check this

Thanks, i'm already familiar with npm and gulp, i'm using them with node.js, aurelia.io/jspm in my build toolchain :)
I quickly pulled the dev branch to test, it's working but I think you miss a dep in your package.json though, its babel-polyfill.
Nice for the CLI readme, it's easier than read the gulpfile !

@typedef42 I made some updates in dev branch. Merge them please if you already started.

@typedef42 Any updates on your project?

Hi, I started to work on something, it is more work than what I estimated at first but totally do-able, problem is that I also lost internet at home for now :/
I'll keep you informed as soon as I have a working prove of concept.

Hello, @typedef42. I just published r11 which is more stable than before. But we still aren't able to support that feature you are talking about.
I want to add this in the nearest time so you may help me with that by doing one from this three things:

Describe your needs and what should I implement. (I will take care about implementing)
Fork this repo, edit sources, check if all this stuff works properly and make a pull request.
Join our team as an open-source developer and help us committing to the dev branch.

Thanks!

Hi @sasha240100,
Sorry not giving you feedback sooner, bad timing for me. I've already forked and started an implementation of a PostProcessor class that can be 'attached' to a World instace and that wrap Three RenderTarget, EffectComposer and *Pass.. The aims is beeing to be able to recreate all the postprocessing examples from official three.js repo.
For now it hasn't impacted the World class a lot, so I'll merge back the release you just made into my fork to stay up to date. (i've not pushed on my fork yet, as not everything working yet)
I hope I will have some basic working implementation of the PostProcessor soon (this week, may be next week if I can't keep up with work), but I have a question concerning dependencies : as Three.EffectComposer, Three.RenderPass/ShaderPass are not part of the THREE.js core lib, but rather part of the three.js examples folder, how do you want to deal with theses dependencies ?
1/ we have to embed EffectComposer and *Pass source code in WHS (and keep it up to date..)
or
2/ we have to separate post processing from WHS core, and make this feature some kind of external plugin that itself embed the extra three.js code deps
Tell me what you think about that,
cheers,

@typedef42 Second option sounds good. We can just reserve a place for ability to add postprocessing in World class and all other stuff with THREE.EffectComposer will be added as a plugin.

@typedef42 I made a project where i needed glow and faced the same problem (no api for THREE.EffectComposer). So now i really understand you. Let's fix this problem this week. Okay? Tell me what you've done or what you need to do.

Ok, I have a basic working version. you can check out an example there :
https://github.com/typedef42/whitestorm.js/blob/dev/src/examples/post-processing/basic-glitch/script.js#L260
It is still very much work in progress, (resizing is not working yet, and I did not tested multiple world / PostProcessor example for complex rendering)
If I summarize, I ended up re-implementing Three EffectComposer and Pass mecanism in es6 and wrapped their use in a PostProcessor class that can be attached to a world instance.
I did all of that inside the post-processing folder to avoid weird dependencies with Three/examples folder. IMO Scene composition is important enought that it should be part of core engine source code, not just part of the example folder... (never understood why they did that in Three)

@typedef42 Awesome! Make a pull request now. I'll review it and maybe make some changes and notify you anyway.
We are going to make a plugin registry (like gulp has), but for whitestormjs with a lot of interesting stuff that can't be in core of framework but is very common for developers! So be in touch with us:)

@typedef42 Merged.

@typedef42 Cool! Can you please describe the API?:) You may add your classes to docs: https://github.com/WhitestormJS/whitestormjs.github.io/tree/editing/source/includes

We use this template for docs: https://github.com/lord/slate
or add some unit tests, so i can make docs by them.

wow that was fast !
I put the kids to bed and start working on the doc/api, and adding more complex examples of post processing :).

@typedef42 I made some changes: https://github.com/WhitestormJS/whitestorm.js/commit/6bfed1dcc0de28e00e1aac5e98a90e665101cc73

Removed lodash (replaced) - less Kb
Removed polyfill  for es6 promises. (babel already do this).
And please check that i replaced pass.name with passIndicator.name https://github.com/WhitestormJS/whitestorm.js/commit/6bfed1dcc0de28e00e1aac5e98a90e665101cc73#diff-f4820f54bc8ca13f3497930c9e462b6cR52

I see that resizing is not implemented yet. I give you access to repo so you can add changes without pull request and test them. Sending you an invite! Check your Email.

looks fine to me, i'm going to test / documenting that now.


GSoC Idea: Implementing CHAOSS Metrics in Augur

Ideas for Google Summer of Code projects
Idea 5: Build CHAOSS Risk and Growth Maturity and Decline Metrics in Augur
Description
Augur is a fully functional prototyping web stack for CHAOSS metrics that leverages cutting edge web technologies including VUE, NodeJS and Python. It provides structured data mined from git repositories using a plugin architecture that incorporate other open source metrics projects like Facade and FOSSology.
In this GSoC project we plan to implement Risk metrics and other metrics within the Growth-Maturity-Decline CHAOSS metrics and use cases using Augur, focusing on what we have unearthed as the open source community manager use case. The aims of the project are to:

Construct core open source software metrics defined by CHAOSS and
Assemble filtered, comparative collections of those metrics in ways that community managers want to consume.

The aims of the project are as follows:

Acquiring knowledge on Augur toolchain to generate metrics from available data sources.
Creating VUE visualizations and API's to support the enumerated metrics and metric collections.
Writing Python code to query Facade, Augur and other datasets.

Right now, based on Augur prototypes and follow up discussions so far, we have the following observations that will inform our work both the “Growth Maturity and Decline” working group and in Augur Development. Here are a few things we have learned from prototyping Augur with community managers. These features in Augur are particularly valued:

Allowing comparisons with projects within a defined universe of of projects is essential
Allow community managers to add and remove repositories that they monitor from their repertories periodically
Downloadable graphics
Downloadable data (.csv or .json)
Availability of a “Metrics API”, limiting the amount of software infrastructure the community manager needs to maintain for themselves. This is more valued by program managers overseeing larger portfolios right now, but we think it has potential to grow as awareness of the relatively light weight of this approach becomes more apparent. By apparent, we really mean “easy to use and understand”; right now it is easy for a programmer, but less so for a community manager without this background or current interest.

With these advantages in mind, making the most of this opportunity to help community managers with useful metrics is going to include the availability of date summarized comparison metrics. These types of metrics have two “filters” or “parameters” fed into them that are more abstractly defined in the Growth, Maturity, and Decline metrics on the CHAOSS project.

Given a pool of repositories of interest for a community manager, rank them in ascending or descending order by a metric
Over a specified time period or
Over a specified periodicity (e.g., month) for a length of time (e.g., year).

For example, one open source program officer we talked with is interested in the following set of date summarized comparison metrics. Given a pool of repositories of interest to the program officer (dozens to hundreds of repositories):

What ten repositories have the most commits this year (straight commits, and lines of code)?
How many new projects were launched this year?
What are the top ten new repositories in terms of commits this year (straight commits, and lines of code)?
How many commits and lines of code were contributed by outside contributors this calendar year? Organizationally sponsored contributors?
What organizations are the top five external contributors of commits, comments, and merges?
What are the total number of repository watchers we have across all of our projects?
Which repositories have the most stars? Of the ones new this year? Of all the projects? Which projects have the most new stars this year?

Further elaboration on the community manager use case is available on the CHAOSS website: Community Manager Metrics Use Case

Difficulty: Medium
Requirements: Python programming. Interest in data analytics. Willingness to understand data structures and our web stack internals and CHAOSS metrics.
Recommended: Experience : NodeJS Programming. VUE Programming.
Mentors: Sean Goggins, Jesus M. Gonzalez-Barahona

Microtasks

Microtask 0: Familiarize yourself with augur by downloading and configuring the dev branch. For a little more context about what we are trying to accomplish with Augur's prototyping, checkout the blog posts on the Augur Website. The community manager use case is especially interesting.
Microtask 1: Using the Augur reference database included in the setup, configure a new metric from those available an not implemented in the "Metrics Status" page.
Microstask 2: If you want, take a look at the configuration for VUE cards in the frontend/ folder for augur, google Vue, and see what kinds of new visualizations you might want to try out for some of the already existing metrics.
Microtask 3: Make a pull request to update the newcomer documentation or, if you have questions about getting started in the steps above, open an issue in the Augur repository.

Hello, I'm interested in this project and have been working on the microtasks. I would like to ask if like in the other GSoC ideas that is recommended to show the completion of some microtasks, on this project if I want to show them as well, may I create a repository and upload evidence like screenshots because there are no coding related tasks, like in this issue.
Thanks in advance for your response

Hi @ManuelLecaro : Please submit!

@parthsharma2 contributed a pull request to augur. He communicated directly in the repository, which is my fault, not his.

Hello, I'm also interested in this project. I have contributed a few pull requests to augur, accomplished all microtasks and submitted my proposal.

OK, @bing0n3 : we will evaluate your pull request.

I think this is done by now.


Add nnn

Adds file manager nnn to the section Projects using icons-in-terminal.

@sebastiencs this PR is open for months. Can you please take a look?


[macOS][m1] App crashes in master channel debug mode if hardened runtime is enabled

Steps to Reproduce

flutter channel stable
flutter upgrade
flutter create playground_old --platforms macos
cd playground_old
flutter run <-- does not crash
flutter channel master
flutter upgrade
Open Xcode and remove arm64 from Excluded Architectures
flutter run <-- crashes

Expected results: App does not crash
Actual results: App crashes
The flutter run output is too long...I create a gist for it here.

Logs

[✓] Flutter (Channel master, 2.13.0-0.0.pre.313, on macOS 12.3 21E230 darwin-arm, locale zh-Hans-MY)
    • Flutter version 2.13.0-0.0.pre.313 at /Users/taboosun/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 02b2c2cde6 (2 hours ago), 2022-03-30 12:50:12 +0300
    • Engine revision 6ad06a5d89
    • Dart version 2.17.0 (build 2.17.0-249.0.dev)
    • DevTools version 2.11.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/taboosun/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/taboosun/Library/Android/sdk
    • Java binary at: /Users/taboosun/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Users/taboosun/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/211.7628.21.2111.8193401/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] Android Studio (version 2021.1)
    • Android Studio at /Users/taboosun/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/211.7628.21.2111.8139111/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.3)
    • IntelliJ at /Users/taboosun/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 65.2.4
    • Dart plugin version 213.7306

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.3)
    • IntelliJ at /Users/taboosun/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.7172.25/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Users/taboosun/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.64.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.3 21E230 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 99.0.4844.84
    ! Error: 神的iPad is not connected. Xcode will continue when 神的iPad is connected. (code -13)
    ! Error: Kah Wai’s iPhone is not connected. Xcode will continue when Kah Wai’s iPhone is connected. (code -13)

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Update
Actually I have tested another round, I can't use the steps above to reproduce.

Update
I have found the correct combination of configurations to trigger this. Follow these steps:

flutter create playground_old --platforms macos
cd playground_old
flutter run <-- does not crash
Enable Hardened Runtime in Xcode Capabilities
Uncheck Allow Execution of JIT-compiled Code
Check Disable Library Validation

Enable Hardened Runtime in Xcode Capabilities
Uncheck Allow Execution of JIT-compiled Code
Check Disable Library Validation

Any specific reason you are changing these settings ?

Anyway, I need Hardened Runtime in order to let my app be sent for Apple Notarization.
As for the reason for unchecking Allow Execution of JIT-compiled Code, I can't recall. I tested it just now by checking it and now it works! I probably just wanted to save app resources that time so that everything is AOT.
Hmm, then I am curious in this case why it worked for me in flutter stable channel with Allow Execution of JIT-compiled Code unchecked.

@TabooSun
Do you have apple developer account and signed in using Xcode and have signing certificate in place ?
Also checkout this issue and underlying comments and see if they help.
If above isn't relatable, can you provide what's the exact / current status / issue are you facing ?

Sorry for the messy info.
The issue is actually considered resolved. I just need to create another Hardened Runtime configuration dedicated for Debug so that I can check the Allow Execution of JIT-compiled Code in Profile/Release. Something like this:

Even though the issue is considered resolved, I just want to know the reason why it crashes by unchecking Allow Execution of JIT-compiled Code. Because this might be worth to be documented if there is no fix being planned.
I personally don't think this issue is related to code signing because as I mentioned, it worked on flutter stable channel.
In addition, the funny thing is that if I just run the project in Xcode, it will work; however, if I run it in flutter run, it will crash.
I have uploaded a dummy project here.
You can try it with a few test cases as shown below:
Test case 1: Use flutter run to debug <-- this will crash
Test case 2: Open Xcode using open macos/Runner.xcworkspace and do Product > Run <-- this will not crash
Test case 3: Switch to flutter stable channel, perform flutter clean and finally run flutter run <-- this will not crash

@TabooSun
Please check below issue comments and see if they help you to understand / resolve your queries further:
https://github.com/flutter/flutter/issues/35651#issuecomment-510887577
https://github.com/flutter/flutter/issues/35651#issuecomment-510888196
https://github.com/flutter/flutter/issues/35651#issuecomment-510931110
https://github.com/flutter/flutter/issues/35651#issuecomment-510931110


Unable to cancel pulling by clicking the alert button.

Description

Reproduce:

Pull something
Try to click the status icon

specifically issue is that alerts cant be clicked on anymore


ci: bump codecov to v4 and set the CODECOV token from the secrets

See #378 this PR will track progress towards resolving the Codecov job.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 63.68%. Comparing base (8ab1b34) to head (cf7f162).
Report is 2 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #379      +/-   ##
==========================================
+ Coverage   63.39%   63.68%   +0.29%
==========================================
  Files          24       25       +1
  Lines        1557     1567      +10
==========================================
+ Hits          987      998      +11
+ Misses        570      569       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Closing and merging into #366 as that PR blocks many others with the intent to resolve the CI.


Feat/api key auth

Description
https://github.com/usebruno/bruno/assets/84461672/9031f495-eb4a-4827-8e7d-5a53191e6abd
Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[ ] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[x] Create an issue and link to the pull request.

Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests.
Publishing to New Package Managers
Please see here for more information.

The changes to prepareRequest etc. also need to be applied to the CLI

Maybe it could be cool to have another Dropdown option:

Authorization Header

which adds the key value inside Authorization header instead of creating a new Header entry. This could be easily replicated by setting the key to "Authorization: myAuthKey" but still could be useful to reduce confusion as I personally would have expected if I just selected Header to have a behavior like this.

Is this still on track? Thanks for Bruno app you all :)

Thanks for this @sanjai0py !

Thanks @sanjai0py! This was a must-have for us.

Thanks @sanjai0py for the contribution


Lost broker attempts to restart on a node with an existing broker on it.

Hello,
I ran into an interesting situation today doing some testing where I killed a broker expecting it to restart.  However, for a number of attempts it tired to restart on a node that already had a running broker on it.  This behaviour seems counter-intuitive since all of the brokers use the same configuration for where the data directory exists, so knowing that my thought was that it should be restarted on a node that isn't running a broker.
Is there a way to prevent this from occurring?  I didn't see anything in the docs, but there's always the chance I missed something.

Hi.
You can use --constraints option for restricting the slaves where brokers are started.
Please see ./kafka-mesos.sh help update for more details.
Seems, that you can use unique constraint in your case.

Ah, thanks.  That looks like it should work.  Just out of curiosity, any reason why this isn't the default behaviour for Kafka?  Unless I specify that each broker has it's own data directory, the current behaviour doesn't make much sense to me.  Also, I'm not really sure if having multiple brokers on one node is a good idea.


[EventHubs] Stress test with kubernetes chaso-mesh

Follow the guideline provided by Ben to run stress tests within chaso-mesh enabled kubernetes.
This helps verify the stability of the uamqp and azure-eventhub in flaky networking condition (error recovery).
We should also migrate to use the central k8s cluster and container registry provided by Ben.
refs:
https://github.com/Azure/azure-sdk-tools/blob/master/tools/stress-cluster/chaos/README.md
https://gist.github.com/benbp/34aad351c89367a4c2326b7943753bf8
https://gist.github.com/yunhaoling/63e960d21d1bfd1604b40d16085b23f9

by following the readme and writing the proper dockerfile and testjob.yaml for k8s, things are working as expected.


merge from template

.github/workflows/ci.yml

chore: add actions/setup-node@v4 (jobs.test-node.steps.uses)
chore: add actions/setup-node@v4 (jobs.release.steps.uses)

.github/workflows/codeql_analysis.yml

chore: add actions/setup-node@v4 (jobs.analyze.steps.uses)

.github/workflows/update_package_lock.yml

chore: add actions/setup-node@v4 (jobs.update_package_lock.steps.uses)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
54

Relevant Lines:
56

💛  - Coveralls


Expected version 128, instead got 140

I'm using the steem.broadcast.vote function and getting this error 'Expected version 128, instead got 140'. What does it mean?

Duplicate of #321, check the notes there


[WIP]: Disable split lock detection

We have experienced some cases where Guests are generating split lock exceptions that are flooding the host kernel with traps causing a tremendous impact to system's performance, besides flood log buffers with messages like the following:
x86/split lock detection: #AC: qemu-system-x86/4185 took a split_lock trap at address: 0x699e4dc1
There are several discussions about whether split lock detection should be enabled, disabled or marked to slow down the split lockers (which might affect our workloads). Since we cannot predict our workloads, let's disabled it to avoid these situations.
I'm marking this PR as WIP because I would like to discuss it. Here are good resources about the theme and some forums where people claim performance improvements after disabled it:
https://lwn.net/Articles/790464/
https://lwn.net/Articles/816918/
https://lwn.net/Articles/911219/
https://forum.proxmox.com/threads/x86-split-lock-detection.111544/
https://www.reddit.com/r/VFIO/comments/zqesqm/psa_use_split_lock_detectoff_to_avoid_substantial/

Looks like one can use sysctl to set kernel.split_lock_mitigate=0, which will cause one syslog per task, and not slow down the tasks doing the split locks.

Looks like one can use sysctl to set kernel.split_lock_mitigate=0, which will cause one syslog per task, and not slow down the tasks doing the split locks. That might be preferred to disabling even that one syslog and is easier since it can be done dynamically without rebooting the system.
BTW: Do we know what application process is causing the issue? Is it qemu itself or the user's application in the guest VM?

@eriknordmark , split_lock_mitigate was introduced on Linux 6.2, we don't have it in our kernel, so it would require porting.... unfortunately we still don't know exactly the root cause, but anyways it can happen in Guest's application and we won't be able to control that.... there is a interesting comment from the Linux mail list:
A system that runs virtualized guests is a logical place to enable
split-lock detection, since a guest can disrupt others with hostile locking
behavior. But a host that turns on split-lock detection risks breaking
guests that are unprepared for it; this problem extends to the guest
operating system, which will be directly exposed to the alignment-check
traps caused by split-lock detection. It may not be possible for the
administrator of the host to even know whether the guest workloads are
ready or not. So various kernel developers wondered what the best policy
regarding virtualization should be.

I think disable it is OK for now, but there isn't a consensus even between kernel developers, that's why I would like to have this discussion....

BTW: Do we know what application process is causing the issue? Is it qemu itself or the user's application in the guest VM?

The trapped IP address (0x699e4dc1) is very small, usually the base address of the .text segment is much higher (can be any though). e.g. for qemu on eve:
# cat /proc/25614/maps | grep qemu-
558c795ce000-558c79871000 r--p 00000000 08:02 13698                      /usr/lib/xen/bin/qemu-system-x86_64
558c79871000-558c79d2d000 r-xp 002a3000 08:02 13698                      /usr/lib/xen/bin/qemu-system-x86_64
558c79d2d000-558c79fa9000 r--p 0075f000 08:02 13698                      /usr/lib/xen/bin/qemu-system-x86_64
558c79fa9000-558c7a104000 r--p 009da000 08:02 13698                      /usr/lib/xen/bin/qemu-system-x86_64
558c7a104000-558c7a1f1000 rw-p 00b35000 08:02 13698                      /usr/lib/xen/bin/qemu-system-x86_64

for shared libraries even father away. So seems to me this is guest.
What's interesting,  this is only for the vmx (intel virtualization), for the svm (amd) case I can find only default AC (alignment check) traps, which probably don't produce any warning logs at all (silently handled by kvm interception).
IMO there is no value for us to see this message in logs, unless we control guests and optimize the system on guest level.

Updates in this PR:

Rebase on top of master
Remove WIP status


update(substrate): ansible playbooks and roles to use the new standalone helm charts

Description
As a developer I want to cleanup, update and test ansible playbooks and roles so that the Substrate network can be deployed using the new standalone helm charts
(add more description and relevant links)
Acceptance Criteria

Network deployed using ansible playbook (No Proxy No Vault and with Proxy and Vault)
Network cleanup using ansible playbook

I would like to work on it.


💬 Discussion | Alternative to Facebook Events

Facebook is ever present with it's 2billion plus user base. Yet it's hard to just ditch it altogether and one of the factors is of course the network effect and specifically for Events. Do you guys see/know any viable alternatives?
It should be:

easy to use
easy to migrate to (start with scraped public Fb events?)
contain important event features (attendance, location, discussion, ...)
privacy respecting (ideally with strong cryptographic guarantees)

Fediverse

I think Hubzilla or Friendica are the two Fediverse platforms that are closest to what you are asking for. Correct me if I am wrong. Here is some info regarding the differences between the two:
https://github.com/friendica/friendica/issues/2894

Thanks both for the info. I haven't tried those will give it a shot. Are they interconnected Hubzilla and Friendica? Can a bridge be made for Mastodon?

If I remember correctly both hubzilla and friendica  can have friends on and post to Mastodon as well as other platforms on the free Social Web. If you read the link I posted I think it says there that those two are the only platforms that can you connect to both fediverse and Federated or whatever they're called those two parts of the free Social Web.

I think what you're looking is already under construction thanks to Framasoft : https://github.com/framasoft/mobilizon

It's a bit dated now, but Sean Tilley's 'We Distribute' article 'A Quick Guide to the Free Network' is still a good overview of the history of the various federated  social network/ social media apps, which ones have inter-operated with each other, and over which protocols (OStatus/ Diaspora/ Zot/ ActivityPub). These days, AFAIK the only apps that are not either federating over ActivityPub or planning to (or defunct), are Diaspora (supports only its own protocol) and Zap (supports only Zot). The terminology is still evolving, but because of this rapid convergence on AP (as predicted in Sean's article), for fediverse.party we have decided (somewhat arbitrarily) to use "the fediverse" refer to the whole spaghetti soup of federated web apps. This is also how it's used in the fediverse article on Wikipedia, which features a useful table of which apps support which protocols (although somebody has made a mess of the article text).
Coming back to events, some of the fediverse apps already have some support for them, and there are a number of projects in the works that intend to federate events over AP, including Mobilizon, GetTogether, FedEvent, and possibly NextCloud. There seems to be some need for coordination between the developers of the various projects to standardize some extensions to AP that will be needed for events to federate smoothly across instances of different apps, and maybe develop federated events libraries in each language (PHP, Ruby, Python etc) that apps can use, rather than all rolling their own AP events support from scratch.
In summary, it seems like we're on the cusp of some really exciting developments in the federated events space, but help is needed to get all the moving parts working in sync.

@strypey, would you provide a link to FedEvent?  It's easy to find links to Mobilizon and GetTogether.  Regarding NextCloud, I assume you're referring specifically to their 'social' application, correct?
Thank you!

FYI, Framasoft just launched a few hours ago its crowdfunding for Mobilizon, you can find it here, they've already reached 30% of their first goal (20.000€).

@daveloyall it was in the third link I posted, a couple of comments down, but here you go:
https://github.com/shiburizu/fedevent
It's labeled as a prototype and I'm not sure if it's still in active development, nothing has been committed to the repo there since the code was dumped over the wall 4 months ago.

Mobilizon has gotten a test instance out at https://test.mobilizon.org/ .
I think I will close this as we nowadays have the forum and there isn't any concrete suggestion to be litsed to PTIO yet (feel free to open one).

Reopening and assigning to me in case we want to add a section for this to social media.
+ I hope Mobilizon can be listed, but we will see.

See also: https://github.com/coderbyheart/open-source-meetup-alternatives

I had forgotten this issue, but Mobilizon has been released and is at version 1.2 or so. I hope it can be considered nowadays, while the pandemic renders events a bit less useful than they usually are.

https://mobilizon.org/en/ - quick introduction
https://joinmobilizon.org/en/ - longer information
https://instances.joinmobilizon.org/instances - where to find instances to register on

Yes, Mobilizon had been mentioned multiple times both in this thread and in the linked table. Hopefully as more and more alternatives progress they will eventually become interoperable.
We should probably not put all of our eggs into the same basket.


[ERROR] Fail - Unable to verify while running integration test

I'm running into this unable to verify error while testing test_can_pick_winner() and I can't quite see what's wrong.
Here's the error msg:
============================================================================================= test session starts =============================================================================================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 -- /usr/bin/python3
cachedir: .pytest_cache
hypothesis profile 'brownie-verbose' -> verbosity=2, deadline=None, max_examples=50, stateful_step_count=10, report_multiple_bugs=False, database=DirectoryBasedExampleDatabase(PosixPath('/home/salvadorpablo/.brownie/hypothesis'))
rootdir: /home/salvadorpablo/demos/smartcontract-lottery
plugins: eth-brownie-1.16.4, forked-1.3.0, web3-5.23.1, hypothesis-6.21.6, xdist-1.34.0
collected 6 items / 4 deselected / 2 selected
tests/integration/test_lottery_integration.py::test_can_pick_winner RUNNING
Waiting for https://api-rinkeby.etherscan.io/api to process contract...
Verification submitted successfully. Waiting for result...
Verification pending...
Verification complete. Result: Fail - Unable to verify
Deployed lottery!
^C
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I interrupted because I get an error after but I think it's probably a consequence of this one
Here is my code:
deploy_lottery.py
from scripts.helpful_scripts import get_account, get_contract, fund_with_link
from brownie import Lottery, network, config
import time
def deploy_lottery():
account = get_account()
lottery = Lottery.deploy(
get_contract("eth_usd_price_feed").address,
get_contract("vrf_coordinator").address,
get_contract("link_token").address,
config["networks"][network.show_active()]["fee"],
config["networks"][network.show_active()]["keyhash"],
{"from": account},
publish_source=config["networks"][network.show_active()].get("verify", False),
)
print("Deployed lottery!")
return lottery
def start_lottery():
account = get_account()
lottery = Lottery[-1]
starting_tx = lottery.startLottery({"from": account})
starting_tx.wait(1)
print("The lottery is started!")
def enter_lottery():
account = get_account()
lottery = Lottery[-1]
value = lottery.getEntranceFee() + 100000000
tx = lottery.enter({"from": account, "value": value})
tx.wait(1)
print("You entered the lottery!")
def end_lottery():
account = get_account()
lottery = Lottery[-1]
# fund the contract
# then end the lottery
tx = fund_with_link(lottery.address)
tx.wait(1)
ending_transaction = lottery.endLottery({"from": account})
ending_transaction.wait(1)
time.sleep(60)
print(f"{lottery.recentWinner()} is the new winner!")
def main():
deploy_lottery()
start_lottery()
enter_lottery()
end_lottery()
brownie-config.yaml
dependencies:

<EMAIL_ADDRESS><EMAIL_ADDRESS>compiler:
solc:
remappings:

'<EMAIL_ADDRESS>'<EMAIL_ADDRESS>networks:
default: development
development:
keyhash: '0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311'
fee:<PHONE_NUMBER>00000000
mainnet-fork:
eth_usd_price_feed: '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419'
rinkeby:
vrf_coordinator: '0xb3dCcb4Cf7a26f6cf6B120Cf5A73875B7BBc655B'
eth_usd_price_feed: '0x8A753747A1Fa494EC906cE90E9f37563A8AF630e'
link_token: '0x01BE23585060835E02B77ef475b0Cc51aA1e0709'
keyhash: '0x2ed0feb3e7fd2022120aa84fab1945545a9f2ffc9076fd6156fa96eaff4c1311'
fee:<PHONE_NUMBER>00000000
verify: True
wallets:
from_key: ${PRIVATE_KEY}
dotenv: .env

helpful_scripts.py
from brownie import (
accounts,
network,
config,
MockV3Aggregator,
Contract,
VRFCoordinatorMock,
LinkToken,
)
FORKED_LOCAL_ENVIROMENTS = ["mainnet-fork", "mainnet-fork-dev"]
LOCAL_BLOCKCHAIN_ENVIRONMENTS = ["development", "ganache-local"]
def get_account(index=None, id=None):
# accounts[0]
# accounts.add("env")
# accounts.load("id")
if index:
return accounts[index]
if id:
return accounts.load(id)
if (
network.show_active() in LOCAL_BLOCKCHAIN_ENVIRONMENTS
or network.show_active() in FORKED_LOCAL_ENVIROMENTS
):
return accounts[0]
return accounts.add(config["wallets"]["from_key"])
contract_to_mock = {
"eth_usd_price_feed": MockV3Aggregator,
"vrf_coordinator": VRFCoordinatorMock,
"link_token": LinkToken,
}
def get_contract(contract_name):
"""This function will grab the contract addresses from the brownie config
if defined, otherwise, it will deploy a mock version of that contract and
return that mock contract.
    Args:
        contract_name (string): This is the name thta is refered to in the
        brownie config and 'contract_to_mock' variable.

    Returns:
        brownie.network.contract.ProjectContract: The most recently deployed
        version of this contract. This could be either a mock or the 'real'
        contract on a live network.
"""
contract_type = contract_to_mock[contract_name]
if network.show_active() in LOCAL_BLOCKCHAIN_ENVIRONMENTS:
    if len(contract_type) <= 0:
        # MockV3Aggregator.length
        deploy_mocks()
    contract = contract_type[-1]  # MockV3Aggregator[-1]
else:
    contract_address = config["networks"][network.show_active()][contract_name]
    # address
    # ABI
    contract = Contract.from_abi(
        contract_type._name, contract_address, contract_type.abi
    )
return contract

DECIMALS = 8
INITIAL_VALUE =<PHONE_NUMBER>00
def deploy_mocks(decimals=DECIMALS, initial_value=INITIAL_VALUE):
account = get_account()
MockV3Aggregator.deploy(decimals, initial_value, {"from": account})
link_token = LinkToken.deploy({"from": account})
VRFCoordinatorMock.deploy(link_token.address, {"from": account})
print("Deployed!")
def fund_with_link(
contract_address, account=None, link_token=None, amount=100000000000000000
):  # 0.1 LINK
account = account if account else get_account()
link_token = link_token if link_token else get_contract("link_token")
tx = link_token.transfer(contract_address, amount, {"from": account})
# link_token_contract = interface.LinkTokenInterface(link_token.address)
# tx = link_token_contract.transfer(contract_address, amount, {"from": account})
tx.wait(30)
print("Fund contract!")
return tx
test_lottery_integration
from brownie import network
import pytest
from scripts.helpful_scripts import (
LOCAL_BLOCKCHAIN_ENVIRONMENTS,
get_account,
fund_with_link,
)
from scripts.deploy_lottery import deploy_lottery
import time
def test_can_pick_winner():
if network.show_active() in LOCAL_BLOCKCHAIN_ENVIRONMENTS:
pytest.skip()
lottery = deploy_lottery()
account = get_account()
lottery.startLottery({"from": account})
lottery.enter({"from": account, "value": lottery.getEntranceFee()})
lottery.enter({"from": account, "value": lottery.getEntranceFee()})
fund_with_link(lottery)
lottery.endLottery({"from": account})
time.sleep(60)
assert lottery.recentWinner() == account
assert lottery.balance() == 0
Any help would be much appreciated!

Thanks so much for making this issue! So your config has it defined that it’s going to try to verify your application when deploying to rinkeby, but the verification is having some issues right now (there is an issue in to fix).
So for running tests, you can either not deploy to rinkeby, or you can remove the publish_source line in your deploy script.

Closing for now, feel free to follow up

Thanks!


UX Researcher: Synthesizing CMS User Interviews - Batch 1: Alerts and notifications

Synthesize CMS user interview notes/data with primary users, Jeremy (marketing) and Allen (ID) about user needs for alerts and notifications #300
Feature: Synthesizing interview data
  As a UX researcher
  I want to synthesize the data collected from the user interviews
  So that I can see what questions about user roles and team needs for the CMS have been answered and what information I still need to attain from future interviews

  Scenario: Review and clean up raw interview notes
    Given that I will have collected data from my interviews in various forms (video/audio recording and handwritten notes) and in various levels of legibility and consumability
     When I go to review and clean up my raw interview notes
     Then I will be sure that everything is legible and that sentences are and ideas are fully formed so I can create a second round of cleaner, better organized notes from the raw notes

  Scenario: Create better organized interview notes
    Given that I will have reviewed my raw interview notes to make sure that it is legible and contains fully formed sentences and ideas
     When I go create cleaner and better organized notes from my raw notes
     Then I will be able to use these cleaner notes as a basis for creating assets around defining the main insights and findings from the CMS user interviews for my teammates to read and review

  Scenario: List out main insights and findings from user interviews
    Given that I will have created clean and organized interview notes that are easy to consume
     When I go to use my notes to pull out the main insights and findings from my interviews
     Then I will be able to list out my main insights and findings from my user interviews
      And be able to communicate these main insights and findings to the broader team
      And use this information in any research assets that I may create later on

  Scenario: Create wiki page of insights and findings on our GitHub (CMS) Wiki
    Given that I will have listed out the main insights and findings from the user interviews
     When I go to create a wiki page featuring our main insights and findings on our GitHub (CMS) Wiki
     Then I will be able reference the notes in an easily accessible location on the CMS Wiki in my web browser
      And be able to send the link out to my teammates
      And be able to send the link to those who may be interested in my research that aren't on my direct team

  Scenario: Upload data and notes to WOX Box folder for reference
    Given that I will have created many research assets in various levels of fidelity
     When I go to upload all these assets onto my WOX Box research folder
     Then I will be able to have a backed up and consolidated location to access all my raw notes
      And my cleaned up notes
      And my main insights/findings
      And any raw audio/video files
      And any presentation slides
      And any additional related research/UX assets

Synthesizing Interview Data

[ ] Review and clean up raw interview notes
[ ] Create better organized interview notes from the raw notes
[ ] List out main insights and findings from the user interviews
[ ] Create Wiki page with main insights and findings
[ ] Upload data and notes to WOX Box folder

@mkiang3051 - Do you think synthesizing is only about finding those information gaps, or does this include the analysis and recommendations? Or is that another story?

@ineedsubstance I think mostly about information gaps and also insights/findings if we can make them. These stories, for the moment, are just for consolidating and cleaning up the notes we have, finding the gaps, and publishing some tentative insights.
I think I may need to make a few more of these stories for other users we interview and then a combined research story for a more comprehensive analysis with recommendations after we get to interviewing more folks from both teams.

@mkiang3051 - OK, makes sense. I do think there needs to be a story or stories around what we do with this information and how it informs the CMS moving forward.

Yup there will be. I'm not getting ahead of myself yet with that since I haven't even had a chance to dig through the wealth of information from Jeremy and Allen's interviews. :D

Sounds good

👍 Looks good to me.

@joshkimmell @ineedsubstance Thanks! Can I move this (and my other related research synthesis stories over into backlog)?

@mkiang3051 So... I think the sizing should be a little higher than 2. 2 is just above mindless work. This is going to take some critical thinking, so I'd estimate it at least a 5.

@joshkimmell Yep - I agree it's not mindless work. It definitely IS tasking! So I agree, if I had a single synthesis story, it'd be at least a 5.
The only issue with that is, I have several synthesis stories that are interrelated because I've created a separate story for each research topic. So I could be synthesizing data that affects 5-6  stories at once (each covering a different research topic) - so if they're all a 5 each, it'd put me way over capacity for a sprint, even if I started out at nothing. :/
(research story woes...)

Don't worry about that. If you finish one, you can move to the next until you're done.

@joshkimmell Sounds good. I'll size it as a 5 and move this (and the other related stories) to the backlog. I'll move them over to In Progress as I tackle them.

I moved this into the sprint and assigned to you. For the others like this, if they are estimated at 5, go ahead and move them to the backlog. As you finish one, please ask @ wox in Slack if it's okay to move the next one into the sprint.

@joshkimmell I have gotten the data for this from my first round of research. I may need to follow up with our users later to get more details about this topic - but I am going to close this issue.
I will create additional research issues in the future.