Interactive mode — Ask all questions first

What type of PR is this:
/kind feature
/area ux
What does this PR do / why we need it:
To improve user experience, the goal of this PR (and linked issue) is to ask users all questions first, prior to performing actions. For the reasons discussed here however, the Devfile download action cannot be delayed and still has to happen sooner.
Which issue(s) this PR fixes:
Fixes #5495
PR acceptance criteria:

[ ] Unit test

[x] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:
When ran interactively and a starter project selected, odo init should download the starter project after all interactive questions have been asked, like so (notice that the Downloading starter project ... action line is executed and logged after the last question):
~/work/tmp/empty-dir on ☁
❯ odo init
? Help odo improve by allowing it to collect usage data. Read about our privacy statement: https://developers.redhat.com/article/tool-data-collection. You can change your preference later by changing the ConsentTelemetry preference. Yes
The current directory is empty. odo will help you start a new project.
? Select language: dotnet
? Select project type: .NET Core 3.1
 ✓  Downloading devfile "dotnetcore31" from registry "DefaultDevfileRegistry" [2s]
? Which starter project do you want to use? s2i-example
? Enter component name: my-dotnetcore31-app
 ✓  Downloading starter project "s2i-example" [2s]

Your new component "my-dotnetcore31-app" is ready in the current directory.
To start editing your component, use "odo dev" and open this folder in your favorite IDE.
Changes will be directly reflected on the cluster.
To deploy your component to a cluster use "odo deploy".

level=error
level=error msg=Error: error updating LB Target Group (arn:aws:elasticloadbalancing:us-east-1:4[60](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/redhat-developer_odo/5553/pull-ci-redhat-developer-odo-main-v4.9-integration-e2e/1503460502062239744#1:build-log.txt%3A60)538899914:targetgroup/ci-op-cv0dqq6v-f22a6-gtzbk-aext/f5514d74fe3972ff) tags: error tagging resource (arn:aws:elasticloadbalancing:us-east-1:460538899914:targetgroup/ci-op-cv0dqq6v-f22a6-gtzbk-aext/f5514d74fe3972ff): TargetGroupNotFound: Target groups 'arn:aws:elasticloadbalancing:us-east-1:460538899914:targetgroup/ci-op-cv0dqq6v-f22a6-gtzbk-aext/f5514d74fe3972ff' not found
level=error msg=	status code: 400, request id: 3cc4c835-45cf-4f55-8b35-76955c321783
level=error
level=error msg=  on ../tmp/openshift-install-cluster-713260890/vpc/master-elb.tf line 71, in resource "aws_lb_target_group" "api_external":
level=error msg=  71: resource "aws_lb_target_group" "api_external" {
level=error
level=error
level=fatal msg=failed to fetch Cluster: failed to generate asset "Cluster": failed to create cluster: failed to apply Terraform: failed to complete the change

Looks like there was an issue related to the infrastructure setup.
/retest

/approve

/test v4.9-integration-e2e
infra problems

/retest
Looks like there was an error with the infrastructure, most likely unrelated to the changes in this PR:
...
[odo]  ✗  Failed to start component with name "mhpdfm". Error: Failed to create the component: Failed to sync to component with name mhpdfm: failed to sync to component with name mhpdfm: unable push files to pod: error while streaming command: error sending request: Post "https://api.ci-op-4k34bkiv-f22a6.origin-ci-int-aws.dev.rhcloud.com:6443/api/v1/namespaces/cmd-devfile-push-test744hmy/pods/mhpdfm-app-7ff477b7b6-r4z2x/exec?command=tar&command=xf&command=-&command=-C&command=%2Fprojects&container=tools&stderr=true&stdin=true&stdout=true": dial tcp: lookup api.ci-op-4k34bkiv-f22a6.origin-ci-int-aws.dev.rhcloud.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:56727-><IP_ADDRESS>:53: i/o timeout
...
Summarizing 2 Failures:
[Fail] odo devfile push command tests devfile is modified odo push (without -f) is executed when java-springboot application is created and pushed when Update the devfile.yaml, do odo push [BeforeEach] Ensure the build passes
/go/src/github.com/redhat-developer/odo/tests/helper/helper_cmd_wrapper.go:100
[Fail] odo delete command tests when a component is bootstrapped when component is deployed to the cluster in the namespace set in env.yaml which is not the same as the current active namespace [BeforeEach] when the component is deleted should have deleted the component
/go/src/github.com/redhat-developer/odo/tests/helper/helper_cmd_wrapper.go:100

/retest

@rm3l I went through https://github.com/redhat-developer/odo/issues/5495#issuecomment-1062984433 and, IIUC, we discussed prompting for the component name before downloading the devfile. But, for odo binary built using this PR, if I run odo init in an empty directory or a directory with source code, it still asks the component name at the end:

odo init in an empty directory
$ odo init
The current directory is empty. odo will help you start a new project.
? Select language: javascript
? Select project type: Node.js Runtime
 ✓  Downloading devfile "nodejs" from registry "DefaultDevfileRegistry" [3s]
? Which starter project do you want to use? nodejs-starter
? Enter component name: my-nodejs-app
 ✓  Downloading starter project "nodejs-starter" [667ms]

Your new component "my-nodejs-app" is ready in the current directory.
To start editing your component, use "odo dev" and open this folder in your favorite IDE.
Changes will be directly reflected on the cluster.

odo init in a directory with source code
$ odo init
The current directory already contains source code. odo will try to autodetect the language and project type in order to select the best suited Devfile for your project.
Based on the files in the current directory odo detected
Language: javascript
Project type: nodejs
The devfile "nodejs" from the registry "DefaultDevfileRegistry" will be downloaded.
? Is this correct? Yes
 ✓  Downloading devfile "nodejs" from registry "DefaultDevfileRegistry" [3s]
Current component configuration:
Container "runtime":
  Opened ports:
   - 3000
  Environment variables:
? Select container for which you want to change configuration? NONE - configuration is correct
? Enter component name: my-nodejs-app

Your new component "my-nodejs-app" is ready in the current directory.
To start editing your component, use "odo dev" and open this folder in your favorite IDE.
Changes will be directly reflected on the cluster.

@rm3l I went through #5495 (comment) and, IIUC, we discussed prompting for the component name before downloading the devfile. But, for odo binary built using this PR, if I run odo init in an empty directory or a directory with source code, it still asks the component name at the end:

@dharmit We concluded that the Devfile download action should happen sooner, as it serves as input for subsequent questions, like the default value prompted for the component name (contains the Devfile metadata name).
In this PR, only the starter project download action has been deferred till all questions have been prompted.

/lgtm

/test v4.10-integration-e2e

/lgtm

/test v4.10-integration-e2e

/test v4.10-integration-e2e

Infra issues.
/test v4.10-integration-e2e

/test v4.10-integration-e2e

/lgtm

OpenShift passed on IBM Cloud (Job 1017)
Kubernetes passed on IBM Cloud (Job 979)
/lgtm
/override ci/prow/v4.10-integration-e2e


CHEBI:167830, please check

Hi Adnan,
Please check CHEBI:167830, isorhapontigenin, as I need it for a Rhea reaction.
You can add a cross-reference to MetaCyc CPD-27168.
Best wishes,
Kristian

Now checked.


ListAppend : should there be ttype's ?

ASDL:
    | ListAppend(expr a, expr ele)

I'll be more expressive and explicit in Clojure, but wondered ... the list a has a ttype and the list e has a ttype. They must match, but should the ASDL say something about the ttype's here?

For now every expr node has a ttype. But stmt nodes do not have ttype. Since ListAppend is an stmt node, it does not have a ttype. It can have it, but for expr node the ttype is the type of the result, which often must be exactly the types of the arguments (such as BinOp). For ListAppend there is an extra semantic requirement that the ele and a must have matching ttype.

I'm going to invent a scheme whereby the fact that the types of ele and a must match is explicitly expressed in the type-system! This scheme is similar to Haskell's wherein, say, *a -> *a -> *b expresses the fact that the first two arguments must have the same type, whereas *a -> *c -> *b permits three different types. I think this kind of explicitness, outside the secret garden of verify, is valuable. It give the reader of the type-system itself the chance to reason about more propositions.


[BUG] [CRASH] shared array buffer

I have tried it in both Chrome Version 87.0.4280.66 (Official Build) (64-bit) and Firefox Version 80, however I get the below error

Browser Version: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36

Error Message : Uncaught RuntimeError: abort(OOM). Build with -s ASSERTIONS=1 for more info.

Call Stack : undefined

Same issues on FF 86 and Chrome 88.0.4324.192 with a 140mb 4k mp4. Worked however with a 1080p mp4, so I'm assuming it's just OOM because of pixel sizes?


Struggles

i am really struggling figuring out how this works, maybe it could have some preset ones for boss levels and/or normal levels, since i and probably some other people tend to find it easier to see how its done then copy it, or a video tutorial maybe, that, in my opinion would make it alot easier :D

If you open your game folder and go to the USTs folder, there should be a template that gets regenerated each time you launch the game. Use that. There are further instructions in it and make sure the .ust file in your pack isn't called template, otherwise it won't load

should i be removing all of the level sections im not using, i got super confused about clip sounds and if the global bit at the top should have the song/sound you want or the song/sound your replacing, if you dont mind could you go into further detail?

Ideally, yes. Remove any unused entry. You can also read the readme.md file
in the template folder. It should give a few instructions. As for global,
it's for anything you want that isn't covered by the regular system (non
music sounds basically). You technically can use global for music but it's
less convenient because you need to know the name of the audio clips
Le jeu. 4 janv. 2024, 01:16, pogdogpy @.***> a écrit :

should i be removing all of the level sections im not using, i got super
confused about clip sounds and if the global bit at the top should have the
song/sound you want or the song/sound your replacing, if you dont mind
could you go into further detail?
—
Reply to this email directly, view it on GitHub
https://github.com/ZedDevStuff/USTManager/issues/2#issuecomment-1876180174,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXO6VSVLZLTOXTLYMDY4OYLYMX7ILAVCNFSM6AAAAABBMEEJDOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZWGE4DAMJXGQ
.
You are receiving this because you commented.Message ID:
@.***>

Also I'm about to sleep so further questions won't be answered for a few hours

alright thank you, ill give it a shot


fix: add allow location access modal via QAB

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/50042
PROPOSAL: https://github.com/Expensify/App/issues/50042#issuecomment-2388040634
Tests

Click on FAB > Submit Expense > Scan > Upload a receipt > Choose a recipient > Submit
Here notice that "Allow location access" modal is displayed
Click on "Get It" option > The expense is created
Now click on FAB > then click on QAB > Upload a receipt > Submit
Verify that: "Allow location access" modal is displayed

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

Offline tests

same as above
QA Steps

same as above

[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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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 UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or 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 and/or tagged @Expensify/design 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

https://github.com/user-attachments/assets/e273a35e-0420-4ce4-b245-59c5066172cb

Android: mWeb Chrome

https://github.com/user-attachments/assets/811f9d7b-c386-41e8-9b16-b8e0f62b9092

iOS: Native

https://github.com/user-attachments/assets/d246862b-a738-4307-981e-f44bf9a02320

iOS: mWeb Safari

https://github.com/user-attachments/assets/df980cae-e46e-47c2-8d77-cc4d963ca9d1

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/0c9010c3-8f66-4acd-9e2c-c2247c9b83b7

MacOS: Desktop

https://github.com/user-attachments/assets/42874643-0c9f-42f0-a4e0-f9d494ab2870

Start on reviewing today

@DylanDylann I changed the steps in the OP because when the Not Now button is pressed the IOU.updateLastLocationPermissionPrompt() function will be called and will not show the LocationPermissionModal again for a while

https://github.com/user-attachments/assets/4eaca98f-a7be-420b-af6d-0537a6d500ab
@nkdengineer Allow location modal doesn't show in my testing. Because gpsRequired is null, could you please check again

@DylanDylann i fixed and tested well

Reviewer Checklist

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

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

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

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

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(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 UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or 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 and/or tagged @Expensify/design 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.
[x] 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

@nkdengineer Eslint error

Discover a bug on Safari (Not related to this PR, because it happens in every place using location permission on staging)
I am setting location permission for safari as "Ask"

But the App doesn't display a button to go settings page to update permission, currently onDeny is triggered even when users don't deny it
https://github.com/user-attachments/assets/d6877444-8616-41b3-b667-ee733802fd3a
This problem is caused by getLocationPermission function, this function doesn't distinguish the deny and ask location permission. But now, I can't find any way to fix this issue

Also, discover warning/error logs while reviewing: (already reported on Slack)

https://expensify.slack.com/archives/C049HHMV9SM/p1729075718314489
https://expensify.slack.com/archives/C049HHMV9SM/p1729162820446069

@DylanDylann Lint error is fixed.

@thienlnam Wdyt about this bug?

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

This PR is failing because of issue #51124

I can't reproduce this issue
@nkdengineer Could you take a look at this issue?


Procurement "Method not found"

[Error] Method not found: 'System.String POEApi.Model.POEModel.GetAccountName()'.
I'm a steam user and this is the message I get when I try to log in using my session ID.

It sounds like your Procurement installation did not extract properly. Download a new copy of 1.9.8-RC1 and extract all the files into a new folder to test.

Got it! thanks a lot.

No problem!


I can not find the file "myapp.log" at current directory

import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='myapp.log',
filemode='w')
logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')

Hello, thanks for the report. Sadly you're not the only one with this problem, and it has already been reported in #2572.
I'll close this one as a duplicate.


Page elements that have problematic or missing attributes

This one has an id attribute, but it is related to two different elements. I can't find anyway in Katalon to distinguish between them.


Missing DOI

The paper by Zaharia is missing a DOI.

Found a new citation for this that just came out a few months ago and added to the PR.


Provide async synchronisation methods

We now have an ability to run an async plugin, through
data CommandFunc resp = CmdSync (SyncCommandFunc resp)
                      | CmdAsync (AsyncCommandFunc resp)
                        -- ^ Note: does not forkIO, the command must decide when
                        -- to do this.

type SyncCommandFunc resp = forall m. (MonadIO m,GHC.GhcMonad m,HasIdeState m)
                => [AcceptedContext] -> IdeRequest -> m (IdeResponse resp)

type AsyncCommandFunc resp = forall m. (MonadIO m,GHC.GhcMonad m,HasIdeState m)
                => (IdeResponse resp -> IO ()) -> [AcceptedContext] -> IdeRequest -> m ()

So an async command function gets given a function to call in IO to return the IdeResponse, but is otherwise unconstrained.
The intention is that there can either be a single command function which can server as a dispatcher to other async processes, or the function can fork off a separate process to handle the request.
In either case we potentially have multiple processes running, all wanting to make use of information from the underlying project.
At the moment a PluginDescriptor is defined as
data PluginDescriptor = PluginDescriptor
  { pdCommands        :: [Command]
  , pdExposedServices :: [Service]
  , pdUsedServices    :: [Service]
  }

The Service type is not really defined an unused at this point.
The intention is that a Service can be used as a synchronisation mechanism, and can expose access functions that are specifically multiprocess aware.
So there would be a base service providing access to the underlying project, which would make sure that e.g. more than one command does not trigger ghc-mod to reconfigure the project.
The question is, how should a Service be defined in concrete terms.

I am not entirely sure I understand what Service is supposed to do. Here’s what I think about the synchronization methods we should provide:
I would like all commands to be run in a separate thread which means that they run in IO. This means that they need access to the state in IdeM somehow. Running in IO also means that by default they can’t mess up shared state (at least not as easily). We should then have some Channel or something else where plugins can send requests (which might simply be an IdeM a or a specific set of operations that we allow them to do) and then the main thread responds to that.
It might make sense to separate requests that modify the state and the requests that only read it. That way we can use some read-writer-lock to avoid blocking there as much as possible as this will become a bottleneck.

I think we should avoid complexity until we have a pressing need for it.

And a service could be access to the cached cabal config, dependency graph, that kind of thing.
Or even a synchronisation point to request a GhcMonad function to run.

On the one hand I agree that avoiding complexity is a good default, but on the other hand I really hate the fact that a plugin can block all of hie. But I suppose we need to have some synchronization so this is inevitable, at least if a plugin needs write access to the state, so you might be right that the complexity here is not worth it.

If a plugin blocks the whole of HIE it has a bug. Rather have it visible so it can be fixed, than buried in some internal process, invisible

Well it has a bug if it blocks infinitely. But it could also just take a fairly long time (1s is alreay quite a lot imho). Why shouldn’t another plugin be able to do things at the same time if it doesn’t require access to the same state?

I think by default a plugin should be sync, and only if it is known to be a hog we make it async.
So do the complex stuff only where it is needed.

Alright, I’m convinced. One thing to note is that a long running command (maybe something that watches for file changes) that requires access to the state (or wants to run something in IdeM for some other reason) can’t make itself async since it has no way to get access to the state at that point. But we don’t have such a command yet and for most cases it’s probably more useful to have a long running background process and small commands communicating with them in which case this is not a problem. So let’s worry about that when we have to.

This has been superseded, we effectively have this now.


fix: fix docker build error

#561  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MasterPtato and the rest of your teammates on  Graphite

@NathanFlurry should this be closed?


Rename multipleChoiceList to refinementList

Should we rename multipleChoiceList to refinementList?
One of the argument : singleRefine in multipleChoiceList allows you to do a list of refinements with only one possible refinement (like a list of radio buttons to select a shipping method).
So I guess multipleChoiceList is no more the best name now that we have the possibility to do a single refine.

:+1: for the renaming.

So .. we .. will .. rename it

WFM

Sound good too


Fix hashtag click has no affect when plugin LinkTooltip is registered

Summary
When a Plugin Tooltip is registered, any hashtag or channel link is rendered with a span inside of the anchor that is generated for the hashtag. The data-* attributes needed to handle the click of the hashtag are not present on the span, so the click listener does not properly process the click to open the RHS/search.
This PR passes the attributes to the LinkTooltip so it can include the data-* attributes on the span. I'm not sure if this is the most optimal solution, mainly because it duplicates the attributes in the DOM, though this is the cleanest solution I have found.
Here's the code for the click listener https://github.com/mattermost/mattermost-webapp/blob/7ad0d4090115512be9a1c36f1eb82cba3d8873da/utils/utils.jsx#L1569-L1575
Ticket Link
https://mattermost.atlassian.net/browse/MM-24761
https://github.com/mattermost/mattermost-server/issues/14499

/update-branch

Just to make sure I understand what's going on here, the problem we were running into is that the inner span is e.target in the click handler, but the data attributes are on the <a> tag that wraps it?
I would've initially thought that the click handler would go up through the DOM to try to find the data attributes, but the more I think of it, that doesn't allow the other components in the post text (like AtMention) to handle the clicks themselves, so this probably makes sense even if it is a bit of extra work that we have to do to make this specific case work.
This is a bit of rambling, but I just wanted to make my thoughts on this clear in case we ever have to come back to this in the future. Regardless of that, this looks good to me.

Just to make sure I understand what's going on here, the problem we were running into is that the inner span is e.target in the click handler, but the data attributes are on the <a> tag that wraps it?

@hmhealey Correct, well said. Passing the attributes along seemed like the least obtrusive way to solve this.

/update-branch

@hmhealey This solution doesn't work when there is more than one layer of elements beneath the anchor tag. This is the case when an emoji is inside of a hyperlink. In @jfrerich's plugin mattermost-plugin-bookmarks, we are using emojis to link to other posts. What do you think of the solution of traversing up the DOM a tree a limited number of times to see if we find a data-link etc. attribute in the parent nodes?
This situation is not the LinkTooltip situation but it involves the same logic of handling the data- attributes on-click.

@hanzei or @mickmister  I have a quick question on this.
The fix certainly works for the click event on hashtags 👍
But, I don't know how to regression test the link tooltip component of the demo plugin. With Demo plugin enabled, I don't see the tooltip when making a links as documented here https://github.com/mattermost/mattermost-plugin-demo/tree/master/webapp#link-tooltip Do I need to add the alt text myself to see the tooltip or should the demo plugin just place this tooltip on any link automatically?

@DHaussermann It doesn't say so in the README, but the link must contain www.test.com in order to render the tooltip for the demo plugin.


window.plugins.toast.showWithOptions doesn't work

When i install the plugin (cordova) and try to call this function it isn't recognized (window.plugins.toast.showWithOptions is not a function). Just show and those 6 other are only available. Tested on Android only.

How do you install the plugin, and which version do you get?

cordova plugin add...
version 2.0.4

I see now that the update is from 2.1.0+ so i should install specific version of the plugin.
Like this it gets v2.0.4, don't know why.

It throws "Class not fount" error in error call back . below is the code snippet im using.
var toast = function (mes,dur,pos) {
  window.plugins.toast.showWithOptions(
    {
      message: mes,
      duration: dur,
      position: pos,
      addPixelsY: -40  // added a negative value to move it up a bit (default 0)
    },function(){

    },function(e){
      console.debug(e);
      console.log('error');
    }

  );
};

//Function call
 toast('Toast Message','short','bottom');

Is there a Toast class in your project? Which platform is this? And which device/version.

Added the plugin cordova cli command , Im using it in 'Ionic' project . Device - Android 4.1

Is there a Toast.java class in your platforms/android/... folder? Perhaps try cordova prepare as well after adding the plugin.

Yeah its available in platforms/android/src/x-service/plugins/Toast.java
Did cordova prepare as well still the same .

Dunno then, if you can't figure it out feel free to send me your project at eddyverbruggen at gmail.

Ahh .. Mistake . i have been testing it on ionic --livereload mode .
It works perfect in device :+1:  :100:
Thank you for the wornderful plugin :)

Nice!


added @chigwell-school.org domain

Hi, please add my Institute, this is the main domain:
www.chigwell-school.org
and this is the domain we use for email addresses:
@chigwell-school.org
Here you can see the 2 year A-Level course in Computer Science:
https://www.chigwell-school.org/sixth-form/sixth-form-curriculum/
Thank you for your time!

@yanarp101 First stage of verification passed, official domain is chigwell-school.org as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@yanarp101 Thank you for your patience while waiting for a review and processing your request. Pull request merged.


While running 'make serve' Hugo seems to spit out a problem with the Page-files

I'm not experienced with Hugo. Can someone help me understand this?
hugo server --enableGitInfo --minify --bind=<IP_ADDRESS> --baseURL=http://localhost --port=1313 --appendPort=true --liveReloadPort=-1
Start building sites …
hugo v0.92.2+extended linux/amd64 BuildDate=2022-02-23T16:47:50Z VendorInfo=ubuntu:0.92.2-1
ERROR 2023/01/27 15:20:54 render of "page" failed: execute of template failed: template: _default/single.html:3:3: executing "_default/single.html" at <partial "head.html" .>: error calling partial: execute of template failed: template: partials/head.html:54:4: executing "partials/head.html" at <partial "mermaid.html" .>: error calling partial: "/home/samu/IT/Privat/quartz/layouts/partials/mermaid.html:2:13": execute of template failed: template: partials/mermaid.html:2:13: executing "partials/mermaid.html" at <.Page.Store.Get>: can't evaluate field Store in type page.Page
ERROR 2023/01/27 15:20:54 render of "page" failed: execute of template failed: template: _default/single.html:3:3: executing "_default/single.html" at <partial "head.html" .>: error calling partial: execute of template failed: template: partials/head.html:54:4: executing "partials/head.html" at <partial "mermaid.html" .>: error calling partial: "/home/samu/IT/Privat/quartz/layouts/partials/mermaid.html:2:13": execute of template failed: template: partials/mermaid.html:2:13: executing "partials/mermaid.html" at <.Page.Store.Get>: can't evaluate field Store in type page.Page
ERROR 2023/01/27 15:20:54 render of "page" failed: execute of template failed: template: _default/single.html:3:3: executing "_default/single.html" at <partial "head.html" .>: error calling partial: execute of template failed: template: partials/head.html:54:4: executing "partials/head.html" at <partial "mermaid.html" .>: error calling partial: "/home/samu/IT/Privat/quartz/layouts/partials/mermaid.html:2:13": execute of template failed: template: partials/mermaid.html:2:13: executing "partials/mermaid.html" at <.Page.Store.Get>: can't evaluate field Store in type page.Page
ERROR 2023/01/27 15:20:54 render of "page" failed: execute of template failed: template: _default/single.html:3:3: executing "_default/single.html" at <partial "head.html" .>: error calling partial: execute of template failed: template: partials/head.html:54:4: executing "partials/head.html" at <partial "mermaid.html" .>: error calling partial: "/home/samu/IT/Privat/quartz/layouts/partials/mermaid.html:2:13": execute of template failed: template: partials/mermaid.html:2:13: executing "partials/mermaid.html" at <.Page.Store.Get>: can't evaluate field Store in type page.Page
Error: Error building site: failed to render pages: render of "page" failed: execute of template failed: template: _default/single.html:3:3: executing "_default/single.html" at <partial "head.html" .>: error calling partial: execute of template failed: template: partials/head.html:54:4: executing "partials/head.html" at <partial "mermaid.html" .>: error calling partial: "/home/samu/IT/Privat/quartz/layouts/partials/mermaid.html:2:13": execute of template failed: template: partials/mermaid.html:2:13: executing "partials/mermaid.html" at <.Page.Store.Get>: can't evaluate field Store in type page.Page
Built in 193 ms

Ran into the same issue. Seems that Ubuntu has an old version of Hugo in its APT repository (0.92.2-1). This version does not support 'page.Store'.
You will need to install a newer version of Hugo to solve this issue. The version in the snap store is working fine for me (0.111.3).

Closing as answered


History (Michaela Ziegler, ahdis ag)

ch.fhir.ig.ch-rad-order#2.0.0-ballot /
The history page is missing the entry for the STU 2 Sequence (v2.0.0)
https://fhir.ch/ig/ch-rad-order/history.html
Michaela Ziegler, ahdis ag

Hi @oliveregger
The history (https://fhir.ch/ig/ch-rad-order/history.html) is missing the ballot entry (https://fhir.ch/ig/ch-rad-order/2.0.0-ballot/index.html)
STU 2 Sequence
2024-05-17, v2.0.0-ballot, STU 2 Ballot (missing)
STU 1 Sequence
2022-02-22, v1.0.0, STU 1 (listed)
2021-06-17, v0.1.0, STU 1 Ballot (listed)
Is this a problem in the publication process? How can we fix that?

The change is good.

@ziegm looks like the package-list.json in the ig folder was not updated during publication.
I updated package-list.json and history.html manually, need to check with the next publication cycle if it works automatically again.

@oliveregger as discussed, did not work automatically
https://fhir.ch/ig/ch-rad-order/history.html
In STU 2 Sequence the new entry is missing:
https://fhir.ch/ig/ch-rad-order/2.0.0/index.html


"'withUnsafeMutableBytes' is deprecated" warning

In v4.7, the following compilation warning appears with Xcode 10.2 and Swift 5:

AudioKit/Common/MIDI/AKMIDI+Sending.swift:273:16: 'withUnsafeMutableBytes' is deprecated: use withUnsafeMutableBytes<R>(_: (UnsafeMutableRawBufferPointer) throws -> R) rethrows -> R instead

Yeah, I know how to fix that but didn't get a chance to test it, so I'll commit the fix to develop now.

That should address the warning.


Update vlc.json

Updated from 2.2.0 to 2.2.1. I used the SHA 256 hash values for hash property.

Thanks :smile:


Bindgen-like support

GCC already has -fdump-go-spec=/-fdump-ada-spec options to write Go/Ada bindings for C/C++.
-fdump-ada-spec is implemented in c-family, so in the FEs; -fdump-go-spec is in the middle-end code, hooking into debug_hooks.

assign me to this issue for the 0day hack

Done.

unsign me from this issue. it is actually not a good first issue.


including bosque topic specification

Thank you for contributing! Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

There are already some projects in github for this language and there is no direct topic to associate it with.

https://github.com/jakalkhalili/Bsquit
https://github.com/bodiam/bosque-tic-tac-toe
https://github.com/ariya/awesome-bosque

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

I believe that the specific details of an individual.is based on the knowledge he or she has on computer software programs and sometimes it takes money

Question what's the best movie to watch fuzzy socks or aqua man

What's GitHub all about
On Apr 29, 2019 7:11 AM, "Justin Kenyon"<EMAIL_ADDRESS>wrote:

Merged #698 https://github.com/github/explore/pull/698 into master.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/github/explore/pull/698#event-2306819614, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AL5YCS6DU5RGBGSBW526SUTPS3625ANCNFSM4HI2ZJGQ
.

Question how do you start a bunny ranch too much information
On May 2, 2019 7:31 PM, "Frankie Regalado"<EMAIL_ADDRESS>wrote:

What's GitHub all about
On Apr 29, 2019 7:11 AM, "Justin Kenyon"<EMAIL_ADDRESS>wrote:

Merged #698 https://github.com/github/explore/pull/698 into master.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/github/explore/pull/698#event-2306819614, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AL5YCS6DU5RGBGSBW526SUTPS3625ANCNFSM4HI2ZJGQ
.


Made a Resources folder

AudioKit.plist didn't belong in Core Classes and the SoundFile bundle didn't look good in the top directory.

Cool, I'm sure we'll revisit some of that as we put the framework together.


[CVAT-M2] Oracles M2 API

Description

Changes for the new version of Human APP.
Please, do not merge before other services are ready for this.
Summary of changes

Updated webhook endpoints in oracles
Updated webhook events naming and contents
Updated tests

Specification: https://docs.humanprotocol.org/hub/human-tech-docs/architecture/components/exchange-oracle/standard
How test the changes

Related issues
Keywords for linking issues

@zhiltsov-max, Exchange oracle fixes:

Renamed task_id to assignment_id in the POST /webhook body when submission_rejected event occurs
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/core/oracle_events.py#L33
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/0cc7dfd825a387a6c9ef8b85daea08e0dfd40129

Return 401 instead of 403 when auth token is missing
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/authentication.py#L16
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/23cfef69b892dc67923568ca2e224f10ae557088

Added description and examples for JobsFilter::fields that will be displayed on swagger doc
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/exchange.py#L69
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/fdf65b03c631ad5179336d2f6f7eb11fc29beb79

Made GET /assignment query params optional
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/exchange.py#L263

Moved assignment_id from query params into request body (POST /assignment/resign)
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/exchange.py#L402
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/29d77c4177e03ef360ff548ec333be0f23771a3c

Fixed sorting
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/filtering.py#L84
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/95adede95bc069c309d0f86ec844420834c0315a

Fixed pagination
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/ca09ae2bca9d57ba9fa1490f652589ed4e04a482

Added missing updated_at in Job response
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/serializers.py#L55
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/d24cdb0fa29e8d3d7f49c45dd1a575f7f0f4ae95

Fixed missing reward_token in AssignmentResponse/JobResponse
https://github.com/humanprotocol/human-protocol/blob/fdf65b03c631ad5179336d2f6f7eb11fc29beb79/packages/examples/cvat/exchange-oracle/src/endpoints/serializers.py#L145
commit - https://github.com/humanprotocol/human-protocol/pull/2094/commits/29d77c4177e03ef360ff548ec333be0f23771a3c

Need to fix invalid updated_at filter in /job - it doesn't take into account children updates, while serializer does. Probably, it's better to update the parent objects on children updates instead of making complex DB queries in the list requests.

Please, remove .vscode folder.


Parallelize the server compute

Following up on this comment. This would be really helpful for those trying to scale, as any performance improvements are valuable :)

Not today, though it should be relatively straightforward to parallelize the server compute in a few places:
here
here
here

There are multiple ways to scale & parallelize.
If you want to get the lowest latency for a single query, we would need to parallelize the server compute.
However, if you need highest throughput (many queries) parallelizing inside individual queries likely does not help.

Yeah, I meant the first option - reducing latency for a single query. Any performance improvement would be valuable anyway.
Seems like it also could be a good first issue to tackle.


add GitHub CI workflow

Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

@sullis Very cool. Can Github Actions do everything that we're currently doing with Travis in a more integrated way (PR Validation and Releases?)
I'd really like every merged PR to automatically kick off a milestone release to bintray and Maven Central.

@blast-hardcheese I should be able to create multiple GitHub workflows.

ci.yml for PR validation
release.yml for publishing new artifacts to Maven central

I'll dig into the documentation and see what I can do for you! :)


docs: add 'required' info to estimateSize description

Addresses #121

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


micro: Show memory plan if preprocessor define set

Changes MicroAllocator to call GreedyMemoryPlanner::PrintMemoryPlan when
the TF_LITE_SHOW_MEMORY_USE preprocessor symbol is defined. The
motivation is to make it possible for developers to show the memory plan
without needing to modify TfLM source code.
TF_LITE_SHOW_MEMORY_USE is a new preprocessor symbol. It is not used
elsewhere.

Created issue #48605


Make sure to ignore() component instantiation.

I have a VM that was reading and setting some values during init(). The problem was, whenever those values changed later it was causing the parent component to rerender. The reason this was happening was because the parent component was still "listening" when the child component was initialized. The solution was to wrap my init() function in ObservationRecorder.ignore(...). I think RVM should take care of this for us.

I think it is working the way you describe - it appears only one component is listening at a time. I just think the child components are constructed during the parent render, so any "reads" which happen during construction/init are picked up by the parent.
https://gist.github.com/DesignByOnyx/e45696b579c762756c3bdf1093e8eb92

I just ran into another scenario where this was necessary - again during component instantiation.
In this case, I have a custom form component which has a "value" property. This property has a setter which reads certain properties and updates others. I was having a weird issue with my component where computed properties which were read during initial instantiation were never updated later. It was a really weird error and I can only describe the issues I was having as "head scratchers". When I wrapped the viewmodel instantiation in an "ignore" (inside RVM), all my problems went away and my component came back to life.

One thing to think about ... things that get created should not be “listenable” within an observation updating itself. I’ll explain more about this later. But I think this can be fixed without needing to call ignore.
Sent from my iPhone

On May 4, 2018, at 8:32 PM, Ryan Wheale<EMAIL_ADDRESS>wrote:
I just ran into another scenario where this was necessary - again during component instantiation.
In this case, I have a custom form component which has a "value" property. This property has a setter which reads certain properties and updates others. I was having a weird issue with my component where computed properties which were read during initial instantiation were never updated later. It was a really weird error and I can only describe the issues I was having as "head scratchers". When I wrapped the viewmodel instantiation in an "ignore" (inside RVM), all my problems went away and my component came back to life.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

fixed


MONDO hasExactSyn axiom DbXref points to an ORCID ID

Mondo term (ID Label)
Below screen shot is for one MONDO term: myotonic dystrophy MONDO:0016107; but I believe I have seen this during other terms' search in CENTree.

Bug/Typo/Error description
You could check if this bug exist in other terms. See my another related issue about dbXref in ExactSyn use (https://github.com/monarch-initiative/mondo/issues/8085). This probably a QC issue where the dbXref is not correctly parsed.
Your nano-attribution (ORCID)
0000-0003-2620-0345

@linikujp Thank you for submitting this issue!
In Mondo, an ORCID is an acceptable db-xref.
The ORCID is used to give credit to the requester of, in this case, the synonym. If additional db-xrefs are available, they will be added as well.
Please note that we are working on an automated pipeline to updated db-xrefs. Thank you!


Redesign to work across navigations

Hey hey hey. Sorry this was a while coming. But it was a tricky concept to get right. This should resolve some problems raised in:

https://github.com/srcrip/live_toast/issues/25
https://github.com/srcrip/live_toast/issues/9

State management
Originally, the functionality of the state management was very simple. There was one toasts list stored on the socket, and the flash messages, and that was pretty much that.
The problem that was raised in #25 and #9 was that this method did not work properly across page navigations. This is when you do something like this:
  def handle_event("toast", _payload, socket) do
    socket =
      socket
      |> LiveToast.put_toast(:info, "This is a toast event.")
      |> push_navigate(to: "/why")

    {:noreply, socket}
  end

In this situation, what happens is we add the toasts to the socket, but because a page nav happens immediately afterwards: we don't see anything.
What we would want to happen in this scenario is for the library to somehow know that a navigation is happening and pop a flash on instead, since flashes do work across navigations. Unfortunately, there is nothing built in to Phoenix that would allow our LiveComponent to know that a navigation is occurring.
There is a workaround however. What we can do instead is make put_toast always send both a toast and a flash, in the LiveComponent do this:

check if we received both a flash and a toast with the same content, on the same update. In this case we ignore the flash message, and just display the toast.
if we receive only the flash, well we just display the flash.

The latter is what would now happen when doing a navigation with put_toast, like in the snippet above. It complicates the scenario where we are not navigating however. In that case, we need to 'dedupe' the flash and toast in the LiveComponent. That code is kind of complicated in this update, but it appears to work ok.
Clearing the flash
There's one last wrinkle though. If we write out 'dedupe' logic, and simply do that, then on the next update we will get the flash message coming back. It's not enough to clear it from the LC's copy of our state. We need to remove it from the socket entirely. Luckily there is functionality to do this built in to Phoenix.
This was the part that held up this change for so long. The issue was, I didn't initially have a great conception of how to make this clearing of the flash happen only if we are not navigating (the opposite problem of the first case). Eventually a solution came to me. Instead of clearing the flash on the server, we simply send a message to the frontend, and have it send a message back to use to clear the flash. In theory if you had a bunch of messages come in at once you could maybe get a glimpse of a flash that should have been removed but in practice I think this works ok.
The reason this works is because in the case of us navigating, the JS on the new page will never receive this message, and so it renders the flash on the next page just fine.
The whole thing is a very specific confluence of factors that make it all work, but it seems to work ok and solve some of the initial problems satisfactorily.
Future workarounds
If in the future we get some kind of way to detect a navigation is ongoing or something, we could probably simplify this code and not have to do some of this. It's probably not going to happen though because updates in the LC stop as soon as a navigation starts. But perhaps there is some way I didn't think of to simplify further, or perhaps future changes will open up such an opportunity.
Also it's worth pointing out that these workarounds are only necessary to support the key feature of LiveToast that it works with both flashes and the new toasts added by the library. If you wanted to use a library that just added toasts, you wouldn't have to think about any of this, but you also wouldn't be able to just call one function (put_toast) and have it work in all circumstances (with and without navigations) and you wouldn't be able to unit test it in your tests as easily.
Other workarounds
One of the early attempts I took at this problem was to simply check on the socket the flag that gets set when we're navigating. I know I said earlier such a thing doesn't exist, but it does: it just exists on the socket. In the LC we don't have access to it.
However when we run the put_toast function, we can check if the socket has the navigation flag set, and then fallback to just sending a flash. The problem is if we do this the library is then dependent on the order which you call either put_toast or push_navigate. This only works if you call push_navigate before put_toast, and I wasn't happy with that caveat. The solution in this PR instead should work regardless of what order the two happen in, because it relies on the frontend to resolve things. Note that we could still add this check in to avoid a little unnecessary work if you do happen to call them in that specific order. I chose not to do that yet so that if there was any bugs in my code they'd be found quicker.
Testing
This does complicate the logic in the library a little bit more so I'd like some feedback from people using the library, if they could test this branch, before merging this in to main.

Using the latest on the redesign-to-work-across-navigations branch and so far it has been a drop-in replacement, except now toasts are working across navigations 👍


fix #3058 Excel Writer: inherit date format mask from ValueMeta

fix #3058 Excel Writer: inherit date format mask from ValueMeta

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Run mvn clean install apache-rat:check to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[x] If you have a group of commits related to the same change, please squash your commits into one and force push your branch using git rebase -i.
[x] Mention the appropriate issue in your description (for example: addresses #123), if applicable.

To make clear that you license your contribution under the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

[x] I hereby declare this contribution to be licensed under the Apache License Version 2.0, January 2004
[ ] In any other case, please file an Apache Individual Contributor License Agreement.

Is there still work to do here or is this ready for merge now?

Ciao Hans, no no more work to do with the exception of fixing the unit tests that on my side didn't worked. But this was before your changes


Added F# stub

It's just a stub and need to be expanded but I guess F# is one of the few language that was inexistant in the platform for now.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thanks @Sobert and congrats on your first contribution! 👍 👻


About year_list

Dear soledad921：
Thank you very much for sharing. I have a question, when you are processing the YAGO dataset,  I noticed that in Dataset_YG.py, you commented out the two lines of code:
104  #            for i in range(start,end):
105  #                 year_list.append(i)
I also think that the years between the start time and the end time should be counted in the year_list, but this will greatly increase the year_list, and it will also lead to a sharp increase in the effective facts in each year. What I want to know is, what made you add those two lines of code and then comment them out?

Dear soledad921：
Thank you very much for sharing. I have a question, when you are processing the YAGO dataset, I noticed that in Dataset_YG.py, you commented out the two lines of code:
104 # for i in range(start,end):
105 # year_list.append(i)
I also think that the years between the start time and the end time should be counted in the year_list, but this will greatly increase the year_list, and it will also lead to a sharp increase in the effective facts in each year. What I want to know is, what made you add those two lines of code and then comment them out?

this setting refers to HyTE. During generating the time list, they counted the number of mentioned years by only considering the start time and the end time.

Dear soledad921：
    According to the operating instructions provided by the README.md in the ATISE , I reproduced icews14/icews05-15 and found that the results are very different from the results you reported. Here are my results:
ATISE/icews14/5000epoch
Mean Rank: 450
Mean RR: 0.2869
Hit@1: 0.1712
Hit@3:  0.3294
Hit@5:  0.4193
Hit@10: 0.5356
ATISE/icews05-15/earlystop 2250epoch
Mean Rank: 587
Mean RR: 0.2082
Hit@1: 0.1155
Hit@3:  0.2347
Hit@5:  0.2980
Hit@10: 0.3984
TERO/icews05-15/earlystop 4000epoch
Mean Rank: 603
Mean RR: 0.1651
Hit@1: 0.0155
Hit@3:  0.2433
Hit@5:  0.3330
Hit@10: 0.4618
TERO/icews14/5000epoch
Mean Rank: 440
Mean RR: 0.2178
Hit@1: 0.0530
Hit@3:  0.3018
Hit@5:  0.4086
Hit@10: 0.5429
Please help me check where the problem is,
Best regards,Xiaojuan Zhao

Dear soledad921：     According to the operating instructions provided by the README.md in the ATISE , I reproduced icews14/icews05-15 and found that the results are very different from the results you reported. Here are my results: ATISE/icews14/5000epoch Mean Rank: 450 Mean RR: 0.2869 Hit@1: 0.1712 Hit@3:  0.3294 Hit@5:  0.4193 Hit@10: 0.5356 ATISE/icews05-15/earlystop 2250epoch Mean Rank: 587 Mean RR: 0.2082 Hit@1: 0.1155 Hit@3:  0.2347 Hit@5:  0.2980 Hit@10: 0.3984 TERO/icews05-15/earlystop 4000epoch Mean Rank: 603 Mean RR: 0.1651 Hit@1: 0.0155 Hit@3:  0.2433 Hit@5:  0.3330 Hit@10: 0.4618 TERO/icews14/5000epoch Mean Rank: 440 Mean RR: 0.2178 Hit@1: 0.0530 Hit@3:  0.3018 Hit@5:  0.4086 Hit@10: 0.5429 Please help me check where the problem is, Best regards,Xiaojuan Zhao

Dear Xiaojuan,
Thank you for your interest in my papers. I just reran these codes. After training TERO for 250 epochs, I got MRR of 0.55 on
validation set of ICEWS14. As far as i can remember, the whole training process might need about 2000 epochs (each epoch costs 5 sec) and the final result on test set would be the same as the result reported in the paper. I ran my codes on a single RTX2080 GPU device with pytorch 1.4.0 and cuda 9.1. But I think it would be okay to use a more recent pytorch
version if the versions of cuda and pytorch are compatible.
Hope this information could help you.
Best Wishes,

Dear soledad921：
I meet the same question as xjzhao001. I run the codes many times for ICEWS14 and ICEWS05-15 according to your Readme.md file, but the results are far worse than you have posted in your papers,  for both Atise and Tero. So I believe there is something wrong in the present version, and I hope you can update the codes.

Dear soledad921：
I meet the same question as xjzhao001. I run the codes many times for ICEWS14 and ICEWS05-15 according to your Readme.md file, but the results are far worse than you have posted in your papers, for both Atise and Tero. So I believe there is something wrong in the present version, and I hope you can update the codes.

Hi, Yunzi. Thank you for your concern. I also received an email from another guy saying that he met the same issue as you and xjzhao at first. But later he got the same results as ours later. Below is his reply:
Dear Mr. Xu:
Sorry for my late reply and thank you for your concern. I ran the code on another
machine and got the same results as reported in your paper. After that, I created a
new python environment in anaconda of my server and also got the same results as
reported in your paper.
| |
xuzhang
|
So I think the issue is from the implementation enviroment, not the code. For more details, you could also contact this guy via email (xzxz_zhang@126.com).

Thank you for your reply, I will check the environment and retry it.
---Original---
From<EMAIL_ADDRESS>Date: Tue, Dec 8, 2020 09:21 AM
To<EMAIL_ADDRESS>Cc: "yunzi-nudt"<616973073<EMAIL_ADDRESS>Subject: Re: [soledad921/ATISE] About year_list (#2)
Dear soledad921：
I meet the same question as xjzhao001. I run the codes many times for ICEWS14 and ICEWS05-15 according to your Readme.md file, but the results are far worse than you have posted in your papers, for both Atise and Tero. So I believe there is something wrong in the present version, and I hope you can update the codes.
Hi, Yunzi. Thank you for your concern. I also received an email from another guy saying that he met the same issue as you and xjzhao at first. But later he got the same results as ours later. Below is his reply:
Dear Mr. Xu:
Sorry for my late reply and thank you for your concern. I ran the code on another
machine and got the same results as reported in your paper. After that, I created a
new python environment in anaconda of my server and also got the same results as
reported in your paper.
| |
xuzhang
|
So I think the issue is from the implementation enviroment, not the code. For more details, you could also contact this guy via email (xzxz_zhang@126.com).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you for your reply, I will check the environment and retry it.
…
---Original--- From<EMAIL_ADDRESS>Date: Tue, Dec 8, 2020 09:21 AM To<EMAIL_ADDRESS>Cc: "yunzi-nudt"<616973073<EMAIL_ADDRESS>Subject: Re: [soledad921/ATISE] About year_list (#2) Dear soledad921： I meet the same question as xjzhao001. I run the codes many times for ICEWS14 and ICEWS05-15 according to your Readme.md file, but the results are far worse than you have posted in your papers, for both Atise and Tero. So I believe there is something wrong in the present version, and I hope you can update the codes. Hi, Yunzi. Thank you for your concern. I also received an email from another guy saying that he met the same issue as you and xjzhao at first. But later he got the same results as ours later. Below is his reply: Dear Mr. Xu: Sorry for my late reply and thank you for your concern. I ran the code on another machine and got the same results as reported in your paper. After that, I created a new python environment in anaconda of my server and also got the same results as reported in your paper. | | xuzhang | So I think the issue is from the implementation enviroment, not the code. For more details, you could also contact this guy via email (xzxz_zhang@126.com). — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you for your reply, I will check the environment and retry it.

I also send a new email to Mr. Zhang who successfully reproduced the results as mentioned. Hope he could tell us the difference between the two machines where he got different results or if the new python enviroment was the factor to make the difference? Once he replies to me, I will upload his reply. Hope it can be helpful to you.

Thanks for reminding me of the environment. I reproduced the results successfully. The main factor is the version of pytorch.
---Original---
From<EMAIL_ADDRESS>Date: Tue, Dec 8, 2020 09:46 AM
To<EMAIL_ADDRESS>Cc: "yunzi-nudt"<616973073<EMAIL_ADDRESS>Subject: Re: [soledad921/ATISE] About year_list (#2)
Thank you for your reply, I will check the environment and retry it.
I also send a new email to Mr. Zhang who successfully reproduced the results as mentioned. Hope he could tell us the difference between the two machines where he got different results or if the new python enviroment was the factor to make the difference? Once he replies to me, I will upload his reply. Hope it can be helpful to you.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks for reminding me of the environment. I reproduced the results successfully. The main factor is the version of pytorch.
…
---Original--- From<EMAIL_ADDRESS>Date: Tue, Dec 8, 2020 09:46 AM To<EMAIL_ADDRESS>Cc: "yunzi-nudt"<616973073<EMAIL_ADDRESS>Subject: Re: [soledad921/ATISE] About year_list (#2) Thank you for your reply, I will check the environment and retry it.  I also send a new email to Mr. Zhang who successfully reproduced the results as mentioned. Hope he could tell us the difference between the two machines where he got different results or if the new python enviroment was the factor to make the difference? Once he replies to me, I will upload his reply. Hope it can be helpful to you. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

Hi, Yunzi. Which versions of pytorch and cuda did you use at first and then?

At first, I tried the pytorch of 1.3.1, but the results were too bad.  Then I noticed you had modified the Readme.md file several days ago, and that you had added something about version control. So, I tried to rerun the codes with pytroch==1.4.0, and the results were as good as you posted in your paper.  The cuda version I used was 10.2.
------------------ 原始邮件 ------------------
发件人:                                                                                "soledad921/ATISE"<EMAIL_ADDRESS>发送时间: 2020年12月8日(星期二) 晚上7:11
收件人<EMAIL_ADDRESS>抄送: "616973073"<616973073<EMAIL_ADDRESS>主题: Re: [soledad921/ATISE] About year_list (#2)
Thanks for reminding me of the environment. I reproduced the results successfully. The main factor is the version of pytorch.
…
---Original--- From<EMAIL_ADDRESS>Date: Tue, Dec 8, 2020 09:46 AM To<EMAIL_ADDRESS>Cc: "yunzi-nudt"<616973073<EMAIL_ADDRESS>Subject: Re: [soledad921/ATISE] About year_list (#2) Thank you for your reply, I will check the environment and retry it.  I also send a new email to Mr. Zhang who successfully reproduced the results as mentioned. Hope he could tell us the difference between the two machines where he got different results or if the new python enviroment was the factor to make the difference? Once he replies to me, I will upload his reply. Hope it can be helpful to you. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
Hi, Yunzi. Which versions of pytorch and cuda did you use at first and then?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks again to your reply that really helps me a lot.
------------------ 原始邮件 ------------------
发件人:                                                                                "soledad921/ATISE"<EMAIL_ADDRESS>发送时间: 2020年12月8日(星期二) 晚上7:11
收件人<EMAIL_ADDRESS>抄送: "616973073"<616973073<EMAIL_ADDRESS>主题: Re: [soledad921/ATISE] About year_list (#2)
Thanks for reminding me of the environment. I reproduced the results successfully. The main factor is the version of pytorch.
…
---Original--- From<EMAIL_ADDRESS>Date: Tue, Dec 8, 2020 09:46 AM To<EMAIL_ADDRESS>Cc: "yunzi-nudt"<616973073<EMAIL_ADDRESS>Subject: Re: [soledad921/ATISE] About year_list (#2) Thank you for your reply, I will check the environment and retry it.  I also send a new email to Mr. Zhang who successfully reproduced the results as mentioned. Hope he could tell us the difference between the two machines where he got different results or if the new python enviroment was the factor to make the difference? Once he replies to me, I will upload his reply. Hope it can be helpful to you. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
Hi, Yunzi. Which versions of pytorch and cuda did you use at first and then?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.


Loading SERIES data

Hello, I'm fairly new with pynetdicom3 and DICOM it-self, inherited unfinished Django app loading data from PACS and maintaining them. My initial script looks like this and works, honestly don't understand it very deeply.
    try:
        server = ("_probably_secret_ip_", _probably_secret_port_)
        ae = AE(ae_title="_secret_title_")

        ae.add_requested_context('1.2.840.10008.1.1')
        ae.add_requested_context('1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>')
        addr, port = server

        assoc = ae.associate(addr, port)

        if not assoc.is_established:
            raise ValueError("Association with PACS server could not be established.")

        dataset = Dataset()
        dataset.QueryRetrieveLevel = "STUDY"
        dataset.StudyInstanceUID = ''
        dataset.PatientID = ''
       _more tags related to study_
        ...

        responses = assoc.send_c_find(dataset, query_model='S')

        studyList = []
        for status, dataset in responses:
            if status.Status == 65280:  # current Match is supplied, matches are continuing
               _data parsing into my db_
    except Exception as e:
        print(e)

    finally:
        assoc.release()

My problem is that I need to load additional SERIES data to certain STUDY, anyway my attempts to edit the script is working only partially, loading some tags successfully but failing to load other. Listing it below:
    try:
        server = ("_probably_secret_ip_", _probably_secret_port_)
        ae = AE(ae_title="_secret_title_")

        ae.add_requested_context('1.2.840.10008.1.1')
        ae.add_requested_context('1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>')
        addr, port = server

        assoc = ae.associate(addr, port)

        if not assoc.is_established:
            raise ValueError("Association with PACS server could not be established.")

        dataset = Dataset()
        #dataset.QueryRetrieveLevel = "SERIES"
        #dataset.StudyInstanceUID = studyid

        #dataset.SeriesNumber = ''
        #dataset.SeriesDescription = ''

        #status code 65281, if printed no additional attribute
        #dataset.ProtocolName = ''
        #dataset.OperatorsName = ''
        #dataset.StationName = ''
        #dataset.SequenceName = ''
        #dataset.RepetitionTime = ''
        #dataset.EchoTime = ''
        #dataset.BodyPartExamined = ''
        #dataset.FlipAngle = ''
        #dataset.SpacingBetweenSlices = ''
        #dataset.SliceThickness = ''
        #dataset.PatientPosition = ''
        #dataset.InversionTime = ''
        #dataset.ImageType = ''

        responses = assoc.send_c_find(dataset, query_model='S')

        studyList = []
        for status, dataset in responses:
            _parsing dataset_
    except Exception as e:
        print(e)
    finally:
        assoc.release()

Is there any issue with my script or am I using totally bad approach? my status.Status code changes to 65281 from 65280 when trying to get these tags, but I can't find the meaning anywhere.
Thanks for any help

Status codes should be converted to hex and the meanings are in DICOM standard part 4 (if service class specific) and/or part 7 (if DIMSE general). 0xFF01 (65281) means that the result is 'Pending' with some warnings, 0xFF00 is just plain 'Pending'.
The UID you're using is 'Study Root Query/Retrieve Information Model - FIND', so take a look at Annex C in part 4 of the DICOM Standard.
I don't actually have a lot of experience with the QR Service Class queries, but my understanding is the optional attributes that may be returned are highly dependent on the SCP implementation (i.e. you can ask but you're not guaranteed to get an answer, hence the 0xFF01 status). If you really need to know the element values you're probably better off requesting retrieval of the SOP Instances with the QR Service Class's C-MOVE or C-GET operations (or the Composite Instance without Bulk Retrieval SOP Classes if supported)

Thanks for response, I'm trying to use
responses = assoc.send_c_move(dataset, "MyAETitle", query_model='S')
instead of C-FIND but my Presentation Context is not accepted. This part of code is historical and I can't find meaning online anywhere, how should I change
ae.add_requested_context('1.2.840.10008.1.1')  ae.add_requested_context('1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>')
these numbers to insert correct context?

Thanks for response, I changed my requested context from '1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>' to '1.2.840.10<IP_ADDRESS>.<IP_ADDRESS>' and C-FIND to C-MOVE. Anyway I'm failing to load data because of unknown reason. There is not error message just this output as my dataset:
(0000, 0900) Status                              US: 42754 (0000, 1021) Number of Completed Sub-operations  US: 0 (0000, 1022) Number of Failed Sub-operations     US: 8 (0000, 1023) Number of Warning Sub-operations    US: 0 (0008, 0058) Failed SOP Instance UID List        UI: ['<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.1', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.4', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.5', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.6', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.7', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.8', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.9', '<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463.10']

I managed to get some info from server side.
2018-11-05 11:31:20 [17911]  NOTIFY: incoming connection on port 2450 from <IP_ADDRESS>:52688 2018-11-05 11:31:20 [17911]  NOTIFY: child process (RECEIVE:13) created [pid=22598] 2018-11-05 11:31:20 [22598]  NOTIFY: DICOM: association received (<IP_ADDRESS>:MYAETITLE -> ANY-SCP) [PYNETDICOM3_091:1.2.8<IP_ADDRESS>80043.9.38<IP_ADDRESS>] 2018-11-05 11:31:20 [22598]  NOTIFY: DICOM: selected peer: MYAETITLE 2018-11-05 11:31:20 [22598]  NOTIFY: DICOM: association acknowledged (max send PDV: 16370) 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: received C-MOVE request: 	  MsgID: 1 	  AffectedSOPClassUID: MOVEStudyRootQueryRetrieveInformationModel 	  Priority: 2 	  Data Set: Present 	  Move Destination: MYAETITLE 2018-11-05 11:31:21 [22598]  NOTIFY: C-MOVE SCP request identifiers: (0008,0052) CS [SERIES]                                 #   6, 1 Query/Retrieve Level (0008,103e) LO (no value available)                     #   0, 0 Series Description (0018,1030) LO (no value available)                     #   0, 0 Protocol Name (0020,000d) UI [<IP_ADDRESS>.4.1.204<IP_ADDRESS>.1.7435.697463] #  38, 1 Study Instance UID (0020,0011) IS [1]                                      #   2, 1 Series Number 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: requesting sub-association 2018-11-05 11:31:21 [22598]   ERROR: moveSCP: sub-association request failed: Failed to establish association 0006:0317 Peer aborted Association (or never connected) 0006:031c TCP Initialization Error: Connection refused 2018-11-05 11:31:21 [22598]   ERROR: moveSCP: startMoveRequest failed (Warning: SubOperationsCompleteOneOrMoreFailures) 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: C-MOVE SCP response 1 [status: Refused: OutOfResourcesSubOperations] 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: completed operations: 0 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: failed operations: 8 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: failed operations: 8 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: warning operations: 0 2018-11-05 11:31:21 [22598]  NOTIFY: moveSCP: warning operations: 0 2018-11-05 11:31:21 [22598]  NOTIFY: DICOM: association release 2018-11-05 11:31:21 [17911]  NOTIFY: child process exited [pid=22598 status=0]

Has the SCP been configured with the details for the move destination AE?


[stable/kube-state-metrics] add releaseNamespace option to restrict metrics collection to release namespace

What this PR does / why we need it:
Adds releaseNamespace option to override namespace option and set it to Release.Namespace
Since limiting kube-state-metrics to the release namespace is the main use case for the --namespace command argument, we should be able to achieve this without hardcoding a namespace in .Values.namespace
Users will still be able to specify a custom namespace using the namespace option
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

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

/ok-to-test


Fix convert table classpath (asutosh)

(cherry picked from commit 492e93314e9b83d5d68d10fdc5758a6edbd48ca8)

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3336/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3337/
Test PASSed.


Add "deb-devscripts" Dockerfiles for building packages

The intent here is that we can create from this a new dockercore/deb-devscripts image with a tag for each directory listed here.
The goal is to be able to consume this in our own build process in order to build proper, separate .deb packages for each distribution we officially target/support.
This will, for example, let us build our distro packages dynamically and thus properly support dynbinary in them and fix devicemapper issues with being statically compiled. :+1:

cc @jfrazelle

Since we're generating these, we can add more packages as necessary, but devscripts includes both build-essential and debhelper, so this covers the bulk of our bases.

For example, we'll probably want/need to add Go to this too, so that we can compile directly inside these environments, but that can come as a later improvement.

THIS IS AWESOME!

I'm wondering if "deb-devscripts" is too specific of a name; I'm thinking
maybe "deb-builder" would be better, especially as we add to this.

Updated to be deb-builder instead, and added a simple README.md we can use as the image description that explains a little bit about what this is.

To show that I've got a copy of all of these built successfully on my local box:
$ for v in */; do ( set -x; docker build $v ); done
+ docker build debian-jessie/
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM debian:jessie
 ---> 0e30e84e9513
Step 1 : RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> a0838342773f
Successfully built a0838342773f
+ docker build debian-wheezy/
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM debian:wheezy
 ---> c90d655b99b2
Step 1 : RUN echo deb http://http.debian.net/debian wheezy-backports main > /etc/apt/sources.list.d/wheezy-backports.list
 ---> Using cache
 ---> c454d226f770
Step 2 : RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 09282c73cbd1
Successfully built 09282c73cbd1
+ docker build ubuntu-debootstrap-precise/
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu-debootstrap:precise
 ---> d4e70be9441a
Step 1 : RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 8c565e9f6711
Successfully built 8c565e9f6711
+ docker build ubuntu-debootstrap-trusty/
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu-debootstrap:trusty
 ---> 6370e261ca45
Step 1 : RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> a4258c99c0d3
Successfully built a4258c99c0d3
+ docker build ubuntu-debootstrap-utopic/
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu-debootstrap:utopic
 ---> 37be21fd5b99
Step 1 : RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> c416fdcc7bca
Successfully built c416fdcc7bca
+ docker build ubuntu-debootstrap-vivid/
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu-debootstrap:vivid
 ---> 487eaaa950a4
Step 1 : RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 912ab15cc54c
Successfully built 912ab15cc54c

Closing for now while I make this more well-baked. :sunrise_over_mountains:


Allow configuration options for Postgres

The current implementation of the Postgres adapter establishes a connection using the default settings. It would be helpful if we could customize the options available in the Postgres driver. As things stand, there are two sets of options that can be configured:

The initialization options for the pg-promise wrapper
The options for the node-postgres instance available via pgp.pg.defaults.OPTION_NAME

To implement this, parse server can accept them individually as command line parameters/environment variable (the existing --databaseOptions option and a new option).
Alternatively, they can be combined into the existing --databaseOptions option with the convention that this option have a structure similar to:
{
  "pgpOptions": { },
  "pgOptions": { }
}

Of course, the keys could have more descriptive names. If we can decide on the preferable approach and the naming convention, I could take a stab at implementing this.

we have similar options for the mongodb adapter, I'll let you knock a first implementation.
I'd put both options hashes in the same databaseOptions wrapped for the sake of simplicity. What do you think?

Yeah, that would be my preferred way of implementing it as well. I'll get started with this then

@kulshekhar awesome that you're picking that up! Did you get a chance to test the adapter with a simple configuration?

I was able to create a class and fields using parse dashboard, if that's what you mean. I haven't done much else so far

Awesome!

It seems that the following format for the options would be more user-friendly:
{
  "host": "",
  "port": "",
  "...": "",
  "pgOptions": {}
}

This would have all the options offered by pg-promise at the first level. All the options offered by node-postgres could be under the pgOptions hash.
This is how I'm currently implementing it. Let me know if you want me to change this.

That looks good :)

@flovilmart
databaseOptions can by PostgresConfigParser.getDatabaseOptionsFromURI.
replace  ParseServer config databaseOptions for  pg initialization options.
var api = new ParseServer({
  databaseURI: databaseUri || 'postgres://Test:123@localhost:5432/Test',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',  // Don't forget to change to https if needed
  liveQuery: {
    classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
  },
  databaseOptions: {
    connect: function (client, dc, isFresh) {
      if (isFresh) {
        client.query('SET search_path = cust');
      }
    }
  }
});

PostgresClient.js

const parser = require('./PostgresConfigParser');

export function createClient(uri, databaseOptions) {
  let dbOptions = {};
  databaseOptions = databaseOptions || {};

  if (uri) {
    dbOptions = parser.getDatabaseOptionsFromURI(uri);
  }

  let pgp = require('pg-promise')(databaseOptions);

  const client = pgp(dbOptions);

  if (dbOptions.pgOptions) {
    for (const key in dbOptions.pgOptions) {
      client.pg.defaults[key] = dbOptions.pgOptions[key];
    }
  }

  return client;
}

@rendongsc I'm not sure what you mean. Is that an issue for you?

yes, it's about the use of databaseOptions


Feat: new ETH stake flow. Modal Kiln and Lido.

📝 Description
Implement new ETH stake flow, new modal
Kiln and Lido.

Stake bottom from account flow
Stake banner from receive flow (with not show more checkbox)

Details:

Flag provider configurable
Translation are needed
Account selected in provider iframe

Support new and old flag definition:

feature_eth_staking_providers:
{"enabled":true,"params":{"listProvider":[{"name":"Lido","minAccountBalance":0,"liveAppId":"lido", "supportLink":"https://support.ledger.com/hc/en-us/articles/4406882832401-Staking-ETH-in-Ledger-Live-with-Lido?docs=true"},{"name":"Kiln","minAccountBalance":32,"liveAppId":"kiln", "supportLink": "https://www.kiln.fi/" }]}}
feature_receive_staking_flow_config_desktop
{"enabled":true,"params":{"ethereum":{"enabled":true,"supportLink":"https://www.ledger.com/staking-ethereum", "direct": true},"solana":{"enabled":true,"supportLink":"https://www.ledger.com/staking/ledger-node/solana", "direct": false},"cosmos":{"enabled":true,"supportLink":"https://www.ledger.com/staking/ledger-node/cosmos", "direct": false},"celo":{"enabled":true,"supportLink":"https://support.ledger.com/hc/en-us/articles/5046374786333-Earn-rewards-with-Celo-CELO-in-Ledger-Live?docs=true", "direct": false},"osmo":{"enabled":true,"supportLink":"https://www.ledger.com/staking/staking-osmosis", "direct": false}}}

Only New flag definition:

feature_eth_staking_providers:
{"enabled":true,"params":{"listProvider":[{"name":"Lido","liveAppId":"lido", "supportLink":"https://support.ledger.com/hc/en-us/articles/4406882832401-Staking-ETH-in-Ledger-Live-with-Lido?docs=true"},{"name":"Kiln","liveAppId":"kiln", "supportLink": "https://www.kiln.fi/" }]}}
feature_receive_staking_flow_config_desktop
{"enabled":true,"params":{"ethereum":{"enabled":true,"supportLink":"https://www.ledger.com/staking-ethereum", "direct": true},"solana":{"enabled":true,"supportLink":"https://www.ledger.com/staking/ledger-node/solana", "direct": false},"cosmos":{"enabled":true,"supportLink":"https://www.ledger.com/staking/ledger-node/cosmos", "direct": false},"celo":{"enabled":true,"supportLink":"https://support.ledger.com/hc/en-us/articles/5046374786333-Earn-rewards-with-Celo-CELO-in-Ledger-Live?docs=true", "direct": false},"osmo":{"enabled":true,"supportLink":"https://www.ledger.com/staking/staking-osmosis", "direct": false}}}

❓ Context

Impacted projects:

LLD

Linked resource(s):

LLD - ETH staking button redirecting to banner for Lido and Kiln https://ledgerhq.atlassian.net/browse/LIVE-4668
LLD - Receive banner for Lido and Kiln https://ledgerhq.atlassian.net/browse/LIVE-4348

✅ Checklist

[ ] Test coverage
[ ] Atomic delivery
[ ] No breaking changes

📸 Demo
Basic modal

Receive modal

🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

The Lido and Kiln banners are slightly fuzzy and not as sharp as the rest of the app. Not sure why though 😕

The 'fuzziness' seems to be better depending on the screen and window size, so looks like nothing to do with this feature.

LGTM
wonderful


Running Keras in a multi-node/multi-machine environment

Has anyone tried running Keras at a larger scale, such as on a cluster or in an HPC environment? I have access to such an environment and would be interested to understand whether Keras can be used effectively in such an environment? Perhaps it would require using intermediate outputs stored on disk such as with joblib to break up the processing?

What sort of parallelism are you looking to do? Data parallelism would be very easy to setup. Model parallelism would require some changes.

I ran a derivative of the char-rnn successfully on our cluster via a PBS queue system, but only on a single machine with 16 cpu cores (we have no GPUs here yet). I would be interested to find out if it is possible to train a model on several nodes at once, but it might be that this is not supported by theano.

You can check out the Elephas project for Keras parallelization on Spark: https://github.com/maxpumperla/elephas

thanks, I will check it out!

Dear, sir, How to train a model on several nodes?@tleeuwenburg


real-world datasets

Hi,  the experiments are all  on synthetic data, is there a real PLL dataset?

Hi,
Current real-world PLL data are all tabular (see http://palm.seu.edu.cn/zhangml/Resources.htm) and CL is not applicable. So we didn't experiment with them.
Best


Avoid failing when an older version of cygwin is already installed

Fixes #121

I don't know if this is a good idea - changing the binutils has a good reason and continuing if this fails with a hardly visible warning might lead to all sorts of issues. Notably the current cygwin binutils leads to non reproducible failures of OCaml compilations (they fail randomly).
I would say the main issue is that I was busy the last few weeks and didn't have time to follow up on the CI failure reports I did receive.

@jfehrle : can you do me a favor: as it looks there is a new version of binutils in Cygwin - the old one was very severely broken - about every other build failed with some obscure assembler messages in OCaml builds (something that there was unexpected stuff at the end of an ASM file). Can you please do a few local builds (3 would suffice) to check if the new binutils work? You would have to remove the binutils patch from init_cygwin_fixes.sh.
Your PR I will reject - it is really a bad idea to continue if these patches fail and the scripts are sufficiently complicated that it doesn't make a lot of sense to put in concrete error messages for everything. It is sufficient if maintainers know why things fail. It is a explicit design decision that the scripts rather fail before they do something possibly unreproducible.