docs: error is not a caught error, but a boolean

The error value returned by the hook call is a boolean, not the actual caught error.
The TS typings reflect this, but the readme documentation does not.

Thanks for opening this @davwheat. This is indeed an oversight -- I think it would be more useful to update the source code to set the actual caught error, rather than a boolean. I would be happy to accept a PR for that change. Otherwise, I'll patch and publish this evening.

That sounds more reasonable, but I would worry about the behaviour and effects this could have if the code, for whatever reason, threw null or undefined or some other falsey value, which would break if (error) checks.
Ideally, it could return an object, or the hook could return a third array element in order to not be a breaking change?

It is a breaking change, but we can reflect that in the package versioning and bump to 2.0.0. If any users file a request for throwing null or undefined we can evaluate support then.

The reason I mentioned it was that some of my (old and terrible) code does throw falsey values, using TS enums as error codes. In that scenario, anything throwing 0 (one of my enum values) would act as if there's no error at all.
Looking at the code in more detail, I propose that error could be either undefined or an object containing both the error and React's errorInfo. This way, we can also access the error's component stack from the hook, too, and reduce the breaking-ness of the change (truthy/falsey checks will still work -- only direct comparisons against true or false will break).
What do you think of this?
Example:
function MyComponent() {
  const [errorData, resetError] = useErrorBoundary();

  // undefined, or object containing error data
  if (errorData) {
    const { error, errorInfo } = errorData;

    return <p>{error.message}</p>;
  }

  return null;
}

Codecov Report

Merging #9 (6689b16) into main (cc4b150) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main        #9   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           27        27
=========================================
  Hits            27        27

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 cc4b150...6689b16. Read the comment docs.

errorInfo is a good call out, and something I had not considered. This is necessary for a lot of react reporting tool integrations (like sentry).
I think we should update the callback argument to include errorInfo:
  const [error, resetError] = useErrorBoundary(
    // You can also log the error to an error reporting service
    (error, errorInfo) => logErrorToMyService(error, errorInfo)
  );

I'm curious if errorInfo is still desirable in the return value after that change. The symmetry is nice.

errorInfo seems to already be included as an argument, but is just undocumented within the README, as all arguments are passed to that callback:
https://github.com/tatethurston/react-use-error-boundary/blob/74d81ec0077303e0ad4debe22c25ea947ef4c6f7/src/index.tsx#L67-L70
I'll push the new code I have based on my previous comment, and let you see what you think. I do think that the same values should be available through the hook as are available through the onError callback.

I'd like to hold off on adding errorInfo to the return value until a concrete use case materializes. I suspect the error callback will be sufficient (because the component stack will only be used for error reporting), and the return value will only used for rendering error specific UI.
With that, I'm still inclined to update the source code to set the caught error, rather than a boolean.
I could see using instanceof Error internally, and wrapping any thrown primitives in an Error to solve for the throw falsey values:
eg
if (!error instanceof Error) {
  error = new Error(error);
}


Login/registration does not work properly in Firefox with various security/privacy features enabled

When you click the login/register button in the extension's interface, it opens a tab in your browser to the Dissenter site, which allows you to do just that. However, if you have various security/privacy features in Firefox enabled (I have too many to disable them all to check, but I bet first party cookie isolation causes it), the cookies set in the website's tab do not carry over to the context of the extension's interface (the box that pops up when you click it). In order to ameliorate this issue and allow for proper posting, the login/registration form should exist/be loaded within the interface itself.

Can confirm that disabling first-party cookie isolation unbreaks the extension

Hi @propolisor @PongoPygmaeus, the extension as it stands today relies on cookies to detect if you are logged in to dissenter.com. If by disabling the "first-party cookie isolation" as stated is a viable solution, or if there's a whitelist option for enabling dissenter.com cookies that may be a good bet.
Otherwise, it would be difficult to troubleshoot all of the possible issues if you have multiple security/privacy features that are enabled in Firefox.
Closing this out as it's too specialized and we have a solution above.

@mgabdev
Disabling "first party isolation" is not a solution. It is an incredibly important privacy feature, as someone who works at a social media company that's an alternative to companies like Facebook (which uses people not having first party isolation enabled to track them across the web) should know.
The solution is for you to put the login context in the same context as all of the other web content the extension displays, which should take about five minutes to implement.
In fact, if you click the "Sign Up" button in the extension, it already behaves like this (though you seem to have somehow broken it server-side somehow recently, at least for me). You literally only have to take the same behavior and apply it to the "Log In" button.
There is zero reason why this should be a wontfix issue.


Invalid account name not recognized by other inputs

When using the invite creation form at steemax.trade:
A) If the user enters an invalid account name, an error is displayed. However:
B) If the user does not see the message at and continues to use the percentage and ratio input fields a vote value will be displayed anyway, replacing the original error message.

This issue was resolved with commit ddedb9b lines 292 to 295


Offline error message support

The new 2.0 Agent APIs will reject if there is no connection.  Need to handle and surface this rejection in the WebAPI (over postMessage protocol).

Addressed in PR #26


AnimationPlayer flickering when scrubbing backwards on Discrete tracks

Tested versions

Reproducible in: 4.3.rc3
Not reproducible in: 4.2.x

System information
Godot v4.3.rc3 - Windows 10.0.22631 - Vulkan (Forward+) - dedicated AMD Radeon RX 6600 (Advanced Micro Devices, Inc.; 31.0.21023.2010) - AMD Ryzen 7 5700X 8-Core Processor (16 Threads)
Issue description
As of Godot 4.3, scrubbing backwards on AnimationTracks set to Discrete causes the animated values to rapidly flicker back and forth between the nearest two keyframes, as opposed to using the left keyframe's value.
This does not happen when playing the Animation either forwards or backwards, and seems to be an editor-only bug.

Steps to reproduce

Create a project
Add an AnimationPlayer Node and create a new Animation
Add another Node, add any of its properties to the Animation
Set the track's Update Mode to Discrete if it isn't already
Add some keyframes, then scrub back and forth to see the flickering

Minimal reproduction project (MRP)
AnimationFlickerMRP.zip

Hey, so while the linked PR seems to have resolved the flickering, it's still using the wrong keyframe value when scrubbing backwards?

Seems to be wrongly interpolated as if it was Continuous instead of Discrete.

No, that is the intended behavior. The behavior is different from past versions, but consistent with actual playback. When seeking backwards, the previous value is retrieved. If you do not want that, use InterpolateContinuous+Nearest.


Starknet RPC "l1toL2Messages"

Beerus core, cli and rest api implementation ofr L1toL2Messages RPC call + tests
Pull Request type

Please check the type of change your PR introduces:

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Testing
[ ] Other (please describe):

What is the current behavior?

Issue Number: #100
What is the new behavior?

Does this introduce a breaking change?

[ ] Yes
[ ] No

Other information

Codecov Report
Base: 84.04% // Head: 83.53% // Decreases project coverage by -0.51% :warning:

Coverage data is based on head (ca7d7dd) compared to base (9541142).
Patch coverage: 76.27% of modified lines in pull request are covered.

:exclamation: Current head ca7d7dd differs from pull request most recent head 197dfa5. Consider uploading reports for the commit 197dfa5 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #110      +/-   ##
==========================================
- Coverage   84.04%   83.53%   -0.52%
==========================================
  Files          21       21
  Lines         840      899      +59
==========================================
+ Hits          706      751      +45
- Misses        134      148      +14

Impacted Files
Coverage Δ

beerus_cli/src/model.rs
52.27% <0.00%> (-3.83%)
:arrow_down:

beerus_cli/src/runner.rs
74.41% <0.00%> (-5.59%)
:arrow_down:

beerus_cli/src/starknet/mod.rs
70.68% <0.00%> (-9.71%)
:arrow_down:

beerus_rest_api/src/api/starknet/endpoints.rs
94.28% <94.73%> (+0.07%)
:arrow_up:

beerus_core/src/lightclient/beerus.rs
98.77% <100.00%> (+0.22%)
:arrow_up:

beerus_rest_api/src/api/starknet/resp/mod.rs
100.00% <100.00%> (ø)

beerus_rest_api/src/lib.rs
88.46% <100.00%> (+0.46%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Add /version endpoint

Renku notebooks should expose a public GET /version endpoint.
The response format should be the following one:
{
    "name": string,
    "versions": [
        {
            "version": string,
            "data": object
        }
    ]
}

"name" will be renku-notebooks
"version" should be a SemVer valid value, possibly the tag or some combination of last tag + commit short-sha if it's a dev version
"data" is optional, and it can be any arbitrary valid JSON object.

I like the addition of the data field. That is where I can put stuff like whether anonymous sessions or s3 mounting is enabled.

Thanks for the clear writeup @lorenzo-cavazzi!


Modals - Issue with icon in modal header (IE11)

Hi, there is an issue with close icon in modal header (IE11).
SLDS version : 0.12.1
svg4everybody version: 2.0.3
ALJS version: 0.1.3
The icon is shown in Chrome correctly. As I tried modals component on your website (IE11), the icon is there hidden too.
My source code:

New opportunity
                     <button class="slds-button slds-modal__close" data-aljs-dismiss="modal">                         <svg aria-hidden="false" class="slds-button__icon">                             <use xlink:href="{!URLFOR($Resource.SLDS, '/assets/icons/action-sprite/svg/symbols.svg#close')}"></use>                         </svg>                         Close                     </button>

Many thanks

Hello,
This is a known issue for IE11 where the browser cannot properly display SVGs in this manner. There is a fix for this though: a shim known as SVG for Everybody (https://github.com/jonathantneal/svg4everybody)
You will need to save this as a static resource on your org and run the function highlighted in their git repo. There are also talks of including this script automatically on the Salesforce side so you won't have to manage your own static resource. Right now this is only a consideration though. See https://github.com/salesforce-ux/design-system/issues/140 for more information.

Hello,
Were you able to get this solution working for you?

Hello,
yes. The problem is solved. Last updates of SLDS and ALJS solved the problem.
Thank you


Added Algolia search for docs

Added Algolia search for docs
Updated docusaurus config file
Package.json and yarn.lock files are updated to use the Algolia version.

@LakshmiLavanyaKasturi: I don't see this working in the preview. Is this expected?

Closing this PR in favour of https://github.com/hirosystems/docs/pull/427


chore(deps): update dependency cypress to v5

This PR contains the following updates:

Package
Type
Update
Change

cypress
devDependencies
major
4.12.1 -> 5.2.0

Release Notes

cypress-io/cypress
v5.2.0
Compare Source
Released 9/15/2020
Features:

Added the configuration option includeShadowDom for enabling shadow DOM querying globally, per-suite, per-test, or programmatically. Addresses #8442.
Added a followRedirect option to request interception with cy.route2(), allowing redirects to be followed before continuing to response interception. Addresses #7967.
Added the capability to specify delayMs and throttleKbps when stubbing static responses with cy.route2(). Addresses #7661.
Installing Cypress pre-releases no longer requires setting the CYPRESS_BINARY_INSTALL environment variable. Addresses #8482.

Performance Improvements:

Fixed a performance issue which led to CPU bottlenecking during Cypress runs. Addresses #8012 and #8297.

Bugfixes:

Fixed an issue where using TypeScript path aliases in the plugins file would error. Addresses #8555.
Fixed an issue where using cy.contains() within a shadow root would not yield the correct element. Addresses #8494.
Fixed an issue where querying the shadow DOM in a cy.within() callback would throw the error root.getRootNode is not a function. Addresses #8478.
Fixed an issue with cy.type() {moveToStart}/{moveToEnd} special characters moving the cursor to the current line instead of the entire text editable when typing in a contenteditable element. Addresses #8465.
Fixed an issue where typing into a manually-focused number input would prepend the number instead of appending it. Addresses #7170.
cy.type() now fires a KeyboardEvent event instead of an Event event. Addresses #6125 and #5650.
Fixed long selectors in the selector playground text input overflowing other page elements. Addresses #8247 and #4184.
Fixed an issue where assertions on cy.getCookie() would be called twice. Addresses #6672.
Fixed an issue that caused the "Open in IDE" button on hooks and tests not to appear in Firefox. Addresses #8257.
Fixed an issue causing Cypress to hang on test retry in run mode with certain assertions. Addresses #8363.

Documentation Changes:

Fixed examples of delaying and throttling responses with cy.route2(). Addresses #8489.
Added examples of using a response function with cy.route2(). Addresses #8468.
Removed unmaintained languages. English docs is the only supported language by the Cypress team. We greatly appreciate the contributions from the community for other languages, but these docs are largely stale, unmaintained, and partial. The Cypress team will seek out more scalable docs internalization implementation in the future.

Misc:

The experimentalShadowDomSupport configuration flag has been removed. It is no longer necessary to enable shadow DOM testing.
Improved the error message when the subject provided to cy.shadow() is not a shadow host. Addresses #8530.
Improved the error message when the Cypress binary is not executable. It now recommends trying to clear the cache and re-install. Addresses #8397.
Added missing type declarations for the cy.route2() command.
Updated the type declaration for Cypress.Commands.add(), adding Promise to the list of allowed return types.  Addresses #7807.

v5.1.0
Compare Source
Released 9/1/2020
Features:

Introducing experimental full network stubbing support 🎉.

With experimentalNetworkStubbing enabled, the cy.route2 command is available.
By using cy.route2(), your tests can intercept, modify, and wait on any type of HTTP request originating from your app, including XMLHttpRequests, fetch requests, beacons, and subresources (like iframes and scripts).
Outgoing HTTP requests can be modified before reaching the destination server, and the HTTP response can be intercepted as well before it reaches the browser.
See the cy.route2() docs for more information on how to enable this experiment.

cy.trigger() now accepts an eventConstructor option for specifying the constructor with which to create the event to trigger. Addresses #5650.

Bugfixes:

Improved warnings for when user is exceeding test limits of the free Dashboard plan. Addresses #8409.
Added retries to TestOptions types. Addresses #8405.
Added types for specType field on Cypress.spec. Addresses #8256.
Fixed a typo in type definitions. Addresses #8417.
Cypress now resolves and loads tsconfig.json for TypeScript projects starting from the plugins directory. Addresses #8359.
Fixed an issue where, if npm config's noproxy is set, unexpected behavior could occur. Addresses #8287.
Fixed an issue where nesting hooks within other hooks caused the test to never finish. Addresses #8350.
Fixed an issue in where tests would unexpectedly fail with a "Can't resolve 'async_hooks'" error. Addresses #8375.
Fixed an issue where return values from blob utils were mistaken for promises and could cause errors. Addresses #8365.
Fixed an issue with loading .mjs files. Addresses #8361.
Fixed an issue causing tests to run slowly in Electron. Addresses #7930.
Using .should with only chainer assertions will now throw an error. Addresses #883.
cy.trigger() now includes the view property in the event object when appropriate. Addresses #3686.
Fixed an issue where Cypress would not detect newer 64-bit installations of Chrome on Windows. Addresses #8425.
Fixed an issue where Cypress would not detect per-user Firefox installations on Windows. Addresses #8432.

Dependency Updates:

Updated dependency iconv-lite to version 0.6.2. Addresses #8387.
Updated dependency command-exists to version 1.2.9. Addresses #8388.
Updated dependency electron to version 9.2.1. Addresses #8436.

v5.0.0
Compare Source
Released 8/19/2020
Summary:
Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details.
Breaking Changes:
Please read our Migration Guide which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.

The cypress-plugin-retries plugin has been deprecated in favor of test retries built into Cypress. Addresses #1313.
The Cypress.Cookies.defaults() whitelist option has been renamed to preserve to more closely reflect its behavior.  Addressed in #7782.
The blacklistHosts configuration has been renamed to blockHosts to more closely reflect its behavior. Addressed in #7622.
The cy.server() whitelist option has been renamed to ignore to more closely reflect its behavior. Addresses #6642.
libgbm-dev is now a requirement to run Cypress on Linux. Addressed in #7791.
Values yielded by cy.setCookie(), cy.getCookie(), and cy.getCookies() will now contain the sameSite property if specified. Addresses #6892.
The experimentalGetCookiesSameSite configuration flag has been removed, since this behavior is now the default. Addresses #6892.
The return type of the Cypress.Blob methods arrayBufferToBlob, base64StringToBlob, binaryStringToBlob, and dataURLToBlob have changed from Promise<Blob> to Blob. Addresses #6001.
Cypress no longer supports file paths with a question mark ? in them. We now use the webpack preprocessor by default and it does not support files with question marks. Addressed in #7982.
For TypeScript compilation of spec, support, and plugins files, the esModuleInterop option is no longer coerced to true. If you need to utilize esModuleInterop, set it in your tsconfig.json. Addresses #7575.
Cypress now requires TypeScript 3.4+. Addressed in #7856.
Installing Cypress on your system now requires Node.js 10+. Addresses #6574.
In spec files, the values for the globals __dirname and __filename no longer include leading slashes. Addressed in #7982.

Features:

There's a new retries configuration option to configure the number of times to retry a failing test. Addresses #1313.
.click(), .dblclick(), and .rightclick() now accept options altKey, ctrlKey, metaKey, and shiftKey to hold down key combinations while clicking. Addresses #486.
You can now chain .snapshot() off of cy.stub() and cy.spy() to disabled snapshots during those commands. For example: cy.stub().snapshot(false). Addresses #3849.

Bugfixes:

The error Cannot set property 'err' of undefined will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes #7874 and #8193.
Cypress will no longer throw a Cannot read property 'isAttached' of undefined error during cypress run on Firefox versions >= 75. Fixes #6813.
The error Maximum call stack size exceeded will no longer throw when calling scrollIntoView on an element in the shadow dom. Fixes #7986.
Cypress environment variables that accept arrays as their value will now properly evaluate as arrays. Fixes #6810.
Elements having display: inline will no longer be considered hidden if it has child elements within it that are visible. Fixes #6183.
When experimentalShadowDomSupport is enabled, .parent() and .parentsUntil() commands now work correctly in shadow dom as well as passing a selector to .parents() when the subject is in the shadow dom. Fixed in #8202.
Screenshots will now be correctly taken when a test fails in an afterEach or beforeEach hook after the hook has already passed. Fixes #3744.
Cypress will no longer report screenshots overwritten in a cy.screenshot() onAfterScreenshot option as a unique screenshot. Fixes #8079.
Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes #2403.
The "last used browser" will now be correctly remembered during cypress open if a non-default-channel browser was selected. Fixes #8281.
For TypeScript projects, tsconfig.json will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes #7006 and #7503.
reporterStats now correctly show the number of passed and failed tests when a test passes but the afterEach fails. Fixes #7730.
The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes #3559.

Documentation Changes:

We have a new guide on Test Retries.
Our Migration Guide has a new section for 5.0 migration.

Misc:

Cypress now uses the webpack preprocessor by default to preprocess spec files.
The Runs tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in #8141.
The type for the Window object returned from cy.window() is now correct. Addresses #7856.
The type definition for Cypress's ApplicationWindow can now be extended. Addresses #7856.
The type definition for reporterOptions has been added. Addresses #7877.

Dependency Updates

Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from 80 to 83. Addressed in #7791.
Upgraded bundled Node.js version from 12.8.1 to 12.14.1. Addressed in #7791.
Upgraded chalk from 2.4.2 to 4.1.0. Addressed in #7650.
Upgraded cli-table3 from 0.5.1 to 0.6.0. Addressed in #7650.
Upgraded electron from 8.3.1 to 9.2.0. Addressed in #7791 and #8235.
Upgraded execa from 1.0.0 to 4.0.2. Addressed in #7650.
Upgraded express from 4.16.4 to 4.17.1. Addressed in #8179.
Upgraded fs-extra from 8.1.0 to 9.0.1. Addressed in #7650.
Upgraded log-symbols from 3.0.0 to 4.0.0. Addressed in #7650.
Upgraded tmp from 0.1.0 to 0.2.1. Addressed in #7650.

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

PR has been edited
:construction_worker: This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.


After you transfer your balance the wallet page doesn't automatically update

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

Action Performed:

From account A transfer balance to Account B
Login to account B and check balance
Refresh

Expected Result:
Account balance should update after transfer is made
Actual Result:
After you transfer your balance the wallet page doesn't automatically update
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.36-0
Reproducible in staging?:
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/152918196-077047ef-0968-45d8-bac5-7156da5d2cfd.mp4
Expensify/Expensify Issue URL:
Issue reported by: @puneetlath
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1643563169531119
View all open jobs on GitHub

Triggered auto assignment to @zanyrenney (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

Triggered auto assignment to @bondydaa (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

triage complete -- looks like they already tagged with eng, so not reapplying the label again now.

Hmm I'm not super familiar with this code to know off hand if this is a client issue (maybe onyx isn't being updated properly) or an API issue (maybe we're not returning the updated balance properly) so I can't tell if this is external or not. I'll take a look and see what I can find out.

alrighty looks like the API doesn't return anything back to the client https://github.com/Expensify/Web-Expensify/blob/5988e0dc06223c766c5f57b4eea4773963802654/api.php#L2279-L2280
Personally I think we probably should just update the API to return the remaining balance so that we don't have to then just make another call to the API to get the balance but 🤷 seems like it was built this way on purpose.
I think the bug is that here: https://github.com/Expensify/App/blob/56c97f49cfce317bdad67e122fd5ef6368583350/src/libs/actions/PaymentMethods.js#L203 we set the balance key on the USER_WALLET but looking at the rest of the code we refer to currentBalance when trying to render the balance:
Expensidev/App (main) $ ack -Q .currentBalance
src/components/CurrentWalletBalance.js
43:        props.userWallet.currentBalance / 100, // Divide by 100 because balance is in cents

src/pages/settings/Payments/TransferBalancePage.js
177:        const calculatedFee = PaymentUtils.calculateWalletTransferBalanceFee(this.props.userWallet.currentBalance, selectedPaymentType);
178:        const transferAmount = this.props.userWallet.currentBalance - calculatedFee;

src/pages/settings/InitialSettingsPage.js
125:        props.userWallet.currentBalance / 100, // Divide by 100 because balance is in cents

looks like it was added in this PR https://github.com/Expensify/App/pull/6878

Oh, yeah. You are correct. I added this code and this should be currentBalance.

Triggered auto assignment to @kadiealexander (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

###Proposal

Change the https://github.com/Expensify/App/blob/56c97f49cfce317bdad67e122fd5ef6368583350/src/libs/actions/PaymentMethods.js#L203 to set currentBalance to 0.

This fixes the linked issue.

Posted to Upwork! https://www.upwork.com/jobs/~012f263a77525f0ae0

Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat (Exported)

Triggered auto assignment to @NikkiWines (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

I would like to fix this via  proposal @NikkiWines

PR will be live shortly.

@kadiealexander can you hire @parasharrajat for this job please. TY!

Hired! Thanks @parasharrajat :)

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.1.39-3 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/7681

If no regressions arise, payment will be issued on 2022-03-02. :confetti_ball:

Paid! Thanks @parasharrajat 😊


Map optimization process died when launching lego loam

Hi @TixiaoShan
Can you please have a look at the herewith attached picture ?

How can I resolve this issue ?
Thanks

Have you solved it? I have the same problem.

@W-Liur , No, I do not understand why it's coming up. I have tried to clone and do the catkin_make again .But still no success. Please let me know if you come up with any solution.

@W-Liur , No I have not solved it yet. I have tried to clone and do the catkin_make -j1 again but still with no success.Please, let me know if you have any update on this.
Thanks

Nor did I succeed.I'm trying the previous version, but it's a bit slow to download.

I have fixed it.You can reinstall gtsam.Maybe you need this version.https://pan.baidu.com/s/1wVwtAT-Q3uD2WZN9xoiMBg      KEY:i64o

Looks like it's a GTSAM problem. Have you tried the version that is used in README?

Hi, @TixiaoShan, Thank you very much for your kind reply. I tried to install the mentioned GTSAM and it works.But still there is
"0x2bf88d0 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x2557460) ): Attempt to set a screen on a child window."

Can you please tell me how to address this ? Also I would like to know whether there is any speed issue while using the LeGO-LOAM as it seems id does not provide any map or clear trajectory while using this tool for a high speed car with LiDAR mounted on it.
Thanks

I don't know this new issue. It doesn't look like a LeGO-LOAM issue.
If the car speed is too high, there might be not enough overlaps between two scans, then LOAM will fail.

Thank you @TixiaoShan .


In Admin app, set Attachment instance name to filename as default.

The name field in the Attachment model is set to the filename when a model instance is created through the upload_attachment function. However, if an Attachment instance was created through the Admin app, via AttachmentAdmin, then the name field defaulted to None.
This pull request assigns the name field of an Attachment instance to the filename if this field is falsey when an attachment is uploaded through the Admin app. It also includes an addition to .gitignore to exclude a venv directory for those who develop in isolated Python environments with virtualenv.

Does anyone know why the Travis CI build failed? I'm pretty stumped.

Sorry @stvkas, current build setting for the master version of django looks like not in good condition.

I fixed the test and it will be built well. Let me see...

Codecov Report

Merging #178 into master will increase coverage by 0.05%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #178      +/-   ##
==========================================
+ Coverage   96.42%   96.48%   +0.05%
==========================================
  Files          10       10
  Lines         196      199       +3
==========================================
+ Hits          189      192       +3
  Misses          7        7

Impacted Files
Coverage Δ

django_summernote/admin.py
100% <100%> (ø)
:arrow_up:

django_summernote/models.py
91.89% <100%> (ø)
:arrow_up:

django_summernote/__init__.py

django_summernote/migrations/__init__.py
100% <0%> (ø)

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 531cb15...b84c683. Read the comment docs.

@stvkas Thank you for contribution!

@lqez Your welcome! I use this app for a project at work, so hopefully I'll be able to contribute more back to the project.


Additional entries created when Toggl Desktop (osx_native_app/7.1.224) goes offline

User says that when the network connection is lost during tracking time, an additional entry (just a few seconds) gets added.
case 156978

Should be fixed with latest release.


[SPARK-31727][SQL] Fix error message of casting timestamp to int in ANSI non-codegen mode

What changes were proposed in this pull request?
Change timestamp casting to int in ANSI and non-codegen mode, and make the error message consistent to the error messages in the codegen mode. In particular, casting to int is implemented in the same way as casting to short and byte.
Why are the changes needed?

The error message in the non-codegen mode is diversed from the error message in the codegen mode.
The error message contains intermediate results that could confuse.

Does this PR introduce any user-facing change?
Yes. Before the changes, the error message of casting timestamp to int contains intermediate result but after the changes it contains the input values which causes arithmetic overflow.
How was this patch tested?
By running the modified test suite AnsiCastSuite.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/27355/
Test PASSed.

Test build #122694 has started for PR 28549 at commit f561971.

Test build #122694 has finished for PR 28549 at commit f561971.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122694/
Test PASSed.

@cloud-fan @HyukjinKwon Could you review the PR, please.

thanks, merging to master/3.0!


Adjust figures for masked arrays and fix up for PDF report

Also, the output PDF will need to include a statement that the systematic model array was masked to remove N models which did not satisfy the positive AIC condition - the figures should then possibly include blank spots for masked results while keeping the used model in the correct number position on Figure 1

Originally posted by @hrwakeford in https://github.com/hrwakeford/ExoTiC-ISM/pull/46#issuecomment-517743855
We started using masked arrays in PR #46 AIC so that we can ignore models yielding negative AIC. Turns out that masked data points get completely ignored when we plot those arrays, however we would like to have them included in the plots but just be marked differently.
We need to adjust the figures for inclusion in the report anyway, currently they're quite all over the place.

matplotlib treats masked arrays just as we want them to be displayed, such that the masked data points simply don't appear in the plots but the overall data shape gets retained. The rest of the work concerning the PDF report plots is being done in #80.


Performance Testing Integration

Merged this epic with https://github.com/datastax/adelphi/issues/137


proposal: version number to config file

Hi
It seems that drone 1.0 will get newer configuration specification. However, for me it seems that we could improve that configuration spec little bit. We could add version number there like it is in kubernetes.
So instead of using:
kind: pipeline
name: default

we could have
kind: pipeline
name: default
version: v1

after that if we need modify config spec, we can handle breaking changes easily. We can implement multiple ways of parse that specification. That is how it works in kubernetes

That could happen before 1.0.0, but with 1.0.0 there is a promise to avoid breaking changes. Breaking changes MUST result in a new schema versioning now.

Well then its enough :) So if there is breaking changes after 1.0 I hope that version is added to schema

we actually support a version attribute for all resources:
https://github.com/drone/drone-yaml/blob/master/yaml/pipeline.go#L6

But so far it's not required because there are no other versions :)


Transform JsonFlatten class with Map

@alzimmermsft Can this be closed now?

I believe either @samvaity or @lmolkova may take this over as an enhancement to JsonFlatten serialization

i can take it over


(GH-1868) Add support for downloading files from targets

This adds support for a bolt file download command that downloads a
file or directory from a target to a destination directory on the local
system. File downloads are supported on all transports except for
pcp.
The bolt file download command expects two arguments:

source: The path to the file or directory to be downloaded from
the target
destination: The path to the destination directory on the local
system

The destination directory accepts either an absolute path or a relative
path. If a relative path is given, it expands relative to the project's
downloads directory. For example, the default project's downloads
directory is located at ~/.puppetlabs/bolt/downloads/.
When downloading content, Bolt creates a directory for each target
within the destination directory. The directory for each target has a
name matching the URL-encoded safe name for the target. All content
downloaded for the target is stored in this directory.
!feature

Add bolt file download CLI command (#1868)
Users can now download files and directories from targets to the local
system using the bolt file download CLI command. This command
accepts a path to the file or directory to download from the targets
and a path to a destination directory on the local system. The
destination directory is expanded relative to the project downloads
directory (i.e. <project>/downloads/).

This adds a new download_file plan function which can be used to
download a specified file or directory from a list of targets to the
local system.
Similar to the bolt file download CLI command, this plan function
accepts source and destination arguments. The source argument is
the path to the file or directory to download from the targets, while
the destination argument is a path to a directory on the local system
that the files should be saved to.
The path to the destination directory is expanded relative to the
project's downloads directory (i.e. <project>/downloads/).
The result for this plan function includes the path to the downloaded
file on the local system.
!feature

Add download_file plan function (#1868)
The download_file plan function can be used to download a file or
directory from a list of targets to a destination directory on the
local system. The result returned from this function includes the path
to the downloaded file on the local system.

This adds a new YAML plan step for Bolt's file download functionality.
The step uses the following keys:

download: The path to the file or directory to download from the
targets
destination: The path to the destination directory on the local
system
targets: The list of targets to download from

This also updates the YAML plan upload step to use an upload key in
place of a source key. Previously, the upload step used a source
key to identify the step as an upload step. This ambiguous key would
have been confusing with the addition of a download step, as it also
expects a source path.
The source key for YAML plan upload steps has been deprecated. Bolt
will raise a helpful warning when a plan step includes a source key.
!feature

Add YAML plan download step (#1868)
YAML plans now support a download step which can be used to download a
file or directory from a list of targets to a destination directory on
the local system.

!deprecation

Deprecate source key for YAML plan upload step (#1868)
The source key used in YAML plan upload steps has been deprecated in
favor of a less ambiguous upload key.

This adds allow_download and expect_download stubs to BoltSpec.
!feature

Add allow_download and expect_download stubs to BoltSpec (#1868)
Users can use the allow_download and expect_download stubs to test
plans that contain calls to download_file.

Closes #1868

CLA signed by all contributors.

Updated to delete existing contents in the destination directory before downloading.

I agree with your concern about deleting files from the CLI. It might be better to do that in the Puppet function rather than the executor. That way we also know that the deletion is coupled with whatever validation we do in that function, unlike the executor which can be called from many places. We need to be very careful that the destination isn't an empty string, etc.

bolt file download 'C:\Users\Administrator' test -t <target> results in a directory with the name C:\Users\Administrator. That definitely seems strange.

Updated to sub \ with / in source paths. Ruby doesn't recognize \ as a path separator on *nix, but does recognize / as a path separator on all systems.

What happens then for paths that are supposed to have a \ on Linux where it's not a path separator?


MAINT: stats: getting skewness alone takes 34000x longer than getting mean, variance, and skewness

I encountered something surprising while working on gh-11695:
from scipy.stats import skewnorm as dist
a, loc, scale = 2, 0.4, 1

%timeit dist.stats(a=a, loc=loc, scale=scale, moments='s')
11 s ± 318 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

%timeit dist.stats(a=a, loc=loc, scale=scale, moments='mvs')
323 µs ± 47.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

This sort of behavior is not unique to skewnorm, although it is one of the most exagerated cases. The logic in the code that leads to this is a bit complicated, but in short, if m and v don't need to be calculated, the calculation for s falls back to the generic implementation rather than a simple formula.

Thanks @mdhaber.  Weird.  I'll take a look.

I think this will get fixed by gh-15140

I think this will get fixed by gh-15140

Yes, it does:
In [1]: from scipy.stats import skewnorm as dist
   ...: a, loc, scale = 2, 0.4, 1

In [2]: %timeit dist.stats(a=a, loc=loc, scale=scale, moments='s')
215 µs ± 9.92 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [3]: %timeit dist.stats(a=a, loc=loc, scale=scale, moments='mvs')
206 µs ± 8.78 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)


Support godbolt's Compiler Explorer

Add support to autocompletion for godbolt's Compiler Explorer

I'll check out if I can implement this later (NB: I did not watch the extension code yet 😅 )

I took a quick look at this. The website does use Monaco, which we support, but trivially adding it to the list of sites in script.ts doesn't seem to work. I suspect some changes may be needed on https://github.com/compiler-explorer/compiler-explorer.
In particular, I haven't looked into it too closely, but we would need this feature to be enabled in the Monaco Webpack configuration: {label: 'inlineCompletions', entry: 'vs/editor/contrib/inlineCompletions/browser/ghostText.contribution'}

It works fine now with PR https://github.com/Exafunction/codeium-chrome/pull/5. I close the issue 👍


Split incoming lines on \r

Hi, thank you for your PR, I give this a try but didn't quite understand its use case. Can you explain which issue this resolve.

@hathach if the serial program sends multiple lines in quick succession I believe the javascript will get it in one read. This results in the multiple lines being shown as one line but with some space in between.
This change makes sure multiple lines are shown as multiple lines


Speeding up loading/decreasing memory use with mmap

Please feel free to just close this if it's a dumb idea. I'm just a normal developer and basically don't know anything about ML, PyTorch, etc.
I had this idea that it would be possible to load models much faster and with much less memory usage by mmaping the data. .pth files are actually ZIP files, but since they don't have compression turned on the actual data is contiguous in the file.
I actually got a working proof of concept going:
import io, mmap, pickle, zipfile, struct
import torch

class MmapEntriesUnpickler(pickle.Unpickler):
  def __init__(self, file, rawentries):
    self.rawentries = rawentries
    self.storage = {}
    super().__init__(file)

  def persistent_load(self, pid):
    entryname = pid[2]
    result = self.storage.get(entryname)
    if result is not None:
      return result
    dtname = pid[1].__name__
    if pid[0] != 'storage' or (not dtname.endswith('Storage')):
      raise ValueError(f'Unexpected persistent storage PID {pid}')
    dtype = getattr(torch, dtname[:-7].lower(), None)
    if dtype is None:
      raise ValueError(f'Unable to handle persistent storage type in PID: {pid}')
    result = torch.frombuffer(self.rawentries[entryname], dtype = dtype).storage()
    self.storage[entryname] = result
    return result

def load_mmapped(filename):
  entries = {}
  with open(filename, 'rb') as fp, zipfile.ZipFile(filename, 'r') as zfp:
    mv = memoryview(mmap.mmap(fp.fileno(), 0, flags=mmap.MAP_PRIVATE + mmap.MAP_DENYWRITE))
    for zi in zfp.infolist():
      if zi.compress_type != zipfile.ZIP_STORED:
        raise ValueError(f'Cannot support non-STORE file [{zi.filename}] in archive {filename}')
      offs = zi.header_offset + len(zi.FileHeader())
      weirdextra = struct.unpack('H', mv[offs + 2:offs + 4])[0] # No idea why this is necessary.
      offs += 4 + weirdextra
      data = mv[offs:offs + zi.file_size]
      # print(zi.filename, offs, weirdextra)
      entryname = zi.filename.rsplit('/', 1)[1]
      entries[entryname] = data
  return MmapEntriesUnpickler(io.BytesIO(entries['data.pkl']), entries).load()

The load_mmapped function can just be used instead of torch.load and it actually loads a bit faster with large models, however the rest of it is still pretty slow and memory intensive. It seems like this is because the models are saved as bfloat16 but RWKV always converts from that format so the process always ends up needing to allocate memory.
Maybe this approach is still worth it just because it speeds up the torch.load step (basically instant when mmapped but takes around 10-15sec to load the 7B model from an SSD the normal way).
I think the only way it could really make a big difference is if it was possible to store the model in a way that could be used more directly without the conversion steps. (There still could be other issues like data alignment, but at the least it might be possible to load/stream data to the GPU without it ever actually having to be loaded to CPU first.)
I guess the question is: Is this even worth continuing to look at? Getting the data into the correct format to be used directly, even just for loading to the GPU is beyond my ability right now.

Actually, there's a simpler way to massively reduce load times/memory usage. Basically just torch.save the model after the RWKV class gets done loading it. Then it can be loaded again, as long as the conversion stuff is disabled.
For example, using strategy cuda fp16i8 *15+ -> cuda fp16 *1 with RWKV-4-Pile-7B-20230109-ctx4096.pth and running v2/chat.py until it's ready for user input:
Normal loading
    User time (seconds): 109.77
    System time (seconds): 98.65
    Percent of CPU this job got: 349%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:59.66
    Maximum resident set size (kbytes): 21080216

Loading pre-converted with mmap
    User time (seconds): 14.84
    System time (seconds): 8.09
    Percent of CPU this job got: 108%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:21.07
    Maximum resident set size (kbytes): 12911364

Loading pre-converted with torch.load
    User time (seconds): 14.20
    System time (seconds): 9.84
    Percent of CPU this job got: 102%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:23.55
    Maximum resident set size (kbytes): 9198336

I don't know why, but the mmap approach actually uses more memory. Probably something is happening to cause buffers to get copied instead of just used in place. It's still a little faster, but still not worth it.
The preconverted .pth file is about 7.3GB vs 14GB for the original. The mmap stuff seems like it may not be worth it but "precompiling" the model based on the strategy seems like it's a huge advantage in memory usage and load speed.

You can also use https://github.com/huggingface/safetensors :)

Thanks for the reply. Right now it's a little awkward since I'm stuck on an older version because of #38 - also the current code is really, really nasty because it's basically just cut and pasting your code that I don't really understand.
I could create a draft pull request or something just as a proof of concept if you want, I don't know if there are any issues with what I'm doing (it appears to work, but...)
Also, with some trial and error I found out it's the pin_memory stuff that's causing the mmap approach to use more memory. I'm not really sure why it would use more overall, but if I comment that out it uses about the same amount as torch.load (I assume it will be slower streaming stuff to the GPU though).

safetensors was really easy to drop in. Unfortunately, it seems like it has the same issue as my mmap approach where it uses much more memory than just loading via torch.load:
Via torch.load
Maximum resident set size (kbytes): 9088712

Via safetensors
Maximum resident set size (kbytes): 14935848

safetensors was a little faster (around 24sec total) while torch was around 26sec but it's a small difference.
PyTorch must be doing something magical to be able to pin those tensors without actually having to copy or allocate memory or something like that. I was looking into it but I wasn't able to find out what was going on.
Since memory seems like the big bottleneck here, unfortunately it seems like using torch.load is still best.

@BlinkDL
Now that the latest version works for me, I'm able to proceed with this. I'm not completely sure what approach you want to take though.
mmap
Pros: Compatible with existing models. Loads faster than torch.load.
Cons: Custom code based that will break if PyTorch changes their model format. Using mmap may be less portable. Modifying an mmaped file while it's in use will probably cause problems. Uses ~30% more memory than torch.load
safetensors
Pros: Loads faster than torch.load. Safer that the pickle format.
Cons: Requires converting models to a new format. Uses ~30% more memory than torch.load.
There's probably no reason not to at least add support for loading ST models though, the only disadvantage is adding a dependency to the safetensors package. Like I mentioned, I got it working trivially so it's a super simple change. The only question here really would be do you want to detect a certain file extension like .safetensors or whatever for the model file to enable using it, or pass something to the RWKV constructor?

The saving "precompiled" versions of models is a bit of a different issue. The big pro here is it allows loading modules more much quickly and using a lot less memory doing the load process. Of course, it requires loading the full model first and then saving it. Additionally, unless other metadata is added, these models just won't work correctly if they're loaded again with a strategy that doesn't match the one they were saved with. One way would be to save the strategy in the file and basically just use that to override a strategy specified to the RWKV constructor or something like that.

ok how abt we torch.save the converted weight, and torch.load :)
can we save a strategy string in pth? please test

@KerfuffleV2  oh and we can do it in a separate convert_model.py
input: model, strategy
output: save converted model

Maybe https://github.com/ggerganov/llama.cpp/issues/91#issuecomment-1473271638 helps

The safetensors format has some lower level interface, which might be more efficient and can be load layer by layer directly to any device. Might work better in certain cases.

Some of the changes discussed here are now in #47 - that doesn't include using mmap or safetensors (yet) but it could easily be added.
@BlinkDL

can we save a strategy string in pth? please test

Yes, this seems to work fine. Also safetensors has a facility for saving metadata so it shouldn't be a problem there either.
@Blealtan

The safetensors format has some lower level interface, which might be more efficient and can be load layer by layer directly to any device.

You're almost certainly right. I don't really know enough to really do that kind of fancy stuff, however I could add the simplest/naivest approach to loading and someone who has a better idea of the actual function of the code could modify it later to make it more efficient.
@alreadydone

Maybe https://github.com/ggerganov/llama.cpp/issues/91#issuecomment-1473271638 helps

Their motivation is basically the same as mine, but it's a bit of a different problem there since they do everything on CPU and never need to push the data to a GPU.
Basically, the only issue I saw with the mmap approach was when pinning memory for streaming to the GPU: that resulted in the memory being copied so the overall memory usage was higher. This was the same between my hacky mmap code and safetensors, so I suspect PyTorch's internal loading mechanism is doing something special to avoid that problem.

Update ChatRWKV v2 & pip rwkv package (0.7.0):
Use v2/convert_model.py to convert a model for a strategy, for faster loading & saves CPU RAM.


Update to work with opencv 4.4.0

In order to make it work with opencv 4.4.0 there's just a few constants that needed to be changed. Useful because older opencv version available in conda don't support ffmpeg, while 4.4.0 is currently the latest in conda and does support ffmpeg.
To compile with opencv 4.4.0 (and conda) one just needs to conda install opencv ffmpeg -c conda-forge and then modify the Makefile.config to include
INCLUDE_DIRS := {PATH to conda}/envs/{env name}/include/opencv4/
LIBRARY_DIRS := {PATH to conda}/envs/{env name}/lib/

Note the requirement of /opencv4/  in the include_dirs, as the headers get installed in include/opencv4/opencv2/ rather than just include/opencv2/.
I assume, haven't tested, that these changes are probably not backwards compatible to older opencv version..

Thanks! Worked very good for me. I used it to generate short video

Thanks for the patch! It's been a while since I developed this and a lot has changed since then, including OpenCV :-).
Let me think about whether it's OK to merge this (which means we might require OpenCV 4.4 moving forward).
As an alternative, do you think you can modify this PR so that it's backward compatible? I realize this might be a bit of hassle but you could detect the installed version of OpenCV and make the constants point to the correct ones depending on the version.
Let me know what you think.


Feature/text input include

Input includes to text inputs. I kept regular text input, and input with unit separate because I felt merging the two in one mixin would overburden the mixin. If you think differently, let me know!
I've also not updated more pages since the mixin may change based on review!
+textInput(['w-1-4', 'd--ib'], ['w-3-4'], 'streetNumber', 'Street number', streetNumber)

with unit:
+textInputUnit(null, ['w-1-2'], 'rrspAmount', 'Total RRSP contributions', null, null, '$', '0.00')

enter null for any options you won't be using

I don't love all the nulls, let's see what we can do about them.
Suggestions:

Mixins can take attributes: https://pugjs.org/language/mixins.html#mixin-attributes

Passing in attributes would be better for frequently changing attributes like "class", or rarely used ones like "placeholder"

There's also the wrapper div in there, so the attributes can go in two places :/

If it really doesn't work, you can try excluding the wrapper div from the mixin (but it's better to keep it if possible)

I think we always want to pass "value" in — the fact that it's not in some of our inputs is an oversight
unit is always a $ right now, and I don't see any designs coming up where it will change: I propose don't even give the option to pass it in
Also, let's reorder the params by most often used (we always need the key and the label), and then the less commonly used ones, we can just ignore them if we don't need them

Also, what do you think of keeping both inputs mixins in the same file (like with the buttons)?


Help Text for Get-DbaDatabase Indicates Online Instead of Normal

Status Parameter description indicates "Could include Emergency, Online, Offline, Recovering, Restoring, Standby or Suspect."
It should indicate "Normal" instead of "Online."

Thanks for the report! Our awesome copy editor Andy may have it fixed shortly 🏆

I haven't been in this function yet so I'll give it the full treatment while I'm fixing this issue.

Thanks so much!


Move subscribe/unsubscribe queue to participant.

As subscribe/unsubscribe operation can come from both
local media track or remote media track, participant
needs to have it.

https://github.com/livekit/livekit/pull/813#discussion_r914737477
Don't have definitive proof that this happens. With stress tests, I am seeing add/remove happen a bunch. Happens in migration cases. A participant could be migrating in or out. So, a subscribed track could be removed from one and added to the other. If we do not have strict ordering there, this can happen.
Also, when we move some bits in a go routine at some point (like the down track close), there may be situations where things could get out of order. So, I am being defensive here.


The return of the "This address cannot be split" error

Plugin version
4.19.2
WooCommerce version
7.7.0
WordPress version
6.2.2
PHP version
8.1
What went wrong?
Hi, version 4.19.2 brings back the "This address cannot be split" error when using a Postcode Checker. I had to revert to 4.19.1.
Looking at the github code, someone indeed messed with this part and removed comments that dealt with the bug:
 * Postcode-checker plugins that fill in the address later, can cause the street to be empty.
 * To prevent the 'address can not be split' error undefined values are replaced with a substitute.

Reproduction steps
Enter zipcode and house number, myparcel says house number cannot be split.
Relevant log output
No response
Additional context
No response

Ah ok no one is reading this.

Hi @webwit, this should not occur anymore in the v5.0.0 beta versions of the plugin.
Please read this issue for more information and how to report bugs in the new version.

Hi @webwit, this should not occur anymore in the v5.0.0 beta versions of the plugin.
Please read this issue for more information and how to report bugs in the new version.


Improve code based on code inspection.

Codecov Report

Merging #54 into master will decrease coverage by 0.21%.
The diff coverage is 83.33%.

@@             Coverage Diff              @@
##             master      #54      +/-   ##
============================================
- Coverage      77.5%   77.29%   -0.22%
+ Complexity      644      641       -3
============================================
  Files            85       85
  Lines          1845     1832      -13
  Branches        161      158       -3
============================================
- Hits           1430     1416      -14
  Misses          288      288
- Partials        127      128       +1

Impacted Files
Coverage Δ
Complexity Δ

src/org/smof/parsers/metadata/TypeParser.java
100% <ø> (ø)
1 <0> (ø)
:arrow_down:

src/org/smof/utils/BsonUtils.java
90% <ø> (ø)
4 <0> (ø)
:arrow_down:

src/org/smof/utils/CollectionUtils.java
90% <ø> (ø)
5 <0> (ø)
:arrow_down:

src/org/smof/parsers/metadata/TypeStructure.java
100% <ø> (ø)
1 <0> (ø)
:arrow_down:

src/org/smof/gridfs/SmofGridStreamManager.java
100% <ø> (ø)
1 <0> (ø)
:arrow_down:

.../org/smof/parsers/metadata/TypeBuilderFactory.java
67.5% <ø> (-1.55%)
14 <0> (ø)

src/org/smof/parsers/metadata/SmofTypeContext.java
100% <ø> (ø)
1 <0> (ø)
:arrow_down:

src/org/smof/collection/UpdateOperators.java
100% <100%> (ø)
3 <1> (ø)
:arrow_down:

src/org/smof/collection/SmofCollectionImpl.java
86.95% <100%> (ø)
26 <1> (ø)
:arrow_down:

src/org/smof/parsers/ObjectParser.java
79.88% <100%> (ø)
57 <1> (ø)
:arrow_down:

... and 10 more

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 e0dde87...c010619. Read the comment docs.

Thanks for this gigantic contribution @sahalsaad ! In general i approve your changes, although with the following notes:

Using default visibility is error prone (e.g. removing public tokens from methods in interfaces). It was not so long ago that had that the-less-the-better mentality for writing code, but then i started using tools like Codacy to inspect my projects, and it made me see that in certain situations using defaults (i.e. implicit behavior) can lead to errors, specially from people who are not fully familiarized with the language (e.g. i myself had not yet realized that enum constructors default to private).
I loved your approached on using lambdas and streams to replace good ol' for expressions and such, which gives the project some sense of modernity.
I was curious about something: did you use a tool that suggested (and fixed) these points? And if so, what's that tool?

Thanks! I just using IntelliJ IDEA code inspection but I skip some of the suggestion.
For the lambdas/code refactoring that just me randomly look around.


MWPW-129470: Added GitHub Action for js and css lint

Resolves: MWPW-129470
Before: https://stage--dc--adobecom.hlx.live/acrobat/online/pdf-to-jpg
After: https://mwpw-129470-js-and-css-lint--dc--adobecom.hlx.live/acrobat/online/pdf-to-jpg

Codecov Report

Merging #363 (b07429f) into stage (0b8c42f) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head b07429f differs from pull request most recent head 3ce7144. Consider uploading reports for the commit 3ce7144 to get more accurate results

@@           Coverage Diff           @@
##            stage     #363   +/-   ##
=======================================
  Coverage   92.80%   92.80%
=======================================
  Files          24       24
  Lines        2669     2669
=======================================
  Hits         2477     2477
  Misses        192      192

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Dotnet Tool Manifest File Support

I don't like installing dotnet tools globally and with the new tools manifest file, it is no longer necessary.
It'd be great if you supported the manifest file for the debugging profile you add and updated the documentation to use the manifest file.
Thanks!

You need the dotnet tools to start and create an Electron.NET app..
What is meant by new tools manifest file?

What is meant by new tools manifest file?

I guess he refers to this: https://docs.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use

You need the dotnet tools to start and create an Electron.NET app..
What is meant by new tools manifest file?

yes, what @cosmo0 said is correct!
Sorry I did not provide a link, I left this as a comment as I was checking out a few different options for electron in dotnet.
dotnet tool update ElectronNET.CLI -g
The idea here would be to include a dotnet cli tool manifest file in local repos instead of globally requiring the tool on the devs machine.
Similar to dev-includes in node modules vs global installed tooling.


Installation hangs

System details:

Expected behaviour: rdkit installs
Actual behaviour: conda install -c conda-forge rdkit hangs indefinitely.
PS I'm attempting to install as root because I want it to be available to all users.

This is, if anything, a conda problem, not an RDKit bug.

@d9748336 you might want to try asking on the discussions tab and see if anyone else has seen this


feat: add example using rich and pixi-build-python and remove flask

The other examples where not actually building a Python package with pixi-build-python

Wouldnt it make more sense to adapt the flask-hello-world-pyproject example as that also contains much more documentation regarding pixi-build?

Wouldnt it make more sense to adapt the flask-hello-world-pyproject example as that also contains much more documentation regarding pixi-build?

Yeah, probably.
Let me have a look!

looks cleaner and easier to understand. I've also tested pixi build and pixi install and works as expected

blocked on windows by missing entry points https://github.com/prefix-dev/rattler-build/blob/cff5ca53751d348a469bfbf9577e970d6797bdc5/docs/tutorials/python.md?plain=1#L101-L105.


Handle doc strings in JSON-formatter

Summary
The JSON-formatter is not be complete yet, the goad is to make it better (or at least more compliant with the current one in cucumber-ruby)
Details
Discovered for the moment, the doc strings are not generated in the JSON report. I guess the datatable will cause the same kind of issues.
This will need more tests, but there are strong chances that messages showing steps coming from before and after will also cause issues. Still need investigations.
Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist:

[ ] The change has been ported to Java.
[ ] The change has been ported to Ruby.
[ ] The change has been ported to JavaScript.
[ ] The change has been ported to Go.
[ ] The change has been ported to .NET.
[ ] I've added tests for my code.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Please remember to tag issues :-)

Humm, we also need to support the tags which are not supported in the output yet.


Fix error: (-215:Assertion failed) bug where image coords are of wron…

…g type
results % page-dewarp ../example_input/linguistics_thesis_a.jpg  Loaded linguistics_thesis_a.jpg at size='3456x4608' --> resized='494x658'
got 20 spans with 161 points.
initial objective is 0.02476134606067954
optimizing 189 parameters...
optimization took 2.06 sec.
final objective is 0.0006459224174503983
got page dims 1.2256983872644855 x 1.875175454180486
output will be 2832x4320
Traceback (most recent call last):
File "/Users/ant/Documents/Programowanie/python/.venv/bin/page-dewarp", line 8, in
sys.exit(main())
File "/Users/ant/Documents/Programowanie/python/.venv/lib/python3.10/site-packages/page_dewarp/main.py", line 21, in main
processed_img = WarpedImage(imgfile)
File "/Users/ant/Documents/Programowanie/python/.venv/lib/python3.10/site-packages/page_dewarp/image.py", line 85, in init
self.threshold(page_dims, params)
File "/Users/ant/Documents/Programowanie/python/.venv/lib/python3.10/site-packages/page_dewarp/image.py", line 89, in threshold
remap = RemappedImage(self.stem, self.cv2_img, self.small, page_dims, params)
File "/Users/ant/Documents/Programowanie/python/.venv/lib/python3.10/site-packages/page_dewarp/dewarp.py", line 67, in init
remapped = remap(
cv2.error: OpenCV(4.10.0) /Users/xperience/GHA-Actions-OpenCV/_work/opencv-python/opencv-python/opencv/modules/imgproc/src/imgwarp.cpp:1912: error: (-215:Assertion failed) ((map1.type() == CV_32FC2 || map1.type() == CV_16SC2) && map2.empty()) || (map1.type() == CV_32FC1 && map2.type() == CV_32FC1) in function 'remap'

Confirmed working fix, thanks for investigating, I'll merge soon ! :saluting_face:

Thank you very much for this! Merged in #28 :tada

Thank you! Glad I could help a little 😊


Data flow: Refactoring + performance improvements

Highlights:

Introduce ReadTaintNode and TaintStoreNode to simplify logic for taint
getters and taint setters, respectively.
nodeCandFwd2: Restrict stored column after a read, based on what it might
be before a store of the same field.
nodeCand2: Restrict read column (renamed from stored) after a store, based
on what it might be after a read of the same field.
Move big step predicates into a LocalFlowBigStep module.
Define predicates by dispatch in AccessPath[Front] class.
flowCandFwd0: Restrict apf column after a read, as it should be able to match
a Boolean read column from nodeCand2.
flowFwd0: Restrict columns ap and apf after a read, by introducing a
flowConsCandFwd predicate (similar to what is done in the previous pruning steps).
flowFwd0: Restrict columns ap and apf after a store, by introducing a
flowConsCand predicate (similar to what is done in the previous pruning steps).

Differences jobs (all internal links):
Java: https://jenkins.internal.semmle.com/job/Changes/job/Java-Differences/626
C++: https://jenkins.internal.semmle.com/job/Changes/job/CPP-Differences/931
C#: https://jenkins.internal.semmle.com/job/Changes/job/CSharp-Differences/32

The C++ dist builds appear to be within the noise threshold, so no objections from me.

A few removed results on JDK.
=== Changes per project (+new -fixed) ===
g/AdoptOpenJDK/openjdk-jdk11u                                               +2 -7
=== Changes per query (+new -fixed) ===
java/similar-file                                                           +2 -2
java/tainted-arithmetic                                                     +0 -4
java/zipslip                                                                +0 -1

Here are the updated Differences jobs:

Java: https://jenkins.internal.semmle.com/job/Changes/job/Java-Differences/644/
C++: https://jenkins.internal.semmle.com/job/Changes/job/CPP-Differences/958/
C#: https://jenkins.internal.semmle.com/job/Changes/job/CSharp-Differences/44

The removed ZipSlip result looks like a FP, which is now successfully pruned by the additional cons candidate tracking.


Crosslink: define Safety Mode

The current doc assumes you've read "The Arguments for Bounded Dynamic Availability and Finality Overrides".

Done.


Fix debug output for global_user_agent_header.

If the value set is not a C-string, the debug output will have trailing garbage. Instead, use the stored length.

Cherry-picked to v9.0.x branch.


Draft: feat: add support for DROP IF EXISTS clause

Fix: #111
Checklist

[x] CHANGELOG

test_dropIfExists is failed. Could you fix it?
There was 1 error:

1) Colopl\Spanner\Tests\Schema\BlueprintTest::test_dropIfExists
Google\Cloud\Core\Exception\BadRequestException: {
    "message": "Error parsing Spanner DDL statement: drop table if exists `Test3` : Syntax error on line 1, column 12: Encountered 'if' while parsing: identifier",
    "code": 3,
    "status": "INVALID_ARGUMENT",
    "details": [
        {
            "@type": "grpc-status-details-bin",
            "data": "<Unknown Binary Data>"
        }
    ]
}

/project/vendor/google/cloud-core/src/GrpcRequestWrapper.php:263
/project/vendor/google/cloud-core/src/GrpcRequestWrapper.php:151
/project/vendor/google/cloud-core/src/GrpcTrait.php:82
/project/vendor/google/cloud-spanner/src/Connection/Grpc.php:691
/project/vendor/google/cloud-spanner/src/Database.php:517
/project/src/Concerns/ManagesDataDefinitions.php:62
/project/src/Connection.php:306
/project/tests/Schema/BlueprintTest.php:94

ERRORS!
Tests: 108, Assertions: 374, Errors: 1, Skipped: 2.

Waiting for emulator to add support.
https://github.com/GoogleCloudPlatform/cloud-spanner-emulator/issues/119

I've changed the title to DRAFT

Emulator added support and tests are now passing.
https://github.com/GoogleCloudPlatform/cloud-spanner-emulator/releases/tag/v1.5.7


Updating Controller Mapping Profiles does not update profiles

Describe the bug
When selecting Update -> Controller Mapping Profiles from the MRKT Utilities Menu, changes in controller mappings in code are not reflected in the profiles
To reproduce
Steps to reproduce the behavior:

Change a value in lets say the MouseController
Select that menu
Let your versioning tool tell you that nothing was altered

Expected behavior
You see the change in the profile
Target platform (please complete the following information)

Editor

I accidentially commited the change I wanted to create a pull request for directly to the dev branch under commit 465e3f3.
For some reason I am allowed to do that.


git-credential-cache doesn't always work with graphical Emacs

Under some circumstances, I am prompted for my password every time.

I am able to reproduce this across several boots of macOS as well as restarting emacs several times per boot. Is there any sort of workaround for this?

Sorry, I stopped using HTTPS for Git a long time ago, and hence I stopped encountering this problem. If you figure out what the issue is, however, I'd gladly install the fix into Radian.

Oh, apologies - this is occurring with an SSH git repository. I've posted on the emacs stackexchange and I'm attempting to get to a solution. But, from your comment, it sounds like my current problem is not the problem you had.

I see from the linked thread that you figured this out. Yes, sorry, I forgot that magit-gh-pulls requires initial setup via HTTPS. (I have my ~/.gitconfig.local under version control so it was truly a one-time setup for me.) This is completely unrelated to git-credential-cache, which only applies to remote operations over HTTPS.
That said, I feel like magit-gh-pulls should not be prompting you for anything unless you run # g or a similar command. This is probably worth opening a new issue for.

Cannot reproduce.


Proposed Golang SDK Updates

Purpose
The goal of this issue is to open a discussion around a couple of consistency / housekeeping items for the golang codebase.
Private Base Implementations
Currently ever service is defined in an interface and then a base implementation is provided. Those base implementations are not commented in the standard way for godoc to build documentation and thus tools like golint are complaining and ultimately failing.
It is a pattern to keep the base implementations of interfaces private (unexported) thus not requiring the same level of documentation.
The question to be resolved:
Is there a reason to have the base implementations exported? If not they can be made private and there is no further work required. If yes, we need to comment the code base appropriately.
Function Call Arguments
Currently we have a mix of passing in the Server API request struct directly and passing in fields that then get validated and an api request is built from them.
grpc request struct:
func (c *CredentialBase) CheckStatus(userContext context.Context, request *sdk.CheckStatusRequest)

request fields:
func (c *CredentialBase) VerifyProof(userContext context.Context, proofDocument Document)

Either way has it's pros/cons, we just need to be consistent.
Unit vs. Integration testing
Currently there is a mix of unit and integration tests in the test files. I would like to propose we keep the tests in the _test files to unit tests and things we can mock, and have a separate process in place for doing full blow integration testing against a deployed environment.

Service Base implementations can be made internal to the SDK where the language permits that. We don't intend the users to implement them or construct them directly. They're abstract where appropriate.
Definitely moving towards just exposing the actual Request and returning Response directly in the APIs and moving away from individual parameters. This makes all calls consistent and forces us to maintain both clean and well-documented Request objects to guide users. I may have missed to update this in few places, but that's the intention.
Considering the SDKs are really just wrappers around the actual gRPC endpoints with the added custom metadata generation, this turns most SDK calls into integration tests.
Unit tests seem to boil down to testing oberon header generation, token protections, and few others. I agree on the approach that we should test both.

Considering the SDKs are really just wrappers around the actual gRPC endpoints with the added custom metadata generation, this turns most SDK calls into integration tests.

That is true. There are a few things we can wrap in unit tests, and we could mock the API to make sure the contracts are respected.
My main goal is wanting to be able to run go test and have it return fairly quickly with all the internal code checks done, then plan for and run the integration tests. Currently there is a mix of both.

Considering the SDKs are really just wrappers around the actual gRPC endpoints with the added custom metadata generation, this turns most SDK calls into integration tests.

That is true. There are a few things we can wrap in unit tests, and we could mock the API to make sure the contracts are respected.
My main goal is wanting to be able to run go test and have it return fairly quickly with all the internal code checks done, then plan for and run the integration tests. Currently there is a mix of both.

In general, I have intentionally constructed the SDK "unit tests" as integration tests. This is to ensure api behavior, since we are such a thin wrapper. This also allows us to do some of the server integration tests in a public manner, eg, call sequence bugs that customers (Roman Levin) have reported.

With respect to the mix-and-match of  CallResponse ServiceCall(CallRequest request) and other things, that is simply because I haven't prioritized making those all consistent until the API stabilizes a little more. I wouldn't worry about that for now, let's do that once 1.4 is released. I'm fine with compilation level breaking changes in 1.5, provided behavior doesn't also change.

There really aren't that many - I just wanted to make sure to do it the way all the other SDKs were going to

There really aren't that many - I just wanted to make sure to do it the way all the other SDKs were going to

I have a backlog ticket for that. will do shortly: https://github.com/trinsic-id/sdk/issues/479


Remove duplicate field from items_holdings_instances (bugfix for 1.5.0)

Fixes #693
Looked to the metadb version to decide which field to remove. Also noticed documentation was not at top of query, so moved that as well.
All queries:
- [x] Release notes added or updated in CHANGES.md
- [x] Query runs without errors
- [x] Query output is correct
- [x] Query logic is clear and well documented
- [x] Query is readable and properly indented with spaces (not tabs)
- [x] Table and column names are in all-lowercase
- [x] Quotation marks are used only where necessary

Derived tables:
- [x] Query begins with user documentation in comment lines
- [x] File name is listed in `runlist.txt` after dependencies
- [x] All columns have indexes
- [x] Table is vacuumed and analyzed

Hi @natalyapik ! I see you commented, but I don't think you clicked "approve" for your review. Are you ready to approve? Thanks!


Custom evt

Issue

user did have a possibility to change service definition during runtime.
Now we allow user to add custom events to be listened

@dstathis
is it fine that I bumped the version or should it be done right before publishing the lib?

@dstathis
is it fine that I bumped the version or should it be done right before publishing the lib?

Yes the libpatch should be bumped. That way you can release right after merging.

LGTM in general (after the LIBPATCH bump). What's the use case?

@rbarry82
I want to have an app and expose port as a part of the configuration file. It works brilliantly with prometheus scrape job targets but service patch is not applied. Thus, app is not available on service IP:PORT
and there was no way to reapply patch to a new configuration
I would assume there might be other use cases when user will need to fire a patching on a custom event