Clean Data Using PySpark for Further Analysis

Objective:
Develop a PySpark script to clean the climate data fetched from the European Climate Assessment & Dataset (ECA&D). The cleaned data should be prepared and formatted appropriately for further analysis. This includes handling missing values, correcting data types, and any other necessary preprocessing steps.
Requirements:

The script should:

Load the raw data into a Spark DataFrame.
Handle missing values by filling, dropping, or imputing them as appropriate.
Ensure all data types are correct and consistent.
Ensure that every column is cast to the most suitable type available.
Normalize or transform data if needed (e.g., scaling temperature values, parsing dates).
Save the cleaned data to a specified location for further analysis.

Details:

Ensure the script is well-documented and includes error handling.
Provide comments within the script explaining each preprocessing step.
Include instructions on how to run the script within the EMR environment or locally.

Acceptance Criteria:

A PySpark script that successfully cleans the raw climate data and prepares it for further analysis.
Clear documentation and instructions included in the README.md file.
The code is committed and pushed to the GitHub repository.

Additional Notes:

Please make sure to test the script with sample data to ensure it works as expected.
Include any additional dependencies or setup steps required in the documentation.

Cleaning the data also involves making sure that every column is cast to the best available and most suitable type.

Not blocked at all, you can start working on this issue.


Add Code of Conduct

We recommend that every repo has a code of conduct. If you don’t feel comfortable creating your own Code of Conduct from scratch we highly recommend using one of the templates provided by GitHub. If you do use a template, please read through the template and ensure that you can and will abide by the Code of Conduct.
Please follow these instructions on how to add a Code of Conduct.
Sample: https://github.com/Recode-Hive/Stackoverflow-Analysis/blob/main/CODE_OF_CONDUCT.md

@shwetarkadam Could you please assign this task to me under GSSOC'24

I want to work on it. I am a contributor of GSSoC2024 .Please assign this task to me.

I want to work on it please assign it to me

I would like to work on this issue. Please assign me this task.

@shwetarkadam Assigning me this task ensures dedication, professionalism, and a drive for positive outcomes. I'm eager to contribute meaningfully to resolving the issue.

@Princegupta101 I would like to work on this issue. Please assign this to me

Hi I'am a gssoc'24 contributor I wpould like to work on this issue.Please assign this task to me.
Thank you!

A Code_Of_Conduct.md file outlines the contribution guidelines, coding standards, and procedures for submitting pull requests, thus streamlining the contribution process and ensuring consistency across contributions. It sets clear guidelines for expected behavior and helps ensure that all contributors feel safe and respected.
The repository currently lacks a CODE_OF_CONDUCT.md file which is an important resource for fostering a welcoming and inclusive environment within our community.
@shwetarkadam  You can assign this issue to me as I'm working under GSSoC'24 as a contributor. I can add a code of conduct to this project.
Thanks


Re-arrange mod declarations, use imports, and deny warnings

Coverage remained the same at 86.628% when pulling 2f523eb31177673eb6f7e136f95967f53f71ed14 on little-cleanups into 78fc55b2e2621820bad4e16390c3767d82e2655c on master.


editor.hover.sticky fails if the cursor hovers another popup-generating content while moving in

Version 1.72 included a much needed editor.hover.sticky setting (true by default). Thanks to it, according to the release notes, "the hover will stay visible as long as the mouse is moving towards it".
It seems like even though the mouse may be moving towards the desired link within the popup, if it happens to move over other pop-up generating content, the second popup takes precedence. Here's a screencast to illustrate the issue:

Does this issue occur when all extensions are disabled?: Didn't test

VS Code Version: 1.72.0
OS Version: Ubuntu 20.04

Steps to Reproduce:

Hover a problematic string whose hover box has a quick-fix link
Move the cursor to the quick fix link and pass through another problematic string in the way

This is related to PR #161407 (cc @alexdima)

To tackle this, we would need to add some sort of timing aspect to the logic because we would like to be able to keep a use-case like the following, where the hover comes up on the first squiggle, but then after resting the mouse for a while over the second squiggle, the hover should update to reflect the new location:
https://user-images.githubusercontent.com/5047891/194598431-faabd342-9e5e-4bdc-85e4-3b5a3698e3f6.mp4
Similarly, https://github.com/microsoft/vscode/issues/156749 , might also be addressed with a new timing aspect..

Hi ever since this issue was filed, we have added two settings to control the delay for showing the hover and hiding the hover. Namely:
editor.hover.delay
editor.hover.hidingDelay
This issue will be closed.


Add surface-intercept time to ring and surface geo tables

From pds-webserver created by rfrenchseti: SETI/pds-webserver#31

See Sec. <IP_ADDRESS> in https://docs.google.com/document/d/1JVEhksHlru2jk8ZW6WPyZeGxReG0ccB-3GEQ2vyX4vg/edit


Question - How to set a custom image for the send icon of SendBox?

I see that I can set styles for the send icon of a SendBox, but what if I wanted to use my own .png image for the send icon?  Can I do that?

Yes you can change the image within the send box.
Documentation found here: https://azure.github.io/communication-ui-library/?path=/docs/ui-components-sendbox--send-box#customize-send-icon


Balancing feedback

[x] Oak sword attack damage is 5 -> base game is 4 (the wood parent should be toned down one)
[ ] Guard schematic speed switched around base game has 1.6 forgero has 1.15.
[x] Jungle planks have +-0.1 attack speed?
[x] Some woods add raw durability when upgraded in utility -> should be with all woods but only values should be different.
[x] stone pickaxe has 4.6 attack damage base game only 3.
[x] Fix the weird rarity values -> keeping them 10, 15, 20 makes sense and is logical. No reason to add 1 and 2's.
[x] HOE SCHEMATIC WEIGHT IS MILLIONS OFF base game has 4 forgero has 1
[x] gold should be looked at again. tools are very different.
[ ] Maybe good idea to streamline tooltip and remove all .0 values?
[ ] soft materials dont add weight -> on purpose or?

Soft material not adding weight was sortof done on purpose. Some of the weight values for heavier materials goes really low, so I didn't wanna add any extra cost of using soft materials. as they are generally considered inferior.


Added code for the program to convert given no to word in general question

Have you read the Contributing Guidelines on Pull Requests?
Yes
(Write your answer here.)
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
#861
The program to convert number in word format
Fill up the DCP form
If you are a part of DCP 21, fill up this form after the PR is merged.
The links provided in the form will be checked thoroughly, if someone tries fooling around, strict actions will be taken against the individual.

now check @noviicee


[Doc] capitalize command name for correct nav order

Why I'm doing: a few lowercase command names result in incorrect nav order
What I'm doing: capitalize all command names and update related links
Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@mergifyio rebase

@mergify backport branch-3.2


Contribution Documentation

Akhil Baddigham mentioned at the Sprint that there isn't clear documentation on how to contribute to the SEA.  He's RIGHT!  While we want people to collaborate there isn't a process for someone to make changes.
Need to outline what are the steps (potentially some commands) and how it gets reviewed and processed.
Start with Creating a Scratch Org

Create a New Branch and associate the issue to it
** Have a single issue per branch
Make changes
Commit to Branch
Create a Pull Request
Need to go through formal approval
Once approved by SEA Leadership, they will merge into Master

Complete the Metecho  documentation.
Working on the non-metecho process

Closing Issues - https://github.com/SFDO-Community-Sprints/Summit-Events-App/wiki/Contributing-to-Summit-Events
Could use some love, but the meat of how to contribute is there.


Transactions - Update Generic Receipts to use ReceiptBackground

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/28827
PROPOSAL: https://github.com/Expensify/App/issues/28827#issuecomment-1883819067
Tests

Click on FAB Request money
select a pdf receipt confirm and check the thumbnail is displayed properly in confirmation page
Create the request and Verify that the thumbnail is displayed correctly in report preview on the chat
Press on the preview and Verify that the thumbnail is displayed correctly in request preview
Press on the request preview and Verify that receipts are displayed correctly in money request view
On an existing distance request while offline change the distance and Verify that thumbnail is displayed correctly in MoneyRequestView

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

Offline tests

same
QA Steps

same

[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 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(theme.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 the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Hi @FitseTLT, could you complete the checklist? Thanks!

@mollfpr Completed! Good to go!
Only haven't uploaded android native videos; having build failed so will upload as soon as I finish 👍

@mollfpr

The banner position is not center
The thumbnail banner size and position constantly change while navigating the page back and forth (on timeframe 0:18 - 0:23)

This is related to the behaviour of dynamic icon layout based on the parent view layout of EReceiptThumbnail. I have changed it to be static in our case 👍 Should be fixed.

The thumbnail background color is changed after submit the money request

The color is decided randomly based on the transaction id. While it is in confirmation page the transaction id is draft id of 1 so it will get it's real id after the request is created, hence the change of bg color arises.

The file extension is gone after the request is submitted to the API (on timeframe 0:23 - 0:25)

It is related with BE changing filename of the transaction nothing related to this pr; same behaviour on main too.

Another issue I found, the transactionID seems missing passed to the ReceiptImage in the transaction report. Make the background thumbnail remain orange but change to the correct one on money request detail.
Screen.Recording.2024-02-02.at.21.14.58.mp4

@mollfpr I am not sure how to reproduce this, not happening for me. And we pass transaction properly for MoneyRequestPreview here
https://github.com/Expensify/App/blob/1f1b3dc30a35aaf0d16e5af97da582d1b43ba89d/src/components/ReportActionItem/MoneyRequestPreview.js#L184-L185

Reviewer Checklist

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

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

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

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

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

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] 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.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

[ ] 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

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

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

[ ] 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.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] 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.
[ ] If the PR modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label so the design team can review the changes.

[ ] 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.
[ ] 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.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@dangrous Sure! Testing it again now!

This screen here doesn't feel correct - the proportions feel off:

Can you provide static screenshots of all of these too so it's easier for us to review? Thanks!

On iPhone, the receipt appears to slightly jump around:

Initial load
Loaded

@FitseTLT Could you update your recordings with the latest commit?

Similar thing on Android - the icon is not centered:

Also, we're missing Android native screenshots?

@FitseTLT Could you resolve the conflict and update your recordings? Thanks!

@shawnborton I have updated the snapshots with the latest state of the PR. Only didn't include for natives b/c I am having trouble building but the result is the same.

Okay, please let me know once you have the native screenshots available! In the meantime, I'll create a test build for us.

@FitseTLT are you still having trouble with the native builds? I can try to build and grab the screenshots if necessary, or maybe @mollfpr are you able to help out?
And looks like we've got a couple merge conflicts too now.
Thanks!

@dangrous I just finished recording the smart scanning on PDF, HTML, DOC, an image, and money request on distance on all platforms. Just need to resize the video and upload it here.

Android

PDF
HTML
DOC
Image
Distance

mWeb/Chrome

PDF
HTML
DOC
Image
Distance

iOS

PDF
HTML
DOC
Image
Distance

mWeb/Safari

PDF
HTML
DOC
Image
Distance

Web Chrome

PDF
HTML
DOC
Image
Distance

Desktop

PDF
HTML
DOC
Image
Distance

Found an issue with the banner on the eReceipt MCCGroup. The banner is changing size on opening the transaction detail and back to the transaction report.
https://github.com/Expensify/App/assets/25520267/c395d361-510e-4269-8e61-8360442b038e

https://github.com/Expensify/App/assets/25520267/396e7738-2cd9-466a-8745-2a6664c858a2
Also, I found that the banner size in this PR is smaller than previously on the web. @shawnborton Should we align this? If yes, could you give the specific size for the banner? I can't inspect the banner size on the web, because previously we used an image for the whole thumbnail.

Also, I found that the banner size in this PR is smaller than previously on the web.

Yeah, can we just use what we currently have in the product? I don't think we should be changing the size of that receipt thumbnail here. You can make an expense with a image receipt and you should see what we'd expect as the outcome.
Also just want to cc @grgia for thoughts on this one as it touches the preview component, which I know you are working on.

It should not flash the sizing like that, so perhaps we can solve the bug by waiting a second before calculating the preview size. Let me know if that makes sense

@FitseTLT Could you fix the above issue and resolve the conflict? Thanks!

Any update @FitseTLT?

Conflict resolved. And about the resizing issue, thankfully it is already dealt with https://github.com/Expensify/App/pull/35499 So it is fixed 👍

LGTM we can proceed.
One last comment I have is to apply the resizing of the icon same as for EReceipt. I don't like the current status when there are multiple previews, here it is

It looks like this if we apply icon sizing same as EReceipt

Yup, and let us know when all of the final screenshots are updated so @Expensify/design can take another look for review as well. Thanks!

how are we looking @FitseTLT - are we good for final design review? Thanks!

@dangrous What do u think about https://github.com/Expensify/App/pull/34843#issuecomment-1942226576?

Yeah I think the smaller icon size is better, i think that's what @shawnborton was agreeing with too in https://github.com/Expensify/App/pull/34843#issuecomment-1942228790 though I'm not sure

Yup, that's right.

Great! So let's make that size update if you haven't already, deal with the merge conflicts, and update the final screenshots. Once that's done, can you tag design, and also @mollfpr give it another look?
I'd like to get this out on Monday or Tuesday of next week - thanks!

How are we looking @FitseTLT ? Do you think we can get this to @mollfpr (and design) for final review today? Thanks!

How are we looking @FitseTLT ? Do you think we can get this to @mollfpr (and design) for final review today? Thanks!

Definitely. On it!!

@shawnborton Snapshots are ready you can proceed with the review.
Also @mollfpr you can proceed with the final review and note that the ts-failing tests doesn't arise from the current pr 👍

Thanks @FitseTLT!

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/25520267/f86ce9b7-475e-4260-9013-8857f833fbc1
https://github.com/Expensify/App/assets/25520267/7bc21b0a-56a8-405d-906e-b30ea79f4bc5

Android: mWeb Chrome

https://github.com/Expensify/App/assets/25520267/7e572acf-759d-4bdc-86ae-b4123414ce48
https://github.com/Expensify/App/assets/25520267/d1c40272-323b-4e3e-87e1-468d8bf50acc

iOS: Native

https://github.com/Expensify/App/assets/25520267/71e1dc67-f00a-442c-8bdf-97f251f2a450
https://github.com/Expensify/App/assets/25520267/d1a87d5f-8d95-4c4a-9b77-7a9ae5c997be

iOS: mWeb Safari

https://github.com/Expensify/App/assets/25520267/3e21b281-9aa2-43c1-9f79-a372414269de
https://github.com/Expensify/App/assets/25520267/a616d542-530c-4db1-a709-0e9f89ad18ec

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/25520267/f608e654-d770-4934-9fbc-c58de15aa051
https://github.com/Expensify/App/assets/25520267/b0e38010-23d3-4546-9d29-2b3184ccc48d
https://github.com/Expensify/App/assets/25520267/582991a1-1dae-4d1c-aa31-9166aabf1895

MacOS: Desktop

https://github.com/Expensify/App/assets/25520267/8318da76-2453-4187-aaab-37845e9eb1b3
https://github.com/Expensify/App/assets/25520267/6801997a-e52d-4e98-9c81-06f736c71fdf

It looks like Android is missing our font and correct color for the "Doc" part:

Reminder of what we're going for here:

It looks like the HTML receipt is changing colors from gold to blue? Why is that?

Also notice how for a split second, the HTML label shows up without a receipt image behind it:

It looks like the HTML receipt is changing colors from gold to blue? Why is that?

Also notice how for a split second, the HTML label shows up without a receipt image behind it:

@dangrous I think you remember I raising I don't maybe to align with the current behavior, in case of Receipt Thumbnail we can make the EReceiptThumbnail color depend on file type instead of transactionID.

Also to clarify, I think we wanted the "Doc" part to always match the BG color of the receipt, right? Looks like it's always dark here:

@shawnborton Fixed!! Now it looks like

It looks like the HTML receipt is changing colors from gold to blue? Why is that?

In this PR, we dynamically get the background image colors depending on the transactionID. The first one you see on the IOU confirmation page, we don't have the transactionID yet, and it always returns the receipt colors to yellow (because it was the first item in the array of eReceiptColors).

Also notice how for a split second, the HTML label shows up without a receipt image behind it:

I think for a split second the background image is still fetched from the network.

@dangrous waiting your response on https://github.com/Expensify/App/pull/34843#issuecomment-1963613841

Yeah so @shawnborton that initial color is from before we use code to determine the randomized color of the receipt. There's not really a way around it that I can think of (since the randomization is based off of info coming from the backend). The other option would be to make it (similar to before) that any file of X filetype is always Y color? Like not randomize it, but have html files always gold, docs always blue, etc. etc.
What do you think?
Alternately @FitseTLT @mollfpr is there another part of the file we could use to randomize that would be consistent? The filename? The data itself? Something? Just an idea

Alternately @FitseTLT @mollfpr is there another part of the file we could use to randomize that would be consistent? The filename? The data itself? Something? Just an idea

I think, as we are dealing with Receipt thumbnails linking a thumbnail color with the file type is more informative instead of random colors for different transactions. But currently, when you create a request with DOC receipt the server converts it and sends back PDF this the current behaviour on main. So we would still have some change of color and label on server response 😠 .

Currently, on starting the request money we use the optimistic transactionID which is 1 before handing it to the API. If we can replace that with the transactionID sent to the API, we can get a consistent primary color for the background image. But after digging further it doesn't seem very easy to update that.
Also, the reason we set the optimistic transactionID to 1 on the initiation of request money flow is for easier to handle the transaction draft.
I like the @FitseTLT idea. The result will be similar to current production, and if we want to make it consistent all the way then we need the BE update where they can attach the original filetype of the scanned file.

@shawnborton (or @Expensify/design I guess) how do you feel about that? The initial plan was to randomize, but I think it makes sense to link it to the filetype (so an HTML file is always gold, a DOC always blue, etc. etc.)

@shawnborton (or @Expensify/design I guess) how do you feel about that? The initial plan was to randomize, but I think it makes sense to link it to the filetype (so an HTML file is always gold, a DOC always blue, etc. etc.)

I'm not against it, but I do kinda wanna hear what the other designers have to say (esp. Shawn since he was the OG designer of this).
I can see how it could make sense to color-code by filetype, but we don't really do any color-coding for transactions (as far as I know) so it feels kinda weird for one to random and one not to be.

I can see how it could make sense to color-code by filetype, but we don't really do any color-coding for transactions (as far as I know) so it feels kinda weird for one to random and one not to be.

Yeah, I'm with ya. Initially when I saw the designs for this I assumed that the color would indicate something consistently so in my head tying it to filesize makes sense.
What do we do for eReceipts? Are they also color coded? Feels like we should follow the logic there.
I don't feel super strongly. It mostly feels like a branding decision. If we want users to consistently be able to pick out a color in search results etc. then sure let's stay consistent. If we wanna spruce up the experience with colors, then let's random.
I'm sure @shawnborton has the answer 😅

What do we do for eReceipts? Are they also color coded? Feels like we should follow the logic there.

I believe eReceipts are random.
Basically I 100% agree with what you've said here:

It mostly feels like a branding decision. If we want users to consistently be able to pick out a color in search results etc. then sure let's stay consistent. If we wanna spruce up the experience with colors, then let's random.
I'm sure @shawnborton has the answer 😅

Haha, thanks for putting your faith in me! But I'm actually not sure that I have the exact answer here...
My main concern is just getting rid of the text color inconsistency. I don't feel too strongly so if sticking with one color per file type is easiest, I'm fine with that approach.

@mollfpr Updated to fixed color code depending on the file extension you can take a look 👍

Nice. Are those the only two file types we call out? HTML and DOC?

We don't support SVG types and here are the file type we support for receipts
https://github.com/Expensify/App/blob/a04481ffef2c60243c8c5680222a01a82e162916/src/CONST.ts#L65-L66
But as indicated in the

I have made it to fallback to the general thumbnail if it is not html or doc (no labels with green bg as it is the behaviour in current main).

Got it, maybe said another way, which types do we support but don't show a preview for?

also wanted to cc @Gonals in case you want to take over for DGR

also wanted to cc @Gonals in case you want to take over for DGR

I'm still checking in on this one - though good to have a back up

Oh! Hey!

Done a final refactor today 👍
Only Couldn't test for EReceipt (it would be lovely if U can tell how I can setup @mollfpr )
So please let's finish up on final review and get it done 🙏 🙏 🙏
@mollfpr @dangrous

Quick question to re-ask (from @shawnborton ) - what is our handling of each filetype right now? Are we showing the extension for all types that we support? Or just HTML and DOC? Which ones are we just showing a blank receipt?
Thanks!

Quick question to re-ask (from @shawnborton ) - what is our handling of each filetype right now? Are we showing the extension for all types that we support? Or just HTML and DOC? Which ones are we just showing a blank receipt?
Thanks!

We are displaying labels for HTML and DOC and for other allowed types just like the current behavior on main we are showing the generic-equivalent green background thumbnail with no labels.

Got it, maybe said another way, which types do we support but don't show a preview for?

Great, does that ^ answer your question @shawnborton ? Only showing the extension for HTML and DOC, blank for others. Is that what you'd expect?

Cool, that works for me!

sweet, then I think if @FitseTLT you can merge main to fix those conflicts, then @mollfpr we can get this into final review!

@FitseTLT For eReceipt you can follow this step https://expensify.enterprise.slack.com/archives/C01GTK53T8Q/p1705450786474319?thread_ts=1705450150.383239&channel=C01GTK53T8Q&message_ts=1705450786.474319

Conflict Resolved!! U are good to go for the final review @mollfpr 👍

Still working on finishing the recordings on all platform. It should be done in the morning.

Updated recordings for the latest test. cc @dangrous @shawnborton
Screenshots/Videos

Android: Native

DOC
https://github.com/Expensify/App/assets/25520267/2bd548a1-39f7-4ef4-b961-a36f11937156
HTML
https://github.com/Expensify/App/assets/25520267/afeb59d5-8ea7-4ed2-908c-0402ee3bd872
PDF
https://github.com/Expensify/App/assets/25520267/602a73d1-70f4-418e-8fc2-5f31c69246fd
Image
https://github.com/Expensify/App/assets/25520267/8bdee94e-93c3-4a75-bd4b-9a05d5756f07
Distance
https://github.com/Expensify/App/assets/25520267/1ff510cf-73e1-4dad-acff-c779afb39828
Manual Request
https://github.com/Expensify/App/assets/25520267/cd0f90d9-3641-4e48-9db7-a7cc6d74a347
eReceipt

Android: mWeb Chrome

DOC
https://github.com/Expensify/App/assets/25520267/782f6ed5-9c00-4bb4-88a6-3c781fd8beda
HTML
https://github.com/Expensify/App/assets/25520267/e19727b0-5250-4ef4-ae93-548b8c1f0460
PDF
https://github.com/Expensify/App/assets/25520267/0e2c0805-5787-4276-9334-40838d7b95a5
Image
https://github.com/Expensify/App/assets/25520267/f8963f04-5901-4f6e-933b-c3a486b655f2
Distance
https://github.com/Expensify/App/assets/25520267/dbba7cab-f4ea-4243-9c1e-251f01a33120
Manual Request
https://github.com/Expensify/App/assets/25520267/1bdd0575-2fb2-47f5-bda1-56acfcca4573
eReceipt

iOS: Native

DOC
https://github.com/Expensify/App/assets/25520267/bb89794a-d7f8-4352-b3dc-d965a2295172
HTML
https://github.com/Expensify/App/assets/25520267/cf17eb50-a413-47d7-b48c-29fc23c81965
PDF
https://github.com/Expensify/App/assets/25520267/5867cfb0-f7c0-4e12-b104-cfe1acd9240e
Image
https://github.com/Expensify/App/assets/25520267/0142bec3-f1b7-49f7-92ed-564199caac14
Distance
https://github.com/Expensify/App/assets/25520267/55c3a43f-afe0-4aba-adf7-c19f1b91d18d
Manual Request
https://github.com/Expensify/App/assets/25520267/307506eb-0dcc-467e-869f-4a9dba17064c
eReceipt

iOS: mWeb Safari

DOC
https://github.com/Expensify/App/assets/25520267/723488b6-1393-422d-bec9-7c0c9eee2f72
HTML
https://github.com/Expensify/App/assets/25520267/08107f13-1ded-4395-bf54-b61be2bf496a
PDF
https://github.com/Expensify/App/assets/25520267/4aece650-671e-488e-bcfa-0fce46990b0c
Image
https://github.com/Expensify/App/assets/25520267/ccf05fbe-a404-43f7-85d2-9b30915381b3
Distance
https://github.com/Expensify/App/assets/25520267/9d0a671d-3b77-4592-9cea-67d3839d9de4
Manual Request
https://github.com/Expensify/App/assets/25520267/270ef923-93bb-4393-8c51-2228fe95a702
eReceipt

MacOS: Chrome / Safari

DOC
https://github.com/Expensify/App/assets/25520267/2ca23679-e0ea-45f7-9333-8c304efda2f7
HTML
https://github.com/Expensify/App/assets/25520267/6205a034-2bb6-4e77-96a2-48f16e2af0d0
PDF
https://github.com/Expensify/App/assets/25520267/d878a704-1d35-4756-8f9e-467b30df11a2
Image
https://github.com/Expensify/App/assets/25520267/1bad3ef4-d4e9-4ba8-888f-937d5963ecce
Distance
https://github.com/Expensify/App/assets/25520267/e2605fd3-4cbb-44c7-a8e3-229388f52ebc
Manual Request
https://github.com/Expensify/App/assets/25520267/62e586e7-e98b-428c-82f0-714b9ab4e8bf
eReceipt

MacOS: Desktop

DOC
https://github.com/Expensify/App/assets/25520267/19793621-5b8a-4d76-97c6-668e77595729
HTML
https://github.com/Expensify/App/assets/25520267/b6ef0f83-5b68-472e-a188-62cdad514a09
PDF
https://github.com/Expensify/App/assets/25520267/53813fe3-7870-4c83-83de-a7c29c85224b
Image
https://github.com/Expensify/App/assets/25520267/5a1d4172-e80a-4d2d-96b2-eaaad003c925
Distance
https://github.com/Expensify/App/assets/25520267/3cc598c6-9f43-45f1-a2f3-66372c8847e1
Manual Request
https://github.com/Expensify/App/assets/25520267/e49e6c72-64e6-4b6c-b146-616a26d45f54
eReceipt

One thing that feels strange is that it feels like the receipt icon shape kinda changes between the various views, yet the text size always remains the same? I would expect this to always scale proportionally based on the view. So you can see across the various views below, it always looks slightly different. Can we normalize this a bit?
Confirm view:

Expense details view:

Expense preview:

Report preview, 2 thumbnails:

Also, can you share what this looks like when the report preview has 3 thumbnails? Thanks!

@shawnborton Here's 3 thumbnails.

I would expect this to always scale proportionally based on the view.

Is the text that scales proportionally?

Is the text that scales proportionally?

Yeah, exactly. So rather than implement this as true selectable text, I feel like it might be a better idea to implement the text as part of the receipt icon itself, if that makes sense.

Okay that looks more correct than what I'm seeing in the other screenshots above.

So rather than implement this as true selectable text, I feel like it might be a better idea to implement the text as part of the receipt icon itself, if that makes sense.

I believe this is what we have done, and in this PR we're trying to make the thumbnail receipt more generic.

I try to edit the font size in a couple of places. Currently, the text size is at 13px in all places.
Here's how I changed the font size to 16px. The receipt banner is at width 72px and height 100px.

Here's the receipt banner at width 46px and height 65px. The font size is 10px.

Here's the receipt banner at width 59px and height 82px and the font size is on the default 13px.

@shawnborton Let me know if this looks good for you.

Where are values like 10 and 16 coming from? I think we should follow our standard font sizes which are basically 9/11/13/15/17
So maybe in order of the screenshots you posted above, we try 15 for confirmation page, then 9 for multiple thumbnails, then 13 for the preview thumbnails (you currently have it at this value, so all good).

Where are values like 10 and 16 coming from?

It's just random value 😅

So maybe in order of the screenshots you posted above, we try 15 for confirmation page, then 9 for multiple thumbnails, then 13 for the preview thumbnails (you currently have it at this value, so all good).

This looks good to me!
@FitseTLT Could you try to implement this?

Where are values like 10 and 16 coming from?

It's just random value 😅

So maybe in order of the screenshots you posted above, we try 15 for confirmation page, then 9 for multiple thumbnails, then 13 for the preview thumbnails (you currently have it at this value, so all good).

This looks good to me!
@FitseTLT Could you try to implement this?

on it

@shawnborton Updated. Here is how it looks

I think that feels more consistent at least. Does anything happen if you tap on the receipt thumbnail area? I am guessing no right?

I think that feels more consistent at least. Does anything happen if you tap on the receipt thumbnail area? I am guessing no right?

Yeah! Nothing.

@dangrous I think we are good to go here 👍

This is looking great (outside of the new merge conflicts, sorry!)
One last question - is there a way to prevent selection of the text?

If not, that's okay, but I think we can probably make it non-interactable, right?

Great catch @dangrous . It would be nice to not have that label interactable

@dangrous Done!!

@mollfpr bump on ^
Let's get this merged before we get another conflict 🥲

Okay! Merging - thank you again!


etcdserver: v2api refactor

Splits out V2 operations similar to how it's done with V3. Eventually the interfaces could be implemented to use V3 storage instead of store.

Since it's refactoring, can we also change v3demo_server.go to v3_server.go with another commit?

lgtm. defer to @xiang90
thanks.

LGTM. Thanks. Much cleaner...

folded the v3demo_server rename into this pr; merging on greenlight


Allow definition of pretty names for authentication methods

This is useful for notifications
Show:

Instead of:

@damianlegawiec This is really good.

+1 we were just about to fork this gem and attempt to do the same for our store. Is there anything I can do to help? Thanks @artplan1!


file name as constant name

I have clean config.json without constant names. Only parameters. I don't want to see constant name in my config. Add parameter "constantName" or "nameFromFile" to ng-constant

Hi, I want to be sure I understand what you mean. Could you please add an example?
Thank you

Closing because of inactivity, if you have any questions feel free to open it.


Feature: Customize the lyric color and the UI font size of the app.

After trying version 3.0.0, I found that the lyric color was different from version 2.5.0. I was used to the color of 2.5.0, so I hope the app can support customizing the lyric color. Additionally, I noticed that the font size of the UI in 3.0.0 is much smaller compared to 2.5.0. I hope it can support customizing the font in the UI as well. Thx.
My system is ubuntu 22.04.

+1 or only allow changing the font color when dynamic theme is disabled


voyager maps

Laravel Version: #.#.#
Voyager Version: #.#.#
PHP Version:
Database Driver & Version:

Description:
how to create maps in laravel voyager admin and then how to display it on my website there is no option for maps in voayger docs
Steps To Reproduce:

Please do not open duplicate issues


acs-engine Docker Image Rework

This commit reworks Dockerfile.linux to make it more in-line with Docker
and Linux best practices.

Set entrypoint to acs-engine
Set default parameters to show acs-engine help
Set default ACSENGINE_VERSION to latest release
Remove unnecessary curl install
Remove unnecessary bash install
Use /opt/ as intall dir rather than root home
Newer version of alpine
Update README to use latest release version

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: apeschel sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Only the expand ImageView is shown on generated CardViews

I'm thinking this is an issue with the LayoutParams for the objects. Will try removing them for one to see if it has any effect.

Text now shows but there is an issue with ordering, should make it alphabetical and the expanding of cards is seemingly off and shifting items so that the card title below it is before it's table. Updating title


Fix for positioning when component resizes

This fixes an issue where the callout component is being positioned incorrectly because child components can be added/removed/shown/hidden after the callout is initially shown.
Last change. Thanks for creating this nifty component!

Sounds good.


Could not receive image data

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Steps to Reproduce
After restarting the containers yesterday, we encountered an issue where most of the jobs with labeled images are not accessible. The jobs were created simultaneously, and the images are located in the same folder, connected via a shared path. When trying to open some jobs, we receive the following error:
"Could not receive image data
<!doctype html>   Server Error (500)   Server Error (500)  ."
At the same time, the rest of the jobs are accessible and unaffected.
We are using CVAT Version 2.15.0.

Expected Behavior
No response
Possible Solution
No response
Context
No response
Environment
No response

If you created tasks from a cloud storage or the connected share, be sure the data are still available.

Please provide logs from cvat_server container at least

Facing similar issues. Have you been able to solve this?

Facing similar issues. Have you been able to solve this?

It was an issue with the connected share, and it was not mounted correctly.


Difficulty managing keep focus with async submit function

On submit, textinput starts to descend then returns to its initial place.
AnimatedPadding(
        padding: MediaQuery.of(context).viewInsets,
        duration: const Duration(milliseconds: 400),
        curve: Curves.decelerate,
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // Here photos widget button...
            Container(
              //some graphic element
              child: TextField(
                //cleared a lot of useless graphic element
                focusNode: _focusNode,
                controller: textEditingController,
                onSubmitted: (value) async {
                  setState(() {isLoading = true;});
                  await onSendMessage(textEditingController.text, currentUser.uid, 0, widget.currentGroup);
                  textEditingController.clear();
                  _focusNode.requestFocus();
                  setState(() {isLoading = false;});
                },
              ),
            ),
          ],
        ),
      ),

my hypothesis is :

input is submitted
the await method create a delay that makes the textfield starts descending.
then requestFocus is called, so the textfield return to its initial place.

I have no idea how to fix that, cause if I put the requestFocus before the await onSendMessage call, it simply doesnt work at all. (It loses focus after submitting).
thanks a lot for your help

@zebiiii
Can you check if this issue is similar to your use case ?
If not, can you provide a complete minimal reproducible code sample that we can directly use to run and verify ?
Also provide your flutter doctor -v.

@zebiiii Can you check if this issue is similar to your use case ? If not, can you provide a complete minimal reproducible code sample that we can directly use to run and verify ? Also provide your flutter doctor -v.

After a check, it is not, but thanks !
Here is a full code sample to reproduce this error.
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

//widgets

class MessageBuilder extends StatefulWidget {
  MessageBuilder({Key key}) : super(key: key);

  @override
  _MessageState createState() => _MessageState();
}

class _MessageState extends State<MessageBuilder> with TickerProviderStateMixin {
  TextEditingController textEditingController;
  ScrollController listScrollController;
  FocusNode _focusNode;
  bool isLoading;
  double width;

  @override
  void initState() {
    super.initState();
    textEditingController = TextEditingController();
    listScrollController = ScrollController();
    _focusNode = FocusNode();
    isLoading = false;
  }

  @override
  void dispose() {
    listScrollController.dispose();
    _focusNode.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    width = MediaQuery
        .of(context)
        .size
        .width;
    return Column(
      children: [
        Expanded(
            child: Container()
        ),
        SizedBox(height: 5,),
        AnimatedPadding(
          padding: MediaQuery
              .of(context)
              .viewInsets,
          duration: const Duration(milliseconds: 400),
          curve: Curves.decelerate,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Container(
                constraints: new BoxConstraints(
                  minHeight: 40.0,
                  maxHeight: double.infinity,
                ),
                width: width / 1.3,
                alignment: Alignment.bottomCenter,
                child: TextField(
                  keyboardType: TextInputType.text,
                  focusNode: _focusNode,
                  controller: textEditingController,
                  onSubmitted: (value) {
                    setState(() {
                      isLoading = true;
                    });
                    onSendMessage();
                    setState(() {
                      isLoading = false;
                    });
                  },
                ),
              ),
            ],
          ),
        ),
        SizedBox(height: 5,),
      ],
    );
  }

  void onSendMessage() async {
    await Future.delayed(Duration(milliseconds: 50));
    print("Message sent !");
    textEditingController.clear();
    _focusNode.requestFocus();
  }
}

Flutter doctor:

Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.3, on macOS 11.6 20G165 darwin-x64, locale fr-FR)
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3.2)
[✓] VS Code (version 1.61.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

Android isnt okay but i'm working with IOS so that's not a problem.

I do see the same behavior on iOS, ie, when we tap on done, the text field bounces. Is it a correct interpretation of the issue ?
If so, are you looking for the textfield not to bounce and be stable upon done ? For that, the white section at the background which has the text field, will need to be re-looked into, ie, its implementation.

I do see the same behavior on iOS, ie, when we tap on done, the text field bounces. Is it a correct interpretation of the issue ? If so, are you looking for the textfield not to bounce and be stable upon done ? For that, the white section at the background which has the text field, will need to be re-looked into, ie, its implementation.

Ok so I think about it and I think the best way to handle this is to not call the request Focus in the async function to avoid latency and bounces.
Like that
onSubmitted: (value) {
                    setState(() {
                      isLoading = true;
                    });
                    onSendMessage();
                    textEditingController.clear();
                    _focusNode.requestFocus();
                    setState(() {
                      isLoading = false;
                    });
                  },

However with this solution, it loses focus: the keep focus doesnt work and I don't know why.
(by the way thanks a lot for ur help)

You may check this document for further details on focus: https://docs.flutter.dev/cookbook/forms/focus


Connect info

Hello,
I am interested in your project.  I have been working in the blockchain space for 5 years.  Please email me at<EMAIL_ADDRESS>

There are many different blockchain solutions out there like Multichain, Hyperledger and many more.  We would need to use a Python SDK to connect to them.


Mm 22846 Forward messages

Summary
Previously called Share Messages.
Implements a Forward Message component to forward a post and share it with another channel. Builds on Permalink Previews.
Features:

[X] Forward message button
[X] Forward message modal
[ ] Select channel dropdown - partially complete (suggestions done, styling and selection is not)
[X] Private channel alert
[X] DM channel alert
[ ] Ability to forward the post
[ ] Modal height limits
[ ] Mobile
[ ] Tests

The permalink preview is currently clickable from the modal, which it should not be. The Forward button currently only checks whether the suggestion box is empty, not whether the selection box has a valid selection. The suggestion box may need to be replaced with a different dropdown-like component.
Ticket Link
https://mattermost.atlassian.net/browse/MM-22846
Screenshots
https://user-images.githubusercontent.com/38707101/145649888-89dc10dd-a0bb-43e0-8dcb-8ab9de9fad12.mp4

Release Note
Added a forward message component

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @aspleenic

Heads up that as part of our efforts to move to a monorepo, we're closing out a number of older pull requests like this one to help streamline the effort.
If you'd like to preserve these changes -- even if you're not the original author! -- feel free to resubmit the pull request against the monorepo once it's ready. You can subscribe to mattermost-server-issue-22420 for status updates on this effort.


Aitchison distance

It would be really great if we could include the Aitchison distance.
This is a compositional distance metric that is able to better detect compositional changes.
Here is an example of applying this distance to detect stress related changes where weighted unifrac completely missed.
PR coming up in the next few hours.

closed by #208


Are the methods PUT and DELETE supported?

no text

Thank you, @Peter-Donner  :)
That's going to be great

Aaahh!

Anyone have a fork with PUT/DELETE for both iOS & Android please?

I added them here...
https://github.com/Telerik-Verified-Plugins/SecureHTTP


Clarify "Maximum depth of object in device twin"

Could we get a clarification on what Maximum depth of object in device twin means?
We are successfully using the following structure for a device twin. I think the depth of this structure is 7, which seems to violate the rule Maximum depth of object in device twin=5.
  "properties": {
    "desired": {
      "SensorConfig": {
        "id": {
          "1": {
            "settings": {
              "storage": 0,
              "scalingFactor": 1

Or is the depth only calculated below "desired", so we have a depth of 5?
How about the metadata, that IoT Hub adds automatically? Do we need to consider this depth (which I think is 8 since each property gets a sub-property called $lastUpdated)?
      "$metadata": {
        "$lastUpdated": "2019-03-18T14:12:38.2265247Z",
        "$lastUpdatedVersion": 2,
        "SensorConfig": {
          "$lastUpdated": "2019-03-18T14:12:38.2265247Z",
          "$lastUpdatedVersion": 2,
          "id": {
            "1": {
              "$lastUpdated": "2019-03-18T14:12:38.2265247Z",
              "$lastUpdatedVersion": 2,
              "settings": {
                "$lastUpdated": "2019-03-18T14:12:38.2265247Z",
                "$lastUpdatedVersion": 2,
                "storage": {
                  "$lastUpdated": "2019-03-18T14:12:38.2265247Z",

My experiments show that trying to add a property below "storage" yields the following error message:
BadRequest:{ "Message": "ErrorCode:ArgumentInvalid;Property or Tag name should be maximum of 5 levels deep. Error in Property/Tag storage"
This seems to confirm that the depth is calculated with start at the Device twin path, which in our case is properties.desired.SensorConfig, and that the metadata is only affected indirectly (it will never have a depth of more than 6)

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

ID: 1cd57b6d-3c6f-e546-b3ea-f83892f4c23d
Version Independent ID: 27aecc7b-f107-96d4-b044-ae026bca2727
Content: Azure subscription limits and quotas
Content Source: articles/azure-subscription-service-limits.md
Service: billing
GitHub Login: @rothja
Microsoft Alias: byvinyal

@mfalkvidd Thanks for your question. We are checking on this and will respond to you soon.

@rothja Could you please verify this info and update us here. This might require inputs from PG.

@mfalkvidd Please check the documentation to understand how tags and properties defined along with the depth. Regarding your first structure, after desired the depth will be 4.
Do let us know if you have further questions.

@AshokPeddakotla-MSFT yes that documentation is clear. Maybe a reference to that documentation could be added to https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits ?

@mfalkvidd Sure, we will look into this. We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.

Will you remember to add a reference if this issue is closed?
The reason this issue was opened was that I was unable to find relevant information on the page referenced. That page is still lacking the information I asked for, so I wouldn't consider this issue closed.

@mfalkvidd I can work on adding that link for you. @AshokPeddakotla-MSFT, can you reopen this and assign it to me for tracking. Thanks, and sorry for the confusion.

@mfalkvidd I have updated links for two of the device twin settings including the one you mentioned. When this merges, this git issue will close. Thank you! @robinsh FYI.

Looks great, thank you!


HDFS-17443. add null check for fileSys and cluster in TestNameEditsConfigs#testNameEditsConfigsFailure before shutting down

Description of PR
This PR provides a fix for HDFS-17443 by adding null checking for fileSys and cluster before stopping them in the finally in TestNameEditsConfigs#testNameEditsConfigsFailure.
How was this patch tested?
The patch is tested via setting dfs.namenode.edits.dir.minimum to 251625215 and running org.apache.hadoop.hdfs.server.namenode.TestNameEditsConfigs#testNameEditsConfigsFailure, which would throw the correct exception.
For code changes:

[x] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[x] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 48s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+0 :ok:
detsecrets
0m  1s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
48m 56s

trunk passed

+1 :green_heart:
compile
1m 24s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
compile
1m 16s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
checkstyle
1m 14s

trunk passed

+1 :green_heart:
mvnsite
1m 26s

trunk passed

+1 :green_heart:
javadoc
1m 10s

trunk passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
1m 38s

trunk passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
3m 19s

trunk passed

+1 :green_heart:
shadedclient
40m 30s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m 13s

the patch passed

+1 :green_heart:
compile
1m 16s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javac
1m 16s

the patch passed

+1 :green_heart:
compile
1m  9s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
javac
1m  9s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m  3s

the patch passed

+1 :green_heart:
mvnsite
1m 14s

the patch passed

+1 :green_heart:
javadoc
0m 54s

the patch passed with JDK Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1

+1 :green_heart:
javadoc
1m 37s

the patch passed with JDK Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

+1 :green_heart:
spotbugs
3m 21s

the patch passed

+1 :green_heart:
shadedclient
40m 59s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
263m 58s

hadoop-hdfs in the patch passed.

+1 :green_heart:
asflicense
0m 43s

The patch does not generate ASF License warnings.

420m  8s

Subsystem
Report/Notes

Docker
ClientAPI=1.44 ServerAPI=1.44 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6683/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6683

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux ac825a748cd7 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 43ad78b613c1731ecd9dc410dfc9812183b6019e

Default Java
Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.22+7-post-Ubuntu-0ubuntu220.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_402-8u402-ga-2ubuntu1~20.04-b06

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6683/1/testReport/

Max. process+thread count
2727 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6683/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.


Clarify code snippets are in Python

Context: users did not realize the copy code snippets were in Python.
Within the Via API tab, update the copy snippet header to "Copy Python code snippet:" in the following locations:

Single Dataset -> Download Dataset
Single Run -> Download single tomogram
Single Run -> Download all annotations

QUESTION for design: should it be title case (current implementation) or sentence case (consistent with other tabs)?

cc @kandarpksk

FYI @Janeece for masterfile updates at some future point


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit 0182730:
:clock10: Pending: waiting for processors (15 builds ahead of you)
:warning: Docs Build is busy, currently there are 15 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 0182730:
:clock10: Full build: the average full build time is 7 min(s) 56 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 0182730:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


I am unable to run notebook file!!!!!

IndexError: invalid index to scalar variable.
I am getting this error when I try to run model code
Can you please the requirements file for that.

In the lines which gives you the error delete "[0]" in the wall_width variable assignment. I think in the recent libraries stast.mode(widths) in the mode attribute has only one element and not a list or a tuple

can you send me the requirements.txt file and the python version

I'm using python 3.11.8 and I installed the recent libraries needed without using any specific version


add Memory for VB.Net sample

add Memory for VB.Net sample

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: binh0001 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for making the additional changes, @binh0001. I'll merge your PR now. Let us know whether you'll open the PR to include the example in the What's New article in dotnet/docs, or whether we should open the PR.


Problem with enrichment of file details in commits

Your question? Please describe.
I seem to be getting no 'changes' object returned for commits (YAML Pipeline), when I drill down myself I do find the actual files being modified and the strange thing was, it was working this morning, but not any more, the produced markdown file is also empty
Extension Details
Azure DevOps (cloud) Generate Release Notes (Crossplatform):
version 3.1.7
HBS template
# Notes for build: {{buildDetails.buildNumber}}

**Build Number**: {{buildDetails.id}}

**Build Trigger PR Number**: {{lookup buildDetails.triggerInfo 'pr.number'}}

**Build Source Branch** - {{buildDetails.sourceBranch}}

**Build Name** - {{buildDetails.definition.name}}

**Build Reason** - {{buildDetails.reason}}

# Associated Pull Requests ({{pullRequests.length}})
{{#forEach pullRequests}}
{{#if isFirst}}### Associated Pull Requests (only shown if  PR) {{/if}}
*  **PR {{this.id}}**  {{this.title}}
{{/forEach}}

# Global list of WI ({{workItems.length}})
{{#forEach workItems}}
{{#if isFirst}}## Associated Work Items (only shown if  WI) {{/if}}
*  **{{this.id}}**  {{lookup this.fields 'System.Title'}}
  - **WIT** {{lookup this.fields 'System.WorkItemType'}}
  - **Tags** {{lookup this.fields 'System.Tags'}}
  - **Assigned** {{#with (lookup this.fields 'System.AssignedTo')}} {{displayName}} {{/with}}
{{/forEach}}

# Global list of CS ({{commits.length}})
{{#forEach commits}}
{{#if isFirst}}### Associated commits{{/if}}
* ** ID{{this.id}}**
  -  **Message:** {{this.message}}
  -  **Commited by:** {{this.author.displayName}}
  -  **Timestamp:** {{this.timestamp}}
  -  **FileCount:** {{this.changes.length}}
{{#forEach this.changes}}
      -  **File path (TFVC or TfsGit):** {{this.item.path}}
{{/forEach}}
{{/forEach}}

this.changes.length generates the error:
##[debug]Processed: ##vso[task.issue type=error;]Error Processing handlebars [TypeError: Cannot read property 'length' of undefined]

Redacted Pipeline Log
redactedlog.txt
Thanks for your help.

That I think is a bug, you are using the new compare between stages functionality in a YAML pipeline and on the path you are using it is failing to make the call to get the file name details.
I will fix it

Should be fixed in 6.2.2

Excellent, just checked and working as advertised in version 3.2.2.
@rfennell, thanks very much for the swift action, great extension!

Hi @rfennell I have to reopen this issue as I have exactly the same error message on version 3.3.10.
Can you confirm?

weird stuff, the error dissipated again. So all is fine.

I keep getting the same error. I've realized on the code for enrichChangesWithFileDetails that it checks if the URL has "dev.azure.com" for TfsGit but I'm on a private repository which uses another URL and then fails. I provided a githubPat as a parameter to it, but keep getting the same thing.
Get the file details associated with the commits
Enriched change 34434647a688ddd9c740acb7382d209e95c03de7 of type TfsGit
Cannot enriched as location URL not in dev.azure.com format

What should I do?

The enrichChangesWithFileDetails feature is only supported if you are using the https://dev.azure.com/<my org url format i.e not when you are using the old https://<my org>.visualstudio.com format.
For details on swapping between these settings see the Microsoft docs


too many parenthesis

IF ( destination IS INITIAL ).
can be reduced to
IF destination IS INITIAL.
like https://docs.abapopenchecks.org/checks/59/

errors should be reported for the following,
IF <field> IS INITIAL OR ( CONV string( <field> ) = '' ).
IF <field> IS NOT INITIAL AND ( CONV string( <field> ) <> '' ).
IF <rule>-regex IS NOT INITIAL AND ( <field> IS NOT INITIAL AND ( CONV string( <field> ) <> '' ) ) .

perhaps also add when paren around method call,
ls_applogin-total_minutes = ( cl_abap_tstmp=>subtract( tstmp1 = v_now tstmp2 = <fs_appinfo>-log_time ) ) / 60.
note that above is only boolean expressions, whereas this is a different type of statement

IF ( ls_t000-cccoractiv = '1' AND ls_t000-cccategory = 'C' ).

IF NOT ( foo = bar ).

added in 2.49.0, closing


Implement src/twitch/DMManager

Currently you can subscribe to channels but it does not send a DM. That needs to be implemented

See branch streamer-dms


WCO: compute window control container via CSS variables

Testing #226397
I'm not sure how new this is as it applies to Windows as well. I hadn't noticed until I was using a smaller monitor for Linux.
A good chunk of the blank space in the below image is not draggable.

I am pushing a workaround in https://github.com/microsoft/vscode/pull/226941 for now but the solution is not very good: we hard-code the window-control-container width to a value that probably works best for Windows and our custom controls, but we need to start using the related CSS variables for the real sizes: https://developer.mozilla.org/en-US/docs/Web/CSS/env#titlebar-area-x
One thing to note is that at least on macOS we have seen perf issues in the past when using these variables (https://github.com/microsoft/vscode/issues/165835), but maybe we can get away only using them on just Linux (and optionally Windows if we have to).
Moving out to September where we have to decide how we further polish this item.

Verification:

enable custom title on Linux
make sure layout controls are enabled in the custom title
make sure they appear right next to the (native) window controls


nodejs-express: appsody run creates a root owned node_modules in on dev host

Describe the bug
A clear and concise description of what the bug is.
appsody run causes a docker build, which causes a RUN npm install as root, which creates a node_modules on the dev host with root ownership. That root owned directory makes it difficult for the user to do things like install their app's dependencies.
To Reproduce
Steps to reproduce the behavior:
cloud-node/ex-ext2 % rm -rf node_modules
..... appsody run.... ctrl-C (or not)
cloud-node/ex-ext2 % ls -l
...
drwxr-xr-x  2 root root  4096 Nov 22 12:53 node_modules/
-rwxrwxr-x  1 sam  sam    506 Nov 22 12:49 package.json*
...
cloud-node/ex-ext2 % npm install --save lodash
npm WARN checkPermissions Missing write access to /home/sam/w/cloud-node/ex-ext2/node_modules
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /home/sam/w/cloud-node/ex-ext2/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/home/sam/w/cloud-node/ex-ext2/node_modules'

Expected behavior
A clear and concise description of what you expected to happen.
To be able add a new dependency to my project.
Actual behaviour
What is the actual behaviour.
It failed to do so.
Environment Details (please complete the following information):

OS: [e.g. iOS] Ubuntu 19.10
Version [e.g. 22]  Version of what?

If applicable please specify:

CLI version: 0.5.0
Stack you are using (including the version): nodejs-express current

I considered a USER node is needed before the RUN npm install in the user-app/ directory, but even that would create a node_modules with a uid != to mine. Perhaps the volume can be mounted in a way that uid mapping occurs? I'm not sure, does something similar happen in other stacks?

Maybe I should report this as a seperate bug, but is related. The npm install runs as root in the container, and since npm runs package-defined scripts, it has a protective mechanism to avoid running them as root, it drops its privileges to "nobody". This goes quite poorly when the package install has to write artifacts to disk, like every C++ addon does.
Reproduction:
appsody init nodejs-express
npm install modern-syslog
appsody run
cloud-node/ex-ext2 % appsody run
Running development environment...
Using local cache for image dev.local/nodejs-express:0.3.0
Running command: docker run --rm -p 3000:3000 -p 9229:9229 --name ex-ext2-dev -v /home/sam/w/cloud-node/ex-ext2/:/project/user-app -v ex-ext2-deps:/project/user-app/node_modu
les -v appsody-controller-0.3.1:/.appsody -t --entrypoint /.appsody/appsody-controller dev.local/nodejs-express:0.3.0 --mode=run
[Container] Running APPSODY_PREP command: npm install --prefix user-app && npm audit fix --prefix user-app
[Container] [..................] | rollbackFailedOptional: verb npm-session 42605430b3

[Container] ><EMAIL_ADDRESS>install /project/user-app/node_modules/modern-syslog
[Container] > node-gyp rebuild
[Container]
[Container] gyp WARN EACCES user "undefined" does not have permission to access the dev dir "/root/.node-gyp/10.16.3"
[Container] gyp WARN EACCES attempting to reinstall using temporary dev dir "/project/user-app/node_modules/modern-syslog/.node-gyp"
[Container] gyp WARN install got an error, rolling back install
[Container] gyp WARN install got an error, rolling back install
[Container] gyp ERR! configure error
[Container] gyp ERR! stack Error: EACCES: permission denied, mkdir '/project/user-app/node_modules/modern-syslog/.node-gyp'
[Container] gyp ERR! System Linux 5.3.0-23-generic
[Container] gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
[Container] gyp ERR! cwd /project/user-app/node_modules/modern-syslog
[Container] gyp ERR! node -v v10.16.3
[Container] gyp ERR! node-gyp -v v3.8.0
[Container] gyp ERR! not ok
[Container] npm ERR! code ELIFECYCLE

Some possible fixes for this:

do npm install --unsafe-perm: this means when the install runs as root, it stays root. This might be OK since the install is occurring in a container anyhow, maybe exploitation of the container's root user is not a concern?
run npm install as a non-root user, this might fix the other issue, where running as root is causing root-owned files to show up in the developer's account.

Reproduced by @skoh7645 , see https://github.com/appsody/stacks/issues/530#issuecomment-559735706
Apparently this is Linux specific, or possibly, "anything but minikube" specific.

This issue seems possible across different stacks. If so, it sounds like something that the appsody CLI itself should check-and-fail or workaround.
cc @neeraj-laad

@sam-github I'm curious to understand which stack are you using and why are node_modules created on the host?

@neeraj-laad name of the stack is in the issue title: nodejs-express  Are you not able to repro?
I'm not sure why it is created on the host, I assumed it was intentional, and it was only the permissions that were a bug.
The two lines of the Dockerfile-stack look like they might be responsible:
ENV APPSODY_DEPS=/project/user-app/node_modules
ENV APPSODY_PREP="npm install --prefix user-app && npm audit fix --prefix user-app"

Spent 20 min poking around, not sure, but the actual dependencies installed by npm install --prefix user-app do not show up on the host fs, so I suspect node_modules was somehow created before hand, somehow, before the volume mapping was setup. It should probably NOT be created on the host, its unnecessary. This issue isn't specific to Node.js, you must have seen #550

@neeraj-laad
It's because of the way the named volume is mounted.
appsody run does:
% appsody run
Running development environment...
Pulling docker image docker.io/appsody/nodejs:0.3
Running command: docker pull docker.io/appsody/nodejs:0.3
0.3: Pulling from appsody/nodejs
Digest: sha256:32bb268006b1607a534d76ca042018d46237273706b4a8c224db1afd7a725bfb
Status: Image is up to date for appsody/nodejs:0.3
docker.io/appsody/nodejs:0.3
Running command: docker run --rm -p 3000:3000 -p 9229:9229 --name ex-bug-dev -v /home/sam/w/cloud-node/ex-bug/:/project/user-app -v ex-bug-deps:/project/user-app/node_modules
 -v appsody-controller-0.3.3:/.appsody -t --entrypoint /.appsody/appsody-controller docker.io/appsody/nodejs:0.3 --mode=run

Using a chopped down version of the above, I reproduced using an ubuntu image that runs echo and exits, so its not anything that happens in the container while its running, see below:
// There is no node_modules
cloud-node/ex-bug % docker run --rm  -v /home/sam/w/cloud-node/ex-bug/:/project/user-app -v ex-bug-deps:/project/user-app/node_modules  ubuntu echo hello
hello
// the -v caused node_modules to be created, probably by dockerd, and apparently as root...
cloud-node/ex-bug % ls -ld node_modules
drwxr-xr-x 2 root root 4096 Dec 12 14:30 node_modules/
cloud-node/ex-bug % rm -rf node_modules
// If there is an existing node_modules, it isn't created, it just remains
cloud-node/ex-bug % mkdir node_modules
cloud-node/ex-bug % docker run --rm  -v /home/sam/w/cloud-node/ex-bug/:/project/user-app -v ex-bug-deps:/project/user-app/node_modules  ubuntu echo hello
hello
// Note the existing one didn't have its permissions changed
cloud-node/ex-bug % ls -ld node_modules
drwxrwxr-x 2 sam sam 4096 Dec 12 14:30 node_modules/

The first mapping -v $PWD:/project/user-app is necessary to cause the issue.
My theory is that the named volume ex-bug-dep that appsody created is mounted into the container as mount ... /project/user-app/node_modules , and mount usually mounts a FS over an existing directory, so when that directory doesn't exist, docker creates it, expecting it be created only in the container, as root, but because of the earlier mapping it ends up being created on the host FS.
The fix might be for appsody run to create the APPSODY_DEPS directory on the host before doing the docker run. It might also be possible to change how the deps volume is mounted into the container.

The DEPS volume was done after the USER_APP mount intentionally and from what I can recall the node_modules folder was not showing up on the host system - which is the behaviour we were after.
Something seems to have changed along the way with the CLI or with docker itself. Still investigating further.

Also, does this have any relationship to https://github.com/appsody/stacks/issues/593, APPSODY_USER_RUN_AS_LOCAL might be a fix for this.

Hi, so this is a blocker for:

https://github.com/appsody/stacks/issues/622
https://github.com/appsody/stacks/pull/713
https://github.com/appsody/stacks/issues/593
https://github.com/appsody/stacks/issues/530

(at least).
The problem is caused by the unfortunate interaction between a few docker behaviours, as used by appsody.

When docker -v is mounting from a volume into a container, and the target mount directory does not exist, the targer is created (as uid 0), and the volume is mounted to the target, so that the volume / ("root") is uid 0 owned. This happens even if the contents of the volume are not root-owned.

This is a deal-breaker for non-root containers. npm install (or any language specific attempt to install deps) will fail if it tries to create files in a uid 0 APPSODY_DEPS (if its not running as root).

When appsody mounts local host FS to /project/user-app, and then mounts the deps volume to /project/user-app/DEP, that target volume gets created on the host FS, as uid 0.

This is arguably only "cosmetic". It prevents the user on the host from installing any deps for their app, at least until they delete the root-owned DEPS folder.
These have an odd interaction, though.
docker -v VOL:/some/location doesn't always mount the root of VOL as uid 0... what it actually does is use the owner uid/git of /some/location, but only if it exists.
In appsody's case, it doesn't exist, so gets created as root, and thus, the volume is mounted as root, but it doesn't have to work that way.
I suggest 2 fixes:

If APPSODY_DEP is a sub-path of APPSODY_MOUNT, then it should be created on the host OS before run.
Before the controller is run, a chmod -R USER:GROUP should be run by appsody, to ensure that the deps volume has the correct permissions.

Or maybe there is another way around this, but without this fixed, I can't see a way to create a nodejs stack that runs as non-root in ***dev/test mode***.

So basically, the stack can either be certified, but not runnable in local dev by appsody, or not certifiable, but runnable in local dev.

I'm happy to be proved wrong! :-) If there is a way to use APPSODY_DEP and have its root be owned by the container user, would love to know.

Things I tried that did *not* work: using any combination of mount options with `--mount` to specify the desired permissions. See https://github.com/moby/moby/issues/21259#issuecomment-238024179 , docker has taken the stance that its our problem for not setting up the permissions of the mount target correctly.

@neeraj-laad  Simple non-nodejs reproduction: https://github.com/appsody/stacks/pull/739


Valibot Adapter

This PR contains a new validation library - Valibot

implement Valibot adapter for schema validation
ensure compatibility with existing validation interfaces

I also have questions:
Are additional tests needed?
Maybe I missed something or did something wrong?
What should be returned in case of multiple errors (valibot has pipe and returns an array of errors for each pipe step)? Currently I always get only first error message from array.
Valibot issues guide

Since the tests are passing, it looks like we're getting all the errors we need. If there's a specific case you're worried about, let's add a test case for that.

actually it isn't a problem because rvf requires a single string for error message
let's look at this schema:
v.pipe(
  v.string(), // should be a string | first we get this error
  v.minLength(3), // should be at least 3 characters long | then we get this
  v.endsWith('foo') // should end with `foo` | and finally we get this
)

some libraries can handle error messages array, so we can show all of then at once

Thank for the work you put into this!

@rvf/valibot is now published 🎉


GH-2134 avoid a copy in assertContains when actual is already a Collection

Check List:

Fixes #2134
Unit tests : NA (optimization)
Javadoc with a code example (on API only) : NA
PR meets the contributing guidelines

Following the contributing guidelines will make it easier for us to review and accept your PR.

thanks @mbaechler, just a minor comment.

We actually have the same issue for all the assertContains* methods. Do we want to address all of them in one go?

I would say all of them

@mbaechler would it be fine for you to cover also the other methods?

sorry, I won't be able to handle that for some time

Integrated thanks @mbaechler!


AWS Neptune Support

Is your feature request related to a problem? Please describe.
As AWS Neptune supports openCypher and Neo4j Bolt message specification version (4.0.0), I am trying to connect to AWS Neptune as below. However, I get "Wrong Version" in handshake. I also tried to use "bolt+s" and "bolt+ssc", but it is also failed.
$address = 'xxxx.com';
$port = 'port';
$conn = new \Bolt\connection\StreamSocket($address, $port);
// enable SSL
$conn->setSslContextOptions([
    'verify_peer' => true
]);
$bolt = new \Bolt\Bolt($conn);
$bolt->setProtocolVersions(4);
$bolt->build();

As I am not sure the configuration and connection are correct, I tried to connect to AWS Neptune via python and get the connection successfully:
from neo4j import GraphDatabase

uri = "bolt://xxxxxx.com:port"
driver = GraphDatabase.driver(uri, auth=("neo4j", "neo4j"), encrypted=True)

May I know is it supported to connect to AWS Neptune? Thank you very much.

I wanted to try it with AWS Neptune in past but I didn't get free access from Amazon and I'm not going to pay for it. Sorry

If you have interest to try with AWS Neptune, may you please leave an email that we can grant you the access of AWS Neptune? Thank you.

@vicki-bns that will be great. My email is<EMAIL_ADDRESS>I'll have time this Saturday to look at it if that is okay with you.

Hi @vicki-bns,
Thank you for your interest!
@stefanak-michal, please ping me your findings on the bolt driver and tell me if I need to create a PR on this.
Kind regards,
Ghlen

Hi @stefanak-michal , Sorry, we need some time to prepare another environment for that. The environment and access will be prepared before next Wednesday. We will get back to you as soon as possible.

Hi @stefanak-michal ,
My teammate sent an email to AWS to ask about the Bolt connection with PHP. AWS replied that there is some problem on handshake.
They changed the source codes in Bolt.php from
$this->connection->write(chr(0x60) . chr(0x60) . chr(0xb0) . chr(0x17));
$this->connection->write($this->packProtocolVersions());

to
$this->connection->write(chr(0x60) . chr(0x60) . chr(0xb0) . chr(0x17) . $this->packProtocolVersions());

After applying the changes, we can connect to AWS Neptune successfully.
Thank you for your interest to integrate with AWS Neptune :) !

@vicki-bns that is really interesting. thanks for feedback.
fyi https://neo4j.com/docs/bolt/current/bolt/handshake/

Great, thanks for the effort :)


1.0.1 No longer works with Objective C

Swift Struct isn't reachable in Objective C. Regift v1.0.1 removed the "public class Regift", so it no longer works with Objective C.
I'm new to swift, but is it possible to add a public class to the Regift.swift file that then calls the respective Regift struct so that we can make this useable in Objective C again?
Chris

I have started to create a helper function.

Something like this should work:
import Foundation
import Regift
public class RegiftHelper: NSObject {
private override init() {}
public class func createGIFFromURL(URL: NSURL, withFrameCount frameCounter: Int, delayTimer: Float, loopCounter: Int = 0) -> NSURL?
{

    let videoURL   = URL
    let frameCount = frameCounter
    let delayTime  = delayTimer
    let loopCount  = loopCounter    // 0 means loop forever

    let regift = Regift(sourceFileURL: videoURL, frameCount: frameCount, delayTime: delayTime, loopCount: loopCount)

    print("Gif saved to \(regift.createGif())")

    return regift.createGif()
}

}

For anyone looking to get Regift 1.0.1 working with an Objective C project, this is working for me:

Make sure you do this first:
http://stackoverflow.com/questions/24206732/cant-use-swift-classes-inside-objective-c

Create a new swift file in your Objective C project with the following contents:
////////////////////// Regift Objective C Helper Class /////////////////////
import Foundation
public class RegiftHelper: NSObject {
private override init() {}
public class func createGIFFromURL(URL: NSURL, withFrameCount frameCounter: Int, delayTimer: Float, loopCounter: Int = 0) -> NSURL?
{
 let videoURL   = URL
 let frameCount = frameCounter
 let delayTime  = delayTimer
 let loopCount  = loopCounter    // 0 means loop forever

 let regift = Regift(sourceFileURL: videoURL, frameCount: frameCount, delayTime: delayTime, loopCount: loopCount)

 print("Gif saved to \(regift.createGif())")

 return regift.createGif()

}

}
////////////////////// End of Regift Objective C Helper Class /////////////////////

Make sure you import the swift bridging header where you need to call the helper function:
#import "ProductModuleName-Swift.h"

Call your new helper function for Regift:

animGif = [RegiftHelper createGIFFromURL:videoURL withFrameCount:8 delayTimer:0 loopCounter:0];

I think I’m probably going to make Regift back into an @objc class again, since there isn't much value in it being a struct since we don't get value semantics. Hopefully I will get a chance to look at this in the next couple of days :)
Thanks for your feedback!

Don't think I will get a chance to look at this @Apptation, but I'm happy to accept a PR for it if you'd like it to be in master :). The main changes are to make Regift an @objc public class that subclasses NSObject, and to move the Constants struct to be private fields (and update the usages of these constants).
Feel free to reopen at any stage if you think more discussion is needed :)

I wasn't expecting you to add this in if you're switching the code back to a
public class
I've got regift up and running in Xcode7 with my objective c project, so I'm all
good 😀
Im happy to submit the change through a pull request, but if you're going to
change over to a public class anyway, it would defeat the purpose.
Thanks for your help. Ps. Regift is an awesome addition to my apps! Really
appreciate your work on it and making it public.
Chris
On Sat, Sep 19, 2015 at 2:21 AM, matthewpalmer/Regift
<EMAIL_ADDRESS>wrote:
Don't think I will get a chance to look at this @Apptation [https://github.com/Apptation] , but I'm happy to accept a PR for it if you'd like it to be in master :). The
main changes are to make Regift an @objc public class that subclasses NSObject, and to move the Constants struct to be private fields
(and update the usages of these constants).
Feel free to reopen at any stage if you think more discussion is needed :)
—
Reply to this email directly or view it on GitHub
[https://github.com/matthewpalmer/Regift/issues/18#issuecomment-141630271] .[https://github.com/notifications/beacon/AGsyPnWqegZOhfgJ55SdzgyLTdr7mxnOks5ozPZxgaJpZM4F_oYF.gif]

Ah sorry I meant that if you wanted obj c support in master, the best way to do that would be to submit a PR making Regift a public class, rather than adding the RegiftHelper class

Ahh yes. I can have a crack at it. That helper file was the first thing I've ever coded in Swift.
Ps, I've been trying to use Pods to install Regift, and all I ever get is this error:
[!] Unable to satisfy the following requirements:

Regift required by Podfile

Every other pod works fine.
I currently have Regift working as a Git sub module
Chris

On 19 Sep 2015, at 4:57 PM, Matthew Palmer<EMAIL_ADDRESS>wrote:
Ah sorry I meant that if you wanted obj c support in master, the best way to do that would be to submit a PR making Regift a public class, rather than adding the RegiftHelper class
—
Reply to this email directly or view it on GitHub.


Halidom implementation

Original issue
https://github.com/SapiensAnatis/DragaliaAPI/issues/77
What's here

Implemented the following /fort endpoints:

add_carpenter
build_at_once
build_cancel
build_end
build_start
levelup_at_once
levelup_cancel
levelup_end
levelup_start
move

What's NOT here

Two endpoints are still missing or partially implemented

get_multi_income: Haven't had time to figure this one out properly yet
set_new_fort_plant: No idea what it is supposed to do. It is called when the "Build" button is tapped, and occasionally crashes the Halidom if not implemented.

Notes

build_cancel has come erratic graphical behavior - the building completely disappears until the Halidom is reloaded. Works correctly otherwise.
I could not figure out how to obtain and subtract the user's Diamantium, so those parts currently have placeholders
Nice to meet you, I'm also on Discord :) Skazord#6728

It would be good to pull out the fort logic into a service, I think, and then could you add unit tests for that?
You could also add unit tests for the repository but I don't want to ask too much!
Once you've done that and addressed the few other nitpicks I had, I will be happy to merge this in :)