Usage of environment variable expansion on command field of FlyPie elements

The Motivation
It could be useful if inside the command field of a FlyPie element it is possible to use environment variables to be expanded in order to make calls to these elements more general purpose. For example, I'm using Kitty terminal and I would like to call a CLI tool and, after the call, keep the terminal opened. For doing it, I can use the following command inside the "Command" field:
kitty /usr/bin/bash -c "nmap;/usr/bin/bash;"

This command will open Kitty terminal for running Nmap tool and then keeping the terminal shell by calling Bash.
In case I would like to change the Shell of my system, for example I would like to use Fish or Zsh shell, a general purpose solution could be using $SHELL environment variable. So, our command will be:
kitty $SHELL -c "nmap;$SHELL;"

In this case, I get the error:
Failed to launch child: $SHELL
With error: No such file or directory
Press Enter to exit.

It means that the first $SHELL variable is not expanded (even if I use double quotes around it). Only the environment variables inside the -c arguments are expanded according to other tests.
Is it possible to improve FlyPie in order to expand environment variables written in Command field?
The Solution
What I expect from the solution is that the environment variable is expanded. For example, if I use Zsh as shell, and in the Command field I have:
kitty $SHELL -c "nmap;$SHELL;"

It should be run like kitty /usr/bin/zsh -c "nmap;/usr/bin/zsh;".
The Alternatives
A current alternative solution is a little uncomfortable because it is a script that detect the kind of current new Shell, for example fish, then
dconf dump /org/gnome/shell/extensions/flypie/ > ~/temp.txt
sed -i 's/zsh/fish/g' ~/temp.txt
dconf load /org/gnome/shell/extensions/flypie/ < ~/temp.txt
rm -rf ~/temp.txt

Hi there! Sorry for the late reply... (I was busy learning RUST to create a new RSS reader :wink:). I am not sure if there is an easy way to add environment variable expansion there. However, you may try to wrap your entire command in a /bin/bash -c .... This way, bash will expand the variable. For me, this does work as expected (it runs glxgears in a newl opened terminal using zsh in my case):
/bin/bash -c "gnome-terminal -- $SHELL -c glxgears"

Sorry for my ignorance, but doesn't this wrapping solve your issue? bash is only invoked to expand the $SHELL variable; inside of kitty the user's shell will be used. So the full command would be
/bin/bash -c 'kitty $SHELL -c "nmap;$SHELL;"'

I just tested this and it does work nicely...

Sorry for my ignorance, but doesn't this wrapping solve your issue? bash is only invoked to expand the $SHELL variable; inside of kitty the user's shell will be used. So the full command would be
/bin/bash -c 'kitty $SHELL -c "nmap;$SHELL;"'

I just tested this and it does work nicely...

The wrapping worked well. What I would like to have is the following:
kitty $SHELL -c -c "nmap;$SHELL;"

because if the user, during the installation of my system, chooses zsh as shell, FlyPie should have the following command:
kitty /bin/zsh -c "nmap;/bin/zsh;"'

because if the user chooses zsh, bash will be uninstalled from the system. If it is not clear, I can reach you on Matrix

Ah, I see. So the problem is that bash is not available anymore if the user chose another shell. But some basic shell should be available on the system, shouldn't it? The same command works with /bin/sh which should be installed, I guess? Else nearly no shell scripts would be working. Most of them will use either #!/bin/sh or #!/bin/bash...
PS: For learning RUST, I am currently primarily using this and that 😄.

Yes it is right. I didn't think about /bin/sh and I think it could fit well with my needs. Thank you also for the RUST links ^^


Use flow_rate rather than discharge in TabulatedRatingCurve

A breaking change, but this is more consistent. Fixes #983.

Talking semantics...:
Is there a reason to prefer flow_rate over discharge? You've currently replaced all discharge -> flow_rate, but why not flow_rate -> discharge?
discharge has the benefit of not having an underscore. Otherwise they seem interchangeable.

This use of discharge as a column name predates the use flow_rate in the other tables. I went for discharge since it is used in e.g. https://en.wikipedia.org/wiki/Rating_curve.
I think discharge is more often used in the sense that some flow comes out of some confinement (like an upstream reservoir for a weir), so it seems to me flow_rate is a bit more general. Though I feel both would be fine.

I had do some thinking about it: it feels more natural to speak of negative flow_rates rather than negative discharges, which I guess relates to your comment "out of confinement" which has a high to low pressure kind of assocation (and hence an implied positive direction).
I think this is the strongest argument: since discharge is "outwardly" coded, it's confusing when an external boundary would have a positive discharge which flows into the model; I think relatively many people would expect it to act as an outflow instead.
Flow rate "feels" more abstracted and it's easier to apply the consciously apply the rule "positive is inflow, negative is outflow" (at least I'm hoping we're following that rule consistently...).


obsolete labyrinthine dysfunction

closes #389

It looks like this has been taken care of - the term MONDO_0003571 'labyrinthine dysfunction' was obsoleted with two considers one to the parent mondo, the other to HPO.
I added a comment to justify the obsoletion.


GVRScene.toString() does not return?

It appears that GVRScene.toString() does not return when tested from the debug server (JS command "print(gvrf.getMainScene())"

Calling the native getCameraRigType throws; fixed by https://github.com/Samsung/GearVRf/pull/697

Fix merged.


[C++] Release the unused spots of pending message queue

Motivation
If messages were sent in batch, every single message would reserve one spot of producer's pending message queue, but only one batched message would be pushed to the queue. Therefore there may exist many unused spots when ProducerQueueIsFull happened.
Besides, if a message was too big or failed to be encrypted, sendAsync failed immediately but the reserved spot won't be released.
Modifications

Add a bool return value to BatchMessageContainer::sendMessages to indicate whether the batched message was pushed to producer's queue.
Add a bool return value to BatchMessageContainer::add to indicate whether the reserved spot should be released. The spot would be retained only if the first message was batched and not sent immediately. The spot would be released when the batched message was pushed to the queue.
Test sending a batch with a 2-spots pending message queue, one spot for storing the batched message, another spot for preventing ProducerQueueIsFull error.
Test after all batched messages being sent, whether the reserved spots of producer's queue were  0.

Verifying this change

[ ] Make sure that the change passes the CI checks.


--quiet flag ?

getting a lot of output from install, what do you think about adding a --quiet flag to reduce the noise level a bit ? :)
@mguymon

Yeah, Naether is super chatty, it makes sense to have it chill out by default. I will tinker around with some quiet and verbose flags.

I squashed the output of Naether to warn log level by default. A new verbose option (-v, --verbose) switches the level backing to info. Released as lock_jar 0.10.3.

thx, much cleaner now :)


Add docs for new Preferences setting in 8.11

@tamelbrun Hi, do you work for Mendix? If so, this needs to be clearly identified on your profile along with a name we can contact you with.

@tamelbrun Hi, do you work for Mendix? If so, this needs to be clearly identified on your profile along with a name we can contact you with.

This was never an issue before, but I've updated my profile.
See https://gitlab.rnd.mendix.com/appdev/appdev/merge_requests/5376 for the associated feature.

@tamelbrun this was a guideline from Mendix Security/IT last year at some point. And it's nice to know who's sending such PRs.


JAMES-2586 Implement PoolBackedPostgresConnectionFactory

Needs rebase

@hungphan227 can you take care of remaining comments please?

And do this sort out the paging problem?
IE can we remove the very dirty .collectList ?

I you mean this:
public Flux<Record> executeDeleteAndReturnList(Function<DSLContext, DeleteResultStep<Record>> queryFunction) {
        return Flux.from(metricFactory.decoratePublisherWithTimerMetric("postgres-execution",
            Flux.usingWhen(jamesPostgresConnectionFactory.getConnection(domain),
                connection -> dslContext(connection)
                    .flatMapMany(queryFunction)
                    .timeout(postgresConfiguration.getJooqReactiveTimeout())
                    .doOnError(TimeoutException.class, e -> LOGGER.error(JOOQ_TIMEOUT_ERROR_LOG, e))
                    **.collectList()**
                    .flatMapIterable(list -> list) // The convert Flux -> Mono<List> -> Flux to avoid a hanging issue. See: https://github.com/jOOQ/jOOQ/issues/16055
                    .retryWhen(Retry.backoff(MAX_RETRY_ATTEMPTS, MIN_BACKOFF)
                        .filter(preparedStatementConflictException())),
                jamesPostgresConnectionFactory::closeConnection)));

Yes we can

Yes we can

Can we be 100% sure about that?
I have added some tests regarding that for example cf https://github.com/apache/james-project/pull/2179/files
We can try to repeat the tests with the Connection pool to see.
And also what is the use case left for the single connection implementation? If we are still using it, I am not sure we can remove the .collectList right away.

If we remove the collectList(), I want it to be etsted on staging too, so don't hesitate to run the populate email query task for example with an image having this

Yes we can

Can we be 100% sure about that? I have added some tests regarding that for example cf https://github.com/apache/james-project/pull/2179/files We can try to repeat the tests with the Connection pool to see.
And also what is the use case left for the single connection implementation? If we are still using it, I am not sure we can remove the .collectList right away.

Yeah I forgot single connection implementation

So if I understand well, rls enabled or not we use the pool connection factory, and for things where we need a rls bypass (like some webadmin tasks for example) we still use the single connection, correct?
First I think we can agree that:

the domain connection is not used anymore (except in some test), and can probably be removed?
can't we find a way to get rid of the single connection too? If we use the pool backed connection when rls is not enabled, certainly we could find a way as well to use the pool connection for tasks that need a rls bypass if rls is enabled right?

Could be done in an other PR though :)

the domain connection is not used anymore (except in some test), and can probably be removed?

I think yes

can't we find a way to get rid of the single connection too? If we use the pool backed connection when rls is not enabled, certainly we could find a way as well to use the pool connection for tasks that need a rls bypass if rls is enabled right?

yes, 2 pools,
one for RLS, one for noRLS

one for RLS, one for noRLS

I thought just reusing the same pool for both?

Regarding collectList method, until now I am still not 100% sure that we no longer use DomainImplPostgresConnectionFactory because rls performance test has not been conducted yet. Removing collectList will be considered later.


_getLastNotificationTime throws FormatException

Describe the bug
Data stored in _latestNotificationId is not in encrypted form, which throws formatException while onboarding.
This issue was seen on 0living atsign.
To Reproduce
Steps to reproduce the behavior:

onboard with 0living in wavi
when sync completes restart the app.
we should get an exception and onboarding will fail

Screenshots

Smartphone (please complete the following information):

macOS

Were you using an @application when the bug was found?

wavi desktop

Additional context
0living atKey and .hive files have been shared with Murali.

Some of the changes related to exception handling and at key validation had to  be reverted. Purnima verified the changes for 0living atsign. Fix is working fine. Have requested Sachin to verify the fix from his end as well.

@murali-shris I tried running with fix_lastNotificationId_bug at_client branch, the data in _latestNotificationId key was updated with some encrypted value.
But, I again got FormatException in jsonDecode

if (atValue != null && atValue.value != null) {
_logger.finer('json from hive: ${atValue.value}');
return jsonDecode(atValue.value)['epochMillis'];
}

I looked at the value in AtValue, it was in an encrypted format which failed at jsonDecode.

@murali-shris is your branch ready for @sachins-geekyants to re-test with?

@murali-shris is your branch ready for @sachins-geekyants to re-test with?

I have just passed the  branch to Sachin. I have renamed the latest notification id key in my latest fix

Working fine with the latest fix.

Published at_client 3.0.23 and at_client_mobile 3.1.15


Update public.sql

Added comments for the columns of the public.circulation_requests table and added the proxy_user_id column comment for public.circulation_loans.

I like that the circulation_requests are ordered as they are in the database, circulation_loans is not. That is a little hard to follow but it does not look like it is part of this PR. The consistency would be nice but just having some information is better than none!
Also I question if the data column needs to have a comment. I think it is self explanatory "JSON representation of the record".


Remove cursor

use http://docs.psychtoolbox.org/HideCursor to remove mouse from screen during task.

closed 8a6cb1888c943d801a296f721bc2d14390815c57


Tags disappear when save record and they shown when reload page

Package
filament/spatie-tags-plugin
Package Version
2
Laravel Version
v9
Livewire Version
2
PHP Version
8.1
Bug description
When you save the record, the Tags disappear, and they appear again when you refresh the page.
Steps to reproduce
Just save a record
Relevant log output
No response

https://user-images.githubusercontent.com/4717507/174801366-27a73ea3-f8e1-4c9a-9b98-43fee31bc34f.mp4

I can't reproduce this problem, is it still an issue?
If so, can you provide us a reproduction repository URL? That would allow us to download it and review your bug much easier, so it can be fixed quicker. Please make sure to give us some instructions on where to find the bug, and include a database seeder with everything we need to set it up quickly.

Closing this as inactive and irreproducible.

Yes I cannot replicate this, I assume it was fixed by #2999. If it's still an issue in the latest version, please send a bug reproduction repository URL and I will reopen this issue and look into it.


Kwikset 910 issues

Just pulled the latest apps and DH and no love for my 910. Upon installing the main Lock Manager app, and adding the lock, I find this error in the IDE:

9d82a715-3555-4d56-b8b8-389fe273fe76  4:55:31 PM: error java.lang.IllegalArgumentException: Command 'updateCodes' is not supported by device 0ef1e9b0-d3b6-4a7e-858a-2b76a7172963 of type 'Z-Wave Lock Reporting'. Supported commands: [poll, lock, unlock, refresh, lock, unlock, setCode, deleteCode, requestCode, reloadAllCodes, unlockWithTimeout, setCodeLength, nameSlot, ping, unlockwtimeout] @ line 545

I've tried several DH and the one that seems to almost work is the ST Z-Wave lock w/codes. Though despite it at least showing the attempt to updateCode, it never gets sent, of course.

What's interesting, is despite not SETTING the codes, it was able to pull some ancient ones from the lock. Roughly two years old, from previous roommates on another continent. Slot 2 and 3.

@ethayer one of my SmartThings apps also depends on this command. I'd be glad to try and troubleshoot together.

Latest update from SmartThings (I'm also on the phone with them right now)
https://twitter.com/smartthings/status/883017201019637760

The person on the phone said they would send me an updated version of this lock-manager repo with updated code to handle their code change. I don't really know how true that is - it doesn't appear this repo's device handler has been updated in the last 48-72 hours (last update was 25 days ago).
In that case @ethayer , many users of this app may be having an issue? I think you're a volunteer so definitely no pressure but just wanted to alert you to this because it's completely handicapping my integration.

@stevenascott @ethayer SmartThings apparently pushed a hotfix a moment ago!
https://community.smartthings.com/t/updatecodes-function-completely-and-erroneously-removed-in-latest-z-wave-lock-reporting-update/92018/2
Things are now working on my end.

Can confirm. Working great! Thanks everyone.


Fix: Bank account - Next button is not disabled when Plaid modal is loading

Details

https://github.com/Expensify/App/issues/36505
Fixed Issues

$ https://github.com/Expensify/App/issues/36505
PROPOSAL: https://github.com/Expensify/App/issues/36505#issuecomment-1945845990
Tests

Goto any Workspace -> Settings -> Bank Account
Select connect online with Plaid option
Verify for the plaid loading screen Next button is not visible

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

Offline tests

Goto any Workspace -> Settings -> Bank Account
Select connect online with Plaid option
Verify for the plaid loading screen Next button is not visible

QA Steps

Goto any Workspace -> Settings -> Bank Account
Select connect online with Plaid option
Verify for the plaid loading screen Next button is not visible

[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 / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/14358475/68fe8201-e7e8-4812-aef9-6072c083d61a

Mobile Web - Chrome

Mobile Web - Safari
https://github.com/Expensify/App/assets/14358475/9fc8ba00-e05b-40db-ada0-7a8d4a55f322

Desktop

iOS
https://github.com/Expensify/App/assets/14358475/718181ac-e9fb-4c9e-8538-e0b496f5a59f

Android

Reviewer Checklist

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

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

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

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

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

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

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

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

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

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

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[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
https://github.com/Expensify/App/assets/4160319/2820e9f6-d3d1-4285-be93-5aa7f9b8c6d2

Android: mWeb Chrome
https://github.com/Expensify/App/assets/4160319/f6525e1c-9f3e-4ca6-9066-0b0df91c9ff9

iOS: Native
https://github.com/Expensify/App/assets/4160319/ddcc18eb-8f4b-4121-9564-1c1488047567

iOS: mWeb Safari
https://github.com/Expensify/App/assets/4160319/5fb592bd-502c-466c-a85e-8c44a7175edf

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/4160319/003bcc17-f2f3-4800-b66d-13c7f06480b5

MacOS: Desktop
https://github.com/Expensify/App/assets/4160319/1c204f21-aa46-44b0-a0a4-ab0a105c4be6

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

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

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.4.43-20 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Output doesn't fit DIN A4 pages

As the title says, the output doesn't fit. Scaling down the print to 96% makes it work, but that is only a temporary solution.

+1


Stage line eof bug part 2

This one's better. Accounts for a case I haven't considered previously.
Basically added
      if (hunkLine.raw.content().indexOf("\\ No newline at end of file") != -1) {
        return false;
      }

in Repo.prototype.stageLines's processSelectedLine. This replaces a similar check for \\ No newline at end of file I originally had in Repo.prototype.stageLines.

Looks good. We'll at least have test for this now going forward. Thanks!


Changing global settings at run time

Godot version 3.0.6
OS All
Changing global settings at run time.
I asked a question.
But probably no one knows how to do it. Or there is no such possibility.
It doesn't have to be this way. It strongly determines the performance. The user must have the ability to change the rendering parameters at runtime of the game.

Please give feedback on this appeal. It requires revision, documentation or it is possible right now. I am currently working on this issue and it is very important for me to have a reference point. Thanks.

What did you try so far? ProjectSettings.get_setting() and ProjectSettings.set_setting() can be used to modify project settings:
func _ready():
	print(ProjectSettings.get_setting("debug/settings/stdout/print_fps")) # false
	ProjectSettings.set_setting("debug/settings/stdout/print_fps", true)
	print(ProjectSettings.get_setting("debug/settings/stdout/print_fps")) # true
	# starts printing FPS to output

But keep in mind that most settings are read and used when creating the game window/initializing the renderer, so changing their value in the ProjectSettings at runtime might not automatically impact the game (e.g. changing display/window/size/fullscreen won't change the fullscreen mode, you need to use OS APIs for that).

See e.g. @Calinou's godot-sponza, it lets you change rendering settings at runtime, but this implies that you need to actually change the environment manually and not just the ProjectSettings config: https://github.com/Calinou/godot-sponza/blob/master/scripts/settings_gui.gd#L156-L175

Yes I not found this method:
ProjectSettings.set_setting(
That's what Me needed. And it works. Regarding the resolution switching, I implemented it long ago.
Thanks for your help. I believe this queryis not actual.

See e.g. @Calinou's godot-sponza, it lets you change rendering settings at runtime, but this implies that you need to actually change the environment manually and not just the ProjectSettings config: https://github.com/Calinou/godot-sponza/blob/master/scripts/settings_gui.gd#L156-L175

akien-mga, thank you, I got the topic sorted out little.
But I have a small question, please help me. Like you said, not all settings can be changed through ProjectSettings. It is useless to change:
 ProjectSettings.set_setting("rendering/quality/shadow_atlas/size"
instead, you need to change:
 get_viewport().shadow_atlas_size=
And what needs to change for:
 ProjectSettings.set_setting("rendering/quality/directional_shadow/size"

And what needs to change for:
ProjectSettings.set_setting("rendering/quality/directional_shadow/size"

That doesn't seem possible, it's only used in RasterizerSceneGLES3::initialize() (or *GLES2), so you need to restart the game to take any change to this value into account.

That doesn't seem possible, it's only used in RasterizerSceneGLES3::initialize() (or *GLES2), so you need to restart the game to take any change to this value into account.

If the game is not rebooted, and rebooted the scene. Is that possible?
Does it make sense to create a request for improvement? Or is it technically unrealistic?


Normalize trunk code handling throughout the gem

Hello, Florian!
I'd like to confirm before opening an pull request how [trunk code] (https://en.wikipedia.org/wiki/Trunk_prefix) handling should work throughout the gem in your opinion. Right now, it seems a little bit controversial across different countries.
For example, my potential customer sent me a random E164-conform russian number:
+7 123 456 78 90.
You could mentally parse it like this:

Int call prefix
Country code
National Destination Code
Subscriber code

| 7 | 123 | 456 78 90

You'll be unable to get in trouble with this number: Phony.plausible? '+7 123 456 78 90' == true && Phony.normalize '+7 123 456 78 90' == '71234567890'. And if I show the number to my customer support in another country, they will certainly call him by replacing + sign with the local specific international exit code (common 00 or 011 in USA, etc.).
However, my another not-so-smart client doesn't know that the Internet is global and he should use international numbers. He's working with local site (maybe buying pizza?) so he sent me nationally formatted number:
8 123 456 78 90.
Obviously, it works for him and doesn't work for Phony. But I could easily fix it by adding country since I know where my client lives:
+7 8 123 456 78 90.
And parsed:

Int call prefix
Country code
Local trunk code
National Destination Code
Subscriber code

| 7 | 8 | 123 | 456 78 90

And... here be dragons:

Phony treats trunk codes with and without parentheses differently - it entirely strips a parenthesed trunk code but parses a simple one. In my opinion, we shouldn't rely on formatting and process them identically.

It's excepted that after normalization there'll be E164 phone number (without trunk code) but we don't remove it for Russia, Hungary, Lithuania in error (Phony.normalize '+7 8 123 456 78 90' == '781234567890' # and it's wrong).
It seems it's caused by a mistaken implementation of #172 - @andrius means that we must always normalize trunk code but beware that NDC may start with 8 (it's crazy but in Russia 8 is a trunk code and also it may be in NDC so we can't just gsub 8 from start of the number).

Moreover, I think trunk('0', normalize: false) DSL should be used only for Italy which always includes trunk codes as other countries either use local-only trunk codes or don't use them at all (like Spain mentioned in #172).

According to Wikiepedia, we also wrongly add trunk code to Latvia.

The most confusing thing are new Japanese codes introduced in #239. They include leading 0 which, I believe, is a trunk code. According to E164 docs, there's a strong recommendation to not use leading zeros in NDC and it seems they're included mistakenly as NDC is usually presented with leading zero in Wikipedia (for example, Germany's page).

I'm also interested which the best way of trunk code handling in your opinion? For example, Phony.plausible? returns false in #233 only because of included trunk codes. Right now, it depends on the country provider and I strongly suggest that it should be standardized.
E164 doesn't allow trunk codes in notation (and parentheses) but developers may want them as it greatly simplifies the usage of national numbers. As described in my use case, it should be a widespread problem.

I'm sorry for a huge writing, I'm chatty today ;) By the way, big thanks for your great gem!

Hi Artur,
From a quick read, you're making some good points.
Please give me some time to parse all of it in peace and formulate some answers.
Respond to you soon!

@floere,
I'd like to recommend to you a new indispensable free tool introduced recently by Twilio on the chance that you haven't seen it already.
It mirrors Phony's functionality with the exception of network-burden and closed-source way. However, you could use it to check yourself while you're working with some questionable foreign numbers. Perhaps it may be incorporated into the gem's test suit as an additional verification.
For example, it confirms my doubts with #239 as it really includes trunks.
Right now, I'm also interested in one more thing:
6) To properly parse trunk codes we have to delimitate them from area codes. It's easy for the majority of countries (as their NDC doesn't start with 0 usually) except ex-USSR ones. Normalizing the latter requires either:

a new DSL total_length or something like that which indicates total number of digits in the country's numbers. It would reliably solve the trunk problem for Russia and friends as these numbers always contains 11 digits in the E164 form so any length exceeding this threshold shows trunk code including. Although it seems like a good solution, I'm worried that other countries may not use fixed length.
rely on the already presented in the gem NDCs but I'm not sure how complete they are. Maybe you may give me a better insight into their completeness.

Hi @ardecvz,
On a general note, Phony has been developed very organically, and it works well that way. That is – the code may be funky in places, but as long as the specs all pass (1149 of them), then I am happy. But nonetheless, if you find a spot where it's too funky, I am very interested to rewrite it, especially if it can be made simpler and code removed.

What is your proposal, specifically?

I'm starting to see your point. The trunk code should be removed in a country-specific manner.

Always open to PRs :) I can't do it all on my own. What I can is manage the project, implement the core, and perhaps write a country specification here and there.

I've reverted that PR. I pulled it since I misremembered the Japanese system being similar to the Italian case, so it made sense at the time.

I'm starting to think that this could be handled by moving cleaning (or rather, trunk removing) towards being country-specific.

Do you have a suggestion what to do in cases where the trunk is equal to an NDC?

I'm closing this as nothing is happening. Please reopen oder open a new issue in case anybody wants this to continue.


Fix dropdown positioning issue inside auro-dialog

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Resolves: #187
Summary:

This PR addresses the positioning issue of auro-dropdown when auro-select is placed inside auro-dialog component.

Please see below videos for related fixes:
https://github.com/AlaskaAirlines/auro-select/assets/124668226/1f7095a6-0ca9-4ee6-ae31-b01ec29539fc
Also, the fixes seems to not creating any regression when implemented on its own in the docsite:
https://github.com/AlaskaAirlines/auro-select/assets/124668226/bbb238c9-6090-4d60-b069-cee2efb3ebd6
Type of change:
Please delete options that are not relevant.

[ ] New capability
[x] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

@fajar-apri-alaska
I'm struggling to validate that this fix is actually correct.
I am unable to setup a working example that is broken without the style changes and works correctly with them.
The change should include some sort of example that demonstrates this now works. If you add an example to the docpage then we should be able to run this locally and simply comment out the style changes and see it broken.

@jason-capsule42, Is it really needed it put example in the docsite?
To be honest, I was also struggling to replicate the issue in the docsite,
before below PR comes from the reporter itself to help reproduce it:
https://github.com/Alaska-ECommerce/LoungeMembership-Web/pull/386

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


will support server side programming?

rt, I have a situation use AMQP 0.10 both in client side and server side. AMQP-CPP will support server side programming？

Would be nice. Most of the supported AMQP frames are implemented in this library, and they can be used in both directions: to send and to receive. In theory it is therefore possible to use the internals of AMQP-CPP to write your own AMQP server / RabbitMQ alternative.
However, the public API of the library is only intended for developing client applications. So it does require some work. It is not on my short-term todo list to do this myself, so you will have to send in a couple of pull requests if you want this to be part of the library.


Improved command authorisation support

Sequin supports role authorisation using claims in the Sequin.ClaimsAuthentication project.  Would it be useful to have a mechanism that permits more complex authorisation logic?  It could be used to ensure that a user can actually perform the command on the specified resource in addition to having the required role.  I think this may be used alongside the claims authentication but it may be useful to expose some mechanism for checking roles in here in case there are any complex requirements.
I imagine this involving a new piece of middleware and the client creating classes defining the authorisation process.  Maybe like:
// Constructed by middleware
public class MyCommandAuthorizer : IAuthorizes<MyCommand>
{
    // Invoked by middleware
    public void Authorize(MyCommand command)
    {
        // Do some queries to ensure the user can perform the command
        // Throw an exception when unauthorized (handled by middleware to set the HTTP response)
    }
}

Thoughts?

Is this within scope of the project?  Maybe this would be trying to do too much.

Closing because this is outside scope.


Add shapeRendering prop to primitives

Resolves https://github.com/FormidableLabs/victory/issues/383
\cc @boygirl

@Aweary perfect. Approved!


Transport causes CPU Spikes on Larger Envelopes

How do you use Sentry?
Sentry Saas (sentry.io)
Version
1.31
Steps to Reproduce
Sending this to Sentry causes the transport to create CPU spikes that are very visible in our kubernetes pods.
from sentry_sdk import capture_message, push_scope

for _ in range(50):
    with push_scope() as scope:
        scope.add_attachment(bytes=b"Hello World! " * 10000, filename="attachment.txt")
        capture_message('Hello, hello.')

It also happens if gzip compression is disabled. It appears to be related to how capture_envelope works within the transport.
Expected Result
I would not expect the CPU usage to spike.
Actual Result
It spikes.

possible urllib3 stuff
https://github.com/psf/requests/issues/1910

I did some profiling today: (because sending is done in a worker thread, I profiled them on my local machine because in sentry we sould have not enough samples)
a) send 10 envelopes with big attachments (10000 hello worlds):
https://sentry-sdks.sentry.io/profiling/profile/sentry-python/6b7fc1ca0e30427cbf9d76ff2e1998dd/flamegraph/

b) send 50 envelopes with big attachments (10000 hello worlds):
https://sentry-sdks.sentry.io/profiling/profile/sentry-python/d446df68dd324870a5d0fb416a29e29b/flamegraph/

c) send 50 envelopes with small attachments (10 hello worlds):
https://sentry-sdks.sentry.io/profiling/profile/sentry-python/ac9a8a1ae4f648a582ce375fe6e1e474/flamegraph/

So there is nothing that jumps out. Most of the time is spent in the http lib (which was kind of our guess). I tried to disable SSL certificate verification, but this made not difference at all.
One thing of not is that sending 10 envelopes takes around 350ms and sending 50 envelopes takes 2500ms (no matter what size the attachments) So that is not linear growth there.
We could create an AsyncHttpTransport (swapping out urllib3 with aiohttp) to see if the result changes drastically. But this is not done in a day.

Another note. I also tracked the cpu utilization of my test process. It maxed out at between 54% (10 small envelopes) 56% (10 large envelopes), and 61% (50 large envelopes). So I could not reproduce a cup utilization spike.

Another thing of notice: OpenSSL 3 has performance problems: https://github.com/python/cpython/issues/95031
Our server still has OpenSSL 1.1.1 so we are not affected, but when we update, we will. (and other customers might use OpenSSL 3 and are affected by those performance problems)


How can i download this plugin?

I'm sorry that open issue
how can i download this plugin?

download this plugin on poggit https://poggit.pmmp.io/p/Clothes


stop karmor logs if the Watch* fails

Exit the karmor logs if connectivity/port-forwarding breaks because of connection issues or anything else.

Fixes #73

Used a different mechanism to solve this without using waitgroups.
We already had a UnblockSignal flag that was used to check whether the goroutines have finished.

@daemon1024 , rather than using my own error message, I decided to use the actual error that was returned by the failed recv() call.


[HUDI-5753] Add docs for record payload

Change Logs
Documentation about record payload under Concepts section.
Impact
Only docs.
Risk level (write none, low medium or high below)
low
Documentation Update
Adds a new page under Concepts section of Hudi website.
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

Following up- I need to use this doc for the write operations, so I can reference the payloads under the UPSERT operation.

@codope is it possible you can provide an example to extend the payload for a customized option. Also, are there configs the user should consider that's provided out-of-the-box. If possible, can you specify all of them inline with the right class?

@codope is it possible you can provide an example to extend the payload for a customized option. Also, are there configs the user should consider that's provided out-of-the-box? If possible, can you specify all of them inline with the right class?

@nfarah86 I have added a link to FAQ where there are more details on how to implement a custom payload. I have also removed the record merger API. Need to follow up with a separate doc or update this doc in a separate PR.


Change a way to serialize/deserialize token and authentication

Take JdbcTokenStore for an example.
oauth_access_token and oauth_refresh_token both stored token and authentication as blods.
and these blods are in fact the serialized java class OAuth2AccessToken/OAuth2RefreshToken and OAuth2Authentication.
If we migrate the framework from a lower version to current, most likely we cannot deserialize the existing tokens in the database, see here, this means:

we cannot retrieve the resources by using the exiting access token.
we cannot get new token using the exiting refresh token.
we even cannot generate new access token and refresh token.

This is definitely disaster. We cannot just truncate these tables in database, because this will also break some functionalities e.g. Google Home Action or Amazon Alexa Skill.
I suppose even Base64ed Json mapping is better than serialized plan java class, at least it is easier to migrate.

@dsyer Hi Dave, can you consider this?


devise_token_auth with LDAP?

I have an existing App with LDAP backend for my users and wanted to integrate devise_token_auth with it for a new Angular2 Frontend. But I'm not sure if that is possbile, you only mention Oauth and Database as backends? Would that mean I get a new Provider LDAP in the model? Any hints for this?

up looking for same feature.

OmniAuth supports LDAP as a provider until I know. You can see it in list of OAuth2 providers.

Possible solution posted, closing for now


Refactor callServer function and add getInactiveMilestones

What this PR does / why we need it:
Refactors the callServer function so that it includes pagination and returns a []milestoneAPI. Also adds a getInactiveMilestones function that returns inactive milestones.

This should be a workable solution for the getMilestones with pagination issue:
func getMilestones(baseURL string, token string, projectID string, state string) ([]milestoneAPI, error) {
	m := []milestoneAPI{}
	client := &http.Client{}
	strURL := []string{baseURL, "/projects/", projectID, "/milestones"}
	URL := strings.Join(strURL, "")
	var pages int
	paginate := true

	for paginate == true {
		paginate = false
		tmpM := []milestoneAPI{}
		// Overwrite state information in URL
		u, _ := url.Parse(URL)
		q := u.Query()
		q.Set("state", state)
		u.RawQuery = q.Encode()

		req, err := http.NewRequest("GET", u.String(), nil)
		fmt.Println(req)
		if err != nil {
			return m, err
		}
		req.Header.Add("PRIVATE-TOKEN", token)
		resp, err := client.Do(req)
		if err != nil {
			return m, err
		}
		respByte, err := ioutil.ReadAll(resp.Body)
		if err != nil {
			return m, err
		}
		json.Unmarshal(respByte, &tmpM)
		m = append(m, tmpM...)
		defer resp.Body.Close()

		// Retrieve next page header
		linkHeader := resp.Header.Get("Link")
		parsedHeader := link.Parse(linkHeader)
		for _, elem := range parsedHeader {
			if elem.Rel != "next" {
				continue
			}

			// Prevent brake and modify URL for next iteration
			if elem.Rel == "next" {
				pages++
				URL = elem.URI
				paginate = true
			}
		}
	}
	return m, nil
}

So the issue with the 400 bad request was due to the key for the milestone map being set to DueDate, which is not unique. That needs to be the title.
milestones[v.DueDate] = m -> milestones[v.Title] = m
That should fix that issue.

Let's rebase and cleanup the history into the specific steps and then it's a LGTM from me, but I would like a second review from @erbesharat or @AdeilH or @alarsyo

Superseded by #35


local variable 'data' referenced before assignment

Hello,
When I run '$python data_utils.py', it gives the error message like that:
File "corpus.py", line 63, in get_all_corpus
corpus.extend(data)
UnboundLocalError: local variable 'data' referenced before assignment
My python version is 2.7.10.
I don't know where the problem is.

Probably because _parse_corpus encounters some exception. Could you surround corpus.py line 61 with another try-catch and print out whatever exception that you catch?

I add the codes as you recommend:
def get_all_corpus():
corpus = []
for raw in _corpus_list:
json_file = os.path.join(data_dir, raw.replace('all',
'json').replace('txt', 'json'))
try:
with codecs.open(json_file, 'r', 'utf-8') as fin:
data = json.load(fin)
except IOError:
try:
data = _parse_corpus(os.path.join(raw_dir, raw), json_file)
except Exception as e:
print e
finally:
try:
corpus.extend(data)
except Exception as e:
print e
return corpus
And the exceptions are shown as follow:
$ python data_utils.py
Building prefix dict from the default dictionary ...
Loading model from cache
/var/folders/64/1y8_58hs1nxf2hdlf96jtw900000gn/T/jieba.cache
Loading model cost 0.469 seconds.
Prefix dict has been built succesfully.
Generating the vocabulary ...
Parsing raw/qts_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qss_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qsc_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qtais_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/yuan.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/ming.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/qing.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
The vocabulary has been built.
Parsing raw/qts_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qss_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qsc_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qtais_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/yuan.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/ming.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/qing.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/qts_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qss_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qsc_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qtais_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/yuan.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/ming.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/qing.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Start TextRank over the selected quatrains ...
Parsing raw/qts_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qss_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qsc_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/qtais_tab.txt ... unichr() arg not in range(0x10000) (narrow
Python build)
local variable 'data' referenced before assignment
Parsing raw/yuan.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/ming.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
Parsing raw/qing.all ... unichr() arg not in range(0x10000) (narrow Python
build)
local variable 'data' referenced before assignment
[TextRank] Weighted graph has been built.
[TextRank] Start iteration 0 ... Done (0/0)
TextRank is done.
Generating training data ...
Training data is generated.
Size of the training data: 0
Size of the keyword training data: 0

Is there something missing? I just clone the repo and run this command python data_utils.py.
2017-12-13 7:18 GMT+08:00 Nan Zuo<EMAIL_ADDRESS>
Probably because _parse_corpus encounters some exception. Could you
surround corpus.py line 61 with another try-catch and print out whatever
exception that you catch?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DevinZ1993/Chinese-Poetry-Generation/issues/7#issuecomment-351227453,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APFDeRBByk1VVtExfuwn-PRjjv0mR9Pfks5s_wm-gaJpZM4Q_JOm
.

That's quite similar to the previous issue here: unichr not supported by narrow python build. Hope this can help.

It works. So many thanks.


RPC framework

If the client is going to be coded in Rust, then a RPC framework like tarpc could be better.

Are you thinking of running the client as a deamon that other local tools can speak to via RPC, or of having an RPC based protocol between the client and the backend?

I was thinking in to have a RPC based protocol


not enough logs

I'm getting this:
[INFO] --- opeo:0.0.2:decompile (default-cli) @ benchmark ---
[INFO] opeo-maven-plugin: started decompiling bytecode into EO
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

[INFO] --- opeo:0.0.2:compile (default-cli) @ benchmark ---
[INFO] opeo-maven-plugin: started compiling EO into low-level representation
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

This is not enough. Let's say something like this:
[INFO] --- opeo:0.0.2:decompile (default-cli) @ benchmark ---
[INFO] Decompiling EO sources from target/eo
[INFO] Saving new EO sources to target/eo-2
[INFO] Decompiled app.eo (545 bytes)
[INFO] Decompiled main.eo (545 bytes)
[INFO] Totally decompiled 2 EO sources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

[INFO] --- opeo:0.0.2:compile (default-cli) @ benchmark ---
[INFO] Compiling EO sources from target/eo
[INFO] Saving new EO sources to target/eo-2
[INFO] Compiled app.eo (545 bytes)
[INFO] Compiled main.eo (545 bytes)
[INFO] Totally compiled 2 EO sources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

@volodya-lombrozo please, help

@yegor256 Ok I will do it

@volodya-lombrozo for reporting the size of the files you can use %[size]s decor in jcabi Logger

@yegor256 Do you have a link to the doc? is size should be an int value?

@volodya-lombrozo see this README: https://github.com/jcabi/jcabi-log (yes, size can be long or int)

@yegor256 2 puzzles #37, #38 are still not solved.

@yegor256 the puzzle #37 is still not solved; solved: #38.

@yegor256 the puzzle #62 is still not solved; solved: #37, #38.

@yegor256 5 puzzles #74, #75, #76, #77, #78 are still not solved; solved: #37, #38, #62, #65.

@yegor256 6 puzzles #74, #75, #76, #78, #80, #81 are still not solved; solved: #37, #38, #62, #65, #77.

@yegor256 5 puzzles #74, #75, #76, #80, #81 are still not solved; solved: #37, #38, #62, #65, #77, #78.

@yegor256 6 puzzles #74, #75, #80, #81, #86, #87 are still not solved; solved: #37, #38, #62, #65, #76, #77, #78.

@yegor256 6 puzzles #74, #75, #80, #81, #87, #89 are still not solved; solved: #37, #38, #62, #65, #76, #77, #78, #86.

@yegor256 5 puzzles #74, #75, #80, #81, #87 are still not solved; solved: #37, #38, #62, #65, #76, #77, #78, #86, #89.

@yegor256 6 puzzles #74, #75, #81, #87, #97, #98 are still not solved; solved: #37, #38, #62, #65, #76, #77, #78, #80, #86, #89.

@yegor256 5 puzzles #134, #74, #75, #87, #97 are still not solved; solved: #37, #38, #62, #65, #76, #77, #78, #80, #81, #86, #89, #98.

@yegor256 5 puzzles #134, #153, #74, #75, #87 are still not solved; solved: #37, #38, #62, #65, #76, #77, #78, #80, #81, #86, #89, #97, #98.

@yegor256 4 puzzles #134, #74, #75, #87 are still not solved; solved: #153, #37, #38, #62, #65, #76, #77, #78, #80, #81, #86, #89, #97, #98.

@yegor256 2 puzzles #74, #75 are still not solved; solved: #134, #153, #37, #38, #62, #65, #76, #77, #78, #80, #81, #86, #87, #89, #97, #98.


A11y_AzureDataStudio(Schema,Dacpac,Backup)_Comparison_AI4D: Name of the elements under "Source name and include" is missing.

“Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.”
#A11yMAS; #A11yTCS; #A11y_ADS_Schema_Dacpac_Backup; #Azure Data Studio; #DesktopApp; #Win10; #AI4D; #MAS4.1.2; #MAS1.3.1; #AllyAuto;
Environment Details:
Application Name: Azure Data Studio
Application Version: 1.9.0 (user setup)
Commit: 78a42e1
Electron: 3.1.8
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.18362
Additional Details : AI4D, MAS4.1.2, MAS1.3.1, AllyAuto
Repro Steps:

Launch Azure Data Studio application.
Connect to server with windows credentials.
Navigate to Extensions from left menu.
Search & install Schema Compare extension.
Navigate to Connections from left menu.
Expand the server connected in step 2.
Right click an on prem database and select Schema compare from Context menu.
Navigate till Select Source or Select Target & hit enter.
Provide all the details for Source & Target.
Navigate till Ok button & hit enter.
Navigate till Compare menu from Schema compare Menu bar & hit enter.
Open AI4D and run the fast pass for the table.
Check whether name of the elements is present or not.

Actual:
Name of the elements under "Source name and include" is missing.
Expected:
Name should be provided for the elements which is present under "Source name and Include".
Recommendations:
Refer below link which is repository of bug fixes code snippets: https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx
User Impact:
User will not be able to know the information about the control name.
MAS Reference:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={248054a6-5e68-4771-9e1e-242fb5025730}
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Attachment for Reference:

Added to more info questions

Question on this - the check boxes will be fixed but for the other column there is no name because name = data in the column. and there is no data in those cells as a result of comparison. Do we still need a name ?

Issue is partially fixed For the check boxes name is still missing , for more information You can refer the attachment.

@fsteffi we have added the aria-label for the check boxes -which works are name (for all controls) and gets the narrartion corrected too. We don't explicitly have acess to name control - can you suggest if  there is a way to add name explicitly.
Also, since the narration is correct can you help understand if there is still user impact because of this behavior?

@udeeshagautam Yes it is fine to provide Aria label, Screenreader reads the checkbox along with the header.
Hence closing this bug.


Exercise indicator misbehaviour on saving issues

Describe the bug
Exercise
To Reproduce
Precondition: You are on a quiz and are getting a 403 on save.

Submit & continue
The exercise indicator turns checked but stays yellow

Expected behavior
The indicator stays unchecked.
Screenshots
Didn't made a screenshot during the test exam but I think it's pretty straight forward.
Environment

 - OS: Windows 10 Pro
 - Browser: Chrome v83.0.4103.116

Additional context
This happend due to the wrong permissions for students (which was already reported) however in case something goes wrong with saving without going offline I think this should be fixed to prevent confusion.
Output in Web Console
Only output regarding the 403 itself but nothing after it regarding the indicator.

is fixed now


fix: :bug: fix crash in multiCompiler

Summary
Fix crash in multiCompiler
fix: #2585
fix: #2567
fix: #2566
The reason for the multiCompiler crash is that, In the Rust binding layer, there is a global HashMap that stores the mapping between Js object ID and Rust object. When JS calls, it uses the ID to get a reference from the Map and then calls compile. However, if another compiler is executing at the same time, creating a new Rust-side Compiler may cause the HashMap to expand, which may cause the memory underneath the HashMap to change. This can cause the moduleGraph in the seal phase to become the moduleGraph of another compiler, or cause illegal access, segfault and other strange errors.

🤖 Generated by Copilot at 539766b
This pull request fixes a memory error in the node_binding crate by using Pin<Box<>> wrappers, and improves the test coverage of the MultiCompiler class in rspack. It also updates the patch versions and the changeset file for two packages.
Related issue (if exists)

Walkthrough

🤖 Generated by Copilot at 539766b

Add a changeset file to document the patch versions and the fix message for the packages @rspack/binding and @rspack/core (link)
Wrap the rspack_core::Compiler type in a Pin<Box<_>> to prevent moving or dropping self-referential fields in the node_binding crate (link, link, link, link, link, link, link)
Import the Compiler type from the @rspack/core package in the MultiCompiler.test.ts file (link)
Add two new test cases to check the performance and concurrency of the multiCompiler under high pressure in the MultiCompiler.test.ts file (link)

How did you figure this out? So we don't need to fix parallelism any more?

The reason for the multiCompiler crash is that, In the Rust binding layer, there is a global HashMap that stores the mapping between Js object ID and Rust object. When JS calls, it uses the ID to get a reference from the Map and then calls compile. However, if another compiler is executing at the same time, creating a new Rust-side Compiler may cause the HashMap to expand, which may cause the memory underneath the HashMap to change. This can cause the moduleGraph in the seal phase to become the moduleGraph of another compiler, or cause illegal access, segfault and other strange errors.

@JSerFeng Can you do a grep on pnpm run test:example and uncomment the three places that mentions it? I wanna see if CI succeeds.

@JSerFeng Can you do a grep on pnpm run test:example and uncomment the three places that mentions it? I wanna see if CI succeeds.

Done, and I added a multiCompiler test which will run 100 compilers concurrently


Firms issuing equities

Need to work on Extended Firms Problem.tex to include the firm's choice of equity shares outstanding.

Rolled this into issue #3


ValueChanged eventcallback always return the initial value of markdown text

I handled the ValueChange event when using BlazorMarkdownEditor, but when I typed in the editor,  the value returned as a parameter never changed. We need to restore the markdown text in database.

I'll check that. Give you an answer asap.

Hi @RosaShellPicker,
there was an issue related to the variation on "Component changing its Parameter value". I fixed it and an update for the component is on its way.
Now, you have to change slightly the code for adding a new MarkdownEditor like that
<MarkdownEditor @bind-Value="@markdownValue"
                ValueHTMLChanged="@OnMarkdownValueHTMLChanged" />

@erossini  Thanks for replying so rapidly, and the issue is resolved.  You are amazing!


Descriptions incorrect on Advanced Connection Settings

The setup page doesn't match the options described in the documentation...the docs are incorrect.  In the descriptions there are 3 OData Web Service fields, but on the actual page it only show 2 and in the documentation we say Enable CDS Connection to Enable the Connection to Dataverse, but the window actually says “Enable Dynamics 365 Sales Connection”
In the Connection Settings in the Setup Guide section the following needs to be changed:

Business Central OData Web Service URL  description should not be there as it's not a field on the page.
Enable CDS Connection and description are incorrect, it should say Enable Dynamics 365 Sales Connection with a description of Enable the connection to Dynamics 365 Sales.

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

ID: 2957b832-9aee-e050-b034-7f3badb2e27c
Version Independent ID: a93b51b9-9a52-c8a2-2197-38c02f2e327f
Content: Integrating with Dynamics 365 Sales - Business Central
Content Source: business-central/admin-prepare-dynamics-365-for-sales-for-integration.md
Service: dynamics365-business-central
GitHub Login: @bholtorf
Microsoft Alias: bholtorf

Thanks for pointing out these changes. The topic is updated and will be republished shortly.


[1.10.2] SF3 Capacitor bank issues

Running skyfactory 3 1.10.2.
I really want to run wireless power from my capacitor banks to quite a few things but flux points/plugs don't like them very much. I've tried a few things but I'm not great with mod packs so idk how to get them to work with high transfer rates. Tried rftool cables but transfer is very limited and most possible solutions end up being from EIO so they run into similar issues.

Closing: 1.10.2 is no longer supported.


[ContextMenu] Default context menu with "html" target on border rightclick

Bug report
Current Behavior
Default context menu with html target on contextmenu border rightclick.
https://github.com/radix-ui/primitives/assets/46008279/ee2b15c3-df8f-4942-bdb4-13ea172f221f
Reproducible example
https://codesandbox.io/p/devbox/radix-context-menu-bug-zlqgfp
Your environment
Check sandbox

Software
Name(s)
Version

Browser
google chrome

Operating System
windows
11

Where are you logging the pointer events from in the sandbox? I don't see it in the source.
I also can't seem to reproduce the issue either way.

I just added lisener to the console.
Now added to sandbox.

I managed to reproduce it a few times, but it's extremely hard haha.
It doesn't seem related to the border at all, because even without it can happen.
It seems there's exactly 1px where it can happen, just outside of the content.
I'm not sure we can fix it really, it kinda looks like a browser bug, given that it happens even if we prevent default on context menu onContextMenu handler…

Ok)
I used this workaround to fix it :
  const handleContextMenu = useCallback(
    (e: MouseEvent) => e.preventDefault(),
    [],
  );

  useEffect(() => {
    document.addEventListener('contextmenu', handleContextMenu);

    return () => document.removeEventListener('contextmenu', handleContextMenu);
  }, [handleContextMenu]);


Add timezone client-hints

Full credits to @kiliman for this work. https://github.com/kiliman/epic-stack-time-zone
Client hints for timezone are a nice add. The approach is similar to the way themes are handled currently. CH-time-zone will be added to the cookies.
Test Plan

Checklist

[ ] Tests updated
[ ] Docs updated

Screenshots

Why was this PR closed? I'd still like to have this feature eventually and I'd prefer you get git credit for your work :)
I might recommend you make any future PRs from a non-main branch though.

My mistake. You are right, I should have done that from a non-main branch. I attempted to copy over the latest changes from epicweb-dev/epic-stack to rajeshg/epic-stack.

Reopening this again

Couldn't reopen this myself, since I lack the rights to reopen pull requests on this repo. I will submit a separate pull request, when I get a chance.

I can't reopen it either because you created it from main and now your main branch is different. This is another reason using a different branch helps 😅 Thanks!


Offset feature (/a) and Mixed-mode CD

I need rip Mixed-mode cd with offset feature (/a option and driveOffset.txt).
I also need overread feature with Mixed-mode CD.
These feature needed by some Japanese PC (etc. FM Towns, PC=9801) CD games.

You should prepare specific drives written in README.md

Ohh, I have 2 Plextor PX-760.
      Signature: a3 03
       VendorId: PLEXTOR
      ProductId: DVDR   PX-760A
   SerialNumber: 411400

and
Signature: a3 03
VendorId: PLEXTOR
ProductId: DVDR   PX-760A
SerialNumber: 411401


WFLY-8409 Do not stop IIOP from starting with invalid SSL configurati…

…on (backward compatibility)
This is the upstream fix for the problem with turned out in JBEAP-8525 - the IIOP subsystem currently refuses to start with invalid configuration (SSL socket configured without proper SSL configuration). Because such configuration was legal in the previous versions the previously working configurations stopped working. As a result, I have changed the validation behavior so that it only warn against invalid configuration.

If this goes directly to WildFly are you sure we are also not going to require changes within IIOP on ladybird?

True. Will push them too.


jQuery dependency

Hi there. I'm sorry if this is something obvious, after reading the README and the Wiki I'm not quite sure if I can use it without jQuery. It says "dependencyLibs: vanilla javascript" right in the start of the REAME, but I'm not sure I understand what that means. If it's possible an example would definitely clear things up. Thanks in advance!

Hi @haggen ,
You can use the inputmask without jquery, but then you have to load the inputmask.dependencylib.js from the extra folder.
Do you use a module loader or just load the scripts?

Hi @RobinHerbots thank you for replying so fast! I'm just loading the scripts.

@haggen ,
So in that case you just need to load the script s seperately.  Not the bundle.
First load tje dependencylib from the extra folder, after that you load the other files in the dist folder.
Use it like
Inputmask("yourmask").mask(selector);

Oh I see, the file is not in the dist directory. Thanks man, it works now!


Try to get test coverage report on codecov working

Nope, doesn't help. I'll just keep this open as a reminder that it needs to be fixed :)

Seems to be the codecov script is being run in another directory instead of /home/travis/build/tuupola/branca-middleware


A new CSS style guide proposal

http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/
http://outlinecss.co.uk/get-started.html

Yep, I'm very much in favour of using the BEM syntax in our CSS in the future! I used something similar (but simpler) to implement the WRW prototype.
I find that the "cascading" part of "cascading style sheets" is my least favourite, and makes maintenance a real pain. Having a single class like ".story--header-title" is so much nicer than trying to figure out what is creating the styles for ".story header h1".
There's also something to be said about performance gains for simplified selectors on complex pages, check out this (3 year old) talk from a Github engineer: https://speakerdeck.com/jonrohan/githubs-css-performance

I agree, but the danger I see here is that we can create very long names. But I think it is a good convention to be used when needed.
I would keep this to name css modules and would keep states (like .is-hidden) to set temporal states to items that could change on time or after an user action.

I'm usually not too worried about long names, most text editors have autocomplete :D
I agree with keeping simplified classes for individual states :+1:

On 9 Jul 2015, at 15:47, dhakelila<EMAIL_ADDRESS>wrote:
I agree, but the danger I see here is that we can create very long names. But I think it is a good convention to be used when needed.
I would keep this to name css modules and would keep states (like .is-hidden) to set temporal states to items that could change on time or after an user action.
—
Reply to this email directly or view it on GitHub https://github.com/Vizzuality/workflow-style-guide/issues/1#issuecomment-120009198.

Using BEM syntax, we sacrifice the "cascading" feature of CSS, don't we?
I would like to give a try to BEM syntax, but we should be very strict with naming conventions or it will be a chaos!
PD: very interesting talk, @adammulligan thanks for share!


BLD: pin extension-helpers to 1.* following upstream recommendation

Following https://github.com/astropy/extension-helpers/pull/72

ping @hamogu


Make ObjectMappers methods return copy of mappers

Fixes #151

@uschi2000 @markelliot

urgh, I think we need to find a way to make these immutable rather than pass around copies; we were trying to control memory load a bit by sharing objects.

Hmm, in that case, maybe it would make sense to make the shared instances package-protected and keep public methods that hand back copies? Just seems pretty dangerous/error-prone to have a key object open to modification from anywhere within a JVM.
ObjectMapper is non-final so it's technically possible to make an unmodifiable wrapper, but that would be a bigger change with more possible implications (especially if someone does actually want a copy that they can mutate/configure for their own use)

I like this idea: "sense to make the shared instances package-protected and keep public methods that hand back copies"

Implemented suggested variation. Made it so that static variables are package-protected and the internal methods use the variables directly -- I think this makes it much more apparent when reading code that these are shared instances.

Will look tomorrow
On Wed, Jun 29, 2016 at 10:44 PM Nick Miyake<EMAIL_ADDRESS>wrote:

Implemented suggested variation. Made it so that static variables are
package-protected and the internal methods use the variables directly -- I
think this makes it much more apparent when reading code that these are
shared instances.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/palantir/http-remoting/pull/152#issuecomment-229564806,
or mute the thread
https://github.com/notifications/unsubscribe/AGOdwXp1FNUP2JEh5qp6QtnZIZkR_a8Oks5qQ1fJgaJpZM4JBmP2
.

Added comments


Add note that glusterfs is not automatically deployed

The Terraform openstack glusterfs documentation gives the impression that if GlusterFS is enabled it is automatically deployed:

If these variables are provided, this will give rise to a new ansible group called gfs-cluster, for which we have added ansible roles to execute in the ansible provisioning step.

It isn't, this PR adds a clarification.

@manics Thanks for clarifying the docs!


Feature: "fix all problems" on save

I'd be very nice if the plugin came with an option to run the "fix all problems" after saving like is done in other editors.
If I get some time at work, I can look into adding this. But I wanted to submit this issue as well in case the vscode team wanted to handle it.

Also do fix all problems on

Thanks

:+1:

The VS Code 1.6 release will have API to particiapte in save. When this is in and available I will adapt it.

I adopted the API and release a new version of the extension. Please note that auto fix on save only works for manual save or for save on focus lost. This is consistent with format on save in VS Code.


Describe resource JSON: syntax highlighting

Syntax highlighting is now available for JSON. The framework is there if there are plans to support other formats as well in the future (YAML being one that stands out)


plot_emotion_matrix.py 'PolyCollection' has no attributes  'get_axes()'

Hi. When I run the plot_emotion_matrix.py, I find an error: AttributeError: 'PolyCollection' object has no attribute 'get_axes'. Below is the function concerning the error. I am wondering how to solve it
def show_values(pc, fmt="%.2f", **kw):
    #from itertools import zip
    pc.update_scalarmappable()
    ax = pc.get_axes()

ax = pc.get_axes() to ax = pc.axes

@AdrienPlayerium  Thanks a lot. It really works.

Hi. When I run the plot_emotion_matrix.py, I find an error:
File "plot_emotion_matrix.py", line 20, in
for i in xrange(images.shape[0]):
NameError: name 'xrange' is not defined
I am wondering how to solve it

@snowalala if you are still looking, wild guess, but you are probably using python3, so just use range() instead of xrange()

@KiwiTae Thanks a lot. It really works.


HF dataset viewer list row count

When we first set up the HF data loader, almost all datasets had a row count. Now, almost none of them do even though the contents are viewable. Maybe there's some formatting issue with individual jsonl files?

requires the dataset_info in the README to be correct. This can be done automatically via
datasets-cli test ./alignment-research-dataset --save_info --all_configs


Doesn't work

Doesn't work,
Gifs aren't saved in the plugin folder.

Hi! The gifs arent saved, but a list of the gifs is. Check for "gifbackup.json" in your plugins folder after enabling the plugin. That backup file will restore your favorite gifs list if it ever gets wiped by a discord update.

yep it's there.
tested it and works fine
thanks


enttec-open-usb-dmx fails

Hi,  I'm really struggling to get this working on the enttec open usb box.
The first error I get is:
TypeError: open() expects three agrguments

I've been able to connect to the enttec open usb box by inserting another callback in the open() function in enttec-open-usb-dmx.js:
self.dev = new FTDI.FtdiDevice(device_id)
self.dev.open({
	'baudrate': 57600,
	'databits': 8,
	'stopbits': 2,
	'parity': 'none'
}
, function(err) {
    // new callback
}
, function(err) {
	cb(err, device_id)
	if(!err) {
		self.start()
	}
})

Now it seems to connect without error.  My main problem is the light connected to the enttec device doesn't respond to any values.
I have a Stairville LED PAR56 connected and it works correctly when used with Q Light Controller
The DMX Channels for the light are:
Channel   DMX   Name
1         1     Mode
2         2     Red
3         3     Green
4         4     Blue
5         5     Speed control

I edited the dmx-web-example.config so I have a preset which I would expect produce white light:
	{
		label: "White",
		values: {
			'office': { 1:255,  2:255,  3:255  }
		}
	}

The light doesn't go on though.  I don't get what's wrong.  Can anyone help?

Hi, the "enttec-open-usb-dmx" seems to be problematic for a few reasons.
The first is that I don't have such a device to test, so I'm always dependant on the community for this driver.
The bigger issue is that it requires very stable timing as the computer generates the DMX messages.
I've just made some changes to the driver that could help with syncing the bus (hopefully) and would be happy if you could test with the current git version. Thanks

the enttec-open-usb-dmx driver should finally be fixed with e105013d1ced34f5439edcc41189dd25524fcf1e

Hi :-)
I've finally got my simply lighting console code to the point where I can test it with an actual device, so I got the entec-open-usb-dmx... of course now I'm having difficulty either connecting or getting anything out of it, so I'm hoping I can work with you to do some testing...
I'm on a macbook air, osx 10.11.6, using the latest git version of your code.
The device shows up as /dev/cu.usbserial-AL00DG7I
It works fine using JV Lightning controller, just as a test, so I know the hardware side works fine...
Starting the app with
var universe = dmx.addUniverse('demo', 'enttec-open-usb-dmx', '/dev/cu.usbserial-AL00DG7I');
yields a quiet (ie. no error log) startup, but I get no response from the device (an LED par), and it indicates it's not receiving any DMX signal.
At this point I'm not certain whether I should be looking at the system or node serial driver, or the specific enttec-open-usb-dmx driver code.
I did a test where I downloaded a fresh git copy, did npm install to get required packages, updated the addUniverse line to specify the "/dev/cu.usbserial-AL00DG7I" device in demo_simple.js, and ran it.
It appeared to function without error (ie. toggled 'on/off' in console) but did not register a proper DMX signal with the light, nor did I get any reaction from it...
I discovered some chatter online about ElCapitan conflicting in some way with FTDI drivers??? That's way outside my knowledge base, but I tried a couple of the suggestions to no avail... I'm not sure if that's a red herring, or in fact what I'm up against and should continue... The fact that the device works perfectly with different software and no system modifications suggests that maybe there isn't a conflict after all, but maybe I'm mis-interpreting...?
Anyway - thanks for a great package, and if you have any ideas that might point me in a direction to test, I'd be happy to be your remote tester :-)
Thanks and happy new year!
David


Update get_image doc to mention that it will return an empty image with invalid texture

Related to https://github.com/godotengine/godot/issues/86489
Unfortunately I can't reproduce that issue with a similiar gdscript version of that MRP, but I think it's better to mention this behaviour.
I checked all the virtual get_image implementation, looks like it's appropriate to add this note (NoiseTexture2D's get_image will directly return the image stored in member, but I think it's fine).

And happy new year!

You too! In the new year I hope I can "bother" you with more PRs to Godot，thanks for your hard work!

Looking forward to it 🙂

Thanks!

Cherry-picked for 4.2.2.


Install Questions

More of a user issue, but having trouble configuring my .stonky.cfg file. It keeps loading the example. What are the install steps as far as setup.py build/install?

If stonky is loading the example config file you've installed it. The easiest way to load your own config file is to make a copy of the example one, tweak it to your liking, then save it as .stonky.cfg in your home directory.

Thank you for the response. I did try and tweak the example file and saved as .stonky.cfg
When you say "home directory" you mean where stonky repo was cloned into?

When you say "home directory" you mean where stonky repo was cloned into?

No, your user account's home directory. e.g. where you end up when you end up when you run cd %HOMEPATH% on Windows or cd $HOME on MacOS or Linux.

Will i need to rebuild after?

Nope, this file is read at runtime. You can just edit the config file then re-run stonky.


Operator's memory usage over time

Hi everyone,
I've noticed that the operator, over time, starts to use more and more memory without releasing it back to the OS. Is this normal? Screenshot below is for almost 2 weeks. I've had much more memory usage before (about 3G), when the operator was running for more than 2 months without restart.
Verision of the operator is 5.0.0-rc.11, kubernetes version v1.8.8. Cluster was deployed with kops.

Thank you

@ssro , this is not normal. If you can share pprof profile that can hint at potential source of memory leaks. FYI, there has been significant updates to codebase since 5.0.0-rc.11 release. Any chance you can try the latest version and see this problem repeats itself?

Hi @tamalsaha, not sure what you mean by pprof profile. How do I get it? As of today, I've deployed version 6.0.0 (appscode/voyager:6.0.0) on a dev cluster. I can monitor this and report back in few days.
Thank you

Thanks @ssro . By pprof I was referring to https://blog.golang.org/profiling-go-programs
https://golang.org/pkg/runtime/pprof/..
If ok, let's see how things turn out after 24 hours.

Hi @tamalsaha, 24hrs later problem persists

Since i'm not "skilled" in memory profiling, any guidance towards carrying out this task would be appreciated

I am also running into the same issue.
Is http/pprof compiled in or will I need to make a custom image?
Will try to trace it down tonight.

Is http/pprof compiled in or will I need to make a custom image?
Yes. https://github.com/appscode/voyager/blob/master/pkg/cmds/run.go#L5

It appears to be leaking goroutines, there are ~40k of these:
goroutine 614034 [chan receive, 13854 minutes]:
github.com/appscode/voyager/vendor/k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartEventWatcher.func1(0x3ec1a60, 0xc42255aae0, 0xc422982fc0)
	/go/src/github.com/appscode/voyager/vendor/k8s.io/client-go/tools/record/event.go:229 +0xac
created by github.com/appscode/voyager/vendor/k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartEventWatcher
	/go/src/github.com/appscode/voyager/vendor/k8s.io/client-go/tools/record/event.go:226 +0x6e

goroutine 615600 [chan receive, 13844 minutes]:
github.com/appscode/voyager/vendor/k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc4218dd000)
	/go/src/github.com/appscode/voyager/vendor/k8s.io/apimachinery/pkg/watch/mux.go:208 +0x61
created by github.com/appscode/voyager/vendor/k8s.io/apimachinery/pkg/watch.NewBroadcaster
	/go/src/github.com/appscode/voyager/vendor/k8s.io/apimachinery/pkg/watch/mux.go:75 +0xfe

Trying to see if i can identify why these are hanging around.

I wonder https://github.com/kubernetes/kubernetes/pull/61894/files pr has something related to this.

I think I see what is going on. We create a new EventRecorder every time and never Stop() them. So, go routine never exits. https://github.com/appscode/voyager/blob/master/vendor/k8s.io/client-go/tools/record/event.go#L226

I have pushed a new operator image with the fix. Can you update your voyager-operator image to appscode/voyager:fix-leak and check?

It's running now, i'll keep an eye on it and report back later. Thanks for looking into this so quickly.

still 53mb. looks like this resolved the leak.

That is fantastic @antihax ! Hope @tamalsaha will cut a release with this

Thank you guys! This will be part of the next release 7.2.0 . I am targeting for next Monday.

@antihax, @ssro reported that he is still seeing memory increase over time. Do you see any issues on your setup?

This is the graph for the last 2 days running fix-leak image. I think it's consuming memory somewhat slower since my first report about it.

Unfortunately I restarted Prometheus last night. Here is what I see
https://i.imgur.com/YaNnOwR.png

Folks, please keep an eye on it. It you see this, let me know with profiling data. I added a doc for that https://github.com/appscode/voyager/blob/master/docs/guides/ingress/monitoring/operator-profiling.md

Hi folks, a quick update of this issue. I have the same image (fix-leak) deployed to another cluster, same setup, and it looks stable for the last day. I see the same behavior to my original dev cluster. I will keep monitoring it over the weekend and report back, but so far, things are looking good.
Last day:

Last 3 days:

Hi y'all,
Good news: the memory leak issue can be closed, the graph for the last 6 days shows that the memory consumption is stable.

Thanks @ssro !


feat(orchestrator): use v2 endpoints to retrieve instances

Use v2 endpoints in orchestrator plugin UI for instance list and instance by id.
Warning: This DELETE corresponding v1 endpoints.

/lgtm


Improve cloned forms naming

Fixes #3546. Improves the naming of cloned forms by changing the format to <original form name> (Copied on <%Y-%m-%d %H:%M:%S.%f>), ie. cloning Test Form would result in a duplicated form with the name Test Form (Copied on 2024-08-27 17:34:32.004). If a form name with a timestamp already exists on a form it will be subbed via RegEx matching.
Test Steps

[ ] Ensure when cloning a form (either manually or via the creation of a new round) that the form's name gets (Copied on <%Y-%m-%d %H:%M:%S.%f>) appended to it
[ ] Ensure if a timestamp string already exists on a cloned form, it is replaced with an updated timestamp

@theskumar unit tests added in the last commit - was trying to find a way to patch/mock django.utils.translation.gettext to test the usage of the regex w/ translated strings but was struggling to get it to work. let me know if you have any solutions for that


Trouble with AuthenticatedRouteMixin

Having trouble getting AuthenticatedRouteMixin to transition. (UnauthenticatedRouteMixin appears to be working fine.)
I created a very simple app to demonstrate:
https://github.com/somlor/simple_auth_demo
If you clone that app, then visit http://localhost:4200/user/1, this route should transition to login but is not.
Am I doing something wrong, or is this a bug?
Thanks,
Sean

Are you sure you're not authenticated when visiting the route? Maybe you could setup a JSBin illustrating the problem.

Thanks, yeah, I have not even wired up the auth backend yet.
The problem is not just that the page is visible when it should not be. The problem is that when I add AuthenticatedRouteMixin the route renders nothing, and does not transition.
I could try to setup a JSBin if need be, but I did create the repo above specifically to demonstrate this issue. Figured it would be a better example since I'm using ember-cli.
Thanks,
Sean

There are two problems in your code:

you need to define the user route in app/users/user.js - that's because you're using a resource route (which I would advise against anyway as they only make things more complex and don't really add much value)
you're not using the ApplicationRouteMixin which means that you would have to define the authenticateSession on the application route yourself. You would also need to manually handle the various session events.

@marcoow thanks so much. Your advice solved my problem. Sorry to trouble you with a non-bug. Really appreciate your help, and your work on this great lib!


Use latest http package

Hi,
If possible, please upgrade the http package to the latest.
Thank you.

Done

Thank you so much 😄