fix: reduce rerendering of EmojiPickerMenu when hovering

Details

Currently, when the user hovers in and out the emoji in the picker, the whole menu gets re-rendered. This fix moves the hover logic inside a single emoji component, which makes a single element re-rendered when hovering on it.
Fixed Issues

$ https://github.com/Expensify/App/issues/29004
PROPOSAL: https://github.com/Expensify/App/issues/29004#issue-1930349101
Tests

WEB & DESKTOP ONLY

Click on the Emoji in the Composer
Start hovering on the emojis in the menu
Make sure they have a highlighted background while hovering
Repeat the steps 2 and 3 for "Add reaction" in message context menu

You can verify the reduced amount of rerenders by using React Devtools Chrome Extension. In Components tab, click "Settings" and check "Highlight updates when components render.". Emojis should be the only things highlighted by this tool when hovering.

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

Offline tests

n/a
QA Steps

WEB & DESKTOP ONLY

Click on the Emoji in the Composer
Start hovering on the emojis in the menu
Make sure they have a highlighted background while hovering
Repeat the steps 2 and 3 for "Add reaction" in message context menu

You can verify the reduced amount of rerenders by using React Devtools Chrome Extension. In Components tab, click "Settings" and check "Highlight updates when components render.". Emojis should be the only things highlighted by this tool when hovering.

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

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/13985840/60db13e3-6e9f-453c-840a-35f50f4746b4

Android: mWeb Chrome

https://github.com/Expensify/App/assets/13985840/cc02d46e-6ba1-42f0-8f2c-ded5ba99f1ee

iOS: Native

https://github.com/Expensify/App/assets/13985840/223561c1-d92a-4c4a-a82f-77c48e474c5d

iOS: mWeb Safari

https://github.com/Expensify/App/assets/13985840/28320861-38da-469c-99f9-5dd1d1d3058a

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/13985840/a074d1c0-d9f7-448a-a878-9a7ed8851e3d

MacOS: Desktop

https://github.com/Expensify/App/assets/13985840/907cb3a7-eaba-45e1-90a9-f4770bfd7a57

@TMisiukiewicz If I try to use the keyboard arrow keys to navigate the emoji picker menu, the hover action resets the current focused index. However, the last emoji selected by the keyboard still has the blue highlight. I've included a video.
I think we should either:

Reset the index and remove the blue highlight on the next hover action, or
Keep the index for the blue highlight, and then when the user tries to navigate with the arrow keys, they continue from where they last stopped.

cc @mountiny
https://github.com/Expensify/App/assets/4160319/d466eac0-b6f2-4563-b6a2-b0ce475ce85e

Keep the index for the blue highlight, and then when the user tries to navigate with the arrow keys, they continue from where they last stopped.

I think we need to do this, thanks for thorough testing!

@akinwale good catch, thanks! it's ready to be tested again

@TMisiukiewicz @mountiny Reviewing now. Thanks.

Reviewer Checklist

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

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] 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)
[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 checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] 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
[x] I verified proper code patterns were followed (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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is 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 verified that this PR follows the guidelines as stated in the Review Guidelines
[x] 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)
[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 any new file was added I verified that:

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/4160319/9f21427d-0a34-44e0-b0c2-555a3745dda9

Mobile Web - Chrome

Mobile Web - Safari

Desktop
https://github.com/Expensify/App/assets/4160319/54390568-a335-438f-83c8-c9e3754f6d2e

iOS

Android

: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.

🚀 Deployed to staging by https://github.com/mountiny in version: 1.3.85-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.85-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/mountiny in version: 1.3.86-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.86-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Modal: Added scroll shadows

Need help deciding size, transparency etc.

Love the implementation with  background-attachment: local, local, scroll, scroll; 🤩

Not my idea, but quite elegant 😄


notEmptyString arbitrary referred to in docs doesn't exist: was it updated to nestring?

I can't find a notEmptyString property on jsverify, but searching the source turned up nestring. Unless I'm making an error, the docs should probably refer to nestring instead.

https://github.com/jsverify/jsverify/pull/61

Thanks. And thank you for such an awesome project.


Fix A11y violation of Hero component from page structure organism

Describe the bug
In order to pass the accessibility tests it is required to add alt description to the banner image of hero component. This will also fix the violations of homepage and page-homepage.
To Reproduce
Steps to reproduce the behavior:

Go to /gravity-ui-nunjucks.
Run npm run test:a11y.
See the hero violation in the list of a11y violations.

Expected behavior
 Ensures <img> elements have alternate text or a role of none or presentation
 Images must have alternate text
 Help: https://dequeuniversity.com/rules/axe/3.4/image-alt?application=axe-puppeteer

Fixed by PR #382

:tada: This issue has been resolved in version 3.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Pesto: Topmost item remains invisible till it is scrolled to its image.

While scrolling down, the topmost item will only become visible when the item is scrolled far enough down till its image is on the visible scroll surface.
Video: https://www.youtube.com/watch?v=zHq_F25WLtE

cc @mpcomplete might be interested in this?

The problem is the padding argument to ScrollableGrid's delegate:
    final EdgeInsets padding = new EdgeInsets.fromLTRB(8.0, 8.0 + _kAppBarHeight + statusBarHeight, 8.0, 8.0);

    return new ScrollableGrid(
      ...
      delegate: new MaxTileWidthGridDelegate(
        maxTileWidth: _kRecipePageMaxWidth,
        rowSpacing: 8.0,
        columnSpacing: 8.0,
        padding: padding
      ),
      ...
    );

The bug goes away if I remove the _kAppBarHeight factor from the padding - though this introduces a different bug. I think the ScrollableGrid is incorrectly taking the padding into account when deciding whether to render a child item.

Thanks for the fix!


removed hard coded prefix and added compose keywords

Removed hard coded prefixes on keywords and replaced with a collection-wide prefix.  This should address issue #1.
Added comp and Comp for composite functions.

@amoose136 Any chance of merging this?


Create a Simple ABAP CDS View in ADT

Tutorials: https://developers.sap.com/tutorials/abap-dev-adt-create-cds-view.html
I checked and only found SEPM_DG_OIA report, the other report is missing, even the tasklist has no EMP entry.
stc01
missing in the lasklist SAP_BASIS_EPM_OIA_CONFIG, found only 141 entries.
The only program found related to EPM is RS_EPM_DGC_HANA, the program mentioned SEPM_DG_OIA_NEW does not exist.
Managed to look inside the HDB database, looking for the CONTENT, the is a tree for "sap-bc-epm-oi" but maybe is not mapped to the ABAP schema,
Docker image is  store/saplabs/abaptrial:1909, opened ports and have access to HANA SYSTEMDB and TENANT.
Write here how you think we can improve the tutorial ...

Hi Dantizpal,
Thanks for that. I will look into it at once.
BR Julie.

Hi dantzipal,
I have just run SEPM_DG_OIA : I get 100 000 sales oreders (149,05 s).
What happens when you do this?
What messages / error messages do you get?
If you get the same result as me, I will clarify the text accordingly.
Thanks Julie.

This view "sepm_sddl_so_invoice_item" does not exists, the tasklist "SAP_BASIS_EPM_OIA_CONFIG" does not exist. We can't complete this excercise as the Docker image is not complete.
store/saplabs/abaptrial:1909
This is the only program found "SEPM_DG_OIA" but it does not create the CDS View  "sepm_sddl_so_invoice_item".
Should we work with another docker Image??

Hi Dantzipal, No, this is the most up-to-date docker image.
I will look into this and get back to you.
Thanks for flagging this.
BR Julie.

Hi Dantzipal, I'm sorry for the delay.
But I've just checked: sepm_sddl_so_INVOICE_ITEM is included in my Docker image

Note that it's a data definition, not a transparent table.
I cannot understand why my image includes this data definition and yours does not.
Since we have just uploaded a brand new image to Docker, I will download it, check it out and let you know.
I apologize for the inconvenience, but this is a very strange issue.
BR Julie.
:

Hi Dantzipal, I'm sorry for the delay.
But I've just checked: sepm_sddl_so_INVOICE_ITEM is included in my Docker image

Note that it's a data definition, not a table.
I cannot understand why my image includes this data definition and yours does not.
Since we have just uploaded a brand new image to Docker, I will download it, check it out and let you know.
I apologize for the inconvenience, but this is a very strange issue.
BR Julie.

Hi,
I've just logged into the newest version of SAP ABAP Platform 1909 Dev Edition on Docker.
sepm_sddl_so_INVOICE_ITEM is definitely there:

I would suggest you download the newest version.  I can think of no other explanation.
BR Julie.

julieplummer20
Found that i was creating de data definition in a package and not the $TMP, just completed the example using only the $TMP and the view is there " sepm_sddl_so_INVOICE_ITEM ". I am trying to understand why this is not allowed, as my package is just to keep the examples in a tidy place.
Conclusion
Create again all the examples using only the $TMP.

Thanks a lot for your efforts.

Hi dantzipal, This should work:

However, it does not seem to be a bug in the dev ed system. Your best bet is probably to create a question in the ABAP Development Forum: SAP Community Forum : ABAP Development
I'm sorry this could not be resolved.
Best wishes,
Julie.


[Feature] Add Unit and Integration Tests for StoryClient and IPAsset

Description
This PR introduces extensive testing for the StoryClient and IPAsset components of the Python SDK. Key changes include:

Added unit tests for StoryClient and IPAsset.
Refactored story_client.py to remove unnecessary code and streamline class definition.
Implemented integration tests for IP asset registration functionality.
Ensured consistent code structure and organization for better maintainability.

Test Plan

Run unit tests for StoryClient and IPAsset:

Use pytest to execute tests in tests/unit/ directory.
Verify the correctness of StoryClient initialization and IPAsset registration logic.

Run integration tests for IP asset registration:

Use pytest to execute tests in tests/integration/ directory.
Validate the interaction

Review and confirm the proper organization and refactoring of the story_client.py file.

Related Issue
n/a
Notes

Ensure the environment variables (WALLET_PRIVATE_KEY and RPC_PROVIDER_URL) are set correctly in the .env file for the tests to run successfully.

for next pr: Update readme, maybe create contributing.md and security.md, create COC, create docs / requirements.doc ?

Make clear (maybe in the documentation) about .env and that they just have to create an account with the web3 library and then pass that accoutn to story_client


When both versionize and middleware are used exception stack traces are not printed

Using the example below, exceptions are not printed when both versionize and app.middleware are used. If you comment either versionize or app.middleware sections, stack traces are printed.

Example code
from fastapi import FastAPI, Response, Request
from fastapi_versionizer.versionizer import versionize

app = FastAPI(title="My Versioned API")

@app.middleware("http")
async def test_middleware(request: Request, call_next):
    response: Response = await call_next(request)
    return response

@app.get("/do_something")
async def do_something():
    1 / 0
    return Response(content="response")

versions = versionize(
    app=app,
    prefix_format='/v{major}',
    docs_url='/docs',
    redoc_url='/redoc'
)

This issue was raised before:
https://github.com/alexschimpf/fastapi-versionizer/issues/1
Does that help?

Yes, it does. Absolutely can't believe I missed that given it was 1 of only 3 existing issues.
Sorry for the noise and thank you for the quick reply.


Add optional batch normalization layer

Batch normalization layer (paper) is widely used when training deep networks. It appears that batch normalization make the network learning faster and generalization better. It is very easy to add batch normalization layers in core/networks/layers within tensorflow, as there is a implementation in tensorflow.contrib.layers.layer_norm.

I have read your blog and know that  you leave things like batch normalization to  the user. So a close this issue.

batch norm should be as simple as creating a custom layer as such:
def batch_norm(x, size=None, scope=None, summary_level=0):
    with tf.variable_scope(scope):
        x = tf.contrib.layers.batch_norm(x, is_training=True) # or tf.nn.batch_normalization()?
    return x

but the problem is it requires an extra step adding tf.GraphKeys.UPDATE_OPS to the training step:
update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
    train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
sess = tf.Session()
...

(see this blog post). So there might be some complication that would prevent users from handling this on their own at present, the way TensorForce abstracts session-runs. I haven't dug deep to find out, but a quick code-search for UPDATE_OPS in the repo shows not currently handled.

I would add that batch norm is not widely used in RL which is why it was not a priority for us.

Interesting! I implemented batch_norm for my project & it didn't help despite the researcher oohs and aahs, figured it didn't apply to my thing or was doing it wrong - glad to know. Incidentally feature scaling / norm actually hurts performance for my project too, dunno if that's also an RL thing (I seem to recall hearing that somewhere).
Yeah keep it open, I'll take a crack at it when I'm feeling motivated. Might be handy if nothing more than adding that GraphKeys.UPDATE_OPS bit for additional custom layer flexibility.

You can also experiment with selu activations (self normalizing networks), but we didnt find much impact either..

Side note: I think batch normalization is mostly popular for CNN vision stuff to get a few percent recognition accuracy more. In reinforcement learning it's probably more things like reward normalization that consistently improve results.

From my experience I can add that batch-norm is not well suited for some of RL algorithms, especially ones using context-aware policy estimators (LSTM). This is due to the fact such estimator processes batches of consecutive correlated experiences (which is trajectory in obs. space) and thus provides batch-norm layer with highly biased distribution statistics.
Shortly, to learn proper "normalisation weights" batch-norm layer needs batches of shuffled experiences ( feedforward CNN etc.)
Actually when using LSTM-based estimators (and no experience replay, like in vanilla A3C) batch-norm can significantly hurt performance.

Hearing all this, I probably won't find the motivation to implement the feature ;) Up for grabs if someone else; else feel free to close

Okay, we'll close it, if anyone wants to implement it, it's still basically described in the blog post.


Error starting teku with empty public keys `

Description
[Detailed description of the problem and the impact it has]
Starting Teku in remote signer mode with the following flags:
    exec /opt/teku/bin/teku \
        --network=prater \
        --data-base-path=/opt/teku/data \
        --eth1-endpoint=$HTTP_WEB3PROVIDER \
        --validators-external-signer-url=$HTTP_WEB3SIGNER \
        --validators-external-signer-public-keys=$PUBLIC_KEYS_COMMA_SEPARATED \
        --p2p-port=9000 \
        --rest-api-cors-origins="*" \
        --rest-api-interface=<IP_ADDRESS> \
        --rest-api-port=$BEACON_API_PORT \
        --rest-api-host-allowlist="*" \
        --rest-api-enabled=true \
        --rest-api-docs-enabled=true \
        --log-destination=CONSOLE \
        --validators-graffiti=\"$GRAFFITI\" \
        $EXTRA_OPTS

The public keys loaded onto the flag --validators-external-signer-public-keys are obtained dynamically and parsed from the remote signer standard API https://eips.ethereum.org/EIPS/eip-3030#get-keys.
The public keys returned from the remote signer may be empty, this situation is not contemplated by teku, resulting in an error to start teku with empty public keys at --validators-external-signer-public-keys
I think this is not the ideal behavior, especially taking into account that the validator and beacon processes run in a monoservice process, so it does not allow to keep syncing the beacon chain if there are no validators loaded
Steps to Reproduce (Bug)
[Please be as specific as possible]
start teku with an empty string in the flag --validators-external-signer-public-keys
Expected behavior: [What you expect to happen]
I expected teku to realize that an empty string means no validators and keep running instead of throwing errors.
Actual behavior: [What actually happens]
Start teku with the flag --validators-external-signer-public-keys with an empty string result into an error
FATAL - Invalid configuration. Signer public key is invalid

Frequency: [How regularly does it occur?]
The error is thrown on startup so the process keeps in a restarting status.
Versions (Add all that apply)

Software version: [teku --version or look for log lines starting with Teku version:]  22.3.0
Java version: [java -version]  official docker image
OS Name & Version: [cat /etc/*release]   official docker image
Docker Version: [docker version]
Cloud VM, type, size: [Amazon Web Services I3-large]

With the validators-api, its now not really invalid configuration to start without keys, we should still warn that there were no keys found to load, but not exit...
Need to check if the other key specifying mechanisms are allowing to specify effectively a 0 length list, there may be some curious details to work through...


Allow http wiki access

mwclient allows to specify the URL as ('http', url) to enable non TLS access. It wil be nice to be able to configure that.

Done in https://github.com/aquach/vim-mediawiki-editor/pull/6.


fix: all flaky tests related to create error

Signed-off-by: kushthedude<EMAIL_ADDRESS>Changes proposed in this pull request:

The flaky tests were due to exception raised by the cypress due to the window failure, this here ignored that only one exception

@fgiroud , I think this is going to fix all the flaky tests related to create-project


Update README.en.md

English updates + minor translation fixes

thanks @dongyunlee-daim! you're very welcome :)


Routing Policies numerical/alphabetical order

Environment

Python version:  3.5.3-1
Peering Manager version:  master

No matter what I do, Routing Policies seem to be added in numerical and then alphabetical order.
Not sure about other vendors, but with Juniper, the order is might be important, especially when you configure them like the standard Juniper PM template does.
There are other ways to chain them in JunOS, but that would be a different story and probably a FR.
Thank you for all the amazing work that you have put into this piece of software :)

That's true. With Juniper policies chaining order is important and can lead to unexpected issues if not done properly. Adding a weight field could help sorting policies and using them in the right order.


Add run-operation command to run_results.json

What are you changing in this pull request and why?

Adding run-operation to run_results.json; this was an oversight but will be fixed in dbt 1.6.
dbt-core merged PR: https://github.com/dbt-labs/dbt-core/pull/7655
Checklist

[x] Review the Content style guide and About versioning so my content adheres to these guidelines.
[x] Add a checklist item for anything that needs to happen before this PR is merged, such as "needs technical review" or "change base branch."

merging since this look correct

hey @aranke and @runleonarun, fyi i've merged this pr for ya'll


Transition WSGI to ASGI

🚀 Feature Request
If we're going to start using asyncio or django channels, we will need an ASGI (Asynchronous Server Gateway Interface) like Daphne. As I understand it (currently still doing research) ASGI can do everything that WSGI, swapping them shoudn't cause problems.
see django documentation here https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/
A PR should adjust

server/haztrak/setting.py
server/Dockerfile
server/requirements.txt

There may be a small performance hit from switching back and forth from async to sync, according to the django docs, but should be acceptable since it opens up web sockets and the django-channels pkg.

https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/

Marking as Won't fix, I think we are going to dely this transition (indefinitely) until further notice. There's nothing in our application NEEDs web sockets or anyc server support.
i've got a starting working example here https://github.com/dpgraham4401/haztrak/tree/django_channels_POC. I will keep this branch around for a while.


URLs for IPFS paths

I'd asked this question on #284 but it's a bit of a tangent so I've moved it here.
Is there a reason we don't support URLs to indicate which kind of paths are which?
e.g. ipfs://QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif, ipfs:///a-file-in-mfs, file:///home/me/some-file.txt etc?
It would make the users' intentions clearer when trying to work out what they wanted to copy/move/add/etc, specifically in the case where they have valid MFS/filesystem paths that clash with filesystem/MFS or IPFS paths.  E.g. they've got a file in MFS at /etc/passwd or on the filesystem at/ipfs/QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif.
If we detect a conflict while using regular paths we could prompt the user to re-specify their args using URLs.
Something like:
$ mkdir /ipfs
$ touch /ipfs/QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif
$ ipfs files cp /ipfs/QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif /hello.txt

Cannot copy file

A local file was detected at /ipfs/QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif
which is also an IPFS path.  Please use file:// or ipfs:// URLs.

E.g.:
ipfs files cp ipfs://QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif /hello.txt
ipfs files cp file:///ipfs/QmPbFXUdgtyrCjExNAjugJTro6Lx4GG4MuvXTiHcZQkiif /hello.txt

More generally, we should consider supporting all 4 flavours of IPFS address where ever a CID is currently supported.
We could implement the logic once to convert all 4 into /<namespace>/<cid>/<path> for the rest of the code to work with, and save the application layer the work of having to convert them.

There is a pretty extensive discussion around this a while back.
Summary by Juan (Worth reading though if you want to understand reasoning)
https://github.com/ipfs/go-ipfs/issues/1678#issuecomment-157478515

For anyone coming to this issue, this document is also good background context, particularly the linked section:
https://github.com/lidel/specs/tree/dweb-addressing/dweb-addressing#interoperability


Run this Profile as Admin starts Windows Powershell instead of Powershell7

Windows Terminal version
1.17.1023
Windows build number
10.0.25352.0
Other Software
No response
Steps to reproduce
Create and account of type administrator;
Create a Windows Terminal's profile for Powershell7
In Windows Terminal set a profile for Windows Powershell as default profile;
Create an account of type standard;
login with this standard account;
Create a Windows Terminal's profile for Powershel7 an set Run this profile as Administrator to on
Try to open this Pwsh7 profile;
enter credential of the account of type administrator
Expected Behavior
Open a new elevated instance of Windows Terminal running Powershell 7
Actual Behavior
A new elevated instance of Windows Terminal is opened with the default profile loaded

I think I understand what happen, when open a new tab, wt use the command new-tab --profile {GUID}, this GUID is the one of the profile in the settings of the standard account, but when try to open a profile as admin (when the admin is another account) it load the settings from the admin account which doesn't contains the GUID that wt try to load and then the default profile is loaded.
As a workaround I copied the GUID of the Powershell profile from the standard account to the Powershell profile in the setting file of the admin account.

Ho boy this is a good edge case here. I don't think any of us considered that "Run as Admin" (where the admin account != your current user account) uses the settings from the admin account, not your own.

Hey @leoniDEV! Thanks for filing, we're going to mark this as a dup of #11111.
/dup #11111


test: allow passing of additional configuration

Allows tests to encode additional parser configuration in the test
title. This allows the test to, i.e. override the top to use
when parsing the test expression.
Example:
Other

==>

OtherTop()

Closes https://github.com/lezer-parser/lezer/issues/24

Looks great. I added one nitpick comment.

Wonderful, thanks for following up.


Errors Running AutoFlip Using Docker: "Can't find file: mediapipe/models/ssdlite_object_detection.tflite"

Hello!
System information (Please provide as much relevant information as possible)

Windows 11
Docker Engine: v20.10.21
Pyhton 3.8.10
OpenCV 4.6.0
Bazel 5.2.0
Programming Language: C++, Python,
Solution AutoFlip

Describe the expected behavior:
I want to successfully run AutoFlip using Docker (Desktop)
Standalone code you may have used to try to get what you need :
I am able to build AutoFlip in my "MediaPipe" Docker container :
bazel build -c opt --verbose_failures --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/autoflip:run_autoflip

But after running this:
GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/autoflip/run_autoflip --
calculator_graph_config_file=mediapipe/examples/desktop/autoflip/autoflip_graph.pbtxt --
input_side_packets=input_video_path=/mediapipe/life_at_google.mp4,
output_video_path=/mediapipe/life_at_google_edit.mp4,aspect_ratio=1:1

I get this error:
I20221223 16:34:19.086550  7955 simple_run_graph_main.cc:122] Initialize the calculator graph.
I20221223 16:34:19.087823  7955 simple_run_graph_main.cc:137] Start running the calculator graph.
E20221223 16:34:19.164170  7955 simple_run_graph_main.cc:149] Failed to run the graph: CalculatorGraph::Run() failed in Run:
Calculator::Open() for node "OpenCvVideoDecoderCalculator" failed: ; OpenCVVideoDecoderCalculator can't save the audio file
because FFmpeg is not installed. Please remove output_side_packet: "SAVED_AUDIO_PATH" from the node config.

I follow the intructions to modify my node config, but when I re-run i get this error:
I20221223 18:09:08.977695  7972 simple_run_graph_main.cc:122] Initialize the calculator graph.
I20221223 18:09:08.979044  7972 simple_run_graph_main.cc:137] Start running the calculator graph.
W20221223 18:09:09.028327  7972 opencv_video_decoder_calculator.cc:230] Not all the frames are decoded (total frames: 3920 vs
decoded frames: 0).
E20221223 18:09:09.029410  7972 simple_run_graph_main.cc:149] Failed to run the graph: CalculatorGraph::Run() failed in Run:
Calculator::Open() for node "autoflipobjectdetectionsubgraph__TfLiteInferenceCalculator" failed: ; Can't find file:
mediapipe/models/ssdlite_object_detection.tflite

In the folder mentioned in this error there is only a BUILD file, but it only "mentions" "ssdlite_object_detection.tflite".
What am I doing wrong?
A Last Note:
The MediaPipe Docs say AutoFlip only works with OpenCV3. However, the Docker image I build after following the MediaPipe installation instructions uses OpenCV 4, and I don't know how to go about downgrading OpenCV3 in this context (I don't have much experience with Docker).

Check this issues:
https://github.com/google/mediapipe/issues/3698
You can checkout from here then put all model file into mediapipe/models
https://github.com/dungtam73/MediapipeModels.git

Thank you, downloading the models files into that directory worked. But do you know how I could also fix the first Error? " OpenCVVideoDecoderCalculator can't save the audio file
because FFmpeg is not installed." Ideally, I'd like to preserve the audio.
Note:
Running "ffmpeg -version" to verify I have it installed returns this output:
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --
incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-
filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-
libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --
enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-
libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 31.100 / 56. 31.100
libavcodec     58. 54.100 / 58. 54.100
libavformat    58. 29.100 / 58. 29.100
libavdevice    58.  8.100 / 58.  8.100
libavfilter     7. 57.100 /  7. 57.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  5.100 /  5.  5.100
libswresample   3.  5.100 /  3.  5.100
libpostproc    55.  5.100 / 55.  5.100

@Kelach Output of ffmpeg -version indicates you have it installed and the system/container is able to recognise the command.
However, the MediaPipe might not be able to pick it up and that is why it might be throwing error.
Can you check in the WORKSPACE file that the path to the ffmpeg program is correct or not for your container?

Open terminal within the container and run the command which ffmpeg. This points to the directory your system is finding the ffmpeg in.
In WORKSPACE file, search for

new_local_repository(
    name = "linux_ffmpeg",

and check the path.
The path should match the output given by the command which ffmpeg.

Hi, @ayushgdev sorry for the delayed response. Thank you for the explanation. I checked my WORKSPACE and found:
new_local_repository(
    name = "linux_ffmpeg",
    build_file = "@//third_party:ffmpeg_linux.BUILD",
    path = "/usr"
)

Running "which ffmpeg" in the container shows that the program is actually located here:
/usr/bin/ffmpeg
To fix, I modified the ffmpeg path in my WORKSPACE to:
new_local_repository(
...
...
    path = "/usr/bin"
)

I reubuild (both the Docker image, and then AutoFlip), and then re-run the command:
GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/autoflip/run_autoflip --
calculator_graph_config_file=mediapipe/examples/desktop/autoflip/autoflip_graph.pbtxt --
input_side_packets=input_video_path=/mediapipe/life_at_google.mp4,
output_video_path=/mediapipe/life_at_google_edit.mp4,aspect_ratio=1:1

But still get the same error:
I20221228 19:10:15.906983  8425 simple_run_graph_main.cc:122] Initialize the calculator graph.
I20221228 19:10:15.918859  8425 simple_run_graph_main.cc:137] Start running the calculator graph.
E20221228 19:10:16.032655  8425 simple_run_graph_main.cc:149] Failed to run the graph: CalculatorGraph::Run() failed in Run:
Calculator::Open() for node "OpenCvVideoDecoderCalculator" failed: ; OpenCVVideoDecoderCalculator can't save the audio file because FFmpeg is not installed. Please remove output_side_packet: "SAVED_AUDIO_PATH" from the node config.

Which means MediaPipe still cannot find ffmpeg? But Why?

Hello @Kelach
Apologies for the late reply. Can you please try building OpenCV from source using script here and including that in MediaPipe?
Meanwhile, we are also working at our end to check the root cause of the issue.

hi @ayushgdev apologies for the late reply. I'm now facing errors trying to build OpenCV from source using the shell script in the MediaPipe root directory.
when I run: sh ./setup_opencv.sh
I get the following error:
: not foundncv.sh: 27:
./setup_opencv.sh: 28: set: Illegal option -

I tried running bash ./setup_opencv.sh but got some errors (different) again:
./setup_opencv.sh: line 27: $'\r': command not found
: invalid optionh: line 28: set: -
set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
./setup_opencv.sh: line 46: syntax error near unexpected token `elif'
'/setup_opencv.sh: line 46: `    elif [[ -x "$(command -v dnf)" ]]; then

Is there another way I should be trying to build OpenCV from source in  my docker container?

Hello @Kelach
Thanks for informing of this issue with the script. We realise there is an update needed to ./setup_opencv.sh, thanks to your comment.
You can refer Option 3 here to build OpenCV from source and set it up on docker.


Console output could use some COLOR!🌈

Note: for support questions, please join our Discord server

I'm submitting a ...
[ ] bug report
[x] feature request
[ ] question about the decisions made in the repository

Action taken (what you did)
There whole console output is just basic white on Black

Expected result (what you hoped would happen)
It would be so nice if there was a color-coded system of output for things like “errors”, “buy/sell orders”, “general log info”, and if there was color-code support for people writing their own strategies to color-code whatever they log to the console too.

Actual result (unexpected outcome)
no color in current version

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)

there’s a really neat npm package called “colors” that would make adding color really easy. I use it in my own strat, and it makes the output look snazzy and highly readable. It has a solid variety of colors to choose from, and also supports changing the background color of text (which has a highlighting sort of effect).
It has two “modes”: if you use require(“colors”) then it modifies the string prototype so that you can write things like log(“I want this to be red”.red); and it comes out red. Log(“there was a trade at this price”.cyan) comes out cyan.
And then there’s “safe mode”, accessed via var colors = require(“colors/safe”) which doesn’t modify the string prototype and can be used like log(colors.red(“this string will be red”));
I’d be willing to work on this with someone/s with solid experience with GitHub and pull requests and such. I haven’t ever worked on a GitHub project before, but I really like and appreciate Gekko and would like to contribute to the project.

It wouldn't be that hard, this is the file that processes everything that gets logged to stdout (in console): https://github.com/askmike/gekko/blob/develop/core/log.js
Note that this functionality should be behind a config flag (not enabled on default) as a lot of people don't read the logs in the console but inside pipe them into a log file (for example by running node gekko -c config.js > gekko-log.txt).

I tested it and there is a major affect on the text if its written anywhere but the console, so it def will need to be in the config. Which config file does the UI use (for paper/live trading and for backtesting)? I know in the CLI you specify the config, so it would be easy to add a line like:
config.useColors=false //set to true only if logging only to console and NOT to disc/txt file
also, I added it to the log file here: (it wouldn't let me upload the .js file so I just copied and pasted)
//////////////////////////////////////////////////start log file
/*
Lightweight logger, print everything that is send to error, warn
and messages to stdout (the terminal). If config.debug is set in config
also print out everything send to debug.
*/
var moment = require('moment');
var fmt = require('util').format;
var _ = require('lodash');
var util = require('./util');
var colors = require('colors');
var config = util.getConfig();
var debug = config.debug;
var silent = config.silent;
var sendToParent = function() {
var send = method => (...args) => {
process.send({'log': args.join(' ')});
}
return {
error: send('error'),
warn: send('warn'),
info: send('info'),
write: send('write')
}
}
var Log = function() {
_.bindAll(this);
this.env = util.gekkoEnv();
if(this.env === 'standalone'){
this.output = console;
}
else if(this.env === 'child-process')
this.output = sendToParent();
};
Log.prototype = {
_write: function(method, args, name) {
if(!name)
name = method.toUpperCase();
var message = moment().format('YYYY-MM-DD HH:mm:ss');
message += ' (' + name + '):\t';
message += fmt.apply(null, args);

if (config.useColors) {
  var color;
    switch(method){
      case 'error':
      color = 'red';
      break;
      case 'warn':
      color = 'yellow';
      break;
      case 'debug':
      color = 'cyan'; //or magenta? or orange?
      break;
      case 'info':
      color = 'white';
      break;
    }
  message = message[color];

}
this.outputmethod;
},
error: function() {
this._write('error', arguments);
},
warn: function() {
this._write('warn', arguments);
},
info: function() {
this._write('info', arguments);
},
write: function() {
var args = _.toArray(arguments);
var message = fmt.apply(null, args);
this.output.info(message);
}
}
if(debug)
Log.prototype.debug = function() {
this._write('info', arguments, 'DEBUG');
}
else
Log.prototype.debug = _.noop;
if(silent) {
Log.prototype.debug = _.noop;
Log.prototype.info = _.noop;
Log.prototype.warn = _.noop;
Log.prototype.error = _.noop;
Log.prototype.write = _.noop;
}
module.exports = new Log;
///////////////////////////////////////////end file
The colors npm package would also need to be added to the node-modules folder right?

Looks like a good start.

The colors npm package would also need to be added to the node-modules folder right?

It won't be a default plugin, so only people who want to enable it need to install it manually. Usually this situation occurs with plugins, in which case Gekko has a way to prompt the user to install the package on the plugin/feature is enabled. That should be done here as well.

var colors = require('colors');

According to the color docs this extends the string prototype, which I really don't think we should do.

If you want to post more code please put it in a gist and link to it instead, this is not really readable.

log.js as a gist

I'm open to a PR for this :)


Stealth Inc: A Clone in the Dark [PCSB00317]

Game summary

Game name: Stealth Inc: A Clone in the Dark
Game serial: PCSB00317

Vita3K summary

Version: v0.1
Build number: 311-e4d7a67
Commit hash: https://github.com/vita3k/vita3k/commit/e4d7a67

Test environment summary

Tested by: HorrorTroll
OS: Windows 8.1
CPU: Intel Core i5-4200H
GPU: Nvidia Geforce GTX 950M
RAM: 6 GB DDR3

Issues

Crash
Screenshots
Not for moment
Log
vita3k.log
Recommended labels

Crash

Vita3K v0.1.5 2603-8daf6c6f
stuck on the placeholder
if you change module mode to automatic and manual and click on libhttp
shows 2 developers screen then nothing but a black screen
vita3k.log

as of https://github.com/Vita3K/Vita3K/commit/c28611a2ab72985d0c4e2d0e5667d999464e8adf, the game status is the same except for Vulkan which doesnt even boot and then a memory error window popped up (see in the 3rd image).
Screenshots

Logs
vita3k (Vulkan).log
vita3k (OGL).log
Recommeded Labels

Intro
vulkan crash


rcon-cli update

First, thank you for creating this docker container!
This issue isn't really a problem, more like something that might cause confusion for some users.
Problem
When I run rcon-cli commands like docker exec palworld-server rcon-cli [COMMAND] I get the following response Weird. This response is for another request. [RESPONSE]
Functionally, the commands still work.
But, it was a definitely confusing at first.
Solution
One possible solution might be to use gorcon/rcon-cli instead of itzg/rcon-cli, as it appears to work with Palworld.
Thank you for all the work you do!

Hi @odakaui thank you for putting this on my radar, if it works the same as the itzg one, I'll check it out now!

I’ll have time to mess around with it this weekend. If I can get it to work, I’ll submit a PR.

@odakaui I haven't had the time for it yet, so that would be great!

Ok. I created a pull request.
#148

Merged, closing the issue


cirrus-cli: 0.81.1 -> 0.82.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/cirrus-cli/versions.
meta.description for cirrus-cli is: "CLI for executing Cirrus tasks locally and in any CI"
meta.homepage for cirrus-cli is: "https://github.com/cirruslabs/cirrus-cli"
meta.changelog for cirrus-cli is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.82.0 with grep in /nix/store/vb641z8la00b16fczhz87c1jl829ic7i-cirrus-cli-0.82.0
found 0.82.0 in filename of file in /nix/store/vb641z8la00b16fczhz87c1jl829ic7i-cirrus-cli-0.82.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
cirrus-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/vb641z8la00b16fczhz87c1jl829ic7i-cirrus-cli-0.82.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cirrus-cli https://github.com/r-ryantm/nixpkgs/archive/2729e3ec1249e16ccea225de311b944baa47c15b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/vb641z8la00b16fczhz87c1jl829ic7i-cirrus-cli-0.82.0
ls -la /nix/store/vb641z8la00b16fczhz87c1jl829ic7i-cirrus-cli-0.82.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cirrus-cli

Maintainer pings
cc @techknowlogick for testing.

@ofborg eval


Library close transaction

pgx closes transaction on error.
Then the lib returns missing error of "commit unexpectedly resulted in rollback".

I checked this behavior in https://github.com/avito-tech/go-transaction-manager/pull/76
If I return trm.ErrSkip in transaction section transaction will be commited.
Is this correct?

ErrSkip  doesn't connect with ErrTxCommitRollback.
ErrSkip ables to commit on an application error not a database.
I think, I can close this issue, because the pgx docs said: PostgreSQL accepts COMMIT on aborted transactions, but px is treated as ROLLBACK.


[ZEPPELIN-4870][hotfix] fix edge case, and remove duplicate parser

What is this PR for?
Tests didn't cover all of the edge cases, that lead to error when parsing specific message.
Also, was found that parsing is also duplicated in the Paragraph class - it was replaced with call to ParagraphTextParser.
The most visible change is that %interpreter(some text will know fail as there is no matching ) character. But it's works the same if we change it to %interpreter (some text...
What type of PR is it?
Hot Fix
What is the Jira issue?

ZEPPELIN-4870

How should this be tested?

Added one more test
https://travis-ci.org/github/alexott/zeppelin/builds/697944179

@zjffdu can you look when you have a time...

LGTM


Can't deserialize. undefined method `[]=' for nil:NilClass

(I hope this is the right repo for this issue)
Can't seem to read a serialized column after upgrading to Rails 5.0 stable.
I haven't used a specific serialization class, I assume YAML is the default? (Thought, before the upgrade, the values were saved as !ruby/hash:ActionController::Parameters)
class PaymentNotification < ActiveRecord::Base
  serialize :raw_IPN
  ...
end

Value in the serialized database column:
--- !ruby/hash:ActionController::Parameters
address_status: confirmed
subscr_date: 12:42:39 Dec 20, 2015 PST
payer_id: 123
address_street: 1 Main St
mc_amount1: '6.00'
mc_amount3: '12.00'
charset: windows-1252
address_zip: '123'
first_name: Test
reattempt: '1'
address_country_code: US
address_name: Test Buyer
notify_version: '3.8'
subscr_id: I-123123123
custom: '2'
payer_status: verified
business<EMAIL_ADDRESS>address_country: United States
address_city: San Jose
verify_sign:<PHONE_NUMBER>2321312.2JohI99Xp56cvu9zc
payer_email<EMAIL_ADDRESS>btn_id: '123'
last_name: Buyer
address_state: CA
receiver_email<EMAIL_ADDRESS>recurring: '1'
txn_type: subscr_signup
item_name: asd
mc_currency: EUR
item_number: asd
residence_country: US
test_ipn: '1'
period1: 12 M
period3: 12 M
ipn_track_id: 111
controller: payment_notifications
action: create

Getting this error when it tries to deserialize it (Just by doing PaymentNotification.first for example)
NoMethodError - undefined method `[]=' for nil:NilClass:
  actionpack (5.0.0) lib/action_controller/metal/strong_parameters.rb:414:in `[]='
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:362:in `block in revive_hash'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:336:in `revive_hash'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:281:in `visit_Psych_Nodes_Mapping'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:in `visit'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:in `accept'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:in `accept'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:311:in `visit_Psych_Nodes_Document'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:in `visit'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:in `accept'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:in `accept'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/node.rb:38:in `to_ruby'
  /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych.rb:253:in `load'
  activerecord (5.0.0) lib/active_record/coders/yaml_column.rb:24:in `load'
  activerecord (5.0.0) lib/active_record/type/serialized.rb:18:in `deserialize'
  activerecord (5.0.0) lib/active_record/attribute.rb:140:in `type_cast'
  activerecord (5.0.0) lib/active_record/attribute.rb:38:in `value'
  activerecord (5.0.0) lib/active_record/attribute_set.rb:42:in `fetch_value'
  activerecord (5.0.0) lib/active_record/attribute_methods/read.rb:66:in `_read_attribute'
  activerecord (5.0.0) lib/active_record/attribute_methods/read.rb:36:in `__temp__271677f59405e4'
  app/admin/payment_notifications.rb:17:in `block (3 levels) in <top (required)>'

Could you try the 5-0-stable branch?
On qui, 18 de ago de 2016 at 14:15 Kristian Gerardsson <
<EMAIL_ADDRESS>wrote:

(I hope this is the right repo for this issue)
Can't seem to read a serialized column after upgrading to Rails 5.0 stable.
I haven't used a specific serialization class, I assume YAML is the
default? (Thought, before the upgrade, the values were saved as
!ruby/hash:ActionController::Parameters)
class PaymentNotification < ActiveRecord::Base
serialize :raw_IPN
...
end
Value in the serialized database column:
--- !ruby/hash:ActionController::Parameters
address_status: confirmed
subscr_date: 12:42:39 Dec 20, 2015 PST
payer_id: 123
address_street: 1 Main St
mc_amount1: '6.00'
mc_amount3: '12.00'
charset: windows-1252
address_zip: '123'
first_name: Test
reattempt: '1'
address_country_code: US
address_name: Test Buyer
notify_version: '3.8'
subscr_id: I-123123123
custom: '2'
payer_status: verified
business<EMAIL_ADDRESS>address_country: United States
address_city: San Jose
verify_sign:<PHONE_NUMBER>2321312.2JohI99Xp56cvu9zc
payer_email<EMAIL_ADDRESS>btn_id: '123'
last_name: Buyer
address_state: CA
receiver_email<EMAIL_ADDRESS>recurring: '1'
txn_type: subscr_signup
item_name: asd
mc_currency: EUR
item_number: asd
residence_country: US
test_ipn: '1'
period1: 12 M
period3: 12 M
ipn_track_id: 111
controller: payment_notifications
action: create
Getting this error when it tries to deserialize it (Just by doing
PaymentNotification.first for example)
NoMethodError - undefined method []=' for nil:NilClass:   actionpack (5.0.0) lib/action_controller/metal/strong_parameters.rb:414:in []='
/home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:362:in block in revive_hash'   /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:336:in revive_hash'
/home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:281:in visit_Psych_Nodes_Mapping'   /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:in visit'
/home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:in accept'   /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:in accept'
/home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:311:in visit_Psych_Nodes_Document'   /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:16:in visit'
/home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb:6:in accept'   /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb:32:in accept'
/home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/node.rb:38:in to_ruby'   /home/frexuz/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych.rb:253:in load'
activerecord (5.0.0) lib/active_record/coders/yaml_column.rb:24:in load'   activerecord (5.0.0) lib/active_record/type/serialized.rb:18:in deserialize'
activerecord (5.0.0) lib/active_record/attribute.rb:140:in type_cast'   activerecord (5.0.0) lib/active_record/attribute.rb:38:in value'
activerecord (5.0.0) lib/active_record/attribute_set.rb:42:in fetch_value'   activerecord (5.0.0) lib/active_record/attribute_methods/read.rb:66:in _read_attribute'
activerecord (5.0.0) lib/active_record/attribute_methods/read.rb:36:in __temp__271677f59405e4'   app/admin/payment_notifications.rb:17:in block (3 levels) in <top (required)>'
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rails/strong_parameters/issues/241, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAC66PTO6cmF0mTm2vAXBewuE1NeQ84tks5qhJMwgaJpZM4JntwL
.

This issue was moved to rails/rails#26215


WW3/OCN Required field exchange for 3D/2D coupling

Description
Discussion on the required import/export fields for 2D/3D coupling between WW3 and OCN
Suggestion
Please check the suggested requirements and add/modify as needed the following google document: ww3-exports-ocn-3Dwave-terms
NOTE: right-click on the link to open the doc in a new window or tab.

@DeniseWorthen @josephzhang8 This is the one in SCHSIM side to couple with WW3 using vortex formulation (let me correct if I am wrong). The discussion in this issue could have information related to both model components but I think it would be great if we could only add issues related with SCHSIM in here and use https://github.com/oceanmodeling/WW3/issues/11 for WW3 specific development.

@uturuncoglu : you can find the SCHISM 3D setup for Shinnecock test here:
/work2/noaa/nosofs/yjzhang/UFS-project/ufs-coastal-tests/RUN01b
I only included the changed inputs here; other inputs are same as before. You can simply overwrite. manning.gr3 is no needed for 3D. Once the code is ready we can test with this case first. Thx.


Fix all warnings, GHC 8.0 to 8.4

I received a bunch of warnings when compiling this, and it looks like the semigroup instances were non-canonical.
I also fixed up the commented example so it compiles and prints 42. It looks like the library has shifted since it was written.

Good stuff!


[Snyk] Upgrade @emotion/styled from 11.10.5 to 11.11.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @emotion/styled from 11.10.5 to 11.11.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 3 versions ahead of your current version.
The recommended version was released a month ago, on 2023-05-06.

Release notes

Package name: @emotion/styled

11.11.0 - 2023-05-06Minor Changes

#3031 336f3d50 Thanks @ Andarist! - Added support for cascade @ layers by updating the underlying parser (stylis).

Patch Changes

#3029 eed5e6cf Thanks @ Andarist! - Fixed importing in Node ESM

Updated dependencies [336f3d50, eed5e6cf]:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

11.10.8 - 2023-04-28

11.10.6 - 2023-02-16

11.10.5 - 2022-10-27

    from @emotion/styled GitHub release notes

Commit messages

Package name: @emotion/styled

1135f8e Version Packages (#3030)
336f3d5 Add support for cascade `@ layer`s (#3031)
eed5e6c Fixed importing in Node ESM (#3029)
e6e5b3d Add `aspectRatio` property to unitless (#3012)
5645b37 Version Packages (#3026)
6bd1342 Upgrade Stylis to a version with parsing fix for `&` in nested functions (#3025)
149194e Version Packages (#3020)
b02be0b Fixed ignore flag not disabling the warning for rules defined inside other rules (#3019)
314a5fb Adding Apache Superset to "In the Wild" section (#3003)
0283f88 Version Packages (#2999)
4e172c2 Remove peer dependency on `@ babel/core` from most packages (#2985)
88ce707 Add Feathery to the in the wild list (#2990)
acb72a4 Add explicit `permissions` to GitHub workflows (#2899)

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Codecov Report
Patch and project coverage have no change.

Comparison is base (07dc6da) 76.03% compared to head (98be058) 76.03%.

:exclamation: Current head 98be058 differs from pull request most recent head e6f5673. Consider uploading reports for the commit e6f5673 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1359   +/-   ##
=======================================
  Coverage   76.03%   76.03%
=======================================
  Files          32       32
  Lines        2474     2474
  Branches      511      511
=======================================
  Hits         1881     1881
  Misses        427      427
  Partials      166      166

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Updated manually.


give custom configuration option for people who are unhappy with defaults

maybe a .toml file.... may be. what do you think?


create-update fails with "unexpected exception"

When trying to create updates for retrace-server, Packit crashed on me with the following (tried the same command two times, same result):
$ packit create-update --dist-git-branch=f35,f34,epel8 --update-notes 'New upstream release 1.24.1' --update-type bugfix
Creating Bodhi update for the following branches: f34, epel8, f35
Please provide Bodhi username and password when asked for.
2022-02-07 12:32:47.733 utils.py          ERROR  ServerError(https://bodhi.fedoraproject.org/latest_builds, 504, Error returned from json module while processing b'https://bodhi.fedoraproject.org/latest_builds': b"[Errno Expecting value]
504 Gateway Time-out
\nThe server didn't respond in time.\n\n: 0"
b"
504 Gateway Time-out
\nThe server didn't respond in time.\n\n")
Unexpected exception occurred,
please fill an issue here:
https://github.com/packit/packit/issues

TODO:

[ ] find out the root cause
[ ] file the issue with bodhi upstream
[ ] can we get the info from somewhere else?
[ ] better error handling: suggest what should people do to resolve the problem

My versions are the following
packit-0.44.0-1.fc35.noarch
python3-bodhi-client-5.7.0-2.fc35.noarch

Thanks for the tip, though I ended up creating the updates via the web UI :)

@mgrabovsky Thanks!
Just tested the --koji-build option and everything works fine. I hope we will be able to get rid of the root cause but at least there is a way how to overcome this.

Just encountered the same exception with a similar error:
$ packit create-update --dist-git-branch=fedora-all
2022-05-23 11:45:08.000 common_package_config.py WARNING synced_files option is deprecated. Use files_to_sync option instead.
2022-05-23 11:45:08.001 common_package_config.py WARNING synced_files option is deprecated. Use files_to_sync option instead.
2022-05-23 11:45:08.001 common_package_config.py WARNING synced_files option is deprecated. Use files_to_sync option instead.
Creating Bodhi update for the following branches: f34, rawhide, f35, f36
Please provide Bodhi username and password when asked for.
2022-05-23 11:48:16.505 utils.py          ERROR  HTTPSConnectionPool(host='bodhi.fedoraproject.org', port=443): Max retries exceeded with url: /latest_builds?package=gnome-abrt (Caused by ResponseError('too many 504 error responses'))
Unexpected exception occurred,
please fill an issue here:
https://github.com/packit/packit/issues
$ rpm -q packit python3-bodhi
packit-0.50.0-1.fc35.noarch
python3-bodhi-5.7.5-1.fc35.noarch

Also, --koji-build doesn't work for me as it asks for username and password but fails with the following:
2022-05-23 10:02:58.285 distgit.py        ERROR  Authentication failed
2022-05-23 10:02:58.286 utils.py          ERROR  There is an authentication problem with Bodhi:
Authentication failed

I tried both plain password and password + token.

I can somehow reproduce it just using curl:
$ curl -l https://bodhi.fedoraproject.org:443/latest_builds?package=python-teamcity-messages

504 Gateway Time-out

The server didn't respond in time.

But the second time and the third time I ran the same command I got the correct answer
$ curl -l https://bodhi.fedoraproject.org:443/latest_builds?package=python-teamcity-messages
{"eln-updates-candidate": "python-teamcity-messages-1.30-1.fc37", "f36-updates-candidate": "python-teamcity-messages-1.30-1.fc36", "f37-updates-candidate": "python-teamcity-messages-1.30-1.fc37", "eln-updates-testing": "python-teamcity-messages-1.30-1.fc37", "f36-updates-testing": "python-teamcity-messages-1.30-1.fc36", "f37-updates-testing": "python-teamcity-messages-1.30-1.fc37", "eln": "python-teamcity-messages-1.30-1.fc37", "f36-updates": "python-teamcity-messages-1.30-1.fc36", "f37": "python-teamcity-messages-1.30-1.fc37", "eln-override": "python-teamcity-messages-1.30-1.fc37", "f36-override": "python-teamcity-messages-1.30-1.fc36", "f37-override": "python-teamcity-messages-1.30-1.fc37", "eln-updates-testing-pending": "python-teamcity-messages-1.30-1.fc37", "f36-updates-testing-pending": "python-teamcity-messages-1.30-1.fc36", "f37-updates-testing-pending": "python-teamcity-messages-1.30-1.fc37", "eln-updates-pending": "python-teamcity-messages-1.30-1.fc37", "f36-updates-pending": "python-teamcity-messages-1.30-1.fc36", "f37-updates-pending": "python-teamcity-messages-1.30-1.fc37"}

I am not logged in into fedora infra.
Shall we do some retries here?

Shall we do some retries here?

:+1: Probably -- there is an argument for that when initialising the Bodhi client. (Haven't we set this to three already?)

Yes, probably you are right.
However I tried it again, after some time, using the command line and I am no more able to get the list after 4 attempts:
$ curl -l https://bodhi.fedoraproject.org:443/latest_builds?package=python-teamcity-messages

504 Gateway Time-out

The server didn't respond in time.

$ curl -l https://bodhi.fedoraproject.org:443/latest_builds?package=python-teamcity-messages

504 Gateway Time-out

The server didn't respond in time.

$ curl -l https://bodhi.fedoraproject.org:443/latest_builds?package=python-teamcity-messages

504 Gateway Time-out

The server didn't respond in time.

$ curl -l https://bodhi.fedoraproject.org:443/latest_builds?package=python-teamcity-messages

504 Gateway Time-out

The server didn't respond in time.

We should probably file this with fedora-infra that the endpoint is not stable enough - we cannot retry infinitely

The answer from the bodhi team:

Bodhi's latest_build endpoint is a wrapper which triggers a lot of queries to Koji to get the latest build in all tags for all releases Bodhi knowns... so it can easily timeout, especially how Bodhi server is currently run - the staging instance, where we're testing a different way of running the server, seems more stable:
https://bodhi.stg.fedoraproject.org/latest_builds?package=kstars
The builds endpoint will otherwise only output the package builds for which Bodhi has knowledge of (those that were submitted in any update), so it can not be the same.

Do I get it correctly that we should either be using a different endpoint or query koji directly?

I can't find another suitable bodhi endpoint, the builds one, as mattia explained to me, has not the data I need.
We already have the koji tag we are looking for  https://github.com/packit/packit/blob/main/packit/distgit.py#L439,
thus, probably, the bodhi.latest_builds call is really too much wide for our needs.
If I issue a koji latest-build f36-updates-candidate python-teamcity-messages I can get an immediate response from the Koji server.
So I think I can call directly the koji cli tool, as suggested by @TomasTomecek, instead of doing a bodhi_client call.
@lachmanfrantisek & @TomasTomecek let me know if you have suggestions and/or if it is ok with you to replace the bodhi_client call with a direct call to the koji cli tool.
Thanks!

:+1:
@majamassarini Yes, using the Koji tag looks promising.

@majamassarini koji even has a decent python API :) and Packit is already using it: https://github.com/packit/packit/blob/main/packit/status.py#L102-L125
+1 to query koji directly since bodhi does that anyway


Plugin pipe injection

Found this case when tried to use browsersync with gore-gulp. BrowserSync usage:
var reload = browsersync.reload;

gulp.task("sass", function () {
    gulp.src("./scss/**/*.scss")
        .pipe(sourcemaps.init())
        .pipe(sass({
            errLogToConsole: true
        }))
        .pipe(autoprefixer({
            browsers: ["last 4 versions"],
            cascade: false
        }))
        .pipe(minifycss())
        .pipe(sourcemaps.write())
        .pipe(gulp.dest("./css"))
        .pipe(reload({stream: true}));
});

So if we are working on plugin system and we want to use 3 plugins js sass and browsersync there should be possiblity for browsersync to modify task in js and sass.

I guess it would be more versatile to be able to inject any gulp plugins at the beginning and at the end.
And what about https://christianalfoni.github.io/react-webpack-cookbook/Automatic-browser-refresh instead of BrowserSync?

@zangrafx browsersync is only an example - it could be anything. It is just PoC to show that there should be possibility to inject something into end/beginning of the stream.


'\r' doesn't work in snapshots

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
foo.test.js
test('blah', () => {
  expect('\r').toMatchSnapshot();
});

And jest's output:
$ jest
 PASS  ./foo.test.js
  ✓ blah (4ms)

Snapshot Summary
 › 1 snapshot written in 1 test suite.

 Inspect your code changes or re-run with `-u` to update them.

What is the expected behavior?
The test shouldn't fail on the next run immediately after making the snapshot.
foo.test.js.snap should have the \rcharacter be backslash-escaped as \r instead of being a literal character because Node will treat it as \n.
Run Jest again with --debug and provide the full configuration it prints. Please mention your node and npm version and operating system.
OS X 10.11.4
$ node -v
v6.6.0
$ npm -v
3.10.8
$ jest --debug
jest version = 16.0.1
test framework = jasmine2
config = {
  "rootDir": "/private/tmp/foo",
  "name": "-private-tmp-foo",
  "setupFiles": [],
  "testRunner": "/usr/local/lib/node_modules/jest/node_modules/jest-jasmine2/build/index.js",
  "scriptPreprocessor": "/private/tmp/foo/node_modules/babel-jest/build/index.js",
  "usesBabelJest": true,
  "automock": false,
  "bail": false,
  "browser": false,
  "cacheDirectory": "/var/folders/7h/zgzv6wh54zv2zwcx70qt2vqw0000gn/T/jest",
  "clearMocks": false,
  "coveragePathIgnorePatterns": [
    "/node_modules/"
  ],
  "coverageReporters": [
    "json",
    "text",
    "lcov",
    "clover"
  ],
  "globals": {},
  "haste": {
    "providesModuleNodeModules": []
  },
  "mocksPattern": "__mocks__",
  "moduleDirectories": [
    "node_modules"
  ],
  "moduleFileExtensions": [
    "js",
    "json",
    "jsx",
    "node"
  ],
  "moduleNameMapper": {},
  "modulePathIgnorePatterns": [],
  "noStackTrace": false,
  "notify": false,
  "preset": null,
  "preprocessorIgnorePatterns": [
    "/node_modules/"
  ],
  "resetModules": false,
  "testEnvironment": "jest-environment-jsdom",
  "testPathDirs": [
    "/private/tmp/foo"
  ],
  "testPathIgnorePatterns": [
    "/node_modules/"
  ],
  "testRegex": "(/__tests__/.*|\\.(test|spec))\\.jsx?$",
  "testURL": "about:blank",
  "timers": "real",
  "useStderr": false,
  "verbose": null,
  "watch": false,
  "cache": true,
  "watchman": true,
  "testcheckOptions": {
    "times": 100,
    "maxSize": 200
  }
}
 FAIL  ./foo.test.js
  ● blah

    Error
      Error: expect(value).toMatchSnapshot()

      Received value does not match stored snapshot 1.

      - "
      "
"     + "
      at Object.<anonymous>.test (foo.test.js:2:16)

  ✕ blah (5ms)

Snapshot Summary
 › 1 snapshot test failed in 1 test suite. Inspect your code changes or re-run with `-u` to update them.

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   1 failed, 1 total
Time:        0.873s, estimated 1s
Ran all test suites.

+1
we're also facing this issue.

@lachenmayer is this still happening with Jest v17.0.3?

I still see this issue in jest 17.0.3.

Right. So we're normalising newlines \r\n, but we don't do that for single \r char.
@cpojer should we rather escape \r not followed by \n or treat it as a newline anyway?
Second thing would be probably as easy as adjusting normalizeNewlines to this:
const normalizeNewlines = string => string.replace(/\r\n|\r/g, '\n');

and would also be a good first bug case

@thymikee sounds reasonable to me!

cc @jsomsanith who was interested in sending a PR in his free time.

@thymikee Hi! I changed the line you said, and added a new test in utils-test.js, but I'm not confident enough and I want to test it manually, how do I do it?

@rubenmoya run the test suite and send a PR 👍

@thymikee I did it, there are 3 test failing, are they related to my changes?

You need to install hg. Read CONTRIBUTING.md on how to setup everything.

These are unrelated, you can fix them by doing brew install hg.

Closing this in favour of PR


Adds CI workflows

I added CI workflows for 3 different Python versions.
No breaking changes. I just had to fix some tests so that they would run no matter the working directory they were run from.
There is still a problem with pytest hanging after passing the tests. I thought it had to do with threading, but I disabled the tests and still had the same issue. It still needs to be solved before merging.

@olivergrasl if you happen to know what's preventing pytest from completing the tests, please let me know, or just make a new commit.
Thanks!

@olivergrasl if you happen to know what's preventing pytest from completing the tests, please let me know, or just make a new commit.
The blocking test is in tests_bptk.py
Thanks!

Hi @rogersamso - to be honest I wasn't aware this isn't standard behavior. My assumption is that it is related to https://stackoverflow.com/questions/19219596/py-test-hangs-after-showing-test-results - I'll check through the tests later


Support for HTTP1.1 in gRPC or AppEngine should upgrade to support HTTP2

Google is advocating the use of gRPC:
https://cloud.google.com/solutions/mobile/mobile-compute-engine-grpc
But gRPC is NOT supported on appengine standard environment! It requires http2.

Maybe it would be nice to support non-streaming gRPC for http1.1.
Somebody already tried it:
https://gist.github.com/nodirt/bce25f976675ff3f2c27

You can make grpc calls from appengine, you need to do a few things manually though and it's not so great because you must make a new connection for every appengine request.

@tbillington I can live with the new-connection per request for now. I need the fast development cycles that gRPC gives me. Could you give me a hint of howto support gRPC on http1.1 appengine... I tought about creating a fake HTTP2 request from an HTTP1 request and then call ServeHTTP on the grpc server. But i dont know where to start.
Note: I do understand this this issue, is not really a gRPC issue, but more an appengine issue.
However support HTTP1.1 for gRPC would be usefull it hink. And it theory its not that difficult for the non-streaming API.

Related issue: https://github.com/grpc/grpc-go/issues/805

I've used this before to make a connection with https://godoc.org/google.golang.org/grpc#Dial and https://godoc.org/google.golang.org/appengine/socket#DialTimeout.

@tbillington What about those of us who aren't writing services or clients in Go?

@public Sorry mate, I've only got experience with go appengine, no idea about the others! I assume they have some way in their standard libraries to make raw sockets, maybe try starting there?
Good luck :)

I am confused, it seem app engine supports http/2 already. From: https://cloudplatform.googleblog.com/2015/10/Full-Speed-Ahead-with-HTTP2-on-Google-Cloud-Platform.html
Google App Engine Both in its original incarnation and Managed VM configurations, Google App Engine servers are responsible for negotiating and terminating the TLS tunnel. As long as your application is being served over HTTPS, the Google servers automatically negotiate HTTP/2 on your behalf. Each HTTP/2 stream is then translated into an HTTP/1.1 request and routed to your application. As a result, no modifications are required within your application to enable HTTP/2. Simply direct your traffic through HTTPS and all capable visitors will be automatically served over HTTP/2.
So as long as the server uses the port 8080, we should be good? I do not think this will allow to use grpc along with asp.net routes though...

No: appengine does use HTTP 2 to the outside world. But internally, all
APIs are only supporting HTTP 1.1
You can't open a port en start doing htttp2... Are stuck to http1.1
On Thu, Mar 2, 2017, 20:12 Jonathan Delfour<EMAIL_ADDRESS>wrote:

I am confused, it seem app engine supports http/2 already. From:
https://cloudplatform.googleblog.com/2015/10/Full-Speed-Ahead-with-HTTP2-on-Google-Cloud-Platform.html
Google App Engine Both in its original incarnation and Managed VM
configurations, Google App Engine servers are responsible for negotiating
and terminating the TLS tunnel. As long as your application is being served
over HTTPS, the Google servers automatically negotiate HTTP/2 on your
behalf. Each HTTP/2 stream is then translated into an HTTP/1.1 request and
routed to your application. As a result, no modifications are required
within your application to enable HTTP/2. Simply direct your traffic
through HTTPS and all capable visitors will be automatically served over
HTTP/2.
So as long as the server uses the port 8080, we should be good? I do not
think this will allow to use grpc along with asp.net routes though...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/grpc/grpc/issues/9113#issuecomment-283749371, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAx-sTfnLrkeL5Ati10xrbGDxp0TWRpFks5rhxSmgaJpZM4LNgZ3
.

gRPC Clients should now work on all appengine standard runtimes.

AppEngine still does not have support for GRPC servers.

gRPC client work, but im talking about making an gRPC server in Appengine Standard Environment.
This is not possible. Please re-open.

@tjerkw
There are no plans for gRPC servers to support HTTP 1.1.
The current plan for gRPC servers on App Engine is for App Engine to support HTTP/2.
I think that work is better tracked on App Engines public bug tracker, rather than the gRPC repository.

@kpayson64 Could you provide a link to where that is being tracked?

https://issuetracker.google.com/35898954

Maybe I'm wrong but it feels like Google is spending less time and effort on Appengine Standard environment. And more on the Flexible environment and other similar product like Kubernetes on Google Cloud.
Appengine Standard environment runs http 1.1, python 2.7 etc. It's getting old.
Also I understand that http 2.0 streaming is (more) difficult todo on the Standard Environment. But it is not impossible.
What's Google stand on this? If I start a new startup, should I use Appengine at all? Or is Kubernetes and docker recommended (which comes close to what Appengine provides).
I know this comment is a bit out of scope, but still interesting to see Google's answer on this.

I am a Google employee, and I do not feel like it's appropriate for any of us here to respond to this last question. I would rather direct you to the GCP's support, who I know have support engineer for the customers who have design decisions like these to make.

@tjerkw nodejs on Appengine standard was released just a few weeks ago.


Update Makefile

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

/cla sign

/trigger presubmits

Just a PR to check the behavior of GH actions.
Please let me merge this.
/approve


Adding Jupyter Sparkmonitor init action

@googlebot I fixed it.

@medb Tests were added.

/gcbrun

/gcbrun


Marketing

This includes mostly copy, image and advisor ordering changes for the marketing site but also includes changes in the onboarding process, i.e dropping final tab "additional information" and changed the specific of uploading a cv, to be more general uploading of files, as a quick way to deal with this feature request.

Coverage decreased (-3.3%) to 87.288% when pulling fd195b0a3c05d1afbd363baba537c1d41b0498c4 on marketing into 4ec82663147bd36b004ea9c5ccc6b01e04e7b0ff on master.


Can't compile with Xcode9 & Swift 4.1

I tried to compile the project with Xcode 9 and got an error that a dependant module 'NexmoConversation' is compiled with Swift 4.0.3 cannot be imported in Swift 4.1.2

@softavail  Which version of xCode are you using? It should work with xCode 9.4.1

@softavail we've updated the quickstarts to use the NexmoStitch pod


Unexpected segment fault with parallel mesh

Hello,
I have a subroutine that loops over faces on each processors and then access the element indices that share this face through a FaceElementTransformations, e.g, Tr.Elem1No and Tr.Elem2No. This subroutine is called before the time loop starts and after the parallel mesh object is initialized. I tested the subroutine on a periodic mesh to avoid dealing with boundaries for now. In serial, the subroutine behaves as expected but in parallel, Tr.Elem2No returns -1 which suggests that the face is on a boundary. The mesh being periodic it should not.
Since my code solves PDEs with DG, I also checked in the subroutine that computes the numerical flux at the face between two elements of the mesh. This subroutine is derived from NonlinearFormIntegratorand utilizes Tr.Elem1No and Tr.Elem2No to access the numerical solution and to compute the numerical flux. In this subroutine, Tr.Elem2No is never equal to -1 both in serial and in parallel which I would expect for a periodic mesh.
My parallel mesh is initialized as follows:
  mfem::Mesh mesh(mesh_file, 1, 1);
  std::shared_ptr<mfem::ParMesh> pmesh;
  pmesh = std::make_shared<mfem::ParMesh>(MPI_COMM_WORLD, mesh);
  mesh.Clear();

I am not sure how to solve this problem. I looked at the documentation and examples, and could not see any missing call to initialize the parallel mesh.
Thanks,
Marco

Perhaps you need to call ParMesh::ExchangeFaceNbrData() before using your subroutine? This will probably happen automatically in the nonlinear form, which could explain why this issue does not occur in that context.
Also, note that if you call GetFaceElementTransformations with a "shared face" in parallel, then Tr.Elem2No will be negative. However, you can recover the index of the face neighbor element with -1 - Tr.Elem2No.
To distinguish between a negative number that corresponds to a face neighbor element and -1, which is used to indicate that the element is on the domain boundary, you need to look at the face infos: call pmesh->GetFaceInfos(f, &info1, &info2). Then, info2 will be negative if the face is on the domain boundary, and non-negative otherwise (e.g. if it is an interior or shared face).

Will,
thanks for your response. You are correct, I had to call `` and use pmesh->GetFaceInfos(f, &info1, &info2) to identify faces on true boundaries.
I also noticed that Tr.Elem2No and face2 do not return the same index when Tr.Elem2No is negative. Is that expected?

I also noticed that Tr.Elem2No and face2 do not return the same index when Tr.Elem2No is negative. Is that expected?

What do you mean by face2?

There are two methods in Mesh that can be used to check for interior faces: FaceIsInterior and FaceIsTrueInterior. These are probably more convenient that GetFaceInfos + additional logic.

I meant info2 not face2.
On Fri, Aug 7, 2020 at 4:12 PM Will Pazner<EMAIL_ADDRESS>wrote:

I also noticed that Tr.Elem2No and face2 do not return the same index
when Tr.Elem2No is negative. Is that expected?
What do you mean by face2?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mfem/mfem/issues/1692#issuecomment-670694303, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABD4GCSXXJVAMUC4EICZD5DR7RN3RANCNFSM4PW45RFA
.

--
Marc-Olivier Delchini

I will check these functions out. Thanks for the tip.
On Fri, Aug 7, 2020 at 4:36 PM Veselin Dobrev<EMAIL_ADDRESS>wrote:

There are two methods in Mesh that can be used to check for interior
faces: FaceIsInterior and FaceIsTrueInterior. These are probably more
convenient that GetFaceInfos + additional logic.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mfem/mfem/issues/1692#issuecomment-670702699, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABD4GCX4DUFMU6GTQITKAALR7RQUPANCNFSM4PW45RFA
.

--
Marc-Olivier Delchini

I meant info2 not face2.

Yes, this is expected since Tr.Elem2No will be the element number, and info2 is the "face info," which is given by the formula 64 * LocalFaceIndex + FaceOrientation (see e.g. the FaceInfo struct in mesh.hpp).

I was able to get this going but I run into another issue that is somehow related.
On a given cell of the mesh, I need access to the volume average solution of the neighbor cells. In serial, it works fine, but in parallel, one of the neighbor cells can be located on a different processor. My initial attempt consisted of using GetValue from the ParGridFunction class to access volume average values on the neighbor cells but it resulted in a segment fault when the element index is negative, e.g. it is owned by a different processor.
Assuming that I pre-compute a volume integral of a function on each cell of the mesh owned by a processor, how do I access values of element (elements that have a face shared by two processors) owned by other processors?

Is the original issue resolved? We can continue related discussion in #1700.

Yes you are correct, I should have close this one.


Introduce Slack / Discord / Libera ?

Hi, I would like to contribute. Is there a community chat for this project?
Cheers

This is actually a great idea @MrIceman .
I took some time today to set a discord server up and update readme also with a link.
Here is the link to the discord invite: https://discord.gg/dHPmw89zAE


Suddenly not receiving notifications anymore.

I was developing an app and I was able to receive push notifications for about 2 days and than it suddenly didn't work anymore.
I do get a token every time I start the app, I can send messages to that token and I can see in Firebase that the messages are coming in. But my app doesn't receive them.
I've tried making a completely new app with only the bare minimum for the notifications and it still doesn't work.
Also tried creating a new Firebase endpoint but that also didn't matter, I can still receive messages via the normal V1 API, but not via the push-receiver package..
Does anyone have an idea on how to debug this further??

Hi,
Did you get something on this? Why is it happening like this

Hi, Did you get something on this? Why is it happening like this

Nope, I switched to server sent events for my communication


OpenAPI 3 enums

How does gnostic represent openapi enums so that a plugin (Ex. gnostic-generate-go) could leverage it to generate the correct go code? Looking at the surface.Model I dont see how we can determine that the object is infact an enum?

How does gnostic represent openapi enums so that a plugin (Ex. gnostic-generate-go) could leverage it to generate the correct go code?

Given an OpenAPI schema like:
schema:
  enum:
    - 1337
    - abc

Inside of gnostic that is represented with the type: OpenAPIv3.Schema. So let's say you have a variable mySchema which represents the schema above, you can retrieve the enum values like that:
mySchema.Enum[0].Yaml // returns "1337" (type string)
mySchema.Enum[1].Yaml // returns "abc" (type string)

Looking at the surface.Model I dont see how we can determine that the object is infact an enum?

Yes, you are right. The surface model currently does not support enum values. For that to work we would need to update the Field message in surface.proto to something similar to this:
message Field {
  string name = 1;
  ...
  bool serialize = 9;
  repeated string enumValues = 10; // New value here
}

Then inside of the model_openapiv3.go we update the typeForSchema method: we would need to check whether schema.Enum is not nil and if so return the values and then set field.EnumValues accordingly.
Disclaimer:
I am not a main contributor to gnostic but I have been working with gnostic extensively over last couple of weeks.


fix non-plaintext messages (update javax.mail to 1.6.0)

Hi @Kosterio , thanks for your commit. Just checking you're aware of the build failure, and whether you needed any help with the errors?


Renamed "target" example directory to "artifacts"

Proposed changes
Renamed example directory to "target" so it's different than keyword "target".

Deploy preview for docsdocker ready!
Built with commit 1599a3d68b696486dc870b383e85cee009afb3b5
https://deploy-preview-7500--docsdocker.netlify.com

Thank you for your feedback! We have received and reviewed your changes. To remain consistent with existing technical specifications, we did not incorporate your suggested changes. If you have additional concerns, submit a new issue in this repository.