ref #65: new formula functions RATE and RECEIVED

PR Details

Description

Related Issue

Motivation and Context

How Has This Been Tested

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #1045 (7ea397e) into master (8932a0a) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1045      +/-   ##
==========================================
+ Coverage   97.64%   97.65%   +0.01%
==========================================
  Files          29       29
  Lines       16701    16794      +93
==========================================
+ Hits        16308    16401      +93
  Misses        269      269
  Partials      124      124

Flag
Coverage Δ

unittests
97.65% <100.00%> (+0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

calc.go
98.35% <100.00%> (+0.02%)
: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 8932a0a...7ea397e. Read the comment docs.

LGTM, thank you.


fix: handling invalid float

ref: https://developer.garmin.com/fit/protocol/ (Table 7. FIT Base Types and Invalid Values)
float32 invalid = uint32(0xFFFFFFFF)
float64 invalid = uint64(0xFFFFFFFFFFFFFFFF)
In previous float invalid handling, we mark float value as invalid if it's a NaN value, but as per documentation it is not correct.
For example, when we have float32 0xFFFFFFFE, in float32 form it's a NaN value, we treat it as invalid even though in integer form 0xFFFFFFFE != 0xFFFFFFFF.
Now we will compare any float in its integer form.

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

Comparison is base (835cd58) 100.00% compared to head (4024590) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##            master       #39   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           19        19
  Lines         2542      2542
=========================================
  Hits          2542      2542

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Created and Updated docs for 1.29

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/unhold
/approve


Add comments to gcode output.

Adds comments to the less common G-Code commands. (Or easily confused ones.) Makes the output gcode more readable and more practically verified by a human. Test cases updated.

This looks good, thanks for the contribution.


Implement responsive local state management for immediate user feedback

Things Covered

Modified jinja template in a way to allow importing of DispatchContext on index.js page only.
Added hooks in var.py
In the committed code the values in dispatcher_line are being rendered dinamically.
I think everything we intended to do is covered.

Discussion:
Their is a line in component.py in which we are adding a } bracket in the end of rendered_chain.
rendered_chain = rendered_chain+'}'
And this line is put to correct the syntax mistake in the rendered javascript code. And is working fine.

@coderabbitai review


"TypeError" when running a network topology

This seemingly simple mixed network with a switch device and a router cannot be started due to a TypeError:

Error message:

Seems like an error on front-end from looking at the stack trace. gserver does not even have the chance to output anything so I'm quite convinced.
In case it's a back-end issue, keep in mind that virtual switches are created before virtual routers.

This is the most important next task

Temporary solution: add a new connection rule for subnet. One adjacent node of a subnet must be a router


Keep Connection Stage

Hello @maurovz !!
Good to see you again haha!
I solve the issue.
Not third party, Not Appstorage.
Would you mind register my solution using pull request?
i want to be a contributor here.
If so, I would be very grateful.

Hey! Sorry for the late reply.
Go ahead and make a pull request and I'll review it.

@maurovz I mentioned on my PR! Thank you so much.


[$500] Desktop - Expired magic code page for a valid code with no prior use + inability to exit the screen

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: Version 1.4.10-1 (1.4.10-1)
Reproducible in staging?: Y
Reproducible in production?: N
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:
Prerequisites: User must be logged into web app as User A.

Launch the Desktop app
Enter an email for an existing or new account
Go to the email inbox and locate the magic code
Copy the Magic link and modify it to staging
On the web, open a new tab and navigate to the staging magic link
Confirm that the user is prompted to open the desktop app
Click on the "Open app" option
Repeat steps 5,6 and 7
When the apps get opened, click on ''just sign in here ''button

Expected Result:
The user should be able to sign in right after clicking on ''Just sign in here,'' and they should also have the option to exit the page.
Actual Result:
When the desktop app is launched using the magic code deep link, the user encounters an expired magic code page even though the code is valid and has not been previously used. Additionally, it's impossible to exit that screen.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/115492554/6b1bf309-0c09-4898-8849-04af97ed9950
Bug6304327_1701946927913!expen-log2.txt
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01acea970084cf49dd
Upwork Job ID:<PHONE_NUMBER>509161472
Last Price Increase: 2023-12-11

Different behavior on production.
https://github.com/Expensify/App/assets/115492554/7394a644-3065-4779-99ab-704213e5f9c0

We released 1.4.11 just before this blocker was created, so I think it will now be an issue on production too. Would you mind retesting to verify?
here's the new checklist

Hi @dukenv0307, thanks for the proposal.

We can simply early return here (not prompt open desktop) if the auth state is currently NOT_STARTED. We need to pass the session to DeeplinkWrapper.

That makes sense, but why do you think this was a recent regression? This didn't occur on versions prior to 1.4.10 so I'd like to double-check the cause before moving forward.

Sounds good to me. This is a blocker, so would you be able to raise a PR soon? If so let's do it and I'll find someone on the C+ tema available for a review ASAP

Hey @dukenv0307, I assigned you for this PR. As this is a blocker could you please prioritise this one? Thanks

@Julesssss This issue still reproducible (version 1.4.11-13 (1.4.11-13)
https://github.com/Expensify/App/assets/115492554/0b084b0b-5fb6-44c0-8b72-c9dc5652d4f8

Thanks @izarutskaya, lets retest once the PR is raised

@dukenv0307 Whats the status of the PR here?

@dukenv0307 any updates on this PR?

@alitoshmatov could you please handle the BZ checklist so we can prep to issue payment this Wednesday? TY!

The PR that introduced the bug has been identified: https://github.com/Expensify/App/pull/23673
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake: https://github.com/Expensify/App/pull/23673#discussion_r1431218580
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. N/a
Determine if we should create a regression test for this bug: No

Awesome. TY!

BZ checklist complete. All set to issue payment tomorrow (assuming no regressions). We need to pay:

@dukenv0307 - $500 for PR. Paid via Upwork.
@alitoshmatov - $500 for C+. Paid via Upwork.

All set to issue payment.

@alitoshmatov $500 sent and contract ended!


saving changes (leading to forked stackblitz) breaks static asset image serving

Describe the bug
Noticed that if I made changes to a blitz, thus causing a fork, and then re-ran the same npm start command, that the image in the header was not loading anymore.
Link to the blitz that caused the error
https://stackblitz.com/github/ProjectEvergreen/greenwood-getting-started
Steps to reproduce

Load the blitz
Run npm start.  Observe the dev server starts and you can see the Greenwood logo in the header

Make and save any change to a file (like editing the name field in package.json)

This will cause a fork
Run the npm start command again, now the image in the header is not loading

Expected behavior
It would be great if the image continued to load.  😃
Screenshots
Provided in the Steps to reproduce section 👆
Platform

OS: macOS
Browser: Chrome
Version: 96

Additional context
The image is referenced in a folder called /assets and is served by a simple Koa server from src/components/header/header.js.
Not sure if this is related to #208 ?
I can make as many changes as I want and keep running npm start and everything is fine, but as soon as I save and get into a fork, the image loading breaks.

Thanks in advance for any help / guidance!

@thescientist13 thanks for submitting this report! As you determined, this is the same underlying issue as #677 so I will close this report, and we can follow #677 for updates. Cheers!


[RFC] Generalization of 'for' extraction variable statements.

Hi,
Currently 'for' extraction variable statements can only be used in import expression, but it can be generalized. The idea is too allow to extract subscriptables content, and make variables out of it.
var foo = {"bar" : 42}
foo for bar as baz
System.print(baz) // expect 42

I think it could be a great addition trying to solve returning/passing environment and extracting values in a uniform way. Another example could be:
Process.env for HOME as user_home, DISPLAY as x11_display

As its original usage, it doesn't solve the default value (so it should not be a stopper for that idea).
I have a working prototype that needs some more love, and implies other changes like making  ̀Moduleobjects public andimport` being simple expressions... to support even more generalization of that concept. But first I wanted to ear about what people thing of that addition first.
Comments welcome.

It's good to see a new idea but I'm unsure that this one would be sufficiently beneficial compared to what we do now to be worth doing - particularly if it means other things would need to be changed to make it work.
It appears from your examples that the expression from which variables are to be extracted needs to be a map and so those examples would be coded at present as follows:
var foo = {"bar": 42}
var baz = foo["bar"]

var user_home   = Process.env["HOME"]
var x11_display = Process.env["DISPLAY"]

There's nothing particularly onerous about this, IMO, and it's crystal clear what's happening.
One advantage of your proposed syntax, is that Process.env would only appear once no matter how many variables were being extracted.
If the extractable expression could be a list of key/value pairs rather than a map, then it would also save us from writing code to iterate through the list to find the appropriate key(s).
Would the as clause be optional - i.e. if it were absent, could the key be extracted directly into a variable of the same name? If so, the first example would simply become:
foo for bar  // bar = 42

One thing that I do find rather tedious at present is having to unpack a list of values returned from a function into separate variables. For example, I always have to do something like this:
var f = Fn.new {
    // blah
    return [a, b]
}

var res = f.call()
var a = res[0]
var b = res[1]

Other languages might allow me to do it in one line with something like this:
var (a, b) = f.call()

It appears that, if I rewrote the function as:
var f = Fn.new {
    // blah
    return {"a": a, "b": b}
}

I'd then be able under your proposal  to extract the variables in one line with:
f.call() for a, b

which would be an improvement though it would mean rewriting functions to return maps rather than lists of values.
One thing I don't like is that  (apart from import statements) I know that new variables are always declared with var. That would no longer be the case with the proposed for syntax.

It's good to see a new idea but I'm unsure that this one would be sufficiently beneficial compared to what we do now to be worth doing - particularly if it means other things would need to be changed to make it work.
It appears from your examples that the expression from which variables are to be extracted needs to be a map and so those examples would be coded at present as follows:
var foo = {"bar": 42}
var baz = foo["bar"]

var user_home   = Process.env["HOME"]
var x11_display = Process.env["DISPLAY"]

There's nothing particularly onerous about this, IMO, and it's crystal clear what's happening.
One advantage of your proposed syntax, is that Process.env would only appear once no matter how many variables were being extracted.
If the extractable expression could be a list of key/value pairs rather than a map, then it would also save us from writing code to iterate through the list to find the appropriate key(s).
Would the as clause be optional - i.e. if it were absent, could the key be extracted directly into a variable of the same name? If so, the first example would simply become:
foo for bar  // bar = 42

One thing that I do find rather tedious at present is having to unpack a list of values returned from a function into separate variables. For example, I always have to do something like this:
var f = Fn.new {
    // blah
    return [a, b]
}

var res = f.call()
var a = res[0]
var b = res[1]

Other languages might allow me to do it in one line with something like this:
var (a, b) = f.call()

It appears that, if I rewrote the function as:
var f = Fn.new {
    // blah
    return {"a": a, "b": b}
}

I'd then be able under your proposal  to extract the variables in one line with:
f.call() for a, b

which would be an improvement though it would mean rewriting functions to return maps rather than lists of values.
One thing I don't like is that  (apart from import statements) I know that new variables are always declared with var. That would no longer be the case with the proposed for syntax.

As an idea, I like destructuring, but I'm not sure it fits well into the single-pass compiler of Wren, and I don't like the proposed syntax. I prefer JavaScript syntax:
var [a,, b = 1] = [1, 2]
var { "p": foo, "q": bar = 5, abc } = { "p": 1, "abc": 2 };

As an idea, I like destructuring, but I'm not sure it fits well into the single-pass compiler of Wren, and I don't like the proposed syntax. I prefer JavaScript syntax:
var [a,, b = 1] = [1, 2]
var { "p": foo, "q": bar = 5, abc } = { "p": 1, "abc": 2 };

The JavaScript syntax is too complicated for my liking.
Apart from destructuring from lists, I'm also not keen on allowing multiple variable declarations on the same line such as these:
var a, b = 0, 1

var c = 0, d = 1

The reason I don't like these is that I think it's always clearer to have variable declarations on different lines and there's no decision to make if there's only one way to do it :)
Admittedly, the syntax I (sort of) proposed in my previous post, would allow stuff like this:
var (a, b) = [0, 1]

though in practice I think folks would generally confine it to destructuring lists of values returned from functions.
Of course, if destructuring is impractical for a single-pass compiler, we're whistling in the dark anyway.

The JavaScript syntax is too complicated for my liking.
Apart from destructuring from lists, I'm also not keen on allowing multiple variable declarations on the same line such as these:
var a, b = 0, 1

var c = 0, d = 1

The reason I don't like these is that I think it's always clearer to have variable declarations on different lines and there's no decision to make if there's only one way to do it :)
Admittedly, the syntax I (sort of) proposed in my previous post, would allow stuff like this:
var (a, b) = [0, 1]

though in practice I think folks would generally confine it to destructuring lists of values returned from functions.
Of course, if destructuring is impractical for a single-pass compiler, we're whistling in the dark anyway.

I can play with it to see if it possible.

I can play with it to see if it possible.


No example

No example code in the description, not very helpful

No example code in the description, not very helpful

Hi @ames1982 thank you for reach me out, you can refer to the example code example/lib/main.dart


Zipzip💦💭ice

Why:

What's being changed:

Check off the following:

[ ] All of the tests are passing.
[ ] I have reviewed my changes in staging.
[ ] For content changes, I have reviewed the localization checklist
[ ] For content changes, I have reviewed the Content style guide for GitHub Docs.

https://github.com/775188/docs/pull/1#issue-1335503569

#1 (comment)


Clone the audio article for a video version

Our current native hardware section has articles for images and audio but not video.
I discussed with @PaulKinlan and, while in the long-term we'd like to rewrite the section to remove duplication, in the short-term we decided to clone the audio article and change audio/microphone into video/camera. This keeps the good SEO and task-oriented nature of the original article while plugging the gap in the documentation.
I also fixed some minor issues with the audio article while I was in there.

Also rebased and moved things to match the new WF docs layout


check that the Token function works with named tables/columns

Can someone elaborate a bit on this one?

We are migrating all Github issues to the public Jira. Please find this issue in Jira: https://datastax-oss.atlassian.net/browse/PYTHON-272


BUILD_FAILED boost with icu and custom triplet

Hi.
I need a custom triplet. because our build machines serve various projects.
before modularize no problem. do you have any good idea?
triplet file
x64-custom.cmake
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)

before  Modularize
vcpkg install boost[locale-icu,regex-icu]:x64-custom --featurepackages
now
vcpkg install boost-locale[icu]:x64-custom boost-regex[icu]:x64-custom boost:x64-custom --featurepackages

@plasticbox, does this still be a problem for you? you can reference https://github.com/microsoft/vcpkg/blob/5e40afca0d7286a9a7d742822cc2a1179a9e63fc/docs/users/triplets.md#community-triplets to set the custom triplets.

@plasticbox, please reopen this issue if it still be a problem for you.


Key error at Telegram build_message

When we send something that isn't a message (e.g.: an edit to a sent message) to the bot, it breaks due to a the absence of the key 'message' at the response.
For example, when we edit a message, the response data contains 'edited_message' key instead 'message' which raises an key error at line 87 at telegram.py file:
 87, in build_message
    id=data['message']['message_id'],
KeyError: 'message'

I've made the PR #25 in order to solve that problem

Closed at #25


Iranian IBAN support

Someone opened an issue on supporting  Iranian IBAN on https://github.com/almerlucke/go-iban project
I made some searched and gathered some information
26 characters
IR + 24 digits
Some sources:
https://iban-analyzer.com/iban-countries/ir
https://www.iban.com/structure
Structure 3 digits for the bank apparently
https://github.com/rghorbani/iran-sheba/blob/master/index.js#L292
Validation examples:
https://github.com/rghorbani/iran-sheba/blob/master/index.js#L308-L328
https://github.com/RezaOptic/irvalidator-python/blob/develop/irvalidator%2Fiban.py
classic rule apparently, to be checked
Originally posted by @ccoVeille in https://github.com/almerlucke/go-iban/issues/3#issuecomment-2466657528
Are you interested in supporting Iranian IBAN in your lib?

My request is about knowing if you are interested
I can open a PR then.

Thank you for your research.
Looks like Iran is not in the official swift iban registry, this library only contains countries in the registry, until that happens it will not be supported.
Feel free to fork if you want to support it, you can update docs/registry.yml and generate the code.

I'm fine with your reply.
Thanks

For anyone who find this issue later, here are some alternative projects where the Iranian IBAN might be supported

https://github.com/go-pascal/iban/issues/10

https://github.com/almerlucke/go-iban/issues/3


Enhancement: HTMX support

It would be great to have an htmx support added under starlite.contrib.htmx.
For example, see this package: https://github.com/adamchainz/django-htmx

Hi, Been 2 weeks no has replied. Would it be okay if I work on it?

Of course! Anyone is welcome to work on any open issue that haven't been assigned yet.

Thanks, I looked in django-htmx and it provides request.htmx attribute to request object. It makes it possible to do things like:
def my_view(request):
    if request.htmx:
        template_name = "partial.html"

def my_view(request):
    if request.htmx.boosted:
        # do something special
        ...
    return render(...)

but, request in Starlite cannot be extended or modified as request attributes are in slots.
So, should we add htmx-headers to app scope?
coz, request.headers gets populated with htmx-headers and request.headers['hx-boosted'] (and other htmx-headers) is already possible.

but, request in Starlite cannot be extended or modified

Of course you can. You subclass Request. So you'd have HTMXRequest, which you could then pass as request_class to the appropriate layer.

@provinzkraut, can request instance be modified in middleware and passed on to route handlers?
Currently, I am using your approach but, I have to modify request object in before_request hook at application or router level. This will block the users ability to add another before_request hook when using htmx.
async def before_request_handler(request: Request) -> None:
    if request.headers.get('hx-request') == "true":
        request.htmx = HtmxDetails(request)

Current options:

to achieve django-htmx like interface request.htmx, I am subclassing Request and adding HtmxDetails class but, I am stuck at modifying request in middleware.
we can pass to scope as follows:

middleware:
async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
    request = scope['app'].request_class(scope, receive)
    scope['htmx'] = HtmxDetails(request)
    await self.app(scope, receive, send)

route handler:
@get()
async def hello(request: Request) -> Response:
    htmx = request.scope['htmx']
    if htmx:
        print(htmx.current_url)
    return Response('world')

else we can pass to state.

middleware:
async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
    request = scope['app'].request_class(scope, receive)
    request.state['htmx'] = HtmxDetails(request)
    await self.app(scope, receive, send)

route handler:
@get()
async def hello(request: Request) -> Response:
    htmx = request.state['htmx']
    if htmx:
        print(htmx.current_url)
    return Response('world')

I have to modify request object in before_request hook at application or router level

Why is that?
I think you misunderstood what I was talking about. My suggestion was to subclass Request, so that you'd have HTMXRequest, and then use this as request_class on whatever layer you want HTMX support. You can then add the HTMX specific attributes and methods to that request, without having to mess around with state and middlewares and such.
In the end, you would have something like this:
@get(request_class=HTMXRequest)
async def hello(request: HTMXRequest) -> str:
    if htmx := request.htmx:
        print(htmx.current_url)
    return "world"

Is there anything particular to HTMX that makes it so it can't be handled like we handle json in Request?

if this is not being worked on, we can remove the assignee. Do you intend to add a PR in the near future @jenish2014 ?

Yes @Goldziher , I'll submit a PR today it self.

Added in #1086


Could not find a version that satisfies the requirement splatting

hello,
when i run pip install geometry-free-view-synthesis, proper version of splatting seems missing,

Any suggestion about this problem?

you can find the "splatting" module here:
https://github.com/hperrot/splatting

I have installed this but still getting following error.
from geofree.modules.warp.midas import Midas

File "/workspace/geometry-free-view-synthesis-master/geofree/modules/warp/midas.py", line 7, in
from splatting import splatting_function
ImportError: cannot import name 'splatting_function' from 'splatting' (unknown location)


Remove headers before setting them

can you explain why?

To prevent other middleware from setting it.  However, after digging into setHeader it will replace the previous value.  So it's harmless and I can revert it in the next version.

ok. I wasn't sure.


refactor(spanner): session_pool now uses Options

There's a little crud in the code because some classes (e.g.
ConnectionImpl) are hybrid using the new and old Options. This naturally
be cleaned up when we move everything to Options.

This change is

s/"session_pool.h"/"google/cloud/spanner/internal/session_pool.h"/

Fixed. No idea how that happened.


Missing screenshot

[Enter feedback here]
Under Step 3, list item 7, it states:
For example, the following screenshot shows the parameter names from the sample CSV file for the employee resignation HR scenario shown in Step 1.
However, the screenshot is not present in the document.

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

ID: d6b68cfa-058a-8536-fb6a-b54e8fffa626
Version Independent ID: dbcba365-2858-8cff-4f30-8a8a0068ac71
Content: Set up a connector to import HR data - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/import-hr-data.md
Service: o365-seccomp
GitHub Login: @markjjo
Microsoft Alias: markjjo

@drmarkrwarnes Thanks for the heads up. I'll look into this. Until then, the screenshot would look something like the below. The point is that you have to map your csv column names to the required properties.


configure colorizedBracketPairs

The new bracket pair colorization feature of vscode colorizes all brackets no matter the language. In the context of rust colorizing the '<' and  '>' brackets doesn't make sense most of the time, especially in match statements with math like the following screenshot.

Currently this configuration is only possible on a language server level which is why this PR is necessary.
See https://github.com/microsoft/vscode/issues/132175 and https://github.com/microsoft/vscode/issues/132476 for more information on the issue in vscode

bors r+


RuntimeError: Tensor for 'out' is on CPU, Tensor for argument #1 'self' is on CPU, but expected them to be on GPU (while checking arguments for addmm) [ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-n4ekh6o5\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback

Hi, there
I've been trying to run the code but failed, this is the error I get.
el start
load model finished
start opencv
opencv finished
Traceback (most recent call last):
File "C:/Users/1/PycharmProjects/Minimal-Hand-pytorch-main/demo.py", line 55, in
hand_verts, j3d_recon = mano(pose0, shape.float())
File "E:\Users\1\anaconda3\envs\yolo\lib\site-packages\torch\nn\modules\module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "C:\Users\1\PycharmProjects\Minimal-Hand-pytorch-main\manopth\manolayer.py", line 187, in forward
th_v_posed = th_v_shaped + torch.matmul(
RuntimeError: Tensor for 'out' is on CPU, Tensor for argument #1 'self' is on CPU, but expected them to be on GPU (while checking arguments for addmm)
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-n4ekh6o5\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Any ideas as to how to fix this? Thanks in advance

@Alvin-guodong  Try to run print(torch.cuda.is_available())

I also meet this error, torch.cuda.is_available() is True
File "/home/zy/code/Minimal-Hand-pytorch/demo_dl.py", line 66, in <module>     hand_verts, j3d_recon = mano(pose0, shape.float())   File "/home/zy/miniconda3/envs/zy/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl     result = self.forward(*input, **kwargs)   File "/home/zy/miniconda3/envs/zy/lib/python3.8/site-packages/manopth/manolayer.py", line 187, in forward     th_v_posed = th_v_shaped + torch.matmul( RuntimeError: Tensor for 'out' is on CPU, Tensor for argument #1 'self' is on CPU, but expected them to be on GPU (while checking arguments for addmm)
as the above error states describes, in manolayer.py th_v_posed = th_v_shaped + torch.matmul(self.th_posedirs, th_pose_map.transpose(0, 1)).permute(2, 0, 1). the  th_v_shaped and self.th_posedirs's device is cpu, but the th_pose_map's device is cuda.

Please refer to here


🔨 added pre-commit hook

Thanks! @paulussujono Apologies for the delayed merge, somehow I missed your PR until just now!


[WIP] Consider re-addition of Google Drive integration

Phabricator Task: https://phabricator.wikimedia.org/T206125

Hi @Samwalton9 , I have added direct save-csv-to-drive feature here. But still how can third party privacy policies be taken into consideration?

Good question, I'll find out. I think we might just need to include a notice/link to the relevant privacy policy.

Well, I see in many Wikimedia projects the link to https://foundation.wikimedia.org/wiki/Privacy_policy has been given. We can think of adding the link in this tool?

Yeah, I'm not sure if the tool needs its own Privacy Policy too, and if we need to link to the Google one also. Looking into it :)


Update example code fetching rapids-cmake to use CUVS instead of RAFT

Small update to CMake example code to use cuVS instead of RAFT.

/merge


Fixed typo

OPS Build status updates of commit 4d6a710:
:clock10: Preparing: average preparing time is 43 sec(s)

OPS Build status updates of commit 4d6a710:
:clock10: Incremental building: average incremental building time is 18 sec(s)

OPS Build status updates of commit 4d6a710:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/connect-your-device/SetupWifi.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Feature Request: autocomplete when somebody type

Hello
I have created a drop down with two options:  "Yes", "No". When I type "N" and press Enter, the excel choose "Yes".

add an option
autocomplete: true or change the type to: autocomplete
Best regards,


New component: simple modal

https://www.figma.com/file/Cd1jyGKKBtKFguUXdfdP9z/Advertising-Insights?node-id=743%3A17923
https://github.com/ghosh/Micromodal
https://material.angular.io/cdk/portal/overview
https://material.angular.io/cdk/overlay/overview

What currently exists: https://github.com/GetTerminus/engage-gui/pull/1130/commits/28af7b4682a25457afff331eac10c85f3b3e8b30

What currently exists: https://github.com/GetTerminus/engage-gui/pull/1130/commits/28af7b4682a25457afff331eac10c85f3b3e8b30

What currently exists: https://github.com/GetTerminus/engage-gui/pull/1130/commits/28af7b4682a25457afff331eac10c85f3b3e8b30

What currently exists: https://github.com/GetTerminus/engage-gui/pull/1130/commits/28af7b4682a25457afff331eac10c85f3b3e8b30


MVP of PHP boostraping (only for most common cases; and as extra feature)

The most idealistic scenario any Application Load Balancer would only proxy request. Since is fairly easy to proxy local files, we're already do this, to avoid too much custom NGinx scripting for some common cases of ALBs for simpler setups.
This issue is to considering add, as extra feature, also template out PHP-FPM files if one or more serves actually run on the same server that the AP-ALB is running. Since we're already doing this, and to avoid recommend someone use as extra repository just for this, could makes sense to also allow installation of the PHP-FPM and some modules on this.
Maybe this will also require later add same equivalent to run Java or Tomcat. But for now I'm just avoinding add more Ansible roles to another repository that is mostly to handle data warehousing IaCs and creating for each submodule full PHP installation, full Java/Tomcat etc, would need some refactoring later.

Ok, Maybe is a better idea to create a separate role, like ap-application-load-balancer-extras have only these type of extra features.

We will use dedicated extra Role for this at https://github.com/fititnt/ap-application-load-balancer-extras

I will open this issue.
The last commit from private repository https://github.com/fititnt/ap-application-load-balancer-extras was last year, but I guess some features (at least the ones that could be useful for testing) may be useful put as a role, but not on the main Role.
One issue with popular Ansible roles is that most of them did not support half of the AP-ALB platforms. So even if not have full configurations like the other modules, be able to at least install PHP, some tool to check databases, like PHPMyAdmin or the Adminer (that support more than just MariaDB/MySQL)


Raw response return in utils / make_requests

In:
    try:
        if return_type == "json":
            return r.json()
        else:
            return r

shouldn't it be  r.text at the end?

@hemidactylus the reason for this.... is for reasons that i'm not quite sure of. It was in the existing package and i just left it. For create and terminate database, we return:
    def create_database(self, database_definition=None):
        r = self._ops_request(
            method=http_methods.POST,
            path="/databases",
            json_data=database_definition,
            return_type="response"
        )

        if r.status_code == 201:
            return {"id": r.headers["Location"]}

        return None

    def terminate_database(self, database=""):
        r = self._ops_request(
            method=http_methods.POST,
            path=f"/databases/{database}/terminate",
            return_type="response"
        )

        if r.status_code == 202:
            return database

        return None

I'm wondering if actually we just always want to return the response object, so any downstream function can process it, the status code, etc as needed

@hemidactylus - i've cleaned this up. I think it's best that we return the raw response. The reason being is that in theory each api call can have different behavior depending on the status code, etc. Right now we don't carefully check that very often, but we can and should. So that utility function will return the raw response - we can extract the json data, the text, the status_code, and any other property of it. I think that'll keep things more extensible.


Programmatically connection initializer

I use JDBC feature for SQL types in Oracle 11g. So, I need to register mappings (typeName -> JavaClass) for every connection once. My use-case:
HikariConfig hikariConfig = new HikariConfig();
...
hikariConfig.setConnectionInitializer(connection -> {
    try {
        Map<String, Class<?>> typeMap = connection.getTypeMap();
        for (Class<?> classToRegister : findOracleTypeClasses()) {
            if (SQLData.class.isAssignableFrom(classToRegister)) {
                try {
                    SQLData sqlData = (SQLData) classToRegister.newInstance();
                    String sqlTypeName = sqlData.getSQLTypeName();
                    typeMap.put(sqlTypeName, classToRegister);
                    log.info("SQLType ({}) registered as {}", sqlTypeName, classToRegister);
                } catch (ReflectiveOperationException e) {
                    throw new ConnectionInitializationException("Persistent " + classToRegister + " doesn't have default constructor", e);
                } catch (SQLException e) {
                    throw new ConnectionInitializationException("Getting SQLTypeName of persistent " + classToRegister + " failed", e);
                }
            }
        }
    } catch (SQLException e) {
        log.error("Couldn't initialize connection", e);
        throw new ConnectionInitializationException(e);
    }
});

Coverage decreased (-0.1%) to 76.323% when pulling 32927d16726e909f0cc30fb1e43f14749c050246 on krupt:dev into a8a926be0964ff0fd5cb072805c21e6800f8deba on brettwooldridge:dev.

@krupt HikariCP used to have a programmable initialization point.  It was removed.
You can read the explanation and discussion here.
If you want to execute code for every new connection, once, then do so in a portable way that allows you to switch connection pools with only a configuration change rather than a code change.  See this gist for one possible pattern -- there are others as well.


Creator UI/UX Updates: NFT's into treasury tab: Due Friday March 10

Description (what needs to be done) / Expected Behavior
Creator UI/UX Updates: NFT's into treasury tab, and related changes
Acceptance Criteria
User experience is streamlined, one less navigation tab
Alana, please describe the other change you make along with this as well so we can break that out into a separate frontend task, thank you!
Supporting information (Figma link, notes, etc)
When finished, please add Link to the PR or completed Figma / design asset, as a comment to the ticket.

https://www.figma.com/file/gXLZPoh1BchigOB5y9YkQZ/Tezos-Homebase---v2-UI?node-id=395-1&t=KBrYGWDILd0YwPCs-0


Docker Hub tag latest isnt.

The version of lychee on Docker Hub under tag latest isn't the latest one. It's hash matches that of the image tagged 0.10.3
For reference, version 0.11.1 is available on master:
docker run --rm \
           --name lychee \
           --tty \
           lycheeverse/lychee:master -V

lychee 0.11.1

Could/should the Docker Hub tag be updated for latest to point to the latest release please?

Thanks, @rmoff.
This is fixed now as of https://github.com/lycheeverse/lychee/commit/6c24a22df6e13af2f21da65db1b6657a19166564.


chore: Set project license to Apache 2.0

Resolves #326
Impact: critical
Type: chore
Issue
We've needed to choose a license for this project.
Solution
@saralouhicks @ticean and I met to discuss this and while we're still working on a decision framework for choosing licenses for new projects, we'll use a permissive license, the Apache 2.0 license for this project.

@spencern Ah! Then it should be alright. Once we merge this PR, the license should appear on the repo homepage, and that's how we'll know it's correct.

Actually - one last thing - we should add a line about the Apache license down in the README here, https://github.com/reactioncommerce/reaction-next-starterkit#license

👍


Fix Paths

~ Fix path to GPIO_PADS_VERILOG in sky130's config.tcl
~ Fix paths to KLayout scripts in gf180mcu's config.tcl

Resolves #332

Pulled and merged.  If it's urgent, let me know and I'll force the mirror copy.  Otherwise I'll just let it run overnight.


Panic after adding a worker node to custom cluster

OS: Ubuntu 18.04
Steps :

Deploy a custom cluster in 2.0.10 with k8s 1.11.6-rancher1-1 and run pre upgrade checks
Upgrade from rancher v2.0.10 to rancher v2.2.9 and run post upgrade checks
Upgrade to rancher 2.2.11 and run post upgrade checks
Upgrade k8s to 1.14.10 and run post upgrade checks and also add a node
Upgrade to 2.4.2 and run post upgrade checks and add a node

The node addition failed and was stuck in "Registering" state :
2020/04/09 21:38:08 [ERROR] NodeController c-dkzqr/m-db790889d42b [rke-worker-upgrader] failed with : getNodePlan error for node [m-db790889d42b]: failed to find plan for abcdef
2020/04/09 21:38:08 [ERROR] NodeController c-dkzqr/m-db790889d42b [rke-worker-upgrader] failed with : getNodePlan error for node [m-db790889d42b]: failed to find plan for abcdef
2020/04/09 21:38:09 [INFO] Provisioning cluster [c-dkzqr]
2020/04/09 21:38:09 [INFO] Updating cluster [c-dkzqr]
2020/04/09 21:38:09 [ERROR] NodeController c-dkzqr/m-db790889d42b [rke-worker-upgrader] failed with : getNodePlan error for node [m-db790889d42b]: failed to find plan for abcdef

Kubelet does not start on this node.
ubuntu@ip-172-31-11-123:~$ sudo docker ps -a
CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS               NAMES
ef2cdc5bb2ea        rancher/hyperkube:v1.14.10-rancher1   "/opt/rke-tools/entr…"   2 hours ago         Up 2 hours                              kube-proxy
9879f038b419        rancher/rancher-agent:v2.4.2          "run.sh --server htt…"   2 hours ago         Up 2 hours                              zen_moore
d49ea28ae1aa        rancher/rke-tools:v0.1.50             "nginx-proxy CP_HOST…"   2 hours ago         Up 2 hours                              nginx-proxy
24edb76888db        rancher/rancher-agent:v2.4.2          "run.sh -- share-roo…"   2 hours ago         Up 2 hours                              share-mnt
11858de1de11        rancher/rke-tools:v0.1.50             "/bin/bash"              2 hours ago         Created                                 service-sidekick
9806205584b1        rancher/rancher-agent:v2.4.2          "run.sh --server htt…"   2 hours ago         Up 2 hours

Added another node and observed a panic as below:
2020/04/09 21:59:47 [INFO] Provisioning cluster [c-dkzqr]
2020/04/09 21:59:47 [INFO] Updating cluster [c-dkzqr]
2020/04/09 21:59:51 [INFO] Handling backend connection request [c-dkzqr:m-db790889d42b]
2020/04/09 21:59:51 [INFO] error in remotedialer server [400]: websocket: close 1006 (abnormal closure): unexpected EOF
2020/04/09 21:59:52 [INFO] kontainerdriver rancherkubernetesengine listening on address <IP_ADDRESS>:44329
2020/04/09 21:59:52 [INFO] kontainerdriver rancherkubernetesengine stopped
2020/04/09 21:59:52 [INFO] Updated cluster [c-dkzqr] with node version [1]
2020/04/09 21:59:52 [INFO] Provisioned cluster [c-dkzqr]
2020/04/09 21:59:53 [INFO] checking cluster [c-dkzqr] for worker nodes upgrade
2020/04/09 21:59:53 [INFO] binds changed for [kubelet] old: [/etc/kubernetes:/etc/kubernetes:z /etc/cni:/etc/cni:rw,z /opt/cni:/opt/cni:rw,z /var/lib/cni:/var/lib/cni:z /var/lib/calico:/var/lib/calico:z /etc/resolv.conf:/etc/resolv.conf /sys:/sys:rprivate ::rw,rslave,z /var/lib/kubelet:/var/lib/kubelet:shared,z /var/lib/rancher:/var/lib/rancher:shared,z /var/run:/var/run:rw,rprivate /run:/run:rprivate /etc/ceph:/etc/ceph /dev:/host/dev:rprivate /var/log/containers:/var/log/containers:z /var/log/pods:/var/log/pods:z /usr:/host/usr:ro /etc:/host/etc:ro] new [/etc/kubernetes:/etc/kubernetes:z /etc/cni:/etc/cni:rw,z /opt/cni:/opt/cni:rw,z /var/lib/cni:/var/lib/cni:z /var/lib/calico:/var/lib/calico:z /etc/resolv.conf:/etc/resolv.conf /sys:/sys:rprivate /var/lib/docker:/var/lib/docker:rw,rslave,z /var/lib/kubelet:/var/lib/kubelet:shared,z /var/lib/rancher:/var/lib/rancher:shared,z /var/run:/var/run:rw,rprivate /run:/run:rprivate /etc/ceph:/etc/ceph /dev:/host/dev:rprivate /var/log/containers:/var/log/containers:z /var/log/pods:/var/log/pods:z /usr:/host/usr:ro /etc:/host/etc:ro]
2020/04/09 21:59:53 [INFO] cluster [c-dkzqr] worker-upgrade: updated cluster for upgrading: [2]
2020/04/09 21:59:53 [ERROR] NodeController c-dkzqr/upgrade_ recovered from panic "runtime error: invalid memory address or nil pointer dereference". (err=<nil>) Call stack:
goroutine 12445 [running]:
github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/runtime.RecoverFromPanic(0xc0080ffd30)
	/go/src/github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:158 +0xb5
panic(0x3683900, 0x6c320a0)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/rancher/rancher/pkg/controllers/management/rkeworkerupgrader.(*upgradeHandler).upgradeCluster(0xc0084f0d10, 0xc00ab55180, 0xc00c7dfb50, 0x10, 0x1, 0x0, 0x0)
	/go/src/github.com/rancher/rancher/pkg/controllers/management/rkeworkerupgrader/upgrade.go:252 +0x613
github.com/rancher/rancher/pkg/controllers/management/rkeworkerupgrader.(*upgradeHandler).Sync(0xc0084f0d10, 0xc00c7dfb50, 0x10, 0x0, 0xc003098700, 0x7f8109a166d0, 0x0, 0x0)
	/go/src/github.com/rancher/rancher/pkg/controllers/management/rkeworkerupgrader/upgrade.go:83 +0xfc0
github.com/rancher/rancher/vendor/github.com/rancher/types/apis/management.cattle.io/v3.(*nodeController).AddHandler.func1(0xc00c7dfb50, 0x10, 0x0, 0x0, 0xc00b1facd8, 0x3, 0x3, 0x0)
	/go/src/github.com/rancher/rancher/vendor/github.com/rancher/types/apis/management.cattle.io/v3/zz_generated_node_controller.go:152 +0xe0
github.com/rancher/rancher/vendor/github.com/rancher/norman/controller.(*genericController).syncHandler(0xc004844000, 0x33c36c0, 0xc0083f8480, 0x0, 0x0)
	/go/src/github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:387 +0x371
github.com/rancher/rancher/vendor/github.com/rancher/norman/controller.(*genericController).processNextWorkItem(0xc004844000, 0xc008623500)
	/go/src/github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:296 +0xef
github.com/rancher/rancher/vendor/github.com/rancher/norman/controller.(*genericController).runWorker(0xc004844000)
	/go/src/github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:284 +0x2b
github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0xc00112ba20)
	/go/src/github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152 +0x5e
github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc00112ba20, 0x3b9aca00, 0x0, 0x1, 0xc004a6b680)
	/go/src/github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153 +0xf8
github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/wait.Until(0xc00112ba20, 0x3b9aca00, 0xc004a6b680)
	/go/src/github.com/rancher/rancher/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88 +0x4d
created by github.com/rancher/rancher/vendor/github.com/rancher/norman/controller.(*genericController).run
	/go/src/github.com/rancher/rancher/vendor/github.com/rancher/norman/controller/generic_controller.go:276 +0xe8

2020/04/09 21:59:54 [INFO] checking cluster [c-dkzqr] for worker nodes upgrade
2020/04/09 21:59:54 [ERROR] NodeController c-dkzqr/upgrade_ recovered from panic "runtime error: invalid memory address or nil pointer dereference". (err=<nil>) Call stack:
goroutine 12441 [running]:

The new node got added to the cluster and was in active state.

Can we also test upgrade from 2.2.11 to 2.3.6 first? So 2.2.11->2.3.6->2.4.2?
If this issue is repro'd for 2.2.11 to 2.3.6 that will help with debugging

Tested with upgrade from v 2.0.10 -> v2.2.9->v2.2.11->v2.3.6-v2.4.2

Deploy a cluster in v2.0.10 with k8s 1.11.6-rancher1-1 using certs from a recognized CA. Cluster config used: 1 control node, 3 etcd nodes and 3 worker nodes
Upgrade from rancher v2.0.10 to rancher v2.2.9
Upgrade to  rancher 2.2.11-rc2 and run post upgrade checks
Upgrade k8s to 1.14.10 and run post upgrade checks and also add a node
Upgrade to 2.3.6 and run post upgrade checks  and add a node
Upgrade from v2.3.6 to v2.4.2 . (The cluster went to updating state for a short time).
Run post upgrade checks and add a node
After upgrading to v2.4.2, logged into each of the nodes and verified that kubelet was running with no restarts. Verified through docker inspect that Restart count = 0

      "Name": "/kubelet",
        "RestartCount": 0,

Also, verified that all pods in the system project are active.

Tested with upgrade from v2.2.11 to v2.4.2

Created a DO cluster in Rancher v2.2.11 with K8s v1.14.10-rancher1-0. Run pre-upgrade tests
Upgrade Rancher to v2.4.2. Run post upgrade tests.
Add a new worker node to the cluster and it succeeds.
The following logs are observed :

2020/04/15 19:23:01 [INFO] Provisioning node soumyaworker5 done
2020/04/15 19:23:01 [INFO] Generating and uploading node config soumyaworker5
2020/04/15 19:23:01 [ERROR] NodeController c-jfbsd/m-rdr9t [rke-worker-upgrader] failed with : getNodePlan error for node [m-rdr9t]: failed to find plan for abcd
2020/04/15 19:23:01 [ERROR] NodeController c-jfbsd/m-rdr9t [rke-worker-upgrader] failed with : getNodePlan error for node [m-rdr9t]: failed to find plan for abcd
2020/04/15 19:23:02 [INFO] Handling backend connection request [c-jfbsd:m-rdr9t]
2020/04/15 19:23:02 [INFO] Provisioning cluster [c-jfbsd]
2020/04/15 19:23:02 [INFO] Updating cluster [c-jfbsd]
2020/04/15 19:23:06 [ERROR] NodeController c-jfbsd/m-rdr9t [rke-worker-upgrader] failed with : getNodePlan error for node [m-rdr9t]: failed to find plan for abcd
2020/04/15 19:23:07 [INFO] kontainerdriver rancherkubernetesengine listening on address <IP_ADDRESS>:43447
2020/04/15 19:23:07 [INFO] kontainerdriver rancherkubernetesengine stopped
2020/04/15 19:23:07 [INFO] Updated cluster [c-jfbsd] with node version [1]
2020/04/15 19:23:07 [INFO] Provisioned cluster [c-jfbsd]
2020/04/15 19:23:07 [INFO] checking cluster [c-jfbsd] for worker nodes upgrade

There was no panic observed in this iteration of testing.

Tested with upgrade from v 2.0.10 -> v2.2.9->v2.2.11->v2.4-head
Created Rancher server v2.0.10 using Rancher generated certs
Steps:

Deploy a cluster in v2.0.10 with k8s 1.11.6-rancher1-1
Cluster config used: 1 control node, 3 etcd nodes and 3 worker nodes
Upgrade from rancher v2.0.10 to rancher v2.2.9
Upgrade to rancher 2.2.11 and run post upgrade checks
Upgrade k8s to 1.14.10 and run post upgrade checks and also add a node
Upgrade from v2.2.11 to v2.4-head. Run post upgrade checks and add new worker nodes

Node addition was successful There was no panic observed in this upgrade path.


add 'nanoc clean' command

Akin to make clean, it would be nice if nanoc knew how to clean up after itself, hence the proposed nanoc clean. While it's true that one can employ ad-hoc cleanup methods (rm -fr crash.log output tmp, git clean -dXf, etc.) an officially supported method would be easier to document and more amenable to scripting.
Aside from the obvious build products (output and tmp), one would expect other nanoc-specific detritus (crash.log, output.diff, and any others) to be removed as well.

Migrated to nanoc/features/issues/9.


[source-build-release] Automate verification of expected release tags

In checklist's step 3.e, as a trigger for source-build release process ,we need to verify that 6.0 and 7.0 tags exist in public repos.
There might be a way to automate this so it is integrated in the release pipeline, and aids in usability.

This is already being done by the Validate release tag step in the Release stage. Example of this in the February release run for 6.0: run
There is still a small edge-case where if the release type is manually set to draft the tag verification will be skipped for servicing pre-VMR runs. Will fix it

PR - https://dev.azure.com/dnceng/internal/_git/dotnet-release/pullrequest/37553

PR merged, closing


Why Pullown-Resistors on PWR&RST lines?

Hi,
quick question: Why did you use pulldown-resistors on the signal lines? To my understanding, pull-up/down-Resistoirs make sure your device has a steady state ... which in this case should rather keep the RST & PWR-line at 3.3V to leave the PC functioning?
Regarding the LED line, I think this makes sense to battle stray capacities.

Hello.
Thank you for your question and sorry for a very late answer. I am not an electronics engineer, so this schematic probably has a lot of strange things :)
You are absolutely right, RST and PWR lines must be kept with +3.3V to keep PC working. Say we want to "press" the PWR or RST button, so we should pull down the signal lines.
When ESP8266 pin is set to Output mode with LOW (see this code), the microcontroller bypass current does NOT provide sufficient voltage drop to make motherboard think that button is pressed. But with 20k resistors it does :)
I would say that it was a dirty hack to get working board as easy as I can. I think it will be better to do the same using transistors, but the board already works for 2 years with no problems, so I will not touch it :)


2.3.1 Release Proposal

Mainly to get a CI build status for this set of cherry-picked commits between 2.3.0 and master.

needs https://github.com/apache/couchdb-documentation/pull/392

and https://github.com/apache/couchdb-fauxton/issues/1180

Hi @janl ,
I think this one new feature is suitable for 2.3.1;
c5d9cfe570bbb001b0c8af1bc226fc9a24fc8afa (#1766)
(also pull 33e36254d787b38af7144b37fbb83783723a794a)
Would you consider also cherry-picking these minor fixes? These are all small in scope but moderate in covering some corner cases, especially upgrade-related, so I think they'd be good fits for a patch release.
b131fd0558089ffbe18f40e988e33928d1cf8355 (#1786)
25e9e7759223ecccbcb87ac34d4a9d8c56db31ab (#1795, a good speedup)
fcb272ef45063d651b486a5e0098be8b717c8b78 (#1770, closes #1384)
c68863aec58642fc610ede62906609ba6c816a92 (#1808)
587d674582762610fe7cf0fcdfcb563d9b0abcab (#1845, fixes #1841)
c6b095b2ad716b917d260c8a0a56f3d4676ced7f (#1860, fixes mixed-cluster situation)
5269d7967667a5b8b9dfd923bf53d4c1b3ffcfb5 (#1862, subtle bug we've had for years! Relates to #1860)
17f05b758f29a0ec693cf8b72c3bbc3bee300555 (#1874, reported by user in Slack/IRC)
547169447067e9111dbd31f2ae86d49afe980fda (#1880, esp. because this gets replaced in 2.4.0!)
https://github.com/apache/couchdb/pull/1794 which is:

https://github.com/apache/couchdb/commit/709477d58ae7143eb44d1e14653994dd0aa6f576
https://github.com/apache/couchdb/commit/8077afbbf1ee78c22c76bb9772c710d8ed0df8a2

https://github.com/apache/couchdb/pull/1824 which is:

https://github.com/apache/couchdb/commit/88dd1255595b513ff778e5efa4b2399aa3ccb570
https://github.com/apache/couchdb/commit/632f303a47bd89a97c831fd0532cb7541b80355d

I'd like to see these two land, too:
bfb98104ffd8035b23cabf3b597d68bd91f51b4f (#1868, closes #1053)
e702598c4f2c528a9b867a9989d814cb9f6d8311 (#1905, closes #1899)
But it will probably require you also pull this large (but entirely cosmetic) one as well:
33d4f6d02715a204ef2dd7ddc4795aed5c1b72ce

Heya @wohali most of these are in. Can you double check and dedupe? :)

@janl updated to dedupe, sorry about that, was going off the wrong info

@wohali thanks for the dedupe, sorry it wasn’t clearer what was included already.

c6b095b (#1860, fixes mixed-cluster situation)

I may have read things wrong when skimming, but I assumed this was only relevant past the partitioned databases commit. Happy to reconsider if this is generally useful cc @davisp.

17f05b7 (#1874, reported by user in Slack/IRC)

I had ruled dep ups for other than critical things to be out of scope for a .1, but on reread I do agree we should do this one.

#1794 which is: …

felt a bit risqué for a .1, but happy to include.

#1824 which is: …

Also thought this was moving around things too much for a .1, but am happy to be convinced otherwise (cc @nickva)

Any I didn’t comment on I agree on adding. Will do so over the weekend while Fauxton gets into shape.

@jan thanks. The other we should think about is #1803, but @jaydoane may need help.

@janl

#1824 which is: …
Also thought this was moving around things too much for a .1, but am happy to be convinced otherwise (cc @nickva)

Most changes in the PR was a code move to copy streams logic to its own fabric module in a separate commit:
https://github.com/apache/couchdb/pull/1824/commits/19048fdc9ddae275b02cfb9b1de1c35bcfe94cb0
The main logic was here:
https://github.com/apache/couchdb/pull/1824/commits/41757cd0f8ec48991c0c2fddcb6085b77e636e09
I think it would mostly affect larger clusters with many requests timing out and being cleaned up improperly so they'd leak their rexi workers. The other ones affect might be smaller embedded system with restrictive resource (low max_dbs_open value). But maybe not as critical for average CouchDB deployments and it's a bug that's been there for years, so  I can see keeping it back to reduce the .1 commit set.
Oh and thank you for helping with 2.3.1!

#1766 and #1824 end up being no trivial merges, so I’ll leave those out for now.
I’ve added everything else.

#1803 doesn’t look ready yet. cc @jaydoane @iilyak
I won’t have time to review it, but if it lands in master in the next ~48 hours, I can hold 2.3.1 until then.

@janl https://github.com/apache/couchdb/pull/1803 has landed in master

@jaydoane merged, thanks!


Running github runner via sudo - missing environment

As noted in https://github.com/cloudbase/garm/issues/90#issuecomment-1575685747 we try to use an image that is as close as possible to the github action one. We noticed that some workflows fail on the selfhosted runners (but succeed on GitHub), since the executables could not be found. After investigating I noticed that the runner user only has the following in it's PATH environment:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

in contrast when manually logging in as runner I have this:
/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

which is added to /etc/environment.
This happens because the the configuration of the github runner is done with sudo and sudo by default replaced the PATH environment as specified in /etc/sudoers:
# cat /etc/sudoers | grep secure
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

(the config.sh file calls env.sh which then saves the PATH inside of the file .path)
So question now would be if this is intended or if this behavior should be changed? I see two possibilities here:

We change the execution of the config.sh file to not use sudo and use su -c '...' runner instead (would be a change on garm)
We keep the current behavior (if it's intended) and change /etc/sudoers on our image.

(of course there are more ways as well, lika adjusting the workflows, changing the template, etc., but these were the most obvious ones to me)
Some example outputs:
# su --command 'echo $PATH'
/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

sudo -u runner -E cat /proc/self/environ
... PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin...

# sudo -u runner -E bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Heya @SystemKeeper !
The #115 PR should fix this. Essentially we switched to running the install script using the runner user via su. Have a look and let me know if it works for you.
Also, note that there have been some changes in recent commits that reverts some of the Wait() calls we added to fix the leftover runners you were seeing, but I've added some locks that should prevent that scenarios from happening. Take the #115 branch for a spin and let me know if you experience the previous issues with it.


启动报 Dynamic require of "mars3d-cesium" is not supported

Uncaught Error: Dynamic require of "mars3d-cesium" is not supported
    at chunk-Q7IO5PSJ.js?v=bdbd3224:30:9
    at mars3d.js:10:101
    at node_modules/mars3d/dist/mars3d.js (mars3d.js:13:1)
    at __require2 (chunk-Q7IO5PSJ.js?v=bdbd3224:36:50)
    at dep:mars3d:1:16

版本是：3.5.0
将vite升到最新版本也不行

已修复


The BinderHub Federation vs The mybinder.org Federation

https://mybinder.readthedocs.io/en/latest/about/federation.html uses The BinderHub Federation and https://mybinder-sre.readthedocs.io/en/latest/operation_guide/federation.html uses The mybinder.org Federation.

I think mybinder.org Federation makes more sense, since BinderHub is the application used by others outside the federation.


Correct typo level -> layer

Fixed docs - tags added in #245 were 'location' and 'layer', not 'level'. Refs #346.

Good catch. I've also updated the release notes for v0.4: https://github.com/mapzen/vector-datasource/releases/tag/v0.4.0.


Dan refactor

@david-a-wheeler
Apologies that this refactor changed most lines in project.rb. Major changes:

Refactored from class methods to instance methods.
Refactored passing? to use returns instead of a case/when for succinctness. Also changed to only require the criterion as a parameter.
Removed use of sets since arrays are guaranteed unique and then frozen.
Added monkey patches for Symbol#status and Symbol#justification. This DRYs up a lot of other methods.
Alphabetized methods. Class methods come first because they must be defined before used, but should later be moved to a non-ActiveRecord Criteria model, as you indicate. Public and private methods are both alphabetized

Please enter comments below with questions or concerns.

Also, removed badge_level_id? as it did not seem necessary (and it didn't just return a boolean, as the ? would indicate).

Also improved regexp checks.

Overall I love this refactoring.  However:

The switch from sets to arrays has a performance downside.  Every time we ask "is item X in Y" with an array it averages n/2 operations, aka O(n).  If we use sets, it's O(1).  We ask "is item X in Y" a lot.  I could just merge, and put things back to sets if needed (it's really localized).  Is there a reason we should avoid sets here?
I'm not a fan of monkey-patching - especially low-level built-ins like Symbol.  Yes, I know Ruby allows it, and Rails actively uses it, but I fear that leads to subtle problems later.  E.G., some other component's monkey-patching could easily lead to nasty problems if they overlap.  Is there an easy and obvious alternative? Or is this really so conventional that my concerns are overblown?

Frankly, there's so much good here that I'll probably just merge in, and fix up things later if appropriate, but I'd really like to hear from you about those two points.

Could you please show me one or more of the examples of where we're asking "is item X in Y"? My review is that we are far more likely to be iterating through all items, or that we're accessing them directly, in which case I presume that Ruby implements a has table. In particular, please see the non-ActiveRecord Criteria model I implemented in the other pull request.

I think monkey patches are far less risky in a Rails app then in a gem, but I'm using your feedback to learn more about refinements, which are supposed to limit the patching. However, my initial implementation isn't working yet. http://interblah.net/why-is-nobody-using-refinements


Dance pad buttons detected as Joypad D-pad prevent left+right and up+down

Tested versions
Reproducible in:
v4.3.stable.official.77dcf97d8
v4.2.2.stable.official.15073afe3
System information
MXLinux 23.3; 6.1.0-11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) x86_64 GNU/Linux
Issue description
I'm using a Mayflash GameCube controller to a Wii dance pad.

I mapped my inputs as seen here.  Using the keyboard input, I have no problem generating left + right at same time and up + down at same time.

However, when using the dance pad:
	var pressed = ""
	if Input.is_action_pressed("Up"): pressed += "u"
	if Input.is_action_pressed("Down"): pressed += "d"
	if Input.is_action_pressed("Left"): pressed += "l"
	if Input.is_action_pressed("Right"): pressed += "r"
	print ("Pressed: " + pressed)

Shows that up + down and left + right will not work.
up + down ==> down.  left + right ==> right.
I think this is because GODOT think's it's a dpad and doesn't allow these combinations.  --> SDL and OS level otherwise show things working.
But jstest-gtk [is this using SDL?] and sdl-jstest show all buttons working together:
https://github.com/Grumbel/sdl-jstest

Steps to reproduce
Use any(?) dance pad.  I imagine any d-pad controller would not be physically able to reproduce this.  (I did try re-mapping buttons as a work around, but failed --> perhaps you can re-map buttons the other way to succeed in reproducing if you don't have a dance pad?).
Otherwise I used: https://www.amazon.com/gp/product/B00RSXRLUE
Konami Wii dance pad.  RU054

As a side note, I could get all "directions" pressed using my keyboard arrow keys either, only two.   Using wasd allowed me to get all depressed.
Of course dance pad should allow all buttons to be depressed at same time.
Minimal reproduction project (MRP)
This simple application will allow you to see the uplf (up, down, left, right) print in console.
dance_pad_test.zip
There's also:
Joypads (Gamepads) Demo: https://godotengine.org/asset-library/asset/2785

So I expect this is the code to blame...
So for those in the know, what should the solution be for dance pads which register the arrows in the DPAD?
Note, I imagine given the order here, it explains why when all buttons are down we get, down and right.

Is it really necessary to clear the opposite direction?

Note those buttons map from dp* highlighted below, button 11 to 14:

In godot/core/input/gamecontrollerdb.txt:
03000000790000004418000000010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Mac OS X,
Since this is a general purpose device, a gamecube controller could be connected which arguably would then act as a DPAD?

So I'm curious what the experts have to say as far as how to deal with this in Godot engine or otherwise.
As for my workaround attempts:
So trying to remap.... failed.  Not sure why... don't know if anyone may provide some insight.
Made limited progress with gamepadtool  --> The only tool which seemed to show the remapping having an effect.
https://generalarcade.com/gamepadtool/
This will also help build remapping string.  I used this tool and only this tool acknowledged the remap.
Neither godot or sdl-jstest showed the button coming in at not 11, 12, 13, 14.  I tried remapping to buttons A/B/X/Y.
Although after exporting a remap string generated by gamepadtool, I did get the remap string to be seen as associated with the joystick, but when testing button 0/1/2/3 never fired.  Always 11/12/13/14.
$ ./sdl2-jstest  -l
error: failed to read gamecontrollerdb.txt: Invalid RWops
Found 4 joystick(s)

Joystick Name:     'limited MAYFLASH GameCube Controller Adapter'
Joystick GUID:     0300a011790000004418000010010000
Joystick Number:    0
Number of Axes:     6
Number of Buttons: 16
Number of Hats:     1
Number of Balls:    0
GameControllerConfig:
  Name:    'Mayflash GameCube Controller'
  Mapping: '0300a011790000004418000010010000,Mayflash GameCube Controller,a:h0.4,b:h0.2,x:h0.8,y:h0.1,back:b7,start:b9,leftshoulder:b2,rightshoulder:b1,platform:Linux,crc:11a0,'

I ultimately tried several remapping strings, but didn't seem to work.  Even using Input's void add_joy_mapping(mapping: String, update_existing: bool = false)
I expected my code to no longer spit out u/d/l/r for existing mapping, but it still did.
The other strange thing is that sometimes it seems my GUID was identified as:
0300a011790000004418000010010000     --> sdl-jstest and gamepadtool id as this.
And other times (which I originally reported):
03000000790000004418000000010000
Examples of other settings I tried...
export SDL_GAMECONTROLLERCONFIG="0300a011790000004418000010010000,Mayflash GameCube Controller,a:h0.4,b:h0.2,x:h0.8,y:h0.1,back:b12,guide:h0.0,start:b9,platform:Linux,"
export SDL_GAMECONTROLLERCONFIG="03000000790000004418000000010000,Mayflash GameCube Controller,a:h0.4,b:h0.2,x:h0.8,y:h0.1,back:b12,guide:h0.0,start:b9,platform:Linux,"
$ export SDL_GAMECONTROLLERCONFIG="03000000790000004418000000010000,Mayflash GameCube Controller,a:b14,b:b15,dpdown:b1,dpleft:b2,dpright:b0,dpup:b3,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b13,y:b12,platform:Linux,"
And with the add_joy_mapping:
"""
var mapping_string = '0300a011790000004418000010010000,Mayflash GameCube Controller,a:b15,b:b14,dpdown:b1,dpleft:b2,dpright:b0,dpup:b3,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b13,y:b12,platform:Linux,'
Input.add_joy_mapping(mapping_string, true)

mapping_string = '03000000790000004418000010010000,Mayflash GameCube Controller,a:b15,b:b14,dpdown:b1,dpleft:b2,dpright:b0,dpup:b3,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b13,y:b12,platform:Linux,'
Input.add_joy_mapping(mapping_string, true)
"""

"""
var mapping_string = '0300a011790000004418000010010000,Mayflash GameCube Controller DancePad,a:h0.4,b:h0.2,x:h0.8,y:h0.1,back:b7,start:b9,leftshoulder:b2,rightshoulder:b1,platform:Linux,'
Input.add_joy_mapping(mapping_string, true)

mapping_string = '0300a000790000004418000010010000,Mayflash GameCube Controller DancePad,a:h0.4,b:h0.2,x:h0.8,y:h0.1,back:b7,start:b9,leftshoulder:b2,rightshoulder:b1,platform:Linux,'
Input.add_joy_mapping(mapping_string, true)
"""

I guess my next attempt may be to try and remap a traditional game controller to see if I can get that to work.

I'm wrong about the input.cpp snippet above which is for function void Input::joy_axis(int p_device, JoyAxis p_axis, float p_value).  This function never gets called.  Rather void Input::joy_button(int p_device, JoyButton p_button, bool p_pressed) is used.
The Joypad.last_buttons is reflecting the proper state... so I'm baffled why my gdscript doesn't report all pressed.
I guess next step is to see what happens between joy.last_buttons and Input.is_action_pressed.
	if Input.is_action_pressed("Up"): pressed += "u"
	if Input.is_action_pressed("Down"): pressed += "d"
	if Input.is_action_pressed("Left"): pressed += "l"
	if Input.is_action_pressed("Right"): pressed += "r"

I updated this function for debugging info, and it shows all buttons pressed.
void Input::joy_button(int p_device, JoyButton p_button, bool p_pressed) {
	_THREAD_SAFE_METHOD_;
	Joypad &joy = joy_names[p_device];
	ERR_FAIL_INDEX((int)p_button, (int)JoyButton::MAX);

    printf("Before JoyPad Buttons On: ");
    for (int i=0 ; i<(int)JoyButton::MAX ; i++) {
        if (joy.last_buttons[(size_t)i]) { printf("(%d: %d) ", i, joy.last_buttons[(size_t)i]); }
    }
    printf("\n");

	if (joy.last_buttons[(size_t)p_button] == p_pressed) {
		return;
	}
	joy.last_buttons[(size_t)p_button] = p_pressed;

    printf("After JoyPad Buttons On: ");
    for (int i=0 ; i<(int)JoyButton::MAX ; i++) {
        if (joy.last_buttons[(size_t)i]) { printf("(%d: %d) ", i, joy.last_buttons[(size_t)i]); }
    }
    printf("\n");

	if (joy.mapping == -1) {
		_button_event(p_device, p_button, p_pressed);
		return;
	}

	JoyEvent map = _get_mapped_button_event(map_db[joy.mapping], p_button);

    print_line("Type = " + itos(map.type)  + " TYPE_BUTTON == " + itos(TYPE_BUTTON) + ", TYPE_AXIS = " + itos(TYPE_AXIS));

	if (map.type == TYPE_BUTTON) {
		_button_event(p_device, (JoyButton)map.index, p_pressed);
		return;
	}

	if (map.type == TYPE_AXIS) {
		_axis_event(p_device, (JoyAxis)map.index, p_pressed ? map.value : 0.0);
	}
	// no event?
}

Which shows expected results as I press all dance pad buttons... all buttons 12 to 15 get turned on.
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On:
After JoyPad Buttons On: (13: 1)
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (13: 1)
After JoyPad Buttons On: (13: 1) (15: 1)
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (13: 1)
After JoyPad Buttons On: (13: 1) (15: 1)
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (13: 1) (15: 1)
After JoyPad Buttons On: (12: 1) (13: 1) (15: 1)
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (13: 1) (15: 1)
After JoyPad Buttons On: (12: 1) (13: 1) (15: 1)
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (12: 1) (13: 1) (15: 1)
After JoyPad Buttons On: (12: 1) (13: 1) (14: 1) (15: 1)
Type = 0 TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (12: 1) (13: 1) (15: 1)
After JoyPad Buttons On: (12: 1) (13: 1) (14: 1) (15: 1)

This problem is not in our code, but in the database, this should probably be reported upstream and we can update with their fixes
Please report this in their repo

My bad didn't catch that these were inputs that were mapped incorrectly for all devices

While I failed to remap... I don't think the problem is upstream or in SDL input library as my latest update shows the input side of the engine getting all 4 buttons pressed at same time.  And those buttons are the D-PAD input buttons 12 to 15.
For some reason the there is some logic that I've not found yet moving from raw inputs side (where things seem ok as per above) and from me consuming the button state with is_input_pressed:
My examination from "input side" toward engine:
void Input::_button_event(int p_device, JoyButton p_index, bool p_pressed) {
	parse_input_event(ievent);

void Input::parse_input_event(const Ref<InputEvent> &p_event) {
    frame_parsed_events = get_process_frames
    frame_parsed_events.insert(p_event);

In Engine.h:
uint64_t get_process_frames() const { return _process_frames; }

From "is_action_pressed" consume side in Godot toward input.
//input.cpp:
bool Input::is_action_pressed(const StringName &p_action, bool p_exact) const {
	ERR_FAIL_COND_V_MSG(!InputMap::get_singleton()->has_action(p_action), false, InputMap::get_singleton()->suggest_actions(p_action));

	if (disable_input) {
		return false;
	}

	HashMap<StringName, ActionState>::ConstIterator E = action_states.find(p_action);
	if (!E) {
		return false;
	}

	return E->value.cache.pressed && (p_exact ? E->value.exact : true);
}

// In class Input : public Object {
	struct ActionState {
		uint64_t pressed_physics_frame = UINT64_MAX;
		uint64_t pressed_process_frame = UINT64_MAX;
		uint64_t released_physics_frame = UINT64_MAX;
		uint64_t released_process_frame = UINT64_MAX;
		bool exact = true;

		struct DeviceState {
			bool pressed[MAX_EVENT] = { false };
			float strength[MAX_EVENT] = { 0.0 };
			float raw_strength[MAX_EVENT] = { 0.0 };
		};
		bool api_pressed = false;
		float api_strength = 0.0;
		HashMap<int, DeviceState> device_states;

		// Cache.
		struct ActionStateCache {
			bool pressed = false;
			float strength = false;
			float raw_strength = false;
		} cache;
	};

	HashMap<StringName, ActionState> action_states;

So somewhere there is some logic preventing this from being set at same time.  I'll look more, any hints appreciated.

My bad didn't catch that these were inputs that were mapped incorrectly for all devices

I'm not convinced the mapping is incorrect.  Is it wrong for dance pad buttons to be mapped to D-PAD directions?  If not to D-PAD directions - what would they be mapped to?  A/B/X/Y, triggers, etc?  Those don't seem reasonable.  I was just trying to do that as a workaround.

So it seems the first function of interest is:
void Input::_parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_emulated) {
	// This function does the final delivery of the input event to user land.
	// Regardless where the event came from originally, this has to happen on the main thread.

// clipped, further on...

	Ref<InputEventJoypadButton> jb = p_event;

	if (jb.is_valid()) {
		JoyButton c = _combine_device(jb->get_button_index(), jb->get_device());

		if (jb->is_pressed()) {
			joy_buttons_pressed.insert(c);
		} else {
			joy_buttons_pressed.erase(c);
		}
	}

And that if I recall correctly, joy_buttons_pressed is correct (both buttons recorded as pressed) based on prior debug.
However at the end of this function it goes through the ActionMap which is the created event's that is_button_pressed checks...
I have logs from the print below that shows that, after LEFT BUTTON pressed, the RIGHT BUTTON press causes LEFT BUTTON to be released.  Then release of RIGHT button re-asserts LEFT button.
It is strange to me I see the event twice.  Could this be implementing the undesired behavior?
I'm still missing where/how joy_buttons_pressed gets transferred to the actionstates.
	for (const KeyValue<StringName, InputMap::Action> &E : InputMap::get_singleton()->get_action_map()) {
		const int event_index = InputMap::get_singleton()->event_get_index(p_event, E.key);
		if (event_index == -1) {
			continue;
		}
		ERR_FAIL_COND_MSG(event_index >= (int)MAX_EVENT, vformat("Input singleton does not support more than %d events assigned to an action.", MAX_EVENT));

		int device_id = p_event->get_device();
		bool is_pressed = p_event->is_action_pressed(E.key, true);       //** is_action_pressed is updating is_pressed boolean which will update actionstate below?!   Shouldn't the RBSet<JoyButton> joy_buttons_pressed be referenced? **
		ActionState &action_state = action_states[E.key];

print_line("** Action Map key = " + E.key + "; pressed = " + itos(is_pressed));

		// Update the action's per-device state.
		ActionState::DeviceState &device_state = action_state.device_states[device_id];
		device_state.pressed[event_index] = is_pressed;                  //** here is the update referenced above. **
		device_state.strength[event_index] = p_event->get_action_strength(E.key);
		device_state.raw_strength[event_index] = p_event->get_action_raw_strength(E.key);

		// Update the action's global state and cache.
		if (!is_pressed) {
			action_state.api_pressed = false; // Always release the event from action_press() method.
			action_state.api_strength = 0.0;
		}
		action_state.exact = InputMap::get_singleton()->event_is_action(p_event, E.key, true);

		bool was_pressed = action_state.cache.pressed;
		_update_action_cache(E.key, action_state);
		// As input may come in part way through a physics tick, the earliest we can react to it is the next physics tick.
		if (action_state.cache.pressed && !was_pressed) {
			action_state.pressed_physics_frame = Engine::get_singleton()->get_physics_frames() + 1;
			action_state.pressed_process_frame = Engine::get_singleton()->get_process_frames();
		}
		if (!action_state.cache.pressed && was_pressed) {
			action_state.released_physics_frame = Engine::get_singleton()->get_physics_frames() + 1;
			action_state.released_process_frame = Engine::get_singleton()->get_process_frames();
		}
	}

Log:
PRESS_LEFT:
Before JoyPad Buttons On: (13: 1)
After JoyPad Buttons On:
Type = 0; map.index = 14; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1
** Action Map key = ui_right; pressed = 0
** Action Map key = Right; pressed = 0
** Action Map key = ui_right; pressed = 0
** Action Map key = Right; pressed = 0
Before JoyPad Buttons On: (13: 1)
After JoyPad Buttons On:
Type = 0; map.index = 14; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1

PRESS RIGHT:
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On: (13: 1) (15: 1)    --> NOTE: this is correct.
Type = 0; map.index = 14; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1
** Action Map key = ui_right; pressed = 1
** Action Map key = Right; pressed = 1
** Action Map key = ui_left; pressed = 0    ***** WHY???
** Action Map key = Left; pressed = 0    ***** WHY???
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On: (13: 1) (15: 1)
Type = 0; map.index = 14; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1

RELEASE RIGHT:
Before JoyPad Buttons On: (13: 1) (15: 1)
After JoyPad Buttons On: (15: 1)
Type = 0; map.index = 14; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1
Before JoyPad Buttons On: (13: 1) (15: 1)
After JoyPad Buttons On: (15: 1)
Type = 0; map.index = 14; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1
** Action Map key = ui_right; pressed = 0
** Action Map key = Right; pressed = 0
** Action Map key = ui_left; pressed = 1
** Action Map key = Left; pressed = 1

RELEASE LEFT:
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On:
Type = 0; map.index = 13; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1
** Action Map key = ui_left; pressed = 0
** Action Map key = Left; pressed = 0
** Action Map key = ui_left; pressed = 0
** Action Map key = Left; pressed = 0
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On:
Type = 0; map.index = 13; joy.mapping = 264; TYPE_BUTTON == 0, TYPE_AXIS = 1

I'm open to this still being related to mapping...
Strange.. I couldn't remove mapping 264.  It claimed to when calling from gdscript remove_joy_mapping -- I put print hooks into cpp code to see this, but events still seemed keyed to 264.
I deleted the UID line from the gamecontrollerdb.txt.... UID =<PHONE_NUMBER>0000004418000010010000
Press LEFT:
Before JoyPad Buttons On:
After JoyPad Buttons On: (15: 1)
Before JoyPad Buttons On:
After JoyPad Buttons On: (15: 1)
** Action Map key = Left; pressed = 1
Press RIGHT:
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On: (13: 1) (15: 1)
** Action Map key = Left; pressed = 1
** Action Map key = Left; pressed = 0
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On: (13: 1) (15: 1)
Release RIGHT:
Before JoyPad Buttons On: (13: 1) (15: 1)
After JoyPad Buttons On: (15: 1)
** Action Map key = Left; pressed = 0
** Action Map key = Left; pressed = 1
Before JoyPad Buttons On: (13: 1) (15: 1)
After JoyPad Buttons On: (15: 1)
Release LEFT:
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On:
** Action Map key = Left; pressed = 0
Before JoyPad Buttons On: (15: 1)
After JoyPad Buttons On:
Press RIGHT:
Before JoyPad Buttons On:
After JoyPad Buttons On: (13: 1)
** Action Map key = Left; pressed = 1
** Action Map key = Right; pressed = 1
Before JoyPad Buttons On:
After JoyPad Buttons On: (13: 1)
Release RIGHT:
Before JoyPad Buttons On: (13: 1)
After JoyPad Buttons On:
Before JoyPad Buttons On: (13: 1)
After JoyPad Buttons On:
** Action Map key = Left; pressed = 0
** Action Map key = Right; pressed = 0

For what it's worth, in PICO-8 this pad works fine/as expected.  PICO-8 also uses SDL for input.  Not sure what x axis 0 not validated on joystick 0 means.

Commented out joy_buttons_pressed.insert/erase.  No impact to behavior.
	Ref<InputEventJoypadButton> jb = p_event;

	if (jb.is_valid()) {
		JoyButton c = _combine_device(jb->get_button_index(), jb->get_device());

		if (jb->is_pressed()) {
			//joy_buttons_pressed.insert(c);
		} else {
			//joy_buttons_pressed.erase(c);
		}
	}

Not clear to me how joypad button events are getting into action map/actionstates.  As seen in....
for (const KeyValue<StringName, InputMap::Action> &E : InputMap::get_singleton()->get_action_map()) {
of void Input::_parse_input_event_impl(const Ref &p_event, bool p_is_emulated) {

Ok, so I think I found the problem... or at least how to "solve" my problem with a code hack.
It did relate to the double event, the double event was caused by the joy_hat.  This was forcing the unset.
Now all buttons up/down/left/right work at same time.
void Input::joy_hat(int p_device, BitField<HatMask> p_val) {

	for (int hat_direction = 0, hat_mask = 1; hat_direction < (int)HatDir::MAX; hat_direction++, hat_mask <<= 1) {
		if (((int)p_val & hat_mask) != (cur_val & hat_mask)) {
			if (map[hat_direction].type == TYPE_BUTTON) {
                print_line("???? Button event when Hat == -1");

				//_button_event(p_device, (JoyButton)map[hat_direction].index, (int)p_val & hat_mask);
			}
			if (map[hat_direction].type == TYPE_AXIS) {
				_axis_event(p_device, (JoyAxis)map[hat_direction].index, ((int)p_val & hat_mask) ? map[hat_direction].value : 0.0);
			}
		}
	}

I suppose this is somehow related then to the mapping?
But given below, what should be removed so the hat doesn't trigger?
0300a011790000004418000010010000,Mayflash GameCube Controller DancePad,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
03000000790000004418000010010000,Mayflash GameCube Controller DancePad,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
I changed gamecontrollerdb.txt as follows, but same issue.
0300a011790000004418000010010000,Mayflash GameCube Controller DancePad,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,platform:Linux,
03000000790000004418000010010000,Mayflash GameCube Controller DancePad,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,platform:Linux,

So this is my first foray into godot code, so I'm probably not the best person to be deciding how this should be solved... perhaps those who have commented are the greater experts on SDL joypad inputs and how this should jive with GODOT.
Having said that, I think GODOT may need a way to disambiguate HAT vs. Buttons in that mapping... and I say there is a way... if buttons you use 'b' in mapping file.  If axis you use 'a,' and hat you use 'h.'  This is currently done and yet hat events are being generated.  There is the error.  Code is not doing the will of the mapping file.  It is sending those double events.

I'm thinking only one event should be sent and somehow and should be button or hat depending on 'b' or 'h.'
Of course, if you map dpleft:b15 and dpleft:h0.8   --> then yes, send double events.  Not sure if SDL2 allows this.

However, it is interesting that sdl-jstest seems to have the same issue?  As it says one hat is detected?
Perhaps this should be addressed in: platform/linuxbsd/joypad_linux.cpp?
If anyone could be so kind to advise me the things I'm missing.

As above, I'm a confused about how hat events are being generated from SDL, but it is worth noting two things:
(1) I tried running this on windows, I got similar results.
In Linux when I have left and right pressed, I get "right."   In windows I get nothing.
In Linux when I have up and down pressed, I get "down"   In windows I get nothing.
I think windows is correct for that HAT implementation (IMHO).  If both inputs are down, there should be no output.
I think linux is closer to correct for button implementation - at least I get right or down in the case of two outputs.
(2) when running sdl-jstest
It recognizes one hat also and I'm again confused why.  Note when both left and right are down, hat is in center.  Same for up & down at same time.  Again - expected result for hat IMHO.  Although, it does report both buttons being down properly.
$ ./sdl2-jstest -l
error: failed to read gamecontrollerdb.txt: Invalid RWops
Found 4 joystick(s)
Joystick Name:     'limited MAYFLASH GameCube Controller Adapter'
Joystick GUID:     0300a011790000004418000010010000
Joystick Number:    0
Number of Axes:     6
Number of Buttons: 16
Number of Hats:     1
Number of Balls:    0
GameControllerConfig:
Name:    'Mayflash GameCube Controller'
Mapping: '0300a011790000004418000010010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux'
and
Case below is left and right button down:
$./sdl2-jstest -t 0
Joystick Name:   'limited MAYFLASH GameCube Controller Adapter'
Joystick Number: 0

Axes  6:
   0:      0  [                                                                                #                                                                                ]
   1:      0  [                                                                                #                                                                                ]
   2:      0  [                                                                                #                                                                                ]
   3:      0  [                                                                                #                                                                                ]
   4:      0  [                                                                                #                                                                                ]
   5:      0  [                                                                                #                                                                                ]

Buttons 16:
   0: 0  [ ]
   1: 0  [ ]
   2: 0  [ ]
   3: 0  [ ]
   4: 0  [ ]
   5: 0  [ ]
   6: 0  [ ]
   7: 0  [ ]
   8: 0  [ ]
   9: 0  [ ]
  10: 0  [ ]
  11: 0  [ ]
  12: 0  [ ]
  13: 1  [#]
  14: 0  [ ]
  15: 1  [#]

Hats  1:
   0: value: 0
  +-----+  up:    0
  |     |  down:  0
  |  O  |  left:  0
  |     |  right: 0
  +-----+

Balls  0:

Press Ctrl-c to exit

I suggest you use evemu-record to see the key events.
You can refer to the Linux Gamepad Specification. However, Godot does not use EV_SYN to separate events.


Update shipping methods from back-end after filling shipping details at checkout step #2

What is the motivation for adding / enhancing this feature?
Currently, the request to cart.shippingmethods_endpoint (defined in VS's config file) depends on cart.synchronize and is made before the user has a chance to enter full shipping details. The request contains only country_id (ex. 'US') which for some stores may not be enough to determine shipping methods available for the order and to calculate its total price. Storing all shipping methods locally inside VS's config file is also not an option.
I'm looking for a new option inside VS's config file, such as cart.synchronizeShippingMethodsAfterShippingDetails which will defer requesting available shipping methods to after user enters full shipping details.
What are the acceptance criteria

New option in configuration for VS which defers fetching shipping methods.
Shipping methods are fetched after shipping details are filled.
The request for shipping methods contains all shipping details instead of only country_id.
Shipping methods are fetched again when shipping details change.

Can you complete this feature request by yourself?
NO

Related to: #2514


After upgrading to version 13.5.3, building fails with errors when using Korean in MDX files

Describe the bug
#718
As shown in the PR, if you upgrade next.js to version 13.5.3 and use Korean for title in the mdx file inside the data/blog folder, an error occurs during yarn run build.
To Reproduce
Steps to reproduce the behavior:

clone that repo or import the project via the npx degit 'timlrx/tailwind-nextjs-starter-blog' command.
install the required dependencies via the yarn command.
Attempt to build next.js using the yarn run build command. You can see that it builds normally.
Change the title in the data/blog/github-markdown-guide.mdx file to markdown guide in Korean.
Try the yarn run build command. The following error occurs.

You can find this issue in the following repo.
https://github.com/korECM/tailwind-nextjs-starter-blog/tree/reproduce-bug
$ y run build

successCallback /Users/korecm/Programming/tailwind-nextjs-starter-blog/.contentlayer
(node:20396) ExperimentalWarning: Import assertions are not a stable feature of the JavaScript language. Avoid relying on their current behavior and syntax as those might change in a future version of Node.js.
(Use `node --trace-warnings ...` to show where the warning was created)
(node:20396) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
Local search index generated...
Generated 13 documents in .contentlayer
 ✓ Creating an optimized production build
 ✓ Compiled successfully
   Linting and checking validity of types  . ⚠ TypeScript project references are not fully supported. Attempting to build in incremental mode.
 ✓ Linting and checking validity of types
   Collecting page data  ..SyntaxError: Unexpected token '크', ..."\"\\uB9C8\크\\uB2E4\\"... is not valid JSON
    at JSON.parse (<anonymous>)
    at 6179 (/Users/korecm/Programming/tailwind-nextjs-starter-blog/.next/server/chunks/179.js:1:125)
    at t (/Users/korecm/Programming/tailwind-nextjs-starter-blog/.next/server/webpack-runtime.js:1:128)
    at 3035 (/Users/korecm/Programming/tailwind-nextjs-starter-blog/.next/server/app/blog/[...slug]/page.js:1:4493)
    at Function.t (/Users/korecm/Programming/tailwind-nextjs-starter-blog/.next/server/webpack-runtime.js:1:128)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async collectGenerateParams (/Users/korecm/Programming/tailwind-nextjs-starter-blog/node_modules/next/dist/build/utils.js:858:17)

> Build error occurred
Error: Failed to collect page data for /blog/[...slug]
    at /Users/korecm/Programming/tailwind-nextjs-starter-blog/node_modules/next/dist/build/utils.js:1178:15
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  type: 'Error'
}
   Collecting page data  .%

Expected behavior
I expect it to build normally.
Screenshots

System Info (if dev / build issue):

OS: mac OS 14.0(23A344)
Node version : v20.7.0
Npm version : 10.1.0

Browser Info (if display / formatting issue):
Additional context

While testing by replacing the dependencies of Next.js, it appears that starting from version v13.4.20-canary.19, build errors occur.

I have the same issue.
Did you solve it using a method other than downgrading the version?

@InhwanCho
I'm still having the same problem, but I've noticed the following: if I disable the minify feature of swc, the build works fine, so I'm assuming it's a problem with the swc version going up.
// next.config.js
module.exports = () => {
	// ...
    swcMinify: false,
	// ...
}

Thanks for the report, might be worth posting on next.js / swc github issues as well. In the meantime, feel free to downgrade - there are no changes that require 13.5.

I have confirmed that the build issue is resolved starting from v13.5.4-canary.8, which is the Canary version of Next.js. It appears that the issue was resolved with the swc_core version being updated to v0.83.28.
If you are experiencing the same build issue, you can either downgrade Next.js to version 13.4.19 or upgrade to the latest Canary version, v13.5.4-canary.9, which should likely solve the problem.
@timlrx, I'm not sure how this repository manages Next.js versions, but if Next.js version v13.5.4 is officially released, could this blog repository align its Next.js version to v13.5.4? This repository provides an excellent template for starting a blog, and it would be great if Korean users didn't face difficulties due to build errors.

The upgrade should solve the issue. But feel free to re-open if it still persists, thanks!


error in housing module

I get an error in the housing module

Housing (rental)
IndexError: list index out of range

Traceback:
File "C:\Users\rcxsm\AppData\Local\Programs\Python\Python310\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
File "C:\Users\rcxsm\Documents\python_scripts\cost-of-living-main\app.py", line 65, in <module>
    page()
File "C:\Users\rcxsm\Documents\python_scripts\cost-of-living-main\app.py", line 30, in page
    calc()
File "C:\Users\rcxsm\Documents\python_scripts\cost-of-living-main\nl_col_calc\controller\housing_rental.py", line 65, in rental
    model, model_update_dt = get_latest_model()
File "C:\Users\rcxsm\AppData\Local\Programs\Python\Python310\lib\site-packages\streamlit\runtime\caching\cache_utils.py", line 186, in __call__
    return self._get_or_create_cached_value(args, kwargs)
File "C:\Users\rcxsm\AppData\Local\Programs\Python\Python310\lib\site-packages\streamlit\runtime\caching\cache_utils.py", line 211, in _get_or_create_cached_value
    return self._handle_cache_miss(cache, value_key, func_args, func_kwargs)
File "C:\Users\rcxsm\AppData\Local\Programs\Python\Python310\lib\site-packages\streamlit\runtime\caching\cache_utils.py", line 265, in _handle_cache_miss
    computed_value = self._info.func(*func_args, **func_kwargs)
File "C:\Users\rcxsm\Documents\python_scripts\cost-of-living-main\nl_col_calc\controller\housing_rental.py", line 22, in get_latest_model
    model = sm.load(model_files[-1])

Didn't expect someone to run the code so soon. The module tries to load a model that is not published publicly yet. Attached you will find a minified model that should get you started. It contains all of the full models data but with a reduced parameter space and with training data removed. Unzip it and put it in data/2023-02-21-mini-16-model-reduced.pickle and it should work. In your specific case it looks like you would put it here: C:\Users\rcxsm\Documents\python_scripts\cost-of-living-main\data\2023-02-21-mini-16-model-reduced.pickle.
2023-02-21-mini-16-model-reduced.zip