Debit Card - When adding a Card for the first time, an incorrect form of fill-in is loaded

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.89-6
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Open New Expensify app
Logging in with a prepared account
Navigate to Settings\Wallet
Navigate to the Add a Debit Card menu
Return back to Wallet
Navigate to the Add a Debit Card menu again

Expected Result:
The first time you add a debit card, the correct fill-in form must be loaded
Actual Result:
When adding a Debit Card for the first time, an incorrect form of fill-in is loaded
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/78819774/3b6c8df6-5827-4a27-bd4a-e2dd993648f4

MacOS: Desktop

View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Logging in with a prepared account

What is a "prepared account" and "correct fill-in form"?
I am not sure what the issue is. What are you expecting to happen @lanitochka17? Can you say it another way?

Oh I see now. It's taking you to the page to add a bank account and not the debit card page.

This can be reproduced on production. The catch is that you have to sign in with a new account. The second time you try to add a debit card it will bring you to the correct page.

Alright with Marc's summary here: https://github.com/Expensify/App/issues/30214#issuecomment-1776175110
I'm going to assign it as an External

Proposal
Please re-state the problem that we are trying to solve in this issue.
The first time (with respect to the lifetime of their log-in session) a user tries to add a debit card, they are instead taken to a page where they can link their bank account.
What is the root cause of that problem?
The DebitCard page has two objects of interest: props.formData.setupComplete and prevFormDataSetupComplete (corresponding to the previous value of the property).
An effect has a filter such that the code of interests runs only if prevFormDataSetupComplete is false and props.formData.setupComplete is true. Effectively, if props.formData.setupComplete changes to true, the code runs.
Immediately once the component initializes, the method clearDebitCardFormErrorAndSubmit is called which changes setupComplete to true and stores this in Onyx.
The first time the user navigates to this page, because setupComplete changes from its default false to true, this code runs. Subsequent navigations to this page do not lead to this because setupComplete had been true since the beginning.
continueSetup calls kycWallRef.current.continue where available which calls the continue method of the current KYC wall (BaseKycWall.js). According to the doc comments, this will:

get them to add a payment method if none exists
otherwise, send them to the enable payments page if they haven't completed KYC
otherwise, send them to the action they requested

According to this logic, the user will be made to add a payment method and directed to add a bank account (there is more logic as to why specifically bank account but that is not relevant here).
It appears to me that setupComplete should only be set to true by the API once the debit card has successfully been set up to allow the user to complete the payments onboarding process, and that clearDebitCardFormErrorAndSubmit setting setupComplete to true is an error and it should set it to false instead. This is supported by the fact that the method is meant to reset the form back to its initial state as described by its documentation comments. The initial state is defined as defaultProps in AddDebitCardPage and has setupComplete set to false.
What changes do you think we should make in order to solve the problem?
Change the value setupComplete is set to from true to false in clearDebitCardFormErrorAndSubmit (PaymentMethods.ts).
What alternative solutions did you explore? (Optional)
None.
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

Ahhh good catch @tienifr! I'm going to close this out.


Fix some detekt issues

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 64.19%. Comparing base (9117094) to head (4f942d6).
Report is 55 commits behind head on nogorodnikov/merge-develop-into-otel-support-170424.

Additional details and impacted files
@@                                   Coverage Diff                                    @@
##           nogorodnikov/merge-develop-into-otel-support-170424    #2043       +/-   ##
========================================================================================
- Coverage                                                83.23%   64.19%   -19.03%
========================================================================================
  Files                                                      491      759      +268
  Lines                                                    17685    28314    +10629
  Branches                                                  2685     4757     +2072
========================================================================================
+ Hits                                                     14719    18176     +3457
- Misses                                                    2227     8912     +6685
- Partials                                                   739     1226      +487

Files
Coverage Δ

...ce/opentelemetry/internal/DatadogContextStorage.kt
66.67% <ø> (ø)

...ndroid/trace/opentelemetry/internal/OtelContext.kt
89.47% <ø> (ø)

.../android/trace/opentelemetry/internal/OtelScope.kt
100.00% <ø> (ø)

.../kotlin/com/datadog/android/trace/AndroidTracer.kt
96.00% <ø> (-0.23%)
:arrow_down:

...atadog/android/trace/internal/FeatureSdkCoreExt.kt
100.00% <ø> (ø)

...dog/android/trace/internal/data/OtelTraceWriter.kt
88.46% <ø> (ø)

... and 131 files with indirect coverage changes


Fix draw control editing bug

This PR fixes the draw control bug reproted in #1899. In addtion, I improved the redraw_layer() function by utilizing substitute layer rather than removing and adding layer. This avoids the layer flickering.
Colab: https://colab.research.google.com/drive/1E9Uf4WJV060BDnH1yiwA0k5eajtLbmGj?usp=sharing
Note: The recent GDAL version fails on Windows GitHub Actions. It is irrelevant to this PR. I commented it out temporarily.

@naschmitz @sufyanAbbasi Are you Ok with merging the PR? It would be great to fix this long-standing draw control bug and include it in the next release.


Code Abstraction

Most recent commit: 80415c8d5db9446f64d54543d5517f5268c7b5a1
The app currently has a lot of code that should be abstracted (ie. the same code is found in multiple locations).
Ways the code can be abstracted:

Using styleOverrides in the MUI theme
Enveloping an MUI component in a custom component with modifications to the CSS (using sx prop or other)
Storing variables that represent a consistent property across multiple components or elements (eg. storing the Accordion component padding)

Code has been abstracted in #36.


Load FileSystemProviders with system cl

The FSP are discovered using the system classloader. if a custom provider tries to load classes using Thread.currentThread().getContextClassLoader().loadClass a ClassCastException is thrown.
Same idea as was originally done in https://github.com/quarkusio/quarkus/pull/9774.
Moving the fix over to this lib, since I want to get rid of it in ClassPathUtils for future optimizations.

Green Quarkus CI Run: https://github.com/Postremus/quarkus/actions/runs/1584777716
Commit: https://github.com/Postremus/quarkus/commit/a47e8e925137466b0ee1f6e555bd1ba11f7a41f3

I released 0.0.4, you'll need to wait until it's synced to Maven Central.


1770 add master name to redisson config

fixes https://github.com/Netflix/conductor/issues/1700

Pull Request Test Coverage Report for Build 4372

0 of 3 (0.0%)  changed or added relevant lines in 2 files are covered.
33 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.2%) to 69.142%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

redis-lock/src/main/java/com/netflix/conductor/locking/redis/config/RedisLockConfiguration.java
0
1
0.0%

redis-lock/src/main/java/com/netflix/conductor/locking/redis/config/RedisLockModule.java
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

postgres-persistence/src/main/java/com/netflix/conductor/dao/postgres/PostgresQueueDAO.java
4
92.11%

cassandra-persistence/src/main/java/com/netflix/conductor/dao/cassandra/CassandraEventHandlerDAO.java
8
68.42%

cassandra-persistence/src/main/java/com/netflix/conductor/dao/cassandra/CassandraMetadataDAO.java
10
55.44%

postgres-persistence/src/main/java/com/netflix/conductor/dao/postgres/PostgresMetadataDAO.java
11
80.0%

Totals

Change from base Build 4365:
-0.2%

Covered Lines:
12505

Relevant Lines:
18086

💛  - Coveralls


[GSSoC'21] Binary Search Tree Validation in CPP

💥 Proposal
Given a Binary Tree check whether it is a Binary Search Tree or not.
A valid Binary Search Tree is defined as follows:

The left subtree of a node contains only nodes with keys less than the node's key.
The right subtree of a node contains only nodes with keys greater than the node's key.
Both the left and right subtrees must also be binary search trees.

Have you read the Contributing Guidelines on Pull Requests?
Yes, I have read the guidelines

/assign


Run without MSAL

I don't have MSAL and I don't need it ATM., so I made a parameter called -SkipMSAL.
Changes is in the following files:
Private/New-AuthenticationHeader.ps1
Public/Connect-MSIntuneGraph.ps1
I got this error, without MSAL:
WARNING: An error occurred while attempting to retrieve or refresh access token.
Error message: The term 'Get-MsalToken' is not recognized as the na
me of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is corre
ct and try again.

I made a fix for my own issue, please see:
https://github.com/Interrobangs/IntuneWin32App

Not sure why you don't want/need MSAL, but thanks for sharing the code.


Using defaultProps or attrs for altering the as and theme props

This is a question about the difference between the behavior of defaultProps and attrs. The reason for not asking it through StackOverflow or Spectrum is that I think the answer should be covered by the official docs.
While I have found a use-case for defaultProps in a single section of the documentation, there are no explicitly stated pros and cons about them in comparison to attrs.

I'm creating a system of components in which Box would be a base and others would extend it through the styled API:
import { defaultTheme } from '../theme';

const Box = styled.div``;

const Box.defaultProps = {
  theme: defaultTheme,
}

Is it correct to use defaultProps to define a default theme through a base component? Should I prefer using attrs instead?

When creating a Paragraph which extends Box, which way should I construct it?
const Paragraph = styled(Box)`
  line-height: 1.5;
`;

Paragraph.defaultProps = {
  as: 'p',
};

Or
const Paragraph = styled.attrs({ as: 'p' })(Box)`
  line-height: 1.5;
`;

If the answer is the latter, how do I type my props? There are multiple ways available:
const Component1 = styled.attrs({ as: 'p' })<Props>(Box)``; // Breaks VS Code syntax highlighting
const Component2 = styled.attrs<?, ?>({ as: 'p' })(Box)``; // What should I put in place of the question marks?

@kripod Check out my answer about this issue.
Quick answer: it depends on how you want the component to behave. Hardcoding props via attrs makes it impossible to override it via props (unless you do it yourself in the attrs factory function). defaultProps allow overrides.


switch语句

https://givedrug.github.io/coder-notes/?#/!代码片段/java/switch语句
Description

just a test!


fixes e2e

Please go the the Preview tab and select the appropriate sub-template:

Production code - for types fix, feat, and refactor.
Docs - for documentation changes.
Others - for changes that do not affect production code.

@adam-hanna Thanks for the fixes! Just a couple a small updates and we are good!


Exporter pulling items not listed

Issue description: I placed an Exporter on a trash can in "all the mods 3" and gave it a list of items to export.
What happens:The Exporter started removing all of my items and dumping them into the trash.
What you expected to happen: I only expected it to export the listed items.
Steps to reproduce: Place a trash can from extra utilities.  Attach an exporter between the trash can and your network.  give the exporter items to eject from your storage network.  (external storage bus connected to storage drawer controller)
Version (make sure you are on the latest version before reporting):

Minecraft: 1.12.2
Forge: <IP_ADDRESS>70
Refined Storage: 1.5.28

Does this issue occur on a server? [yes/no]
single player
If a (crash)log is relevant for this issue, link it here:
[pastebin/gist/etc link here]

That is not possible.


Release needed

The docs say \Cowsay\Cow, but that needs dev-master, which the docs don't mention - a simple composer require will install version 1.0.0 of the library, with class \League\Cowsay\Cow.
Can you please tag a new release?

Sorry for the delay. I will take a look to your request as soon as I can.

New release has been added to the project. Thanks for your feedback.


Widget doesn't work in a Next js app in Production

Hello thanks for this wonderful bundle,
The widget works perfectly in development, but not in production. Instead of seeing just the choose files button, the widget renders drop files here text followed by a circle then 3 buttons (choose file, cancel and remove). When I click on any of the buttons or use the widget API ref, only plain html of the modal shows up with no CSS. It still works though.

Any idea why this is happening or what I can do to troubleshoot?

Hi Aleksandr! Im using ^12.3.1 for Next js. No CSP. No errors in my build or browser console. I even added it to my index.js page to see if it had anything to do with my dynamic paths but it's broken there also.

Unfortunately, I can't reproduce this issue on a clean 12.3.1 project. I should also mention that if you're using SWC, image previews won't work due to this issue.
We inject styles directly into the head tag on initialization, so I'm assuming that the head contents are being rewritten somehow. Could you provide a minimal reproducible example?

That was all I needed Alek. Thank you so much. I removed the next/Head tag from my app.js and index.js files and it works perfectly now in production. Now I just have to find out which line of code specifically is causing the issue. Is there a link stylesheet I can use for this widget that I can place in my ?

I found it. These google font stylesheets were overriding the widget styles:

It seems that this is a known Next/Head bug and it should be fixed in future releases. See this link for more information.
As for a link stylesheet to use for the widget, styles are directly injected into the JS bundle so there is no link. However, I have created one for you to use as a workaround. Here is the link: Gist.

That's wonderful! Thank you so much Alek!


Deprecation fix

Due to recent Karma changes, the unit tests are now outputting the following warning for the filter fields component.
WARN: 'tooltipPlacement was deprecated, please use placement instead'
I renamed the attribute; however, this means that Planner must upgrade ng2-bootstrap to 1.3.3 -- I believe they are still on 1.1.16. I will create another PR for that.

I'm going to hold off for now. Too many tests in planner have to be updated when updating ng2-bootstrap to the latest.


Adding a function to count the entities in a table

@thibaultCha ^

Note: to be closed re-opened again the next branch (See #622)


[SPARK-46540][PYTHON] Respect column names when Python data source read function outputs named Row objects

What changes were proposed in this pull request?

This PR fixes an issue when the read method of Python DataSourceReader yields named Row objects.
Currently, it ignores the name in the Row object:
def read(self,...):
    yield Row(a=1, b=2)
    yield Row(b=3, a=2)

The result should be [Row(a=1, b=2), Row(a=2, b=3)], instead of [Row(a=1 , b=2), Row(a=3, b=2)].
Why are the changes needed?

To fix an incorrect behavior.
Does this PR introduce any user-facing change?

No
How was this patch tested?

Unit test
Was this patch authored or co-authored using generative AI tooling?

No

cc @HyukjinKwon @ueshin

Merged to master.


Typescript - do not color colon :

Colons should not be colored blue, they should remain black.

Is this the right regex for this? https://github.com/Microsoft/vscode/blob/master/extensions/typescript/syntaxes/TypeScript.tmLanguage#L1067

This is a problem of the grammar.
: get scope token annotation body declaration function meta method object parameter type ts

This issue was moved to Microsoft/TypeScript-TmLanguage#27


Enable Traivs for this repo

Travis is currently not enabled for this repo
https://travis-ci.org/pokusew/nfc-pcsc

Hi @amilajack,
I finished .travis.yml config, enabled Travis CI for the repo and added build status badge to the README.
Next steps:

[ ] Write tests (start with at least some, e.g. test the static methods of the Reader class)
[ ] Run tests on Windows and macOS too (consider switching to another CI provider to unify the configs)

Any contribution is welcome! 😉

PS Don't forget to star ⭐my library, if you find it useful. 😃Thanks.

PS Don't forget to star ⭐my library, if you find it useful. 😃Thanks.

Already did a while ago! 😄


Use size of server key when selecting signature algorithm.

The server should not pick a signature algorithm that is incompatible with its configured key if the client offers a compatible algorithm of lower preference.
Fixes #4042

Also, you will have to sign our CLA; this is not a trivial change.  Please see https://www.openssl.org/policies/cla.html for details.

you can put it up near the top of the same file

As indicated in the original issue we shouldn't hit this unless the key size is quite small anyway. If we care about that then do not use EVP_get_digestbynid(): that's quite an expensive operation to perform multiple times. Use the hash_idx field instead like this ssl_md(lu->hash_idx). I agree that bypassing the whole check if the key is big enough is a good idea too.

Now I see the ssl_md() function (and tls1_lookup_md()).  I'll use that instead of EVP_get_digestbynid().
I agree 1024 bit keys are small and should not be used.  However, I think this is worthwhile to fix because I can get two different behaviors depending on how the client orders the same set of signature algorithms.  Using s_client with the -sigalgs option to connect to s_server running with a 1024 bit key I see the following
Works: -sigalgs "RSA-PSS+SHA256:RSA+SHA256:RSA-PSS+SHA384:RSA+SHA384:RSA-PSS+SHA512:RSA+SHA512"
Fails: -sigalgs "RSA-PSS+SHA512:RSA+SHA512:RSA-PSS+SHA384:RSA+SHA384:RSA-PSS+SHA256:RSA+SHA256"
Since it works in one case, I would expect it to work in both.

Close/open to kick the CLA bot.

@nrobbin you need to edit the commit to set the Author properly.  Perhaps best to squash and fix the author in the new single commit?

The code in the pull request is no longer working.  It looks like the definition of  SSL_PKEY_RSA_PSS_SIGN changed.  I'll re-work against the latest code.


How to add new user agents ?

I would like to add the latest chrome user agents v91, v92, v93 and chrome based browsers like Yandex, Opera. But on first look seems like it very complicated, is there any instructions on this?

Regarding Chromes: I'm going to integrate the latest chrome browser data in the near future. Just need to get to it.
For Other browsers or in interim:
Building a perfect emulator of those agents is going to be complicated, but you could "fork" the default-browser-emulator to do what you're talking about. There's some documentation, but you're likely going to have to look at the code.
Depending on if you want to run headless, you might also need to generate data to "polyfill" the headless versions of those browsers to look headed. With Chrome, the process is:

Generate chrome browsers that don't auto-update (https://github.com/ulixee/hero/actions)
Integrate into a BrowserEmulator that correctly launches each when a userAgentString is provided that requests them (see https://github.com/ulixee/secret-agent/blob/424c445687e3458d7609c187974f0fce09802ab7/plugins/default-browser-emulator/index.ts#L134)
Test that our Chrome devtools flow works with Yandex and Opera
Optionally (best result): Analyze the the tls/headers/dom to determine anything that needs to be modified by your emulator at runtime (Test suites here: https://github.com/ulixee/double-agent/). You could use something like BrowserStack to generate your data.


Android: Fix handling of line height with inline images

This PR was split from a commit originally in #8619. /cc @dmmiller
When an inline image was larger than the specified line height,
the image would be clipped. This changes the behavior so
that the line height is changed to make room for the inline
image. This is consistent with the behavior of RN for iOS.
Here's how the change works.
ReactTextView now receives its line height from the layout thread
rather than directly from JavaScript.
The reason is that the layout thread may pick a different line height.
In the case that the tallest inline image is larger than the line
height supplied by JavaScript, we want to use that image's height as
the line height rather than the supplied line height.
Also fixed a bug where the image, which is supposed to be baseline
aligned, would be positioned at the wrong y location. To fix this,
we use y (the baseline) in the draw method rather than trying
to calculate the baseline from bottom. For more information
see https://code.google.com/p/android/issues/detail?id=21397.
Test plan (required)
This change was tested with UIExplorer and a small test app and it's being used in my team's app.

By analyzing the blame information on this pull request, we identified @foghina and @dmmiller to be potential reviewers.

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review internal test results.


Update ZF2 version constraints and remove unnecesary requirement

ZF2 won't introduce BC break for Cache component, so its version constrain can be relaxed. Now it's possible to use this library with newer ZF2 versions (i.e. 2.4 LTS) or 2.5 (PHP 5.5+).
zendframework/zend-memory is required by zendframework/zendpdf - - so there is no need to specify it here as well.
zendframework/zendpdf is not supported anymore but just in case I've updated constraint to allow patch versions: 2.0.X

@psliwa, is there something that is blocking this pull request?

I've cherry-picked this change, because I wanted also to fix 1.2.x branch: https://github.com/psliwa/PHPPdf/commit/686bf8adc24fb2a7b800f5c557f0a95571b03001


Build and publish herdstat executables for various platforms

This can be done easily using https://github.com/marketplace/actions/go-release-binaries. How this integrates with release please has to be investigated.

This should be done after #33, when no external shared libraries are required anymore.


How do I add this to my ./site/composer.json file?

Forgive my ignorance, but Composer is abstract to me and I'm relatively new to it.
How do I add this to my ./site/composer.json file?

At https://packagist.org/packages/trellis-sync/trellis-sync is the composer package for this repository. It has actually just been added as you asked about it. It has not been tested, but should work running composer require trellis-sync/trellis-sync . Let me know how that goes.

Great. Thank you for clarifying!


[Octree] Properly remove invalid points from nodes.

Hello.
Was looking at Octree example and I think I got it right.
In removeInvalidPointsFromNodes(), line 294 - last element we swap with can also be invalid and, as result, skipped.
Without this change, after call to incrementalUpdate() there are points duplicates.
I simply put remove_if. Hope that makes sense.
On my PC, release build, without vsync, this improves CPU perf 2x with default options.

Hi!
Sorry for an extremely late reply -- was busy elsewhere. This indeed seems like a bug, thanks for catching and fixing it!
Looking at the code, the root cause seems to be the lack of arrayRemove() APIs in the library, which is why the buggy swap-remove code was added in the first place. I'll postpone the fix until arbitrary array insertion and removal implemented in Corrade, that should make the code cleaner overall.
Thanks again!


JORDAN!

shouted because he used brackets + return
code style is important

Jordan is like that.  He uses some weird linter.


Black screen when view is maximized (SurfaceView)

Hi Pedro and another developers. I've found a issue with the SurfaceView and it happens sometimes, as shown in image below :
I think this may be due to GPU that doesn't run the onDraw after a while, losing your reference after a while.
Device: Galaxy S4 Mini

Solved! Don't use the SurfaceView with this library, otherwise, I recommend to use the TextureView.
Sample: https://github.com/ppamorim/TextureView-Sample


Video from camera source is published as screen share on reconnect

Describe the bug
Expected result:
Screen is shared on reconnect
Actual result:
Video from camera is shared on reconnect
Reproduction

Run yarn sample from the project
Open app in 2 tabs
Connect to the same room in 2 tabs, without video
Start screen share from one of the tabs
On the same tab, simulate an engine reconnect (either full reconnect or resume-reconnect) from Simulate dropdown.

Note: if you did not allow access to camera for the website, it will be asked first.
Logs
connected to Livekit Server edition: 0, version: 1.4.4, protocol: 9, region: [redacted], nodeId: ND_9UaUVO5n, debugInfo:
Room.ts:1743 room event signalConnected {event: 'signalConnected', args: Array(0)}
LocalParticipant.ts:270 setTrackEnabled {source: 'microphone', enabled: false}
LocalParticipant.ts:270 setTrackEnabled {source: 'camera', enabled: false}
LocalParticipant.ts:270 setTrackEnabled {source: 'screen_share', enabled: false}
RTCEngine.ts:482 received server offer {RTCSdpType: 'offer', signalingState: 'stable'}
PCTransport.ts:301 setting munged local description
SignalClient.ts:392 sending answer
RTCEngine.ts:410 primary PC state changed connecting
RTCEngine.ts:410 primary PC state changed connected
LocalParticipant.ts:1178 updating track subscription permissions {allParticipantsAllowed: true, participantTrackPermissions: Array(0)}
Room.ts:1743 room event connectionStateChanged {event: 'connectionStateChanged', args: Array(1)}
Room.ts:1743 room event connected {event: 'connected', args: Array(0)}
StreamerView.tsx:267 setTrackEnabled {source: 'screen_share', enabled: true}
RTCEngine.ts:613 on data channel 1, _reliable
RTCEngine.ts:613 on data channel 3, _lossy
LocalParticipant.ts:306 publishing track {localTrack: LocalVideoTrack}
LocalParticipant.ts:306 publishing track {localTrack: LocalAudioTrack}
RTCEngine.ts:494 received trackPublishedResponse {cid: 'e71dce43-e1f0-446e-a5f8-ac5d64aa7965', track: {…}}
TrackPublication.ts:122 update publication info {info: {…}}
LocalParticipant.ts:787 publishing audio with encodings {encodings: Array(1), trackInfo: {…}}
RTCEngine.ts:494 received trackPublishedResponse {cid: 'f00943df-f876-4823-bce4-64741b165abe', track: {…}}
TrackPublication.ts:122 update publication info {info: {…}}
LocalParticipant.ts:787 publishing video with encodings {encodings: Array(2), trackInfo: {…}}

TrackPublication.ts:122 update publication info {info: {…}}
LocalParticipant.ts:787 publishing audio with encodings {encodings: Array(1), trackInfo: {…}}
RTCEngine.ts:494 received trackPublishedResponse {cid: 'a459b4f6-b780-4293-89f0-98a3adf473da', track: {…}}
TrackPublication.ts:122 update publication info {info: {…}}
LocalParticipant.ts:787 publishing video with encodings {encodings: Array(2), trackInfo: {…}}
RTCEngine.ts:673 get capabilities {codecs: Array(14), headerExtensions: Array(11)}
PCTransport.ts:201 starting to negotiate
PCTransport.ts:301 setting munged local description
SignalClient.ts:383 sending offer RTCSessionDescription {type: 'offer', sdp: 'v=0\r\no=-<PHONE_NUMBER>396253732 2 IN IP4 <IP_ADDRESS>\r\ns…le\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n'}
RTCEngine.ts:457 received server answer {RTCSdpType: 'answer', signalingState: 'have-local-offer'}
PCTransport.ts:301 setting munged remote description
Room.ts:1743 room event localTrackPublished {event: 'localTrackPublished', args: Array(2)}args: Array(2)0: LocalTrackPublicationencryption: 0handleMuted: () => {       this.emit(TrackEvent.Muted);     }handleTrackEnded: () => {       this.emit(TrackEvent.Ended);     }handleUnmuted: () => {       this.emit(TrackEvent.Unmuted);     }kind: "audio"metadataMuted: falsemimeType: ""options: {audioBitrate: 32000, audioPreset: {…}, dtx: true, red: true, forceStereo: false, …}source: "screen_share_audio"track: LocalAudioTrack {_events: Events, _eventsCount: 5, attachedElements: Array(0), isMuted: false, streamState: 'active', …}trackInfo: {sid: 'TR_AsADXzmgwDMMMG', type: 0, name: '', muted: false, width: 0, …}trackName: ""trackSid: "TR_AsADXzmgwDMMMG"_events: Events {muted: EE, unmuted: EE}_eventsCount: 2audioTrack: (...)isEnabled: (...)isEncrypted: (...)isMuted: (...)isSubscribed: (...)isUpstreamPaused: (...)videoTrack: (...)[[Prototype]]: TrackPublication1: LocalParticipant {_events: Events, _eventsCount: 13, audioLevel: 0, isSpeaking: false, _connectionQuality: 'excellent', …}length: 2[[Prototype]]: Array(0)event: "localTrackPublished"[[Prototype]]: Object
Room.ts:1743 room event localTrackPublished {event: 'localTrackPublished', args: Array(2)}
Room.ts:1010 fully reconnected to server {region: 'https://[redacted]'}
Room.ts:1743 room event connectionStateChanged {event: 'connectionStateChanged', args: Array(1)}
Room.ts:1743 room event reconnected {event: 'reconnected', args: Array(0)}
RTCEngine.ts:432 secondary PC state changed connecting
RTCEngine.ts:432 secondary PC state changed connected
Room.ts:1743 room event connectionQualityChanged {event: 'connectionQualityChanged', args: Array(2)}

////////
Interesting thing to note: LocalTrackPublication is published with "source: "screen_share""

System Info
I'm running client-sdk-js from 41a1df1f

Severity
annoyance
Additional Information
No response

From what I understand, the issue is that when LocalTrack.restart is called, it creates a new track like so:
// create new track and attach
const mediaStream = await navigator.mediaDevices.getUserMedia(streamConstraints);

while it should probably go for
navigator.mediaDevices.getDisplayMedia

thanks for the (detailed ❤ ) report!
We try to restart the device to tackle situations where a pc is coming back from sleep, but we'll have to skip this for screen shares. I'll open a PR.

I've not encountered this issue when the pc was going back from sleep, rather when the lk server restarted for some reason. I'm assuming we can't restart screen share because the user would have to select the source once again? Or is there any other particular reason for that?

Or is there any other particular reason for that?

the main problem is that we separate audio and video tracks, but there's no way for us to get only the audio track of a screen share, so localScreenShareAudioTrack.restart could never work ...

Understandable. Cheers! Looking forward when this fix is released.


compatibility issue with 7.14 and probably above

Hi, I tried with 6.3 and yeah ! Neat, very useful script !
But I am unable to make it work with 7.14.
The ui open but the image won't load, probably due to the massive update topaz did.
If you are already aware of the problem do you plan to update the script in the future ?

Yeah, I will look torwards it. Thanks for report.

Just tested on Gigapixel v7.2.3 and everything works fine.
Try opening Gigapixel manually first and then run script.


fix(stack-renderer): minor fix for stack render to load nothing when…

… findImage does not find a suitable match

Please check if the PR fulfills these requirements

[ ] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Other information:

https://github.com/cornerstonejs/cornerstoneTools/issues/1402


Feature: Add a new container Logs API

Overview
Logs are  always useful to figure out what's going on in the distributed system especially in situations when something goes wrong.Docker currently supports getting logs from a container that logs to stdout/stderr. Everything that the process running in the container writes to stdout or stderr docker will convert to json and store in a file on the host machine's disk which you can then retrieve with the docker logs command. This feature aims to provide a way to monitor logs from the Rancher UI.
What Docker already supports?
The current way of fetching the logs of a container is to run the docker logs  command with 5 possible options from the docker remote API as in version 1.16 (https://docs.docker.com/reference/api/docker_remote_api_v1.16/#get-container-logs)  -
Query Parameters:
follow – 1/True/true or 0/False/false, return stream. Default false
stdout – 1/True/true or 0/False/false, show stdout log. Default false
stderr – 1/True/true or 0/False/false, show stderr log. Default false
timestamps – 1/True/true or 0/False/false, print timestamps for every log line. Default false
tail – Output specified number of lines at the end of logs: all or . Default all
Need for this feature
Currently, there is no way from the Rancher UI to monitor docker container logs. Hence, this feature aims to obtain docker logs from each container, collect and ship it using this new API to the Rancher UI so that the user can always monitor it through the console on the Rancher UI. Thus, this feature provides an alternative to the end user to monitor the logs as agains the existing ways of either using the Docker Remote API or the Docker CLI.
Tentative Design
The result of this new action(API) should return a url to a websocket on the host and also a jwt token. The websocket should connect to the host-api go process which runs on the host. (I'll update this section as I progress further)
Implementation Details
The implementation of this new API would probably be based on how the stats action and the exec action on instance have been implemented in Rancher.Currently, the host-api go process creates a secure websocket that proxies information. Rancher currently uses it to grab information from "cadvisor". Here in this new action API, I plan to call docker logs command with appropriate input parameters required for fetching the logs of a container.
Query Parameters Format -
Name      Format
"follow" - boolean
"lines" -   Integer (corresponds to tail in docker's remote API) - default Value - 100
"stdOut" - boolean
"stdErr"  - boolean
"timestamps" - boolean
Example API usage -
http://Cattle Server IP:8080/v1/containers/container ID/?action=logs&lines=10&stdOut=true&follow=true
Use Cases Needed to be Explored/Supported

Tailing the logs - This functionality will be supported where in the user can input the number of lines of logs to retrieve. The default value will be set to 100 lines.
Downloading the logs from the UI - YET TO BE DECIDED?
Scrolling through the logs on the UI - Once the logs are being viewed on the UI, the user should be able to scroll through them.
Searching through the logs on the UI ?

The progress of this feature can be tracked here - https://github.com/rancherio/cattle/pull/138/files

Few questions @ibuildthecloud

Currently, if I follow the pattern for execHandler, we return the URL to the websocket but when we talk about jwt authentication, how and where do we do its validation? Where can i get the public-key from so that once the jwt token is created by the Rancher server, it could be validated once the request comes in from the user?

Once the URL to the websocket with a port, container UUID and other arguments have been returned, the click on that URL should trigger a request and the "host-api" which I believe is listening to these requests. But looking at this GO-code, it seems it is kind of specific to "Stats" command, so do you think i should modify/restructure it and use it to make calls to the docker daemon? Or write a new Go-agent ?

When you talk about calling docker twice , one for stdOut and another for stdErr, could you point me to any existing module which handles the multiplexing and how any concurrency issues might have been handled here ?

What should actually be returned once the "docker logs...." call has been executed ? This "object" would need to be passed back to the UI.

The frame format is
0 1 TS Content
Where 0 is the version number (always 0 for now), 1 is the either 1 or 2 depending on stdout/stderr and the TS is timestamp in the format that Docker returns.

Closing as https://github.com/rancherio/rancher/issues/40 is closed.


CockroachDB: support more autoincrementing integer primary key representations

The "Prisma way" — what we have been doing and documenting so far — of defining an autoincrementing integer primary key looks like this:
model A {
  id Int @id @default(autincrement())
}

What the @default(autoincrement()) means is connector-dependent, but usually not too ambiguous.
The CockroachDB connector started from the PostgreSQL connector. We would issue the following statement for the Prisma schema that was just given as an example:
CREATE TABLE "A" (
  id SERIAL4 NOT NULL PRIMARY KEY
);

The problem with this statement is that SERIAL can mean four different things on cockroachdb.
We use a session parameter to make sure that the primary keys we create are normalized as sql_sequence. There are two reasons behind this:

It matches the postgresql behaviour,
but more importantly, it makes sure we have the right size of integers. The other interpretations for SERIAL would implicitly make the Int (32 bit integer) a BigInt (64 bit integer), which breaks both diffing inside the migration engine and the contract represented by the Prisma schema.

Normalizing to a sql_sequence is not what is recommended by CockroachDB. In general, uuid primary keys are preferred, but for users who want an autoincrementing integer, rowid is the preferred mechanism.
## Proposal
We should be able to express at least two of the four ways to interpret SERIAL

We keep the current behaviour for Int @id @default(autoincrement()) and the session parameter.
We add @default(rowid()) with the following rules:

The field type must be BigInt
It must be a single field primary key

Alternatives

Do not use the serial_normalization session variable, and create sequences ourselves. The problem with that is that it is more complicated, and does not necessarily match what the database would do in the background (think cleaning up the sequence on default drop). The advantage is that we would not depend on a session variable for migrations to behave as expected.
Go further and support all four types of autoincrementing integer defaults, without relying on the session variable. We may not be able to match exactly what the database normalises to, there, it needs more research.

Forcing the use of the recommended approach with a BigInt will not work, because we would not be able to introspect schemas using a sequence with 32 bit integers.

If you would prefer not to rely on the serial_normalization setting, another option is to use the GENERATED ... AS IDENTITY syntax. That will always result in a column backed by a sequence.
See:

https://www.cockroachlabs.com/docs/v21.2/create-table.html#identity-columns
https://www.postgresql.org/docs/14/sql-createtable.html


Upcoming Feature: Support for two garage door openers

Support will be added in the near future to control two garage door openers via one ESP8266 board.

Support has been added but code is currently untested; checkout the "two_doors" branch to test and please provide feedback.

Suppprt added in v1.0.0!


Patching the Codespaces Template URL

Fixes #145 {Invalid link to the Codespaces template}

Hi @SalemTracey
This pull requests resolves the manifested invalid URL as a result of changes made by the maintainers of the codespace template.


pull code and range with metavar

Description

Added comprehensive integration tests for Java and Python servers, ensuring proper server initialization and endpoint functionality.
Refactored AstGrepMatch and MetaVariables structures for improved code clarity and performance.
Implemented A* pathfinding algorithm and visualization in TypeScript, enhancing the project's functionality.
Improved error handling in JSON parsing and simplified source code fetching logic.
Updated Dockerfile to install the Jedi language server and adjust file copying for ast_grep.
Fixed bugs in Python graph class and character position in Rust test data.

Changes walkthrough
Relevant filesTests
2 files

java_test.rsAdd Java server integration test with endpoint validation

lsproxy/tests/java_test.rs
Added a new integration test for Java server.  Implemented server initialization and endpoint testing.  Validated file presence and symbol definitions.

+235/-0

python_test.rsRename and simplify Python server integration test

lsproxy/tests/python_test.rs

Renamed test function for clarity.
Simplified server setup code.

+1/-4

Enhancement
7 files

types.rsRefactor AstGrepMatch and MetaVariables structures

lsproxy/src/ast_grep/types.rs
Refactored AstGrepMatch to use SingleVariable.  Simplified get_source_code method.  Updated MetaVariables structure.

+16/-39

test_utils.rsAdd utility functions for Go and TypeScript paths

lsproxy/src/test_utils.rs

Added utility functions for Go and TypeScript sample paths.

+8/-0

find_definition.rsSimplify source code fetching in find_definition

lsproxy/src/handlers/find_definition.rs

Simplified source code fetching logic.

+1/-1

test.shUpdate test script to accept additional arguments

scripts/test.sh

Modified test script to accept additional arguments.

+1/-1

PathfinderDisplay.tsxAdd PathfinderDisplay component for pathfinding visualization

sample_project/typescript/PathfinderDisplay.tsx
Added a new React component for pathfinding visualization.  Implemented maze and path state management.

+126/-0

astar.tsImplement A* algorithm for pathfinding in TypeScript

sample_project/typescript/astar.ts
Implemented A* algorithm for pathfinding.  Defined interface and class structure.

+102/-0

main.tsAdd main function for pathfinding execution and visualization

sample_project/typescript/main.ts
Added main function to execute pathfinding.  Integrated path visualization.

+34/-0

Error handling
1 files

client.rsEnhance JSON parsing error handling in AstGrepClient

lsproxy/src/ast_grep/client.rs

Improved error handling for JSON parsing.

+2/-1

Bug fix
2 files

definitions_in_file.rsFix character position in definitions test data

lsproxy/src/handlers/definitions_in_file.rs

Corrected character position in test data.

+2/-2

graph.pyFix missing self parameter in Python graph class

sample_project/python/graph.py

Fixed missing self parameter in barriers property.

+1/-1

Configuration changes
1 files

DockerfileUpdate Dockerfile for Python language server and ast_grep

lsproxy/Dockerfile
Updated Python language server installation.  Adjusted file copying for ast_grep.

+2/-6

🔍 Infra Scan Results:
Failed Dockerfile ChecksCheck NameFile PathLinesEnsure that APT isn't usedlsproxy/Dockerfile56-56Ensure that HEALTHCHECK instructions have been added to container imageslsproxy/Dockerfile1-82Ensure that a user for the container has been createdlsproxy/Dockerfile1-82
💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

let's use $IDENTIFIER and $CONTEXT metavar names


"sub.external" for plex not working ?

Hi,
Firstly, I thank you for your great work, sir.
Your script seems to also work for plex, but for plex, the script won't select sub.external even though it works for mpv?
I would appreciate it if you could please help me?

Is plex loading any external subtitle files?

Is plex loading any external subtitle files?

yes plex users can upload/add external subtitles.


Add wildcard matches for virtual hosts

is already supported. This adds *.foo.com and *-bar.foo.com.

fixes #519

Quick note that we will need docs for this change (at minimum here: https://lyft.github.io/envoy/docs/configuration/http_conn_man/route_config/vhost.html)

@tschroed could we finish this up and get this merged next week?

Yes, this is on my list of things to do. Apologies for letting it languish.
On Fri, Mar 24, 2017 at 6:32 PM, Matt Klein<EMAIL_ADDRESS>wrote:

@tschroed https://github.com/tschroed could we finish this up and get
this merged next week?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lyft/envoy/pull/555#issuecomment-289158772, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AF6Tg3gSzXrMj1KeiqsIRuXKnvOE8aV5ks5rpESOgaJpZM4MYvJH
.

Going to close this for now. Please reopen when we are ready to get this going again.


fix scrolling box position on the page

Codecov Report

Merging #106 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #106   +/-   ##
======================================
  Coverage    91.3%   91.3%
======================================
  Files          10      10
  Lines          46      46
  Branches        2       2
======================================
  Hits           42      42
  Misses          4       4

Impacted Files
Coverage Δ

src/components/Body.js
80% <ø> (ø)
:arrow_up:

src/components/BackButton.js
100% <ø> (ø)
:arrow_up:

src/components/TickButton.js
66.66% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3623b61...af0e5e3. Read the comment docs.


Suggestion for webapp example in the docs

Hello, I just found Briefcase and it looks great. I skipped to the end of the tutorial to see if it has webapp capabilities to create the "hexafecta" of platforms and saw "Coming Soon". No worries, I just wanted to mention the Python package called FastAPI that I just used in the tutorial below to stand up a webapp in minutes using a very sparse amount of code. Perhaps this might help filling in the Docs for webapps.
https://github.com/andreRibeiro1989/medium/blob/main/chatbot/README.md
https://towardsdatascience.com/develop-a-conversational-ai-bot-in-4-simple-steps-1b57e98372e2

Thanks; but that suggestion doesn't really help here.
The goal of the web step of the tutorial isn't "write a web app quickly" - there are dozens of tutorials for doing that, using Django, Flask, FastAPI, and others. Rather, the goal is to take the same source code that has been used in the first steps of the tutorial, run the same code, and generate a web app with the same behavior.
Although we haven't updated the tutorial yet, it is possible to do this today - Toga and Briefcase have support for web deployment backend. I'm hoping we'll be able to update the tutorial to include this extra step in the near future.

@freakboy3742
Great, thats awesome. Does Toga use one of those mentioned tools, or was it written from scratch? Really good to know, I may try to do that.
Quick question.. are there any toolsets you know of that cross-compile Python like Golang does (maybe even a wrapper to golang with mypy for typing?) I've seen some tools like bazel-zig-cc and cross-env. Many use Cython in some fashion.
This issue below was closed, but it doesnt seem that Breifcase cross-compiles.
Is there a more efficient way to implement BeeWare? https://github.com/beeware/beeware/issues/84
I'm just trying to survey the current options before getting invested into a particular path. Thank you.

Toga doesn't involve a web server at all. it uses PyScript to get a client-side Python interpreter, and renders what is effectively a "single page app".
Briefcase formalises the packaging process and rendering into a HTML to load that page. It provides a simple web server for debug purposes, but the content generated by Briefcase could be served by any web server.
I have no idea what is going on with the ticket you've referenced; the user who opened it, closed minutes after it was opened. However, I'm not sure what they're trying to achieve with compiling in the form they describe - it won't actually speed anything up. Cython isn't "magical speed juice" - it has very specific situations in which it will make things faster.
More generally, what are you actually trying to do when you say "cross compile"? The two links you've provided are two completely unrelated use cases, so it's not clear what it is you're actually trying to achieve.

@freakboy3742 thanks for your reply..
Basically, I want the broadest reach possible for an application. It seems like Electron is the popular tool, maybe it does actually cross-compile to the big 3 OS platforms, and there are tools for mobile apps, but it uses html for the user interface. That makes using as a webapp easy, but adds size to the mobile apps.
Golang can do actual cross-compiling to the big 3 (without needing to run them), and results in very compact and efficient applications. It can also target ios, android and arm, etc. It seems if apps were written in exclusively Cython compatible code, the cross-compilation could be similar to Golang. Afaik, the Python packagers (like Appimage) include the entire Python interpreter (probably how Briefcase does .app and msi).
So I'm trying to figure out if there exists other tools that do cross-compilation like Golang. The first link discussed exactly that. The second one discussed cross-env, a tool I havent heard of. But I did find the one I was thinking of called Nuitka. In the SO page below, the top answer discusses the "freeze" strategy which packages the entire python interpreter versus Cython and Nuitka (which I just learned doesnt do  cross-compilation yet). The latter does however "executes uncompiled code and compiled code together in an extremely compatible manner" link. Taking care of packages that are not Cython compatible.
https://stackoverflow.com/questions/12059509/create-a-single-executable-from-a-python-project
So, I'm not looking for magical "speed-juice" so much as magical interoperability, unification and standardization. It does look like the path would be Cython or Nuitka > bazel-zig-cc. I figured since this project is in the related field, you all might know the state of the art on this matter. Thank you

So - I still don't entirely understand what you're trying to do. You've mentioned a bunch of different technologies, but they're all solving different problems in different ways - and none of them are related to the "web app" that was the start of this discussion.
Briefcase is a tool for producing the type of application that end users of desktop and mobile operating systems are familiar with - the sort of app that appears on a Start menu or Launchpad, presents as an icon that is clicked, and has a GUI. Briefcase is able to take a body of Python code that displays a GUI, and package it for macOS, Windows, Linux, iOS, Android and the web. Briefcase solves the problem of getting a standalone Python interpreter and code onto the user's computer in a way that means the end-user doesn't have to care about the fact that they're running a Python interpreter.
Cython doesn't make an application "cross platform". It provides a way to produce optimised code modules. It's a way to make a computationally intense loop faster by giving hints to the code that CPU-optimized instructions can be used. It still requires you to compile the module for every target platform where you want the code to run.
cross-env solves a completely different problem again - it provides a way to compile C modules for a platform other than the platform you're currently on. This doesn't normally matter for Python; but it's critical if you're dealing with iOS or Android because you can't (or don't) run a C compiler on those platforms.
Go is solving a different packaging problem. It doesn't produce GUI apps - it produces command line apps. It produces a single binary, because that's the style of tool it's targeting. You can probably use Go to produce a GUI app - but you'll need to use some other tool to handle the rest of the "App packaging" problem that lets a binary appear as an app on a Launchpad. Nuitka is roughly analogous here; there are certain modes of operation of PyInstaller that are also similar.
Electron is a different tool again. It is effectively a GUI framework - a way of making a GUI for an app using HTML+JS. You still need to work out how to package and distribute your application for distribution.
You keep using the words "Cross Compilation"... but your usage of that phrase doesn't map onto any usage that I'm familiar with. Cross compiliation is using a Windows machine to produce a macOS binary. That will be, at the very least, difficult, because the tools needed aren't cross platform. Xcode is only available on macOS. Visual Studio is only available on Windows. I'm sure someone who is sufficiently motivated can make that work... but why would you bother? After you've cross compiled your Windows app on macOS... you won't be able to test it - so you'll need to seek out a Windows machine to test on. If the issue is having availability of development machines on which to do compilation: GitHub Actions provides CI environments that lets you build native binaries on any platform you want. Go is able to do this because the Go compiler and standard library is an ecosystem unto itself - but the side effect is that the apps are usually only command line apps.
And none of this has anything to with web apps, which is where this thread started.
So - once again: What are you actually trying to do? What specific problem are you trying to solve? It's very difficult to advise whether BeeWare is a good match for your use case when all you're telling me is the selection of wildly unrelated technologies you're considering. If you can tell us what your actual end use-case is, we might be able to provide advice.

@freakboy3742 great, thanks again..
First, good points regarding Go being mostly CLI. In fact, that explains a bit of why other platforms arent strictly necessary to test and debug on. And thanks for pointing me towards that GitHub Actions feature.
I am envisioning not testing GUI apps on some platforms. I'm not going to buy an iPhone or a Mac to test on unless the success of the application warrants it. Users of proprietary platforms have to accept that barrier for devs, but thats another story.
The speed of Cython is almost irrelevant to me compared to the cross-platform compilation it allows through C. Yes, I mean cross-compilation. I'm developing a webapp that I want available on mobile and keep options open for desktop platforms. So that's why I started asking about webapps. Electron would work, but Python is important to me, so I landed here. I did just find a page discussing translating Python to JS with Transcrypt, and it looks like Capacitor is the popular mobile side of Electron. It connects to native mobile APIs and doesnt need to be as large as Electron. Briefcase still interests me for being able to stay in Python (it is amazing intrinsically). If it can create a mobile app and a web app with the same code, that is excellent.
I'm trying to distill these technologies down to some common denominators. Cross-compilation of GUI apps may be asking too much. I appreciate your replies.
I guess I need to compare the Briefcase web and mobile apps, with Electron and Capacitor either with JS or using Transcrypt. Could you share the code for your or an example Briefcase web app?

So - I have literally just walked off stage at DjangoCon US where I discussed this specific use case - wrapping a web app as a native app. And I can point you at an example: the Toga examples folder contains two examples: positron-static and positron-Django, which generate an Electron-style "app" whose GUI is a web app that is served internally.
Using Briefcase to target the web is a different approach: it uses Pyscript to treat the web browser as a native platform.


redirect the user to the app after login

how can I redirect the user to the app after successful login ? I 've set the redirect URI in Instagram Api website for my client to be [myClientID]://authorize and I've put a new URL Type in project settings to be ig[MyClientID] but every time the user logs in instagram displays a white page with : 400 Bad Request text written on top.
I've also opened a new SO question here for this issue.
any help will be highly appreciated.

May be related to too many requests, when I was testing auth I had the same issue so left it for a few days and it was alright.

Hello,
I am developing iOS application and used this repo for integration of Instagram into project. I have followed the readme and also googled about how to open the app after successful login into Instagram and generating token. But In my case, I am not able to redirect into application.
Here is what happening..
When I am trying to define redirect_uri to Instagram, it is always telling me to register with http:// or https:// only and not by my app name just like xyz:// which is defined as per the custom URL scheme.
Now, when I have set the redirect_uri based on the http://xyz and configure the same into custom URL scheme in my XCode project, this won't allow the app opening automatically and redirects to the web page in safari.
So, I would like to know the possible workaround for this. Any help will be appreciated.

@NirmitDagly  Did you find any workaround?

@NirmitDagly Looking forward to any updates =)

@NirmitDagly I know this is years old, but did you ever find a solution?


Fix Oceans basemap, add 'npm start' script

This fixes the Oceans basemap reference. Also it adds a missing npm start script which calls webpack-serve.

thx!


Challenge http://www.freecodecamp.com/challenges/waypoint-check-radio-buttons-and-checkboxes-by-default has an issue

Instructions say only one checkbox needs to be checked but waits until all are checked before passing

Thanks for pointing this out. We've now fixed this.


ImportError: The fake-factory package is now called Faker

https://github.com/FactoryBoy/factory_boy/issues/334
Deals with the renaming of fake-factory to Faker. Would
be great if you fix the setup.py file accordingly.
Thanks.

https://github.com/FactoryBoy/factory_boy/commit/dba31e3866cdefde1d7f37fc7f0553a12feeab9b deals with something similar.


add_definitions / add_compile_definitions halt build (IDFGH-2507)

Environment

Development Kit:      [none]
Module or chip used:  [ESP32]
IDF version (run git describe --tags to find it): v4.0-beta2
Build System:         [idf.py]
Compiler version: 1.22.0-80-g6c4433a
Operating System:     [Linux]
Using an IDE?: [No]
Power Supply:         [USB]

Problem Description
Utilizing add_definitions or add_compile_definitions crashes the build.  Error looks like the following:
xtensa-esp32-elf-gcc: error: FAIL: No such file or directory

Expected Behavior
Include preprocessor definitions across main project and all custom modules
Actual Behavior
Apparently the build system adds them twice - once with the -D then again without.  The without part it interprets as files to compile, and fails
add_compile_options as suggested in Issue #3545 does appear to work; however it seems reasonable to expect that add_compile_definitions function as well
Steps to reproduce

Open your main project CMakeLists.txt
Add the line add_compile_definitions(FAIL) or add_definitions(-DFAIL)
Execute idf.py build and observe failure

Code to reproduce this issue
No code required

Hi @malachib, is this the same error that you get?
[4/817] Building C object esp-idf/driver/CMakeFiles/__idf_driver.dir/i2c.c.obj
FAILED: esp-idf/driver/CMakeFiles/__idf_driver.dir/i2c.c.obj
/home/renz/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc  -Iconfig -I../../../../components/driver/include -I../../../../components/driver/include/driver -I../../../../components/newlib/platform_include -I../../../../components/freertos/include -I../../../../components/heap/include -I../../../../components/log/include -I../../../../components/soc/esp32/include -I../../../../components/soc/include -I../../../../components/esp_rom/include -I../../../../components/esp_common/include -I../../../../components/xtensa/include -I../../../../components/xtensa/esp32/include -I../../../../components/esp32/include -I../../../../components/esp_ringbuf/include -I../../../../components/esp_event/include -I../../../../components/tcpip_adapter/include -I../../../../components/lwip/include/apps -I../../../../components/lwip/include/apps/sntp -I../../../../components/lwip/lwip/src/include -I../../../../components/lwip/port/esp32/include -I../../../../components/lwip/port/esp32/include/arch -I../../../../components/vfs/include -I../../../../components/esp_wifi/include -I../../../../components/esp_wifi/esp32/include -I../../../../components/esp_eth/include -I../../../../components/efuse/include -I../../../../components/efuse/esp32/include -I../../../../components/app_trace/include -mlongcalls -Wno-frame-address   -DFAIL -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -nostdlib -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER=\"v4.0-beta2-368-g463a9d8b7-dirty\" -DGCC_NOT_5_2_0 -DESP_PLATFORM -MD -MT esp-idf/driver/CMakeFiles/__idf_driver.dir/i2c.c.obj -MF esp-idf/driver/CMakeFiles/__idf_driver.dir/i2c.c.obj.d -o esp-idf/driver/CMakeFiles/__idf_driver.dir/i2c.c.obj   -c /home/renz/Work/esp-idf/components/driver/i2c.c
<command-line>: error: expected identifier before numeric constant
../../../../components/esp_rom/include/esp32/rom/ets_sys.h:636:5: note: in expansion of macro 'FAIL'
     FAIL,
     ^~~~

Which doesn't seem like a build system error. It just so happens that the passed compile definition FAIL  overrides the existing meaning of FAIL in ets_sys.h.

@renzbagaporo nope.  Anything you put in to add_definitions causes an issue
Refer to https://bitbucket.org/malachib/playground.esp/src/master/src/PGESP-25/

Yeah, I've tried your example, I don't think CMake knows to add a -D in front to make it a compile definition, so you have to help it out (since it doesn't fall into compile option territory). See documentation for add_definitions: https://cmake.org/cmake/help/v3.5/command/add_definitions.html.
Using add_compile_definitions seem to work as well (without -D since adding it is redundant). You just need newer CMake versions.

It's true you found a flaw in my example regarding -D.  3.3.1 works OK with that addressed.
On my machine, as per the original post, 4.0-beta2 continues to not function regardless.  Please define "just need newer CMake versions".  I've tried up to 3.13.

You are right, @malachib. Using git bisect I've found that 72ddc940e01a290c32c7618fdab9d4fff667431e somehow fixes the issue... I'm not sure what's happening here yet.

@malachib I tested again with your application and the corrected definition (add_definitions(UNAMIBIGIOUS_ISSUE_4607_FAILURE) -> add_definitions(-DUNAMIBIGIOUS_ISSUE_4607_FAILURE)). There isn't any build error anymore, neither on version 4.1, nor on the latest master. Do you still have this problem?

@malachib We're closing the issue for now. If you still need any assistance related to this issue, please let us know or re-open the issue.

I haven't encountered this one in a long time.  I think it's resolved.  I'll have to give it a shot and give real feedback


Remove forked Framework code

We added local copies of these things because they weren't available in .NET Core 1.0. Since we now target 2.x, we can 🎉delete code 🎉.

@dotnet-bot test this please

@dotnet-bot test OSX10.13 Build for CoreCLR please

FYI pushed a rebase for CI refresh reasons.

Ubuntu and OSX hanging at the same place 2 times in a row :(

Something obviously continues to be wrong, but I don't know what. Even attempting CI-like builds works on both my Mac and Ubuntu 18.04 machines. Trying in a 16.04 container now.

My 16.04 container fails only Microsoft.Build.Tasks.UnitTests.Unzip_Tests.LogsErrorIfReadOnlyFileCannotBeOverwitten (looks like it's not actually getting marked readonly or something).

(looks like it's not actually getting marked readonly or something).

@rainersigwald it's more likely that you're root inside of your container, the root user can still write to read-only files.

I didn't change anything but now the build passes in CI like it always did on my machines. I think we should go forward with the change; if it starts failing again we can dig in then. Sound ok, @livarcocc?

Let's do it.


Android free rotation.

Discard VK_SUBOPTIMAL_KHR error.
Handling content rect changed events.

I'd like to see a fuller explanation of why this change his necessary. Based on the comments, there seems to be some confusion on event ordering on the desktop. The window resize event should always occur before render is called so neither Acquire or Present returns an error or a warning. Are the events on Android out of order where SUBOPTIMAL is actually showing up?

I'd like to see a fuller explanation of why this change his necessary. Based on the comments, there seems to be some confusion on event ordering on the desktop. The window resize event should always occur before render is called so neither Acquire or Present returns an error or a warning.

On Windows, it will probably not going happen.
On Linux it's currently possible to have VK_ERROR_OUT_OF_DATE_KHR on Present on Intel/X11/KWin.
I've yet to test all combination of {AMD,Nvidia,Intel}x{X11,Wayland}x{mutter,kwin,...} to see if they toss out OUT_OF_DATE or SUBOPTIMAL, and driver/x11/wayland might change that during any update.
Also technically, VK_SUBOPTIMAL_KHR is a "Success Codes" per Vulkan spec.

Are the events on Android out of order where SUBOPTIMAL is actually showing up?

On Android, unless it's portrait and correct side up, we will always get VK_SUBOPTIMAL_KHR. It's more of a compositor asking for application to do pre-transform to match the hardware buffer so it does not have to. See Arm's Documentation
E.g. on Landscape, we need to set preTransform to VK_SURFACE_TRANSFORM_ROTATE_{90,270}_BIT_KHR, swap swapchain height and width, and render side way.

On Android, unless it's portrait and correct side up, we will always get VK_SUBOPTIMAL_KHR. It's more of a compositor asking for application to do pre-transform to match the hardware buffer so it does not have to. See Arm's Documentation
E.g. on Landscape, we need to set preTransform to VK_SURFACE_TRANSFORM_ROTATE_{90,270}_BIT_KHR, swap swapchain height and width, and render side way.

I'm not seeing where in the documentation where it says that the swapchain is always SUBOPTIMAL unless it's portrait and correctg side up? All I see it saying is that the swapchain's transform bit needs to mwatch what the surface is asking for so the compositor is happy. Am I missing something?

I'm not seeing where in the documentation where it says that the swapchain is always SUBOPTIMAL unless it's portrait and correctg side up? All I see it saying is that the swapchain's transform bit needs to mwatch what the surface is asking for so the compositor is happy. Am I missing something?

https://github.com/google/bigwheels/blob/1bc7e11083ee7ffb5794f147087e4fb96c6e4ae5/src/ppx/grfx/vk/vk_swapchain.cpp#L409
The assumption of VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR is everywhere, so I'm not changing preTransform, and therefore the compositor is not happy about that.
We could fix the identity transform assumption, it will take quite a bit time fixing all the matrices, and/or re-compute and re-uploading vertex data for shaders that does not take transform matrix.

I'm not seeing where in the documentation where it says that the swapchain is always SUBOPTIMAL unless it's portrait and correctg side up? All I see it saying is that the swapchain's transform bit needs to mwatch what the surface is asking for so the compositor is happy. Am I missing something?

https://github.com/google/bigwheels/blob/1bc7e11083ee7ffb5794f147087e4fb96c6e4ae5/src/ppx/grfx/vk/vk_swapchain.cpp#L409
The assumption of VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR is everywhere, so I'm not changing preTransform, and therefore the compositor is not happy about that.

What happens if you do something like this:
vkci.preTransform = ToApi(pCreateInfo->pSurface)->GetCapabilities().currentTransform;

We could fix the identity transform assumption, it will take quite a bit time fixing all the matrices, and/or re-compute and re-uploading vertex data for shaders that does not take transform matrix.

The surface transform is only for the surface, it shouldn't affect the content. The disparity in the viewport/scissor for device rotation needs to be addressed differently.

The surface transform is only for the surface, it shouldn't affect the content. The disparity in the viewport/scissor for device rotation needs to be addressed differently.

We basically get a vertical/portrait swapchain if we specify the preTransform equal to the surface capability. (this is checked on a Pixel 5)

The surface transform is only for the surface, it shouldn't affect the content. The disparity in the viewport/scissor for device rotation needs to be addressed differently.

We basically get a vertical/portrait swapchain if we specify the preTransform equal to the surface capability. (this is checked on a Pixel 5)

It looks like vkCreateSwapchain isn't smart about the width height. The Arm documentation says the width and height needs to be swapped, probably someting like this is needed:
if (transform == VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR || transform == VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)
{
	// Pre-rotation: always use native orientation i.e. if rotated, use width and height of identity transform
	std::swap(width, height);
}

Will probably need to handle the correct event on the app side as well to set teh window width/height.

It looks like vkCreateSwapchain isn't smart about the width height. The Arm documentation says the width and height needs to be swapped, probably someting like this is needed:
if (transform == VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR || transform == VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)
{
	// Pre-rotation: always use native orientation i.e. if rotated, use width and height of identity transform
	std::swap(width, height);
}

Will probably need to handle the correct event on the app side as well to set teh window width/height.

It's that we are creating a vertical swapchain when the surface is horizontal.
So now we have a swapchain/framebuffer width/height that is vertical, and content width/height that is horizontal. The content is also rendered side way respect to the swapchain/framebuffer orientation. I'm not even sure if window width/height even mean anything at this point.
Also there's the problem of Android virtual keyboard, and we get to deal with android_app->contentRect.

I looked into this a bit more in depth.
TL;DR; Most of your changes are fine. The change to ignore SUBOPTIMAL is not desirable, warnings shouldn't be blanked suppressed without a reason. I've made some minor changes to your CL, you can see them here: https://github.com/google/bigwheels/tree/android-rotation
Regarding ignoring SUBOPTIMAL - this behavior already existed in grfx::vk::Swapchain::AcquireNextImageInternal:
https://github.com/google/bigwheels/blob/main/src/ppx/grfx/vk/vk_swapchain.cpp#L562-L564.
It only logs the warning, it doesn't assert. There was an incorrect assumption in grfx::vk::Swapchain::PresentInternal that assumed that vkres != VK_SUCCESS is an error. The changes I made just copies the behavior in acquire for present.
I also added an #ifdef around the warnings so it doesn't flood logcat on Android.
The current behavior in the changes I made on top of your is what we want to start out with. It's not the most efficient, but it's good enough for us to work with. There's obviously some app bugs that need to correct their aspects. We also don't have anyway of telling the applications that they need to prepend their view matrices with an orientation adjustment. Later CLs will address these issues.
My recommendation is to combine my change to yours and make whatever adjustments you need to.

Without rotation between background/foreground, the app is fine, but doing a rotation while backgrounded seems to break it. Maybe some path we don't handle in native yet?

It's not the rotation causing problem, app suspension is not supported yet.

Without rotation between background/foreground, the app is fine, but doing a rotation while backgrounded seems to break it. Maybe some path we don't handle in native yet?

It's not the rotation causing problem, app suspension is not supported yet.

Lets deal with the suspend / wake in another PR. It's pretty involved IIRC.

Agreeing with @chaoticbob feedback. From testing, it does solve rotation when the application is running, but seems like the following is not handled:

start app in portrait

Can you provide some detail on this? I just tested and the cube sample is able to startup in both portrait and landscape mode. Unless I'm misunderstanding that what portrait means here.

Can you provide some detail on this?

I'm assuming @Keenuts 's bullet point is actually ordered list of step to reproduce a breakage. Which the app stop responding after resume from background. This is the suspend/resume issue, which will not be addressed in this PR.

My recommendation is to combine my change to yours and make whatever adjustments you need to.

Did a few adjustment on top:

Log VK_SUBOPTIMAL_KHR once on Android.
After reading some source code, it seems contentRect is complicated, so ignore it for now, WINDOW_RESIZED works for portrait/lamdscape mode.
Also check Surface.cap.currentExtent, because apparently ARM/Khronos is using that for swapchain size.

Also note that ARM best practice docs is actually in Khronos Vulkan-Samples now

My recommendation is to combine my change to yours and make whatever adjustments you need to.

Did a few adjustment on top:

Log VK_SUBOPTIMAL_KHR once on Android.
After reading some source code, it seems contentRect is complicated, so ignore it for now, WINDOW_RESIZED works for portrait/lamdscape mode.
Also check Surface.cap.currentExtent, because apparently ARM/Khronos is using that for swapchain size.

Also note that ARM best practice docs is actually in Khronos Vulkan-Samples now

I think it should be fine. There shouldn't be any danger with the window manager and the Vulkan surface disagreeing on size. The log once is a nice touch tho in case there is a bug.

I think it should be fine. There shouldn't be any danger with the window manager and the Vulkan surface disagreeing on size.

It's a sanity check.
We are currently discarding resolution flag on Android, because Android window is not resizable like on desktop.
Technically Android support any swapchain resolution, but anything other than native resolution looks wrong.


luci-app-statistics: integrate collectd-mod-sqm

This PR integrates the SQM collectd plugin into luci-app-statistics. It provides for both the configuration of the module, and the generation & display of the graphs from the collected data.
cc: @ldir-EDB0

One note for testing: you will have to create a dummy sqm module so that the template code doesn't skip this plugin. For example, you can run: touch /usr/lib/collectd/sqm.so.
Hopefully, this will be added to the collectd-mod-sqm package in the near future.

Bump - do you have any feedback on this PR? is a review needed by anyone in particular? is there anything else I need to do in order for this to be merged?
cc: @hnyman @ldir-EDB0 @feckert

The way I see it you want to add this to the openwrt-19.07 branch. But this branch is already released, so only bug fixes should be added here. Especially since the hack with the so file is not good.
This is already integrated in the master branch. The next release is in the pip so why not use the master?

The change required in collectd ("dummy sqm module") to make the LuCI stats menus work in 19.07 is the nasty part. That is the reason why I abandoned my own attempt earlier.
I say the NAK for 19.07. Great that you got it for yourself, but lets leave the hack out of 19.07.


Deposit address is displayed with offset to down (out of the box)

Hello @Namresiac
This problem can be solved by making address container inline-block and setting to it white-space: nowrap.

Hi @yivo Please can you let me know how do we generate the deposit address?

@dinesh-skyach You must have fully 100% working Peatio locally.

Closed via #605.


Disable feature generation by default

Adjust version to 3.6.1-SNAPSHOT
Disable feature generation by default
Enable feature generation in the dev mode integration tests

Moved documentation updates to https://github.com/OpenLiberty/ci.maven/pull/1547


round-trip parse/display and refactor some tests

(I will add pretty printing later, in a separate PR)

Ideally we could impl Display and not have a display method. The only reason a method like display should exist is if there's some extra state needed — in this case, a &Signature. It is impossible to impl Display for Term because we wouldn't have the signature to look up names of ops/vars.

Ah, right! One way around that would be to use something like pub struct Signature(Arc<RwLock<Sig>>), as you do for programinduction::trs::Lexicon, but that's beyond the scope of this PR.

One of my older iterations of the signature rewrite did exactly that. The problem is that Term no longer becomes an enum (it is essentially an enum + a ref to a sig) which makes ergonomics go down a bit too much. There could be other considerations too, but like you said — beyond the scope of this PR :)

I think the only thing that's left then, is to adjust the way holes are displayed.


Emobility's charge profile position is now optional.

I picked up this issue in my WIP dg/auth branch – so it will get fixed when that is merged. Can't merge this as it has failing tests so going to close.


fix(STONEINTG-709): add support missing info of build PLR error

Fix STONEINTG-709  , adding new error handler for the missing params error returned by build PipelineRun and stop the PLR  to be returned to the reconcile queue .

[ ] Commit messages are descriptive enough (hints)
[ ] Code coverage from testing does not decrease and new code is covered (check the PR coverage on codecov)
[ ] Controllers diagrams are updated when PR changes controllers code  (if applicable)

We may also replace the errors like fmt.Errorf("couldn't find the CHAINS-GIT_URL PipelineRun result") link with  MissingInfoInPipelineRunError() and check the error returned by prepareSnapshotForPipelineRun()  is true, and then ContinueProcessing() if  IsMissingInfoInPipelineRunError(err) is true

https://github.com/redhat-appstudio/integration-service/pull/506#issuecomment-1882453544
@hongweiliu17  is there a specific build PLR annotation that I should update or I should create a new one ?

#506 (comment) @hongweiliu17 is there a specific build PLR annotation that I should update or I should create a new one ?

You may use this one https://github.com/redhat-appstudio/integration-service/pull/489/files#diff-16fb634f123aeba9508751c94b6a61320bf6877bdb01ff6f00da2a72b92ee432R3

#506 (comment) @hongweiliu17 is there a specific build PLR annotation that I should update or I should create a new one ?

You may use this one https://github.com/redhat-appstudio/integration-service/pull/489/files#diff-16fb634f123aeba9508751c94b6a61320bf6877bdb01ff6f00da2a72b92ee432R3

thanks @hongweiliu17 , I've used the same one here

/test integration-service-e2e


ImportError: cannot import name 'docevents' from 'botocore.docs.bcdoc'

botocore 1.18.0 removed AWS CLI specific doc files. Those were already migrated to the CLI in version 1.18.140.
This is failing codebuild stage.
Please add following awscli upgrade command install_stage_dependencies.sh
pip install --upgrade pip

https://github.com/awslabs/aws-control-tower-customizations/blob/master/source/bin/codebuild_scripts/install_stage_dependencies.sh

I'm facing same error
ImportError: cannot import name 'docevents' from 'botocore.docs.bcdoc' (/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/botocore/docs/bcdoc/__init__.py)
Above script should fix that.
Thanks !

Hello @SamiMamdouh @ahmei0
We are testing the fix and plan to publish a new version as soon as possible.

We're experiencing the same issue. Great to know a fix is in the works to solve this.

(I'm not with Amazon/AWS) As a workaround, until the install_stage_dependencies.sh script is fixed in the main repo, you can make a 1 line change to the buildspec to fix this.  The fix is based on the PR that ahmei0 posted above, not my work.  The PR is to fix the install_stage_dependencies.sh script that we can't easily modify in our environment though.  This workaround changes the buildspec which we do have control over while we wait for the real fix.

Go to the CodePipeline dashboard and select the "Custom-Control-Tower-CodeBuild" project
Go to the Build Details tab and scroll down to the Buildspec, click Edit
Find the "pre_build:" "commands:" section.
Add the following line just before the "bash install_stage_dependencies.sh $STAGE_NAME" line:
- pip install --upgrade awscli

I can't afford downtime for our CT customization pipeline, so I needed to find a workaround.

Adding
- pip install --upgrade --user awscli

just before each "pre_build" block in the buildspec should fix this:
e.g.
...
      - apt-get update && apt-get upgrade -y
      - apt-get install zip wget python-pip libyaml-dev -y
      - pip install --upgrade --user awscli
  pre_build:
...

I modified the CfCT template for the BuildSpecs:
StackSetCodeBuild
SCPCodeBuild
CustomControlTowerCodeBuild
Add "\n      - pip install --upgrade awscli\n      - aws --version" to lines 517, 641 and 811.
Do it right after "- apt-get update && apt-get upgrade -y". Then Update the CfCT stack.

Can you please close this ticket if v1.2.1 resolves this issue.

This issue has been resolved in https://github.com/aws/aws-cli/releases/tag/1.18.140.
See:

https://github.com/aws/aws-cli/commit/3e59ab4291f42be57c97ca2bff8c853d5a7ece93
https://github.com/aws/aws-cli/commit/5822bf405ba0f7c00a12b56c50ced2a5b66eae8c#diff-9a4a2455143ceb35ef6c5128a33e6ead169e7757a85252d7755fd133669a1cdb

Issue resolved in release v1.2.1


nix-build doesn't work

I can't get any of the build instructions to work.  For example, nix-build -A ledger.docs gives (after a long time)
         Checking Interface.MonadReader.Instance (/build/src/Interface/MonadReader/Instance.agda).
         Checking Interface.MonadTC.Instance (/build/src/Interface/MonadTC/Instance.agda).
       Checking Tactic.Defaults (/build/src/Tactic/Defaults.agda).
/build/src/Axiom/Set/Rel.agda:78,22-31
<stdout>: commitBuffer: invalid argument (invalid character)

This looks like a locale issue, but adjusting locale variables in my shell doesn't help: I think it's probably something that needs to be fixed in the nix setup.  I've tried this on three different computers and the same thing happens on each.  I use nix in a number of other IOG repositories every day with no problems, so this issue seems to be specific to this repository.

All packages in the nix build except for agda depend on agdaLedger, which looks like where this error is coming from, so it's expected that nothing would work when encountering this error.
After running nix-build -A ledger myself I got a bunch of debug output while type checking Axiom.Set.Rel, which is prepended with a strange unicode character that I used to group things together, which I feel might be the most likely culprit in this case. It's probably best to disable that debug output anyway (and I already have in #28). You could try that locally by replacing { selection = All } with { selection = All ; filter = Filter.⊥ } in src/Tactic/Defaults.agda.

You could try that locally by replacing { selection = All } with { selection = All ; filter = Filter.⊥ } in src/Tactic/Defaults.agda.

Aha, that worked. Thank you!

OK.  Thanks again for looking at this so quickly.

This worked for me too!
...on os/architecture:
Linux 5.15.0-59-generic #65-Ubuntu SMP Fri Jan 6 16:35:39 UTC 2023 x86_64 GNU/Linux

Everything here should be fixed properly now.


Readme refactor

general additions and reformatting of the readme

I flubbed up branching a bit, and this branch is based off the branch in #5 -- please handle that PR before this one!

this branch is based off the branch in https://github.com/treacherousfiend/LightmapUtil/pull/5

@JarateKing git rebase


 key makes app jump to the image selection screen

To reproduce:

select an image s.t. the optimization screen opens
click the quality number to activate the textbox
change the number
press Enter

Expected would be that the textbox disappears again and the number is processed. However, the whole app jumps to the main screen instead :)

Reproduced on Mac Chrome 70.

It only happens on selecting MozJPEG and OptiPNG.

Need to prevent default on form submit. Quick fix.

Yep, guessed it must be something like that. I was on the flight back home
from the Chrome Dev Summit so I didn't triage the bug.
But I can send a PR if u wish
On Sat, Nov 17, 2018, 07:51 Jake Archibald<EMAIL_ADDRESS>wrote:

Need to prevent default on form submit. Quick fix.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GoogleChromeLabs/squoosh/issues/294#issuecomment-439593644,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAhG-hl1jNAbY4dVDMA6Vs_9dhuQcRq4ks5uv7HegaJpZM4Yfdy2
.

--
Juri Strumpflohner
Google Developer Expert in Web Tech • https://juristr.com • @juristr on
Twitter

It only happens on selecting MozJPEG or OptiPNG.

Hah, yeah. I wonder why. Let's find out…


Author 1.x to 2.x Deno migration guide for upcoming Deno 2.0 launch

TODO

closing as asher already has WIP on this


Using refreshRate with non-existent labels causes an existent branch to be staled

We found this problem using in the spring-cloud-config-sever v1.4.4.RELEASE.
We have a Cloud Config client that is configured to use fallback labels when talking to the CCS, for example: spring.cloud.config.label=non-existing-branch,test-staled-branch
When the Cloud Config server is configured to use a refreshRate for example 10s, we noticed that the git updates in the test-staled-branch are never pulled in the server and therefore not sent to the client.
This behaviour is reproducible all the time and when we were debugging we found that the issue is that the when the client request the non-existing-branch label, that call updates the lastRefresh timestamp, since this call returns 404 to the client, the next label is attempted in this example: test-staled-branch, but since the previous call already updated the lastRefresh timestamp, the check for shouldPull returns false causing the existent branch to be staled.
	protected boolean shouldPull(Git git) throws GitAPIException {
		boolean shouldPull;

		if (this.refreshRate > 0 && System.currentTimeMillis() - this.lastRefresh < (this.refreshRate * 1000)) {
			return false;
		}
        ...

My first approach to solve this issue is to create a refreshRate by label instead of by repository
@ConfigurationProperties("spring.cloud.config.server.git")
public class LabeledJGitEnvironmentRepository extends MultipleJGitEnvironmentRepository {

    private static final ThreadLocal<String> GIT_LABEL_HOLDER = new ThreadLocal<>();

    private Map<String, Long> labelRefreshMap;

    public LabeledJGitEnvironmentRepository(ConfigurableEnvironment environment) {
        super(environment);
        this.labelRefreshMap = new ConcurrentHashMap<>();
    }

    @Override
    public String refresh(String label) {
        try {
            GIT_LABEL_HOLDER.set(label);
            return super.refresh(label);
        } finally {
            GIT_LABEL_HOLDER.remove();
        }
    }

    @Override
    public long getLastRefresh() {
        return labelRefreshMap.getOrDefault(GIT_LABEL_HOLDER.get(), 0L);
    }

    @Override
    public void setLastRefresh(long lastRefresh) {
        labelRefreshMap.put(GIT_LABEL_HOLDER.get(), lastRefresh);
    }

    @Override
    protected boolean shouldPull(Git git) throws GitAPIException {
        boolean shouldPull;

        if (this.getRefreshRate() > 0 && System.currentTimeMillis() - this.getLastRefresh() < (this.getRefreshRate() * 1000)) {
            return false;
        }
     ...
    }

Which works but might result in more fetches than necessary, still was easy to make it work.
While we are here, would be nice to take the refreshRate logic to its own protected method so it's easier to override the logic, in our use case we wanted to have an easy way to keep the refreshes synchronised across multiple CCS in a cluster using the System.currentTimeMillis()
Thanks!

Maybe the refresh rate should only be updated if the fetch call succeeds.

That's another approach that will work too, it will have the same effect as my solution, with fetch being executed multiple times until the first existent label is requested.
This is the current code:
	public String refresh(String label) {
		Git git = null;
		try {
			git = createGitClient();
			if (shouldPull(git)) {
				FetchResult fetchStatus = fetch(git, label);
				if (deleteUntrackedBranches && fetchStatus != null) {
					deleteUntrackedLocalBranches(fetchStatus.getTrackingRefUpdates(), git);
				}
				// checkout after fetch so we can get any new branches, tags, ect.
				checkout(git, label);
				if (isBranch(git, label)) {
					// merge results from fetch
					merge(git, label);
					if (!isClean(git)) {
						logger.warn(
								"The local repository is dirty. Resetting it to origin/"
										+ label + ".");
						resetHard(git, label, LOCAL_BRANCH_REF_PREFIX + label);
					}
				}
			}
			else {
				// nothing to update so just checkout
				checkout(git, label);
			}
			// always return what is currently HEAD as the version
			return git.getRepository().getRef("HEAD").getObjectId().getName();
		}

I think the approach that works better is to decouple the fetch (git call) from the merge logic (applying the changes).
I think it's not as simple as I am putting it here, because shouldPull also checks for dirty branches etc, but if we take into account that the refreshRate is trying to avoid calls to the remote server, we can provide split the logic to something like:
    public String refresh(String label) {
        Git git = null;
        try {
            git = createGitClient();
            if (hasRefreshRateElapsed()) {
                FetchResult fetchStatus = fetch(git, label);
                if (deleteUntrackedBranches && fetchStatus != null) {
                    deleteUntrackedLocalBranches(fetchStatus.getTrackingRefUpdates(), git);
                }
            }

            if (shouldPull(git)) {
                // checkout after fetch so we can get any new branches, tags, ect.
                checkout(git, label);
                if (isBranch(git, label)) {
                    // merge results from fetch
                    merge(git, label);
                    if (!isClean(git)) {
                        logger.warn(
                                "The local repository is dirty. Resetting it to origin/"
                                        + label + ".");
                        resetHard(git, label, LOCAL_BRANCH_REF_PREFIX + label);
                    }
                }
            }
            else {
                // nothing to update so just checkout
                checkout(git, label);
            }
       ....
    }

   protected boolean shouldPull(Git git) throws GitAPIException {
        boolean shouldPull;

        //remove the refresh logic from here

        Status gitStatus = git.status().call();
        boolean isWorkingTreeClean = gitStatus.isClean();
        String originUrl = git.getRepository().getConfig().getString("remote", "origin", "url");

        if (this.isForcePull() && !isWorkingTreeClean) {
            shouldPull = true;
            logDirty(gitStatus);
        } else {
            shouldPull = isWorkingTreeClean && originUrl != null;
        }
        if (!isWorkingTreeClean && !this.isForcePull()) {
            this.logger.info("Cannot pull from remote " + originUrl
                    + ", the working tree is not clean.");
        }
        return shouldPull;
    }

   protected boolean hasRefreshRateElapsed() {
    ...
  }

Like I said probably I might be missing something but i really think something likes this works better.

Want to submit a PR?

I'll be happy to submit a PR.
For our use case (and until we have the fix is release), our solution looks like this (extending MultipleJGitEnvironmentRepository
@Override
    protected boolean shouldPull(Git git) throws GitAPIException {
        boolean shouldPull;
        //remove refreshRate check from this method
        Status gitStatus = git.status().call();
        boolean isWorkingTreeClean = gitStatus.isClean();
        String originUrl = git.getRepository().getConfig().getString("remote", "origin", "url");

        if (this.isForcePull() && !isWorkingTreeClean) {
            shouldPull = true;
            logDirty(gitStatus);
        } else {
            shouldPull = isWorkingTreeClean && originUrl != null;
        }
        if (!isWorkingTreeClean && !this.isForcePull()) {
            this.logger.info("Cannot pull from remote " + originUrl + ", the working tree is not clean.");
        }
        return shouldPull;
    }

    @Override
    protected FetchResult fetch(Git git, String label) {
        if (!hasRefreshRateElapsed()) {
            return null;
        }
        return super.fetch(git, label);
    }

    protected boolean hasRefreshRateElapsed() {
        int refreshRate = this.getRefreshRate();
        if (refreshRate <= 0) {
            return true;
        }
        ...
    }

So it only fetches once, ever refreshRate seconds but it merges the changes in the existent label.

Hi @ryanjbaxter , when checkout the code realised that this was fixed in 1.4.5, so this can be closed:
https://github.com/spring-cloud/spring-cloud-config/commit/80f98c387af5b1a08228b4f19ac411f3d5b22ae5#diff-3c25894c5eacbf4d83e593f438b9469c

Based on the above comment from @josebarrueta-okta , it seems the milestone needs to be unassigned.


Refactor the way how flavor is chosen for appliance type

Ugly solution was used to hotfix problem with choosing selected flavor in clew rest api. As a conclusion we added additional database queries (see https://github.com/dice-cyfronet/atmosphere/commit/a672cd9b9a4aa9509f77890f3742d21d990879ad) for details.
Please rethink and refactor choosing flavor mechanism (for sure it should be only in one place). Maybe it can be done using database query?

If there is not possible to implement it as one DB query than maybe Rails cache can be used to store results of expensive flavor choosing operations? Take a look at http://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html#method-i-fetch.