[FINERACT-1667] Introducing Spring Batch as job runner engine

Description
Database tables for Spring Batch is created by Liquibase.
Existing jobs have been moved to Spring Batch Tasklets.
Only Spring Batch Manager isntance can execute jobs.

Hi Awasum,
thank you for raising this topic, you are totally right. I’ve opened a JIRA ticket for this improvement, and I will rename my PR to title that contains the JIRA ticket number. Tests are not needed, because we have existing test for the jobs, and the jobs’ behavior have not changed at all. After my PR is merged, I will write an e-mail to the mail list about the changes, and Ascii Doc will be extended with Spring Batch soon.
Sincerely,
Norbert

júl. 19. dátummal, 20:10 időpontban Awasum Yannick @.***> írta:

Thanks for the beautiful contributions @taskain7 https://github.com/taskain7
Please..is there a Fineract JIRA ticket for this one? I know it can be annoying but open source projects depend on them for continuity and transparency. Having a JIRA ticket describing the use case and issue you are solving will be a great idea. Also good idea to add unit/integration tests (it may already be there) and documentation on how to use this feature. Future users will be grateful for this and it will make it easy for others to contribute..extend this..even you one year from today will benefit from this. link to create issues: https://issues.apache.org/jira/projects/FINERACT/issues https://issues.apache.org/jira/projects/FINERACT/issues
cc @adamsaghy https://github.com/adamsaghy , @galovics https://github.com/galovics , @vidakovic https://github.com/vidakovic , @ptuomola https://github.com/ptuomola , @edcable https://github.com/edcable , @fynmanoj https://github.com/fynmanoj , @avikganguly01 https://github.com/avikganguly01 , @vorburger https://github.com/vorburger
—
Reply to this email directly, view it on GitHub https://github.com/apache/fineract/pull/2437#issuecomment-1189401054, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFBXE6F36KRQ4K673GQUCWTVU3VRJANCNFSM54AALHSQ.
You are receiving this because you were mentioned.

Please hold this PR. Checking if it can cause any regression on interest posting jobs.

@awasum That's my mistake. I think somehow I forgot to create a JIRA for this although I proposed this change on the devlist. The subject line was Spring Batch integration and here's the original content:
Dear all,

I'd like to introduce you to the idea of enhancing Fineract with the capability to handle high-volume batch jobs along with a few other things.

As any financial system, Fineract also supports batch jobs but they're quite limited on the data volume it can handle. Currently a batch job is a single Java method with loading everything at once and processing that huge chunk of data in a single execution step/transaction.

To make Fineract better, we need to alter this simplified framework a little bit and introduce something that's more battle-tested: the Spring Batch module is here to help.

With introducing Spring Batch into the mix, we'll finally have a chance to decouple data reading, processing and data writing that'll finally bring us the benefit of making our batch jobs:
- faster
- reliable
- being able to handle huge data volumes

And I'm not gonna just stop there, with Spring Batch in place, we'll be able to distribute our batch job workloads into separate JVMs in a scenario where we want to run a cluster of Fineract instances to cope with the load.

The next thing to the Spring Batch module integration is the introduction of a new batch job, Loan Close Of Business; that'll be the starting point of reworking the date handling in Fineract. This job will be simply responsible to "close" Loans on a daily basis making sure that interests/fees/etc are calculated properly. It's going to be the first full-fledged job that'll be able to run in a partitioned mode on a cluster of JVMs and multiple threads.

The job will be rolled out as disabled by default so it won't interfere with any existing deployments but if somebody will need it's potential and business functionality, they can certainly enable it. Also, there's an extensive documentation I already wrote for this; right now it's in PR for some review and I'm gonna do a few additional modifications but you can check it out here: https://github.com/apache/fineract/pull/2326

I don't want to repeat everything that's in the PR so if you're curious be sure to check it.

TL;DR; Spring Batch is going to be integrated into Fineract. A new batch job called Loan Close Of Business will be created along with some additional functionality that's described in the PR above.

Best,
Arnold

I apoligize for not creating the ticket and thanks for @taskain7 doing it on my behalf. :-)

@avikganguly01

Please hold this PR. Checking if it can cause any regression on interest posting jobs.

I'm hoping you're not testing anything manually but you're running some automated tests (within Fineract)?

Similar to how liquibase was not intended to change any data , this wont change the functionality of the batch job intentionally . But there would be unintentional consequences  to users who don’t want to be impacted by infra changes.
Can you please integration test for one of the batch job honoring the job Params for batch size.
In the future, can similar pull requests be split into multiple pull request based on the feature it addresses, to make it easily reviewable
Since it is a big change , I think we need to create 1.8.0 to separate from the cutting edge stuff going on develop, before this pull request get merged. To avoid large test cycle of 1.8.0 relese

@fynmanoj

But there would be unintentional consequences to users who don’t want to be impacted by infra changes.

Not sure about these "infra changes". Do you mind to elaborate?

Can you please integration test for one of the batch job honoring the job Params for batch size.

Elaborate please. What batch size?

In the future, can similar pull requests be split into multiple pull request based on the feature it addresses, to make it easily reviewable

That's always the goal but it's not possible for some cross cutting changes. Same for PostgreSQL support, I wasn't able to split it into smaller ones cause if I don't do it all the way through, builds are going to fail continuously. Same here. This is an all or nothing change.

Since it is a big change , I think we need to create 1.8.0 to separate from the cutting edge stuff going on develop, before this pull request get merged. To avoid large test cycle of 1.8.0 relese

Respectfully disagree. If we start keeping changes on separate branches they will simply be not tested and forgotten/abandoned eventually and never getting merged. If we are lacking testing, let's work on improving those areas and fill the gaps.
It's much better if we move forward with Fineract (or any product for that matter) instead of holding ourselves back from very valuable contributions from the community.
My 2 cents.

... I can see @fynmanoj 's point with big PRs, but agree with @galovics that some features just cannot be chopped up in smaller pieces.
Concerning cutting a release before merging this here: let's take a step back and look at what we are replacing (Quartz jobs)... I think it is safe to say that literally everyone has issues with the existing Quartz jobs... for myself I can say that I have at least one conversation on jobs per week.... and usually it's nothing positive. So my take on this would be to have the earlier the better (so, not only because of things rotting away in branches... which is still a valid point).
And yes, there might be something to take care of to migrate a production system to a release with batch feature, but that's a fair price to pay for such a major improvement... we just have to document things properly.
2 more cents

@galovics :
Thanks for your response, let me try to clarify what I meant above.

By "infra changes"
I mean the major framework level changes that can affect the users and deployments.

Elaborate please. What batch size?
There are Job level configurations added to the jobs as job parameters. These include the batch size, thread pool etc. there are jobs that require these parameters. While adding a framework level change, It would be helpful to test the sanity of these configs.

In this PR other than the Batch changes, I could see some other changes like Sl4j related(in test cases mainly this is the only change.). Can't these be two different PRs?
@vidakovic , I agree with you on the documentation part, IMO there should be a checkpoint before a major feature goes in.

@fynmanoj

I mean the major framework level changes that can affect the users and deployments.

I'm sorry but I'm still not sure what you mean. Spring Batch as a job runner engine doesn't affect any of the deployments and the change is backward compatible.

There are Job level configurations added to the jobs as job parameters. These include the batch size, thread pool etc. there are jobs that require these parameters. While adding a framework level change, It would be helpful to test the sanity of these configs.

Good point and thanks for calling it out. @taskain7 please check this. For example the JobName.RECALCULATE_INTEREST_FOR_LOAN job has parameters.

In this PR other than the Batch changes, I could see some other changes like Sl4j related(in test cases mainly this is the only change.). Can't these be two different PRs?

Agreed and that's unfortunate. Frankly speaking we could've definitely saved a couple 10-20 files to be touched by this refactoring but in the big picture, it wouldn't have made a huge difference.


Add pretty printed JSON output

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #190

PR #191   👈

This stack of pull requests is managed by Graphite.


add icons to the section #24

please review the icons that are added.
https://github.com/user-attachments/assets/d6bb2ee8-9314-43c8-a1c3-a133ce5f6683

@sahhoArjun097 i think the icons which are there in the website are good
just align them how you did in yours

@sahhoArjun097 you need to update your branch before contributing you were working in the old website so long

ok i will do it

Please assign this issue to me as I would like to work on fixing it. also add the label GSSoC 2024 Extd relaevant  and level.
https://github.com/user-attachments/assets/e286871f-a8e9-4f37-a004-4b3e1be2cfd9


Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.

when using I get following error when creating the Doughnut graph.
bundle.js:4831 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.

Hey @svenfraeys
I have a release candidate as a PR right now which should fix this issue. Stay tuned and I'm hoping to get that released soonish


Question: Best way to handle class imbalance for classification

I'm working on a text classification problem similar to the sentiment_imdb problem, with 4 classes. My training set is highly imbalanced and I'd like to use balanced class weights for training. What's the best way to do that?

In general, if you have an imbalanced dataset you can do two things:

if you think that real data could be distributed in a similar way to the training set, you should not alter this one;
instead if you want to give equal importance to every class, you can reduce or augment your training dataset (see SMOTE technique).


page to help people convert AppCache into a service worker

AppCache will soon be disabled in Firefox and service workers are supported and provide a better caching opportunity anyway.
I thought the cookbook could provide a simple page to take an AppCache file (or perhaps a URL where it would find the manifest file from a site) then display what the required code would be to reproduce the caching service worker; HTML changes + JS code for a sample service worker.
There is already some code out there to parse the manifest files: https://www.npmjs.com/package/parse-appcache-manifest
Disable AppCache: https://bugzilla.mozilla.org/show_bug.cgi?id=1237782

Also want to throw in an experiment: could a drop-in library that gets pointed to an appcache file do something similar without a build step?

@miketaylr mentioned that a shim or drop in library is on top of web compat's mind and we might be able to help using our service worker expertise. @delapuente, @marco-c could you do some exploration here to give a recommendation how feasible this would be?

FYI—I (as a member of Google's Web DevRel team) have been implementing a helper for the runtime conversion scenario, with code at https://github.com/jeffposnick/appcache2serviceworker/pull/1.
The plan is to release it in a more permanent home, but it needs tests, docs, and a bit of refactoring first.
I don't point that out to discourage any efforts that the Mozilla folks might put into implementing something similar, of course.

@jeffposnick I don't see any reason why we would duplicate our efforts.

@jeffposnick this is great!  Looks like similar goals, how can we help?

:smile:
While I've been relying on the extremely capable @jakearchibald for feedback on the code so far, feel free to take a look at what's there and, if you're so inclined, try following the examples from the demo/ directory against a test deployment of any real-world App Cache examples you have. (Apologies that there's no formal docs for using it yet.)
Any feedback is welcome on that PR, and I can update this thread when we have the code in a more permanent home.

Hey folks (@clarkbw, @marco-c). If you have time, we would love to get more feedback on Jeff's conversion library before we move it to a new repo. Do you think you might have time to take a look over it?

Comment 44 at bugzilla bug 1237782 points to https://github.com/kenchris/jakecache

Anyway, I'm taking a look at @jeffposnick PR
I'm thinking if more than a polyfill, we could use a conversion to pure sw, to preserve AppCache behavior without imitating it which could lead to better adoption.

Done, I left my comments on @jeffposnick PR.

We can probably close this issue out now.  We might want to open another issue for pointing to useful AppCache to ServiceWorker utilities but I think the original intent is well covered well by  https://github.com/kenchris/jakecache and the work going into jeffposnick/appcache2serviceworker#1


Add message user button

Details
Adds a message user button when seeing a user's profile.
Fixed Issues
$ https://github.com/Expensify/App/issues/6661
Tests

Create a group chat.
Click the chat header and select one of the users.
Verify that there is a Message <user> button and clicking it navigates you to the chat with that user.

QA Steps
Steps above.
 Perhaps the spacing between Local time and Message <user> is too big?

I think it looks good personally, nice job!

taking a look right now!

🚀 Deployed to staging by @nickmurray47 in version: 1.1.27-6 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by @nickmurray47 in version: 1.1.27-7 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

possible regression? https://expensify.slack.com/archives/C01GTK53T8Q/p1642146678458100

🚀 Deployed to production by @Jag96 in version: 1.1.29-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


[ROCm] Fixed error: call to 'min' is ambiguous

many build errors due to this ambiguous min() call.
@akuegel
Thanks in advance

@i-chaochen From https://github.com/tensorflow/tensorflow/pull/61397#discussion_r1276540276, a proper fix is to change the line as min(static_cast<unsigned int>(blockDim.y), static_cast<unsigned int>(num_rows - blockIdx.y * blockDim.y));. Can you test it?


support react-native fabric and 0.69.1 version

Overview

I'm working in add support for fabric to this library for both platforms, iOS & Android without any API changes or breaking changes.
Test Plan

I'm testing in an example app with the latest version of react-native located in this repository
ROADMAP:

[x] Working iOS without hermes & fabric

[x] Working iOS with hermes but not fabric

[ ] Working iOS with hermes & fabric
[x] Working android without hermes & fabric

[x] Working android with hermes but not fabric

[x] Working android with hermes & fabric

[ ] Update README with the new steps

Any updates on this?

Would love to have this too - I just dont know how to do it :)


fix: bump dependencies to integrate latest vulnerabilities reports

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

What is the new behavior (if this is a feature change)?
Correction of vulnerabilities in dependencies

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

Other information:

github.com/gin-gonic/gin to fix CVE-2020-28483
github.com/tidwall/gjson to fix CVE-2020-36066, CVE-2020-35380


closes #318

streaming_update stored and passed to create_resource response
before this change backtesting did not contain the latest streaming_update

Coverage increased (+0.008%) to 94.718% when pulling 872ce8b2ba0bee2fc36d922363ea6d192df46ce4 on task/318-streaming-update into 737e17f8d864c8bfae0a995f69a13b9550f1e78d on master.


.gitignore file missing when installing from npm

Hi @koppor
I tried installing as is described in the README, but I get this error when I run the generator:
AssertionError [ERR_ASSERTION]: Trying to copy from a source that does not exist: /home/galileo/.node_modules/lib/node_modules/generator-latex-template/generators/app/templates/.gitignore
The file is actually missing..

Fixed in https://github.com/latextemplates/generator-latex-template/commit/e83a7ae735bba9fa1e7f3085a1850d3e40dab5ae. Please update to the latest version.


Updates and added some helpers

*This updates the Dockerfile and README a bit more to fit the current state of the lib.
*Added a method for generating/sending a basic http header
*Added a method for generating/sending a basic http response

Hi @mclark4386
Sorry for late response. Don't know why I didn't merge this PR yet.
Thank you so much! :+1:


get the top most feature at pixel

Is your feature request related to a problem? Please describe.
I need to be able to get the topmost feature at a pixel location to determine what feature out of many at the same pixel location should be selected when the user clicks on it.
This becomes complicated when I need to make sure that only features from certain layers can be selected. Additionally, if a feature from a layer which cannot be selected is topmost then no feature should be selected as a result of the click.
Describe the solution you'd like
It is likely this is already possible, but the APIs do not make is clear how this can be accomplished.
It was mentioned at:
https://gis.stackexchange.com/questions/231849/how-do-i-only-use-the-top-layer-or-feature-clicked-on-a-multilayer-openlayers3-m
that map.getFeaturesAtPixel will return the topmost, highest zIndexed feature, at the zero index of the feature array returned. Is this true? Will the order of the other features be ordered in terms of what is top most to bottom most? If any of this is true, it should be mentioned in the documentation.
If there were a synchronous version of https://openlayers.org/en/latest/apidoc/module-ol_layer_Vector-VectorLayer.html#getFeatures which will get the topmost feature that intersects the given pixel on the viewport, that would be helpful. Related, if a ol.interaction.Select condition accepted a async function, then I could await the getFeatures() function which returns a Promise. (Does it accept an async function? If it does, that information should be included in the documentation)
My current issue is how to determine which feature is top most when they are in the same layer, but are overlapping. It is unclear how to do that synchronously.
Do you have any advice on how I can proceed?
Thank you.

I have a related SO question at https://stackoverflow.com/questions/75940663/openlayers-how-can-i-stop-the-click-selection-from-passing-through-a-higher-lay/75941033#75941033

See the SO question.


Please add support for flutter in ubuntu touch OS

Please add support for flutter on a linux-based mobile platform such as ubuntu touch OS for it to become a productive operating system and developers can create unique apps for it as well. Here are some major websites for the operating system if you have any doubts :-
https://ubuntu-touch.io - The operating system website
https://open-store.io - Website for the app store of ubuntu touch OS
https://clickable-ut.dev - development and app packaging tool for ubuntu touch OS
https://ubports.com - ubuntu touch OS publisher's website
https://docs.ubports.com - documentation for ubuntu touch OS
https://docs.innerzaurus.com - programming courses for developing apps in ubuntu touch OS

FYI @HansMuller @cbracken

Are you ready to support ubuntu touch OS yet? Or are you not happy with it?

Thanks for filing this. We're currently focusing our efforts on iOS and Android for mobile and Windows, macOS, and Linux for desktop. While this is not something the team is likely to prioritise soon, we are certainly receptive to any high-quality patches to the existing embedders that would help.
I'm not at all familiar with Ubuntu Touch, but if it's a port of Ubuntu targeting mobile devices, then I'd imagine the existing Linux embedder should be a good starting point. From  there, I'd encourage you to identify and file bugs with repro steps for any gaps in the current embedder. That would help any community contributors with an interest in this project direct their contributions.

I'm not aware of any specific changes that would be required for Ubuntu Touch - is anything not working with the current Linux embedder? There might be some services that are Ubuntu Touch specific, but these would just require new Dart packages and/or Flutter plugins to implement (i.e. not a core part of Flutter).

Thanks for filing this. We're currently focusing our efforts on iOS and Android for mobile and Windows, macOS, and Linux for desktop. While Ubuntu Touch support is not something the team is likely to prioritise soon, we are certainly receptive to any high-quality patches to the existing embedders that would help.
I'm not at all familiar with Ubuntu Touch, but if it's a port of Ubuntu targeting mobile devices, then I'd imagine the existing Linux embedder should be a good starting point. From there, I'd encourage you to identify and file bugs with repro steps for any gaps in the current embedder. That would help any community contributors with an interest in this project direct their contributions.
/cc @robert-ancell who may also have thoughts.

You are right, ubuntu touch is derived from ubuntu linux. But the thing is, ubuntu touch is not traditional linux. Therefore, it cannot run linux applications in it. If you want to know how to install ubuntu touch in your phone, then please visit this page :- https://devices.ubuntu-touch.io , and if you want to learn how ubuntu touch works, then join this telegram group :- https://t.me/ubports . If you also want to learn about its app store, then join this telegram group :- https://open-store.io/telegram

Therefore, it cannot run linux applications in it.

If the Linux embedder doesn't work for Ubuntu Touch devices, then it sounds like one of two things is likely:
Case 1: The Linux embedder could be made usable with minor patches that will not affect its main use-case on desktop Linux. If this is the case, I'd suggest you identify the exact issues and file specific/reproducible issues for those cases and send patches. So long as they don't negatively impact the main use-case of Desktop Linux, we're generally happy to review high-quality patches with tests.
Case 2: The Linux embedder as-is is fundamentally unusable on these devices and a new embedder would be required. In that case, you'll want to author a new embedder in a dedicated repo to cover the Ubuntu Touch use-case. For an example of how to do this, have a look at the sony/flutter-embedded-linux repo.
I'm going to close this bug for now since our focus is on improving the existing embedders for the bulk of our users; adding new platforms in the main repo is not something we're likely to prioritise at the moment, but I'd certainly encourage you to pursue writing your own embedder (or filing specific, reproducible bugs against the current embedder) as described above.


Fix: use powershell to exctract .gzip executable on windows

@TheLeoP it didn't seem to work for me on Windows neovim. The .exe.gz file downloaded but wasn't unzipped. Can you confirm it works for you if you reset .codeium/bin.

Yes, @pqn , it does work for me after deleting the directory ~/.codeium/bin. Maybe the problem could be the version of Powershell? Or even .Net not being installed/available?

I pushed some changes that fixed Windows for me, let me know if things are still working for you.

Everything is still working on my end after the changes


Instructions to install CLI don't work

The instructions given in the README to install the CLI don't work.
error: Unable to load 'https://deno.land/x/nocuous/import_map.json' import map

Caused by:
    Import<EMAIL_ADDRESS>failed, not found.

It seems the import map has been moved to deno.json. After replacing import_map.json with deno.json the installation succeeds, but shows warnings whenever the tool is invoked.
Import map diagnostics:
  - Invalid top-level key "fmt". Only "imports" and "scopes" can be present.
  - Invalid top-level key "lint". Only "imports" and "scopes" can be present.
  - Invalid top-level key "tasks". Only "imports" and "scopes" can be present.

version 1.0.2 contains the import_map.json file


Add replacements option

Add replacements option e.g. [['|', 'or'], ['%', 'percent'], ['-', '_']]
Clean up
Bump version
Ensure fully backward compatible

Coverage increased (+0.4%) to 93.069% when pulling 8aea5c49b960b66e5c81bf20f17ec23e41c8d157 on staging into 683364ea0f4637364b84486ef24124ece0e0597c on master.


added dropdown for VMs in top consumers card

Pull Request Test Coverage Report for Build 1689

5 of 5 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 84.044%

Totals

Change from base Build 1679:
0.03%

Covered Lines:
3978

Relevant Lines:
4534

💛  - Coveralls

lgtm. Lets wait for web-ui counterpart PR


knowledge neuron in transformers that have both encoder and decoder

Hi,
Firstly I want to thank you for the paper, which is very inspiring and interesting. I am wondering if you have ever tried to identity knowledge neurons in other transformers (in you paper you evaluated BERT models, which is encoder-only). Just curious about what would the knowledge neuron distributed in a model that has both encoder and decoder? Will decoder layers have more knowledge neurons than encoder layers? Or if there any related reference?
Thanks!

Hello, thank you for your interest in our work!
Currently, we haven't conducted further experiments on other architectures. However, based on my understanding, the functioning of knowledge neurons in this paper primarily targets the decoder. Although BERT is an encoder architecture, it also plays a role in decoding the [mask] token near the output layer, and the paper also found that the neurons in the output layer have a closer connection to knowledge. Based on the idea of knowledge neurons, I have also attempted to mount an additional FFN knowledge storage module to the T5 decoder and it works well (https://arxiv.org/pdf/2208.00399.pdf). I hope this information is helpful to you.

Thanks for the explanation! By 'functioning of knowledge neurons in this paper primarily targets the decoder', do you mean that knowledge storage is more related to decoders than encoders, either for semantic patterns or shallow patterns? Or, it could be in a way that semantic patterns (like the facts evaluated in this paper) are more tied to decoder, while shallow patterns that are meaningless are more tied to encoder?

"Knowledge" I mentioned is factual knowledge. In my opinion, knowledge stored in the decoder can be easier to be used in generation. Encoders/shallow layers may play a role that decides what knowledge to use.

If you have more to discuss, welcome to mail me and we can make a WeChat phone call. Messages in GitHub may be missed by me sometimes.


feat(datepicker): allow for date range selection logic to be customized

As discussed, adds a provider that allows the consumer to customize how the range is changed after the user has selected a value. For now it only has one method (selectionFinished), but the interface should allow us to add more later on.

Can we also add an example of a custom strategy to the devapp, maybe something that moves the start or end date instead of just restarting the selection. I'm curious if it will uncover issues with how we show the preview

I've reworked it based on the feedback.

Looks good, but I think we'll also need a way for the user to customize the preview range behavior


ci: TEST

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

Project coverage is 68.05%. Comparing base (ed9e277) to head (1ec3701).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #269   +/-   ##
=======================================
  Coverage   68.05%   68.05%
=======================================
  Files          47       47
  Lines        2504     2504
=======================================
  Hits         1704     1704
  Misses        800      800

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


Be clear about whether we use single or double precision floats

Currently we use a mixture of both. e.g. Design matrices are initially coded as doubles. This carries over to the data used for inference in NumPyro, but these are converted to single precision when using Pyro. OTOH, both back ends represent samples with single precision.

Using double precision will cause perf issues with #14, but we haven't found it to significantly impact performance on the CPU. Also, NumPyro (JAX) I think will cast everything to single precision unless an environment flag is turned on to enable XLA to operate in double precision. Have you found numerical instability issues with single precision? We have found a few such cases in Pyro, but on closer inspection it turned out that these were due to numerical instability in our distribution implementations. Fixing that allowed us to get good results even with single precision. For NumPyro most instances of numerical imprecision arise due to XLA's fast-math mode which can be turned off using os.environ["XLA_FLAGS"] = "--xla_cpu_enable_fast_math=false".

Have you found numerical instability issues with single precision?

Not that I'm aware of. I agree that choosing to use single precision everywhere seems fine. I'm happy to have this clear in my mind, thanks.
Though as you hint at, this isn't likely to make a noticeable difference (to e.g. performance on the cpu) so switching to single precision for design matrices is probably low priority at present.


Add oAuth register / login

login is display in react
jwt token is stored
metadata is stored in db (security trimmed)

BFF is the new cool way to do things. It allows us to make more efficient calls without security issues.
What is BFF
In the context of frontend and backend development, "bff" stands for "backend for frontend". It refers to a design pattern in which the backend is specifically designed to serve the needs of a particular frontend application or client.
The purpose of implementing a BFF is to offload some of the responsibilities of the frontend and make it more efficient. Rather than having the frontend make multiple API calls to various endpoints on the backend, the BFF acts as a middleware that consolidates and aggregates the data from multiple backend services into a single API endpoint that is optimized for the frontend.
This pattern can also help with the separation of concerns, making it easier to maintain and update the frontend and backend codebases separately.


"zea-view-cube" has already been defined

Turns out there were multiple versions of the zea-ux lib. Fixed here: https://github.com/ZeaInc/aftr/commit/6058101d8b927bd75d2bad8217fe9a02885ebf5c


Add highlighting API to ketcher-react

An object on ketcher instance with ids of highlighted items on the canvas and highlight's color code
Rendering of highlight on the canvas
Method to set highlighting by atom and/or bond id with specified color
Method to clear highlighting

Blank page and errors in console when switching 'Show bonds/atoms Ids' options

.


1-2 cohesive user stories comprehensively accounted for

Loosely, this is 1-2 broad "categories" of tasks that Kele should have a cohesive story around.
Could even be as simple as: "do everything that kubectx and kubens can do."
Definition of Done

User story (or stories) decided upon
All aspects of the user story properly demonstrated in documentation, e.g. tutorials and how-tos

User story: "basically everything that kubectx and kubens can do."
Done in: #6 #18 #19 #21


Add shortname to customresourcedefinition

What version of eunomia are you using?
0.1.6
eunomia version:
0.1.6
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (kubectl version)?
1.11
What did you do?
kubectl get getopsconfig
What did you expect to see?
kubectl get gc
kubectl get goc
What did you see instead?
There is not a shortname for the GitOpsConfig custom resource

I found the documentation on how to add a shortname here
https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/


Update csv files for breaks

Adds columns to csv files for breaks.
Changes date format to iso8601 to allow for reading via
pandas fast-path.
Date range covered by each csv file unchanged.
Updates make_exchange_calendar_test_csv.py.

@gerrymanoim, I'm going to take the liberty of merging this later today (I'm working on top of it with something else, although this is a PR in its own right).


Fix compiler error

Fix a compiler error that occured when compiling with DMD v2.101.0

thanx 🅱ruddha u ❌ 🧢 a real ☝ one


EmrEtlRunner: consider supporting spot instances

The situation has been getting better wrt Spark jobs running on spot instances in EMR recently (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-configure.html) so it might be interesting to support them.
This would require us to move to AMI >= 5.11.0.

It would definitly be worth considering adding support for Spot Blocks (https://aws.amazon.com/blogs/aws/new-ec2-spot-blocks-for-defined-duration-workloads/)  and instance fleets in general in the next release. The cost savings are pretty substantial if you have a job that has consistent timing.


SignedDivRem

Performs a signed division and modulus operation on a given value, ensuring the quotient is within a specified range.
Reference: https://github.com/starkware-libs/cairo-lang/blob/efa9648f57568aad8f8a13fbf027d2de7c63c2c0/src/starkware/cairo/common/math.cairo#L329

Note: This hint uses divmod function and range_check_builtin, both have been already implemented in this hint section so just check the code for clarification

Hello @cicr99 , I would like to work on this if it isn't assigned yet


feat: Notifications view, routing, system monitor view, and node setup flow

Added notifications UI and methods (main/renderer processes to be looked into again for desktop popups)
Added routing
Added System Monitor View
Added NodeSetup View, and No Node view.
Moved Logs view into its own route
Modified modal

It looks like the graphic art isn't showing in the add node UI and the UI is smaller than before.

@jgresham yeah, in the design, the art is only showed during the initial onboarding, and hidden for the modals. I'm making additional changes in the ui-redesign-modalmanager branch to add Cancel/Save buttons on the modals to align with spec

@corn-potage I'm thinking to review the modal manager changes into this branch in a PR. Once that is done, we can test again and then merge into main. That way you don't need to double commit any changes into this branch from MM branch.

Sounds good! Will make the changes from feedback in MM branch 👍


Add BoxDecoration styling to CupertinoPicker

Description
Allow user to add box decoration styling to CupertinoPicker. Right now background is changeable but ideally the border line of magnifier screen color should be customisable to match background color.
CupertinoPicker(
  itemExtent: 50,
  decoration: BoxDecoration(
    border: Border(
      top: BorderSide(width: 0.0, color: CupertinoColors.activeGreen),
      bottom: BorderSide(width: 0.0, color: CupertinoColors.activeOrange),
    ),
  ),
  onSelectedItemChanged: (int index) {},
  children: List<Widget>.generate(10, (int index) {
    return Center(
      child: Text(index.toString()),
    );
  }),
);

Related Issues
Tests
I added a test in packages/flutter/test/cupertino/picker_test.dart
Creating a CupertinoPicker with BoxDecoration given a custom color
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

I have signed in!

@googlebot I signed it!

Thanks for the pull request! The approach looks good to me, but I'm not sure if we still need this new parameter once https://github.com/flutter/flutter/pull/39919 relands.
In https://github.com/flutter/flutter/pull/39919, the borders become translucent (in accordance with https://developer.apple.com/design/resources/):
/// Color of the 'magnifier' lens border.
const Color _kHighlighterBorder = CupertinoDynamicColor.withBrightness(
  color: Color(0x33000000),
  darkColor: Color(0x33FFFFFF),
);

Hi @terryx it seems #39919 has relanded in the master branch. Does that change cover your use case?

I believe so, let me close this.


Illegal Instruction while trying to run the frontend executable

Hello,
I am attempting to build your code on a remote machine. I install all dependencies with their required versions and the build happens smoothly. When I attempt to run the executable ./frontend, I get the output Illegal Instruction. Upon further investigation, using gdb I discovered that the issue lies in certain instructions executed that require the AVX instruction set. This line in assembly in particular is where the issue lies (vpxor is an AVX instruction):
0x0000555555593d07 <+87>:	vpxor  %xmm0,%xmm0,%xmm0
The problem is my machine does not have AVX enabled and does not support the instruction set as well. Are there any compiler flags I can modify (something more generic) that let me use your code on this machine. Or must I shift to a different machine which has AVX enabled.
Thank you

When building you need to disable sse.
python build.py -DVOLE_PSI_ENABLE_SSE=false
See the Readme for details


docs(webc.md): Minor copy edits (and 1 possible typo fix)

@zachleat ping

Thank you!

Yay! :D :D :D


Add a "hub review" command

It wraps functionality already provided by "hub checkout". The advantage
with "hub review" are twofold:

Discoverability. It wasn't until I started browsing the hub source
code that I realized this functionality was present.
Usability. Just typing the PR number is easier than having to figure
out its URL.

Thanks for proposing this. Both your advantage points are valid. However, I'm reluctant to add a command called review because:

It mostly duplicates functionality of another existing command;
Users might think that the review command provides functionality related to GitHub Reviews (e.g. requesting a review; leaving an approved review, requesting changes, responding to a review).

Instead, I would like to make it easier to check out a PR by its number rather than pasting in a whole URL. How does that sound?

I'm fine with fixing this in some other way, as long as the solution addresses both the discoverability and the usability problems.
For the usability part, just moving this PR's code into the checkout sub command should be fine, but what would you propose for discoverability?
I'd like the existence of this feature to be fairly obvious from all of:

hub help output
hub checkout --help output
hub help checkout output

@mislav, what's your alternative suggestion that covers this? Or would just renaming the new subcommand to something that doesn't have review in it be a way forward?

I don't have a better idea for a separate command name. I still think checkout most closely describes what we're doing, since we're switching to another branch.
You have a good point about this not being discoverable. We intentionally don't want to change git's own help system. So, git help checkout shows you git documentation without any hub extensions. We don't want to try to hook into that process and add extra lines. Instead, you can do hub help hub-checkout (this is available in 2.3.0-prereleases) to access the man page for what extensions hub provides on top of this command. Or, you can do hub help hub for a overview of everything that hub does.

@mislav, how about hub pull-request checkout 1234?
And then updating the help text for both hub help and hub pull-request to document the new sub command.
That would be discoverable and not clash with anything, wouldn't it?

That's not a bad idea. People are already requesting a command to list all the pull requests, similar to hub issue. Maybe this should

hub pr: list pull requests
hub pr create: create a pull request (previously hub pull-request)
hub pr checkout 123: checkout a pull request
hub pr open 123: open the pull request in the web browser

I don't think we should overload the existing hub pull-request command since that would be lengthy to type and possibly confusing to users. Thoughts?

If you think a new hub pr <subcommand> is the way to go I'm fine with that.
Unless somebody else beats me to it I'll turn this PR into a hub pr checkout subcommand.

Implementation changed to:

hub pr: print hub pr help text
hub pr checkout 123: checkout PR 123 source code

Modest suggestion: would there be any opposition to hub pr new instead of hub pr create for making a PR?
If there are already create subcommands elsewhere in hub, then please ignore this comment for consistency's sake.

@mislav, ready for re-review.
@noam-c, I primarily want to get this in. After the new pr command is in, giving it additional sub commands is something that can be discussed in separate PRs / tickets.

@mislav, ready for re-review.
Tests added, redundant PR fetching removed.

Thanks for the updates. I didn't like how the complex logic was copy-pasted between checkout and pr, so I've pushed my proposed solution for pr command to be able to invoke transformCheckoutArgs and thus get all that logic for free. Can you take a look and see if that looks alright?
Also, I've removed most scenarios from pr.feature since only a few basic ones are needed, mostly just to assert command-line argument processing. The rest of the complex logic (implemented within transformCheckoutArgs) is already verified through the scenarios in checkout.feature.

@mislav will you accept this PR in its current form?
I'm fine with it, +1!

Thanks @mislav :)

@walles Thanks for your patience!


Add help for compression flag in CLI

Secret's out. Now everybody knows you can use the compression flag with create-target and update-target.

@thomasmitchell can you incorporate review feedback into this PR?


Fix the misalignment of data preprocessing and training/evaluation.

This does not need to be changed, it is still aligned with the new version of mmdet3d. It should only take to change the mmdet3d version in requirements.txt.

 Such a change is much more convenient than changing the code.


fix: translate untranslated widgets

Add missing strings to German locale
translate markdown editor buttons, code widget, folder creation dialog buttons

@KaneFreeman Do you have any idea how to fix this test? Did I do something wrong?

@KaneFreeman Do you have any idea how to fix this test? Did I do something wrong?

You made t a required prop for the Balloon toolbar, but did not update the test to pass it in. Switching to use the useTranslate hook will avoid this issue.

I will go ahead and fix the tests for this. Right now its based on the label/tooltip for querying those buttons, which is not translated and translations are mocked out in tests. I will need to make some adjustments to have them not rely on the translated strings.

Thanks for making these changes!

Thanks, I really have not have enough overview to fix them....
And I'm happy to contribute as long as my skills allow me to :)


fix(security): update dependencies

This PR contains a:

[ ] bugfix
[ ] new feature
[x] code refactor
[ ] test update
[ ] typo fix
[ ] metadata update

Motivation / Use-Case
Currently there are several warnings for outdated libraries. These block further changes. See https://david-dm.org/webpack-contrib/jshint-loader
Breaking Changes
No breaking changes.
Additional Info
Unfortunately the handling of paths had to be changed, as the updated version of rcloader handles merging differently and would return objects containing the characters of the path otherwise ({ '0': 't', '1': 'e', '2': 's', '3': 't', '4': '/', '5': 'f', '6': 'i', '7': 'x', '8': 't', '9': 'u', '10': 'r', '11': 'e', '12': 's', '13': '/', ... }).

This looks like it should be good to merge. Any reason why there is a 6 month delay?


[stable/nginx-ingress] allow nodePort for tcp/udp services (#11917)

What this PR does / why we need it:
The changes in this PR allow specifying explicit nodePort values for TCP and UDP services, instead of them being randomly assigned.
The values can be configured as follows:
controller:
  service:
    type: NodePort
    nodePorts:
      tcp:
        9000: 30090 # the key references the entry in the map of TCP services
tcp:
  9000: "default/example-go:8080"

I chose this way of configuring (instead of putting it below the tcp key) as this was the only solution I could come up with that does not introduce breaking changes.
The service generated by the configuration above would look like this:
# Source: nginx-ingress/templates/controller-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-ingress
    chart: nginx-ingress-1.7.0
    component: "controller"
    heritage: Tiller
    release: test
  name: test-nginx-ingress-controller
spec:
  clusterIP: ""
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: https
    - name: "9000-tcp"
      port: 9000
      protocol: TCP
      targetPort: "9000-tcp"
      nodePort: 30090
  selector:
    app: nginx-ingress
    component: "controller"
    release: test
  type: "NodePort"

Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #11917

Special notes for your reviewer:
If you agree with the general approach (e.g. the configuration structure) I will update the README.md, bump the Chart version, etc.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

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

/assign @mgoodness

/assign
/ok-to-test
You will need to bump the chart version for linting to pass. Otherwise this looks good to me.

You will need to bump the chart version for linting to pass. Otherwise this looks good to me.

Should I bump the minor or patch version? No breaking change but also includes a new feature...

Should I bump the minor or patch version? No breaking change but also includes a new feature...
Minor version bump please :)

/lgtm
Thanks!

Just to be clear, this now requires that a nodePort be assigned, correct? i.e., you don't have the option to let the port be randomly assigned, it must explicitly assigned?
Because now unless I uncomment the service.nodePorts... section here, I get the error below
controller:
  replicaCount: 2
  # service:
  #   nodePorts:
  #     tcp:
  #       2222: 30090

tcp:
  2222: "concourse-web/concourse-web-web:2222"

Error: UPGRADE FAILED: render error in "nginx-ingress/templates/controller-service.yaml": template: nginx-ingress/templates/controller-service.yaml:66:13: executing "nginx-ingress/templates/controller-service.yaml" at <index $.Values.controller.service.nodePorts.tcp $key>: error calling index: index of untyped nil

No worries or anything, just trying to make sure I understand.

That is undesired from my perspective and is a bug. Can you make an issue around that for me? I'm going to start working on a bugfix to hopefully quickly patch this up.


ibapi still does not handle incoming messages in time order

but in message property order

actually getInboundMsg returns only oldest msg, so is actually doing its job properly.

While practically the events are handled in time ordered fashion (since only one messages are in the messages object, a vestigial feature), there still remains awkward event handling.

Fixed.


wp makepot theme|plugin . foo.pot doesn't work

$ wp makepot plugin . languages/foo.pot
PHP Warning:  chdir(): No such file or directory (errno 2) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 110

Warning: chdir(): No such file or directory (errno 2) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 110
PHP Warning:  chdir(): No such file or directory (errno 2) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 110

Warning: chdir(): No such file or directory (errno 2) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 110
PHP Warning:  chdir(): No such file or directory (errno 2) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 110

...

Warning: chdir(): File name too long (errno 63) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 110
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 130

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /wp-cli-makepot/src/WordPressCodeExtractor.php on line 130

This should be fixed by 1c6e5b3d807d12b2b4715c5181e2e54dd312d821, see #3.


[Schematics CLI] Numeric strings in schematics options

Command
generate
Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
From http://b/196605664.
Apparently you can't pass in a numeric value into a string argument in schematics. This appears to be interpreted as number and leads to a validation error.
Minimal Reproduction
$ schematics run test --stringValue "1234"
Schematic input does not validate against the Schema: {"stringValue":1234}
Errors:

  Data path ".stringValue" should be string.

Minimist seems to interpret "1234" as a number instead of a string, and schematics treats that as a type mismatch.
Exception or Error
No response
Your Environment
See http://b/196605664.

Anything else relevant?
No response

In schematics CLI we don’t really configure the parser based on the schematics schema.
We could probably port this logic from the Angular CLI. (Maybe have the logic in a shared ts_libraary) when the legacy build system is removed.

Yeah, I know minimist doesn't work that way. We'd probably have to change argument parser to actually declare specific options with specific types based on the schematics schema for the ideal solution. Not sure if there's a simpler fix worth exploring, but it's a relatively minor bug so I'm not too worried.

Just for the record we no longer use minimist. We use yargs-parser.

Also related to https://github.com/angular/angular-cli/issues/16320
We could combine these issues.


posts are sorted by updated time

why not try this so that all posts are sorted by updated time?

now we update a new version, which normal posts are sorted by updated time, and posts which are sticked to top are sorted in ascending order by number. consider try it.


Enhance BulkExport to be able to support multiple resource Types

We need to figure out a way to support multiple resource types inside the javabatch job or we will have to ask the operation codes to send multiple job requests - one for each resource type and then consolidate the results.

After this task, we should only have a single export implementation (or details explaining why there is more than one).
Currently we have a chunked and non-chunked version.  My assumption is that the chunked version is more performant.  However, Albert thinks it may be hard to support multi-resource export using chunked approach.


Can't bind controller trigger axis events (L2, R2) as if buttons (4.0 beta)

Godot version
4.0 beta (<=17)
System information
Arch Linux
Issue description
In godot 3.5, it was possible to bind a trigger (L2 or R2) event to a InputEventJoypadButton. (Through what was button_index 6 and 7) this allowed for watching for a trigger press via InputEvent.is_action_pressed("action") and InputEvent.is_action_released("action")
However, in godot 4 beta (<=17), this functionality has been removed, and you can only bind the triggers as InputEventJoypadMotion (axis 4 and 5). You may still monitor events through  InputEvent.is_action_pressed("action") and InputEvent.is_action_released("action")... However, multiple events will be sent, instead of just one like is done with a button or a key without echo events. This seems to be expected behaviour... (other than that i notice InputEvent.is_action_released("action") is  true while slowly SQUEEZING the trigger, not when releasing it.. the only thing I can think there is that whether an event is being pressed or released is being defined by the axis strength < 0.5 as opposed to the axis strength being changed relative to what it was last it was checked.)
A workaround to this behaviour is to use Input.is_action_just_pressed("action") and Input.is_action_just_pressed("action") instead. However, this is not a complete solution. As this cannot be run inside _input(event: InputEvent) given that it seems the Input singleton is only updated once per process frame I think? Meaning that if you want to handle trigger inputs, and want to allow rebinding of controller inputs... you cannot use the _input(event: InputEvent) function AT ALL, and must watch all of your inputs through the Input Singleton inside of _process()
As I see it, there are two solutions to this problem:

bring back the option to bind (L2 and R2) as InputEventJoypadButton using the same rules they followed in 3.5

change the behaviour of InputEventJoypadMotion.is_action_pressed("action") to check for having just left the defined deadzone and InputEventJoypadMotion.is_action_released("action") to check for having just entered the defined deadzone. Though, I am not sure this would be a desirable change for anyone other than myself, as it would limit the use of InputEvent monitoring through _input(event: InputEvent) in a different way.

Steps to reproduce
I have attached two projects, that try to implement the exact same thing. One is in godot 3.5, while the other uses the 4.0 beta.
You can see the behaviour as it was in 3.5, by using L2 (button 6) which is bound as a InputEventJoypadButton
In the 4.0 beta version L2 is not bound, as I can't find a way to bind it as an InputEventJoypadButton... and as I said above, I suspect that functionality no longer exists. The script tries looking at all button indexes after 15 to see if any of them happen to bind to L2, and none seem to.
In both versions R2 (axis 7 in 3.5, axis 5 in 4.0 beta ) is bound as an InputEventJoypadAxis. This allows looking at an example of the workaround I mention above.
In both you can change from reading input through _input(event: InputEvent) to _process() and back by pressing button 0 (x on a sony controller)
A parity count is kept based on the number of times a button presses or releases for testing purposes, and each project will print the count along with some other information every time the trigger is pressed or released.
Minimal reproduction project
triggers_3_5.zip
triggers_4_beta_17.zip

I see no reason to abandon L2 and R2 button bindings. I use them in my game!
FYI: DUALSHOCK™4 wireless controller

I came across this problem while porting my input profiler to Godot 4. I'm sure a workaround can be done by having a custom parser that checks if a trigger is fully pressed or not, and sends a InputEventJoypadMotion or InputEventJoypadButton respectively through different actions. However, I definitely should not have to go out of my way to manually parse inputs just because one rebindable input is now removed. Either this is an unexpectedly weird known change, or this needs to get fixed.
For the time being, I'm sure it'll be fine for the majority of projects to go without a trigger click, but to have the option is greatly appreciated.
I'm using an XBOX XInput controller, and as of Godot 3.4.1 stable (the original project the profiler came from), the trigger clicks worked as intended.

@Nathan-R-Og Ya, you could write your own input system that you would use ontop of Godot's action system just for 2 buttons... but I think that is a little bit much to be expected as I wouldn't really consider that a solution so much as a reliable way to create bugs. Even if your wrapper works perfectly, you need to wrap inputs in every single location that you want to handle inputs. It might be more reasonable if you could place your wrapper directly in the way when the engine needs to call the _input or _unhandled_input methods. Which I am sure could be done with an extension of the engine... but this is kind of ridiculous.
I will readily admit that this issue in particular has been a real thorn in my side. Writing the logic for controller rebinding and only getting to use the Input singleton everywhere I need inputs has not been a good time. For my purposes, the _input and _unhandled_input functions may as well not exist... despite them just being the better option from a code organization standpoint imo.

@KoBeWi is this really a discussion rather than regression?
I just ran into this surprising bug myself, and one thing that makes it extra troublesome is that for some cases it will mostly seem to work. It does trigger is_action_pressed in _unhandled_input, but it triggers it multiple times and in surprising orders. The only reason I went hunting for a bug in github is because my binding to a "regular" button was working as expected, and only activating the same behaviors with triggers was breaking in weird ways.

If anyone else is looking for a workaround, I've added this as an autoload to re-create the Godot 3.5 behavior in my game. Set up empty input maps (in this case, "use" and "dash"). Then set up input maps that map to the triggers ("use_trigger", "dash_trigger"). Then this will map the trigger actions to the correct input events:
extends Node

func _process(delta: float) -> void:
	if _fix_trigger_action("use_trigger", "use"): return
	if _fix_trigger_action("dash_trigger", "dash"): return
        # ...plus any other inputs you need to fix

func _fix_trigger_action(trigger_action: String, action: String) -> bool:
	if Input.is_action_just_pressed(trigger_action):
		_simulate_action(action, true)
		return true
	if Input.is_action_just_released(trigger_action):
		_simulate_action(action, false)
		return true
	return false

func _simulate_action(action: String, pressed: bool) -> void:
	var event = InputEventAction.new()
	event.action = action
	event.pressed = pressed
	Input.parse_input_event(event)

As I said, since triggers are now axes (which is more correct, because they aren't boolean input), they work as such and need to be handled differently. Left/right stick actions will yield same/similar results in _unhandled_input(), because axis input is like that. The solution is not using third-party addons but adjusting the code. This works perfectly fine:
func _process(delta):
    if Input.is_action_just_pressed("L2"):
        print("trigger pressed")

How do you propose this should be fixed? Triggers can't send both Button and Axis events, because it would be inconsistent.

From the Godot docs:

Thanks to Godot's input action system, Godot makes it possible to support both keyboard and controller input without having to write separate code paths.

More from the Godot docs:

Once you've defined your actions, you can process them in your scripts using is_action_pressed() and is_action_released() by passing the name of the action you're looking for
func _input(event):
if event.is_action_pressed("my_action"):
print("my_action occurred!")

Dropping support for triggers as discrete inputs for actions breaks that promise. It's no longer possible to say: "space is shoot and trigger is shoot, so map both of those to the 'shoot' action and then handle that action in _input as described in the Godot docs." That would work in Godot 3, but not in 4.
While I understand the argument of "it's more pure" and "it's technically correct," one of the selling points of Godot so far has been that you don't need extra code to handle the most common types of input, and you can even support the most-common cases of keyboard + controller support universally. This departure from that behavior breaks that promise, and breaks that universality.

How do you propose this should be fixed? Triggers can't send both Button and Axis events, because it would be inconsistent.

The original poster of this issue proposed two valid paths.
But that's just my opinion as a user, and of course I can't expect you to agree with me. However, I would ask for clear communication: if the project is set on not supporting trigger buttons as universal inputs, would you please make that clear and close this issue? Then instead of adding one-off workarounds to every Godot 4 project, users like me can build the library that will be needed to bridge the gap - something similar to this - and move on.

The fact that triggers are axes is not going to change (aside from the reasoning above, it would also break compatibility with the previous 4.x versions). We need to think of some solution to resolve this issue. The suggestions here will be considered, but the actual solution might differ.

@KoBeWi I think I mostly agree with hunter on this one. The way the triggers are treated for the purposes of InputEvent.IsActionPressed("action") don't make any sense to me, so much so that I thought I just didn't understand some method behind the madness, and didn't want to suggest to strongly about changing the behaviour in case someone understood something I didn't and I broke a bunch of people's projects who were relying on the seemingly arcane behaviour. In fact they make so little sense I see now that I failed to describe the utter confusion I had when I came across this behavour. That was the purpose of the parity counter in the provided projects. Holding the trigger the right way can easily get you dozens of press actions and zero release actions... or vice versa.
As per above, I am actually much more in favour of InputEvent.IsActionPressed("action") being only true when the deadzone has just been left. Not doing this could be considered okay by me only if some kind of reasoning can be given behind the behaviour as is... additionally that behaviour should be well documented so that people actually know what it does and why. If that doesn't happen, people are going to do what I did when I posted this issue (trying to use it assuming what I suggested in option 2 of the original post was the behaviour) and then be utterly perplexed as to what is going on when they rebind something to it and find it utterly broken by that behaviour... when the action they had bound by default worked fine despite the strange behaviour. The alternate option of "no you cannot press an axis" also seems fine to me, if no reason for the behaviour can be given, and a different method is used to tackle this issue as you suggested by "the actual solution may differ".
Also...
@hunterloftis That code snippet is an unreasonably KISS solution, and I am salty I didn't think of it and  worked around it in a hugely verbose way instead. I need to up my godot-fu! I will note though... If I am reading it correctly, I think that will only fix one button per frame. If you press both triggers during the same frame, I don't think your solution will work as intended. It will only fix your "use_trigger" in that case. Which may be fine for your game, but it is something to consider if you run into a bug with your "dash_trigger" not registering in the future.
Also, thank you for making a stink and bringing attention to this issue!

@the-eclectic-dyslexic good catch, those early returns that I thought were optimizations were subtle bugs! Fixed, thank you.
I had to check whether or not pressed and released can both fire during the same frame, or if Godot queues them or something, and learned that until recently they could not:
https://github.com/godotengine/godot/pull/77055

I guess I might as well throw my hat into the ring again; For my profiler, I use exclusively InputEvent objects, so that they may be stored to actions and any amount of actions.
I'd rather not make an entirely separate action for trigger clicks, as that more or less defeats the point of using actions as game-oriented control handlers. Every profile would need to have an added action to accommodate, and I don't think it's worth it.
As for triggers being axes instead of button presses, that makes total sense! The axis give plenty more range and are (probably) way more versatile. I just wonder, what's stopping us from having both?
It was mentioned that the left and right analog sticks also have this changed, but this doesn't seem to be the case.
In my profiler, I was able to detect if it was a valid analog-direction-flick with a threshold, and the stick click still works just as fine. Most of the time (unless you need INCREDIBLY precise data), you can just make a direction vector out of Input.get_vector(action_left,action_right,action_up,action_down) anyways.
Those are just my two cents anyhow.

Triggers can't send both Button and Axis events, because it would be inconsistent.

Imagine you have a function to let the player configure what button they would like to use for certain actions (which is not uncommon nowadays, especially with games that does not need to treat L2 and R2 as axis), and if you want to support having L2 and R2 be able to set in this scenario, you have to use Input.is_action_just_pressed() everywhere in contrast with the tutorial or the documents, where event.is_action_pressed() inside _unhandled_input(event) is used elsewhere. This in my opinion is the true inconsistency imposed by this issue.

@Nathan-R-Og I have seen this issue with the analog stick as well. I was trying to implement a "double tap to run" feature and my character was sometimes running with a single tap. My workaround was to wait until the deadzone reaches an even lower point than the threshold before accepting another press:
var analog_actions_pressed := {
	"move_left_analog" = false,
	"move_right_analog" = false,
	"move_up_analog" = false,
	"move_down_analog" = false
}

func _unhandled_input(event: InputEvent):
	for analog_action in analog_actions_pressed.keys():
		if event.is_action_pressed(analog_action) && !analog_actions_pressed[analog_action]:
			analog_actions_pressed[analog_action] = true
			# handler code goes here
		elif Input.get_action_raw_strength(analog_action) < 0.1:
			analog_actions_pressed[analog_action] = false

Could something like this be implemented as a back end solution?


System admin: Navigation and menus not very self-explaining, sometimes pretty confusing

As I prepared the tests, I struggled through the menus numberous times, always searching for the same parts of the system admin user interface:
A system admin has 2 main tasks: Manage Users and manage Projects.
The navigation to both of these tasks should be very prominently on the Welcome page.
The menu to the user administration is at the moment in the personal button (round button on the top right) in a menu point "System". I would never look there for the User management. When I click there, the windows displays a new view that can be toggled between "All projects" and "All Users". I think this should be, how the login welcome page should look like. (see image).
In the "All User" part, I can add new users and new System admins and add users to a project. But I cannot set the role "project admisitrator" which is very confusing. I would suggest to have 3 options on this page instead of hiding the project management role setting in the individual project page. This way the main administration interface would allow to toggle through: "All Projects", "All Users" and "Project - User Collaboration". This new toggle option is menat as the main position, where all Project - User connections (Project admin and project member) are set.
Screenshots

Desktop (please complete the following information):

OS: Windows 10 Pro N, 1903 - 18362.418

Browser Google Chrome, 78.0.3904.87

Version Knora App, 1.6.2

this issue has been moved to YouTrack: DSP-328


Hanging during Docker webpack build

I'm attempting to setup Superset on an AWS t3.micro instance. When running:
cd incubator-superset/contrib/docker && \
  docker-compose run --rm superset ./docker-init.sh

The command hangs during the webpack build phase.
Expected results
The build will complete.
Actual results
The command hangs with the following output:
# ...
 > https://www.justgiving.com/refugee-support-europe

added 2514 packages in 31.406s

><EMAIL_ADDRESS>build /home/superset/superset/assets
> NODE_ENV=production webpack --mode=production --colors --progress

clean-webpack-plugin: /home/superset/superset/assets/dist has been removed.
Starting type checking service...
Using 1 worker with 2048MB memory limit
 90% chunk assets processing

Screenshots
N/A
How to reproduce the bug

Clone repository
Run: cd incubator-superset/contrib/docker
Run: docker-compose run --rm superset ./docker-init.sh
See hanging build.

Environment
(please complete the following information):

OS: Ubuntu Xenial 16.04
superset version: master
python version: n/a
node.js version: n/a
npm version: n/a

Checklist
Make sure these boxes are checked before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Hi @jonlambert :) I got the very same issue building an image with docker, how did you solved it? Did you changed something in the Dockerfile or the docker-compose.yml?

Hi, to whomsoever it may help, I was able to get it working after increasing the total runtime memory available to docker from 2GB to 4GB.
Reference: https://docs.docker.com/docker-for-mac/

Hi, to whomsoever it may help, I was able to get it working after increasing the total runtime memory available to docker from 2GB to 4GB.

Yes, this did it for me.  Thanks!!!


Check fails to locate pack files on version 0.12

Output of restic version
restic 0.12.0 compiled with go1.15.8 on windows/amd64
restic 0.12.0 compiled with go1.15.8 on darwin/amd64
How did you run restic exactly?
.\restic_0.12.0_windows_amd64.exe -r Z:\backup\restic\ check
./restic_0.12.0_darwin_amd64 -r /Volumes/hdd/backup/restic check
What backend/server/service did you use to store the repository?
Samba drive
Expected behavior
Check operation is completed without any error just like on version 0.11
Actual behavior
On Windows:
PS C:\Users\fatih\Desktop> .\restic_0.12.0_windows_amd64.exe -r Z:\backup\restic\ check
using temporary cache in C:\Users\fatih\AppData\Local\Temp\restic-check-cache-390842343
repository 1bd5819f opened successfully, password is correct
created new cache in C:\Users\fatih\AppData\Local\Temp\restic-check-cache-390842343
create exclusive lock for repository
load indexes
check all packs
pack cfa94e86: does not exist
pack c39ba9e1: does not exist
pack 12f71a4d: does not exist
pack a74ed5ce: does not exist
On Mac:
fatih@macbook Downloads % ./restic_0.12.0_darwin_amd64 -r /Volumes/hdd/backup/restic check
using temporary cache in /var/folders/s_/r753tsg13qn0mt93cr4ws4m40000gq/T/restic-check-cache-132253333
repository 1bd5819f opened successfully, password is correct
created new cache in /var/folders/s_/r753tsg13qn0mt93cr4ws4m40000gq/T/restic-check-cache-132253333
create exclusive lock for repository
load indexes
check all packs
List(data) returned error, retrying after 552.330144ms: fdopendir: not a directory
List(data) returned error, retrying after 1.080381816s: fdopendir: not a directory
List(data) returned error, retrying after 1.31013006s: fdopendir: not a directory
List(data) returned error, retrying after 1.582392691s: fdopendir: not a directory
Steps to reproduce the behavior
I cannot find any way to reproduce the error. I'll describe the all events.
I have a restic repository on my Raspberry Pi which I access from Windows as Samba drive on Z:\backup\restic. I backup my Windows PC daily on this repo.
Today I decided to backup my Macbook to the same repository, and mounted the samba as /Volumes/hdd/backup/restic.
Later today I noticed that my repository gives error on Windows because it cannot find some files.  Then I run rebuild-index and it deleted all indices and kept a single 1KB index file, while data directory is over 50GB.
I could not recover my repository and deleted all the repository, and created a new repository from windows on the same location and waited cron jobs to run and backup from Mac and Windows.
After cron jobs run, I run check command from windows and it gives error about missing pack files. However, these pack files are not missing.
Then I run check command from Mac and it to raise some errors saying "fdopendir: not a directory".
Then I run check command from Raspberry Pi, which has "restic 0.9.4 compiled with go1.11.5 on linux/arm", directly, and it says "no errors were found".
Then I downloaded 0.11 version on both Windows and Mac, and they too says "no errors were found".
I created a second repository to reproduce the error, but I cannot reproduce the error. This new repository passes check on 0.12 on both mac and windows.
Summary:
I have a repository on Samba drive.
Version 0.12 on Mac and Windows fails to check this repository.
Mac says "List(data) returned error, retrying after 552.330144ms: fdopendir: not a directory"
Windows says:"pack cfa94e86: does not exist", even though pack file exists
Version 0.11 on Mac and Windows successfully checks the same repository.

I created local config from rclone
[loc]
type = local

And run  .\restic_0.12.0_windows_amd64.exe -r rclone:loc:Z:\backup\restic check
It completed without any error.
 .\restic_0.12.0_windows_amd64.exe -r Z:\backup\restic check continues to report missing  pack files incorrectly.

restic_copy.zip
I uploaded the repository. You don't need to run it on samba drive.  You can see the commands I run on README file inside the archive.

The fdopendir error has already been fixed by #3308. And my guess would be that it also fixes the problem on windows. Could you try whether a beta build of restic from https://beta.restic.net/?sort=time&order=desc fixes the issue?

I tried restic_v0.12.0-122-g58be5172_windows_amd64.exe and the problem is fixed.


[Backport] pac4j: fix incompatible dependencies + authorization regression

Backport of #15753 to 29.0.0.

code coverage IT failures in original PR as well.


[webapi] Sync latest csswg tests for 2dtransforms

Failure analysis:
https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration
says it returns null for Shorthand propertie, and in fact it is in firefox browser.
But when i run these cases on Chrome browser and Crosswalk project, it can't recognize
'document.getElementById(...).style.getPropertyCSSValue' is a function.
Impacted TCs num(approved): New 0, Update 8, Delete 0
Unit test Platform: Crosswalk Project for Android 15.44.382.0
Unit test result summary: Pass 3, Fail 5, Blocked 0

Unit test result summary: Pass 3, Fail 5, Blocked 0

Caused by vendor prefix?

No,  Chrome 36+ has been UnPrefixed CSS Transforms https://www.chromestatus.com/features/6437640580628480

In latest w3c spec: https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface, the function getPropertyCSSValue has been removed.


[BUG]: Page is'nt aligned properly after clicking on the movie

[x] Would you like to take up this task?
[x] Are you from GSSoC'23?

🐛
Bug report

Describe the bug
After clicking the movie card, the Recommended movies are coming on to the movie's description part and on to the play button

Location of the bug
https://scene-movie-platform.vercel.app/movie/Spider-Man: Across the Spider-Verse/569094

Expected behavior
Added proper styling to the page so that both can look good.

Screenshots (if any)

Screenshot 1 (if any)

Hey @sourabhsikarwar, I can fix this and if it can be made better I'll let you know about that. Assign me this issue.
THANK YOU!


Improve arc-green code theme (#21039)

Backport #21039

Increase contrasts overall
Add various missing theme classes
Ensure strings and constants are colored the same across languages

Before:

After:

?
Why are you targeting main?

Now I'm even more confused…

 Now I'm even more confused…

I just want to help to change the base branch but found I cannot so I revert my change. Maybe @silverwind could rebase himself.

fixed ;)

Thanks for the branch fixes, looks good now I think.


Fix mpf_assert_allclose to handle iterable results, such as maps

In Python 3, the result of operating on an iterator can be another iterator
instead of a list.  When mpf_assert_allclose tries to get the length of this
object, it fails.  The patch tries to determine the object's length, and if
that fails converts to list explicitly.
(This was caught by a failure in the test suite: scipy/special/tests/test_precompute_gammainc.py:test_alpha)

cc @person142


Ensure SRF livestreams are seen as livestreams without DVR

As an SRF app user I don't want the slider to move erratically when playing a livstream.
Acceptance criteria

The slider is fixed and cannot be moved in the case of the SRF 1 demo example.

Tasks

[ ] Check if SRF 1 and similar streams are packaged correctly (@pyby probably knows more).
[ ] If possible report to the stream team so that this can be fixed.
[ ] Otherwise restore the DVR window threshold parameter.
[ ] Verify that "keep to live behavior" preventing livestreams from being played in the past works for these streams.
[ ] Check and decide whether we still should apply the same tolerance for the timeshift offset reported in analytics, as we did in SRG Analytics.

Hint

Pillarbox Android already implemented support for an isSeekable Boolean applied to livestreams only.

I contacted SwissTXT to know whether something might have changed on Azure side. We should wait for their answer before moving forward with the implementation.

Answer from @ srgpenz:

Azure has not changed that specific behavior. The minimum filter that we are able to set for nodvr is still 60 seconds.  However many chunks fit into this filter depends on the chunk size and since we use 6 seconds, we have 9 in there (probably 1 falls our because it hits the edge.

So our client-side threshold is still required.

SRF will enable DVR for all livestreams soon. Maybe RSI could do the same? If yes then this task would not be required anymore (and we should likely not implement it as it is a client-side mitigation for a distribution issue).

As discussed with @waliid today it probably makes sense not to address this issue for the moment. Let us wait until somebody complains, we might gain some leverage in getting a fix.
Moreover we will never be able to restrict the window in all cases. For example an AirPlay receiver will always display the small window, no matter how we lie at the player level.

I gave this issue a little bit more thought and I think we should definitely not do it, for the following reasons:

As said above we would lie about the real window, which does not work over AirPlay or with the Apple standard UI anyway (most notably on tvOS).
An app can always rely on external metadata, e.g. knowledge about the stream type, to hide the progress bar instead. A universal player like Pillarbox should not attempt to fix poor packaging.

Azure packaging will be discontinued next year. No need to address this issue anymore.


CLI required for build pipeline automation

Command Line Interface krakend plugin validation required when using build pipelines. It will be useful for everyone to have a CLI.

the service offers a public API. just post your go.sum to https://plugin-tools.krakend.io/api/versions/:krakend_version/:go_version and you'll get your deps validated.
notice the endpoint returns the list of incompatibilities, so getting an empty array means that everything is ok
$ curl -i -d @/path/to/your/go.sum http://plugin-tools.krakend.io/api/versions/v1.3.0/1.15.8
HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Cloud-Trace-Context: be08bc559e7bf2d242fa3c5e06e33237;o=1
Date: Wed, 03 Mar 2021 19:04:09 GMT
Server: Google Frontend
Content-Length: 2

[]

cheers!


Building the tree-sitter binaries for the conda package

Comment:
If I understand correctly, the purpose of the py-tree-sitter-languages package is to provide pre-compiled binaries for a bunch of individual languages. The pypi package uses a build.py script in CI which compiles these. This conda package does not seem to build these binaries and just mirrors the sdist which - for this particular package - defeats its purpose, right? I think this causes https://github.com/tconbeer/harlequin/issues/409.  If this is the case, let's also build the binaries here in conda-forge to provide a functioning conda-installable package. I'd be happy to help if you need me to. Would we do this through a build.sh script or is there also some kind of way to mirror bdist packages from pypi?

@moritzwilksch maybe we can let @conda-forge/core chime in what the correct protocol here for building additional binaries and including in the final output?

Yes, call the build.py in build.sh

Is the strategy here building two outputs? Or sticking with just one? @moritzwilksch if you want to get a head start forking this repo and working on the new recipe please by all means

@moritzwilksch Do you need any support here or do you know where to start?

Haven't had the time to start this yet since it's not super urgent for me. Feel free to implement this if you need it asap, otherwise I might get to it on the weekend.

Not needed on my side, I would rather see you gather some experience here :)

@moritzwilksch @xhochy any progress on this? I'll leave the version bumps unmerged until we figure this out


Change 2.1-oob build to be feature flag of 2.2 branch

This is required for mono-repo efforts.

https://dnceng.visualstudio.com/internal/internal Team/_build?definitionId=190&_a=summary


CLIENT_MISSING_INTENTS

my node version is v.16.17.0

turn the intents on

turn the intents on

how


Depend on main REL and get tests to pass [do not merge]

I'm opening this PR to keep track of the progress to refactor crel so that it can be integrated into rel.
What I have done:

Depend on main branch of REL (get rid of submodule)
Convert jupyter notebook to tests
Make the package installable and get rid of hardcoded paths
Allow paths to data to be specified by user

Implementation in REL based off this branch: https://github.com/informagi/REL/pull/144


feat(capacitor): Added capacitor files to bch-wallet-starter

PR related to this trello task --> https://trello.com/c/lGwW9tUP

:tada: This PR is included in version 1.7.0 :tada:
Your semantic-release bot :package::rocket: