unet.c unetsocket_receive() does not necessarily return NULL if a datagram is unavailable.

So, I have been working on trying to provide an example based on rxdata.c which uses unetstocket_receive with a timeout on a loop. Referencing the documentation, it is clear that the intention is that we should free fjage messages after consuming them, and it is also clear from unet.h that unetsocket_receive() is intended to return NULL if no datagram is available.
However, running the minimal working example below, it is clear that unetsocket_receive() does not necessarily return NULL on a timeout condition, neither is it set to NULL in the case of fjage_msg_destroy().
The result is that, in the first loop which happens after a message has already been received, the message variable 'ntf' is not set to NULL, and instead, the fjage method to retrieve the class returns an empty character array, and the program crashes due to a double free error.

In the screenshot, you can also see an issue related to #85 where the program receives an RxFrameNtf. I have disabled the printing of data from RxFrameNtf in the MWE, because under some conditions the misinterpretation of the data can cause a segfault.
I have some ideas on how to fix this inside of *monitor(), but wanted to ask for your input before attempting to make a PR or putting much serious work into it.
I have provided a minimal working example based on rxdata.c below:
///////////////////////////////////////////////////////////////////////////////
//
// Receive data.
//
// In terminal window (an example):
//
// $ make samples
// $ ./rxdata <ip_address> <port>
//
////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../unet.h"

#ifndef _WIN32
#include <unistd.h>
#include <netdb.h>
#include <sys/time.h>
#endif

#define NBYTES 9

static int error(const char *msg)
{
    printf("\n*** ERROR: %s\n\n", msg);
    return -1;
}

int main(int argc, char *argv[])
{
    unetsocket_t sock;

    uint8_t data[NBYTES];
    int port = 1100;
    int rv;
    if (argc <= 2)
    {
        error("Usage : rxdata <ip_address> <port>\n"
              "ip_address: IP address of the receiver modem. \n"
              "port: port number of the receiver modem \n"
              "A usage example: \n"
              "rxdata <IP_ADDRESS> 1100\n");
        return -1;
    }
    else
    {
        port = (int)strtol(argv[2], NULL, 10);
    }

#ifndef _WIN32
    // Check valid ip address
    struct hostent *server = gethostbyname(argv[1]);
    if (server == NULL)
    {
        error("Enter a valid ip addreess\n");
        return -1;
    }
#endif

    // Open a unet socket connection to modem
    printf("Connecting to %s:%d\n", argv[1], port);
    sock = unetsocket_open(argv[1], port);
    if (sock == NULL)
        return error("Couldn't open unet socket");

    // Bind to protocol DATA
    rv = unetsocket_bind(sock, DATA);

    if (rv != 0)
        return error("Error binding socket");

    // Set a timeout of 10 seconds
    unetsocket_set_timeout(sock, 2000);

    // Receive and display data
    printf("Waiting for a Datagram\n");

    while (true)
    {
        fjage_msg_t ntf;

        ntf = unetsocket_receive(sock);
        if (ntf != NULL && fjage_msg_get_clazz(ntf) != NULL)
        {
            printf("Received a %s : [", fjage_msg_get_clazz(ntf));

            if (strcmp(fjage_msg_get_clazz(ntf), "org.arl.unet.DatagramNtf") == 0)
            {
                fjage_msg_get_byte_array(ntf, "data", data, NBYTES);
                for (int i = 0; i < 9; i++)
                {
                    printf("%d,", data[i]);
                }
                printf("]\n");
            }
            else
            {
                printf("]\n");
            }

            fjage_msg_destroy(ntf);
            if (ntf != NULL)
            {
                printf("NTF NOT NULL!\n");
            }
        }
        else
        {
            // fjage_msg_destroy(ntf);
            error("Error receiving data");
        }
    }

    // sleep(2);
    // Close the unet socket
    unetsocket_close(sock);
    printf("Reception Complete\n");
    return 0;
}

Thanks,
Brodie Alexander

Thanks @brodiealexander .
Do you think it's related to https://github.com/org-arl/fjage/pull/264 ?
If so we can try to fix both together. As per the discussion in the PR we might need to break the API so better to break it once together for both the APIs.

Ooops. I misread the description. This seems to be a bug in unet.c. Specifically the monitor method.

Sorry for the late reply. While not directly related, it is a similar pattern to the problem present in unet.c. Locally, I solved this issue successfully by returning a specific known value from monitor back to unetsocket_receive so that it knows an error has occurred and returns NULL instead of a null pointer. To me, this seems like it would fix the issue without breaking the way the API currently works, since users cannot directly access this data structure.
If you would like, I can try to clean up what I have a bit and submit it as a request for comment. In this case, I would also try to add some more rigorous test cases to validate that it is working as anticipated.

Thanks @brodiealexander . I had a chance to take a quick look and it seems that usock->ntf needs to be unset at the beginning of the monitor. Do you think that would fix it?
At a higher level, I'm wondering why we spawn a thread to run monitor and wait for it to join back instead of doing the fjage_receive_any on the caller's thread. It'll also block similarly to what we do now. Maybe @prasadtiru might have an idea why we decided to go with that approach.

OK. I figured it out. We move the UnetStack C API from the older design :  https://github.com/org-arl/unet-contrib/blob/5529cc67beafe69443f780154560da9be297c099/unetsocket/c/unet.c to the new design which is similar to a socket API.
The older design had an async API :
int modem_set_rx_callback(modem_t modem, modem_rxcb_t callback)
int modem_set_tx_callback(modem_t modem, modem_txcb_t callback)
``

That needed a background thread to catch messages and call the appropriate callbacks.

The move to the socket-style API was done in order to move the threading control to the user so that API consumer won't be locked into this style of threaded design. In the socket style API, the `_receive` and `_request` style APIs will block (until their timeouts) and the user will have to spin up threads to be able to `send`, while there's already a pending `receive`.

So we shouldn't have any need for any of the threading code anymore. I'll raise a PR to clean that up and also fix this error 👆🏾while doing that.

@brodiealexander Can you see if these fixes on this branch () fix the issues you're seeing? https://github.com/org-arl/unet-contrib/tree/csocket-fix

Sorry for the delay, we just got back from spring break here. This branch solves our issue!


Make use of config files instead of env

Is your feature request related to a problem?
Loading an env-file into a docker container makes the values in the env file available to the whole container and they can be seen via docker inspect from the host. This isn't a suitable place to store a password, such as MAIL_PASS if we wanted to move the mail server configuration out of the database (which I do)
Describe the feature you'd like
We should allow a config file to be specified at runtime, loading a default if there isn't one specified. Then all the actual config options should go into this config file. See https://flask.palletsprojects.com/en/1.1.x/config/#configuring-from-files for more details.
Have you considered alternative ways to get this feature
We could bind mount the .env file into the root of the application /opt/natlas/natlas-server and it would work the same as it does now, but this .env file is hard coded which makes it harder to pass different configs for different reasons. It's entirely possible to just stay with the .env method that we have now and deal with the challenges it presents.
Additional context
12factor says to store configuration in env, but docker inspect says that environment is not a suitable place for secrets. If we have to move secrets out of environment, we might as well move the entire config out of environment so that we can make use of config files for dev/staging/prod/whatever.

Flask's config file support kinda sucks out of the box. It supports reading from python files and from json files, but in either it only accepts the configs which have ALL_CAPS keys. It also uses the CAPS_UNDERSCORE_FORMAT to "namespace" the various config options.
I do not like this, generally speaking. We'll probably need to write our own config file parser using some other config libraries in python and convert the values into flask-compatible formats (probably just via a .upper()).
toml is an option, as is stdlib's ini style parser


Update the component in OWNERS file

Updates the component entry to match Jira[1] instead of the old Bugzilla component and subcomponent.
[1] https://issues.redhat.com/issues/?jql=project %3D OCPBUGS AND component %3D "Cloud Compute %2F Cloud Controller Manager"

/retest

/retest-required

Closing as per comments in https://github.com/openshift/machine-api-provider-nutanix/pull/36#issuecomment-1405724860


Terraform definitions to create Kubernetes cluster in different infrastructure

Use Terraform to create infrastructure on different providers with a click.
Requirements:

Terraform definition to create the Kubernetes cluster of all SATP infrastructure (gateway, databases, UI) in different providers
Providers must include at least local and Google Cloud (should be easy to extend).

hi

hi

TBD later


Move FilteredPersonListChangedEvent from UI to Model

It was wrongly placed in the UI folder instead of the Model Folder

Coverage remained the same at 92.233% when pulling c321334e1bfb67fdeb7618580e840751d2b4b88a on lincredibleJC:feature/ShiftFilteredListChangedEvent into 9b71812b3f667acd95305101d35c96b951375556 on CS2103AUG2017-T16-B2:master.

Changes Unknown when pulling 8cdafaa78b9004679d8825751389ff465d036247 on lincredibleJC:feature/ShiftFilteredListChangedEvent into ** on CS2103AUG2017-T16-B2:master**.


refactor: consider multiple emission rates per incentive records

There is one optimization that I'm thinking about.
Currently, we create an incentive record for every coin in gauge.
Instead, we could have one incentive record for all coins in gauge if we were to introduce multiple emission rates per incentive record.
I will make an issue to track this. Don't think this is launch blocking though
Originally posted by @p0mvn in https://github.com/osmosis-labs/osmosis/pull/5496#discussion_r1230397721

Yeah that's how I see this change as well. Would be valuable to have but don't want to risk it at this stage. We can revisit once we're stable with all of the other fronts


Feature: Checking multiple hash files; single instance.

I wish to request the ability to combine or reuse the same hash checking window when checking multiple .hash files, so that several / hundreds of new windows aren't spawned.
Example:  I have a filename.ext.sha512 hash for every file that's larger than 500 MB on a certain harddrive.  If I were to shell execute a hundred of these .sha512 files, it would spawn a hundred hash check processes and windows.  Instead, the same process and window should be reused for all hundred files, adding each to the list of files to be checked.  Optionally also removing duplicate entries in case the same file is opened twice.

Bump.  Again, would like to select multiple hash files, select open, have a single instance of HashCheck combine queue all operations into a single list in series, instead of it opening 500 separate instances of HashCheck all running in parallel.

Latest commit on Sep 7, 2016
Have you tried HashMyFiles by NirSoft?
https://www.nirsoft.net/utils/hash_my_files.html

@aure2006 But my request pertains to opening and verifying hashes that I have saved to many different files.  Instead of opening and verifying them one at a time, I asked if HashCheck would verify all of them at the same time.
HashMyFiles doesn't even have a verify option.  It only generates hashes and performs no comparison to saved values.

If it simplifies things, I would expand my request to allow selecting multiple .hash files and having them concatenated into one large .hash file, with all the necessary relative / absolute paths appended to each hash dependent on the destination file save path.


Unable to change namespace

What steps did you take and what happened:
Deploy a HelmChartProxy and then change the namespace value.  The install gets deleted from the current namespace, but it doesn't get reinstalled to the new namespace.
I found this in the logs:
E0319 23:30:02.231917       1 controller.go:329] "Reconciler error" err="Unable to continue with install: CustomResourceDefinition \"applications.argoproj.io\" in namespace \"\" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key \"meta.helm.sh/release-name\" must equal \"argo-cd-1710890996\": current value is \"argo-cd-1710874729\"; annotation validation error: key \"meta.helm.sh/release-namespace\" must equal \"argocd\": current value is \"default\"" controller="helmreleaseproxy" controllerGroup="addons.cluster.x-k8s.io" controllerKind="HelmReleaseProxy" HelmReleaseProxy="default/argo-cd-argoclustercaaph-wwfjf" namespace="default" name="argo-cd-argoclustercaaph-wwfjf" reconcileID="894ea010-a219-450a-9f76-eb4741c8de97"

What did you expect to happen:
At a minimum it would be more clear what is happening.  Ideally, it would just delete the install from the current namespace and install to the new namespace.
Environment:

Cluster API version: 1.14.0
Cluster API Add-on Provider for Helm version:  v0.1.1-alpha.1
Kubernetes version: (use kubectl version): docker-desktop K8s 1.29.1

/kind bug

/remove-lifecycle stale
This still seems worthy of fixing IMHO.

/remove-lifecycle stale

I was unable to repro this issue. I did however, reach an error trying to install it based on the HelmChartProxy we used, and by fixing the values, I got it to successfully install and change namespaces as well.
/close


NTR sent to ENVO - source of drinking water

https://github.com/EnvironmentOntology/envo/issues/225

Requested terms added


Wrong url processing

I try to bundle simple tmp.less file
.drop-down-icon {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAABISURBVDhPY2hoaPhPLgZrBgIGUvGoZihOTEzEGrIgcWR1IDGsNqMbgK4RhHFqBmGYAdg0gjBezSCMSyMIE9SMDw91zeThhv8Ami96gQcIp6MAAAAASUVORK5CYII=);
}

In config I add
  meta: {     "tmp": {       deps: [         "tmp.less!less"       ]     }   },
After bundling:
jspm bundle tmp
I get a wrong result for icon url. Instead of original url(data.. I have url(D:\tmp\LessUrl/data...
(function(c){var d=document,a='appendChild',i='styleSheet',s=d.createElement('style');s.type='text/css';d.getElementsByTagName('head')[0][a](s);s[i]?s[i].cssText=c:s[a](d.createTextNode(c));})
(".drop-down-icon {\n  background-image: url(D:\\tmp\\LessUrl/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAABISURBVDhPY2hoaPhPLgZrBgIGUvGoZihOTEzEGrIgcWR1IDGsNqMbgK4RhHFqBmGYAdg0gjBezSCMSyMIE9SMDw91zeThhv8Ami96gQcIp6MAAAAASUVORK5CYII=);\n}\n");

lessPlugin.zip

I investigate my problem deeper and find out workaround (based on error in your code). But I want to fix it correctly. Will you accept a pull request from me to fix the issue?

of course I'd be willing to accept a PR. Please contribute.
I've been dealing with image urls and I thought it was a common lessjs problem.

@MikeVitik is that PR coming? I hate when I have broken urls in my less files.


chore(ci): pin virtualenv version to 20.20.0

Virtualenv dropped support for Python 2.7, so we need to pin this requirement in order to keep creating 2.7 virtualenvs

Awesome find! Should we perhaps make this more general and pin all dependencies?

Awesome find! Should we perhaps make this more general and pin all dependencies?

I'd prefer we not, same as our other packages, we should only set minimum required versions....
in fact for this, we could probably just do virtualenv<=20.20.0 to avoid upgrading someones own version of virtualenv.

IMO we should install riot in its isolated environment as a stand-alone tool (e.g. with pipx) and pin all dependencies. I don't think that we would ever have the need to "inject" riot in other environments.

we just need a changelog entry, otherwise lgtm

Should it be a fix entry? or what kind?

IMO we should install riot in its isolated environment as a stand-alone tool (e.g. with pipx) and pin all dependencies. I don't think that we would ever have the need to "inject" riot in other environments.

We aren't the only users of riot though. so instead would be better to be as open/permissive on dependencies as possible.
If we want we can/should have a pipx/pip-compile lock file for riot where we install it in our CI environment?

@P403n1x87 we can probably handle as a follow-up, since this fix vs changing how riot defines dependencies can be separated. wdyt?

@P403n1x87 we can probably handle as a follow-up, since this fix vs changing how riot defines dependencies can be separated. wdyt?

👍  yep, that's fine by me.


AsyncTask was deprecated in API level R

AsyncTask was deprecated in API level R
Use the standard java.util.concurrent or Kotlin concurrency utilities instead.
(https://developer.android.com/reference/android/os/AsyncTask)
The following classes are subclass of AsyncTask and is affected.
https://github.com/firebase/mlkit-material-android/blob/a85e249467aecc065f6548aa5a898202bbdc8547/app/src/main/java/com/google/firebase/ml/md/kotlin/productsearch/ImageDownloadTask.kt
https://github.com/firebase/mlkit-material-android/blob/841efd9fb8fd321cc117b8b6dd6b45d351938139/app/src/main/java/com/google/firebase/ml/md/java/productsearch/ImageDownloadTask.java

I suggest replacing the ImageDownloadTask class with an Image Loading Library. Glide maybe?

Well, I don't think showing that image is core feature of this sample.
Can consider dropping this image loading.
Anyway, fixed in https://github.com/firebase/mlkit-material-android/pull/40


Ignore query strings for static files (fixes #199)

If static files were requested with query strings (e.g. /static/bootstrap.min.css?12345) their fileType was null.
With --pushstate enabled, this resulted in the getRequestType function returning CONTENT_TYPE instead of STATIC_TYPE which meant the fallback index.html was served instead of the correct static resource.
This fixes #199.

This is fixed in #228! Thank you for looking into this and putting together a fix. Sorry it took so long to review.


chore: export community styles

Contributes to #3979

One thing I did notice is that the styles for the community package are not imported in our storybook. This is technically outside of the scope of #3979 so I think it's fine to address in a follow up PR.

ok cool i'll open up a separate issue and PR


chore(deps): update common-dev-assets digest to d583c56

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
6db9456 -> 36f1bcd

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox. ⚠ Warning: custom changes will be lost.

This PR has been generated by Renovate Bot.

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

GitHub release
v1.9.2

Your semantic-release bot :package::rocket:


Tip

Tip to improve xss app!!!
Open gate of brain with salvia divnorim and read. Different programming language has differnt libs so write this program in different lang if u can.. New ideas can come
Dombased,blind and other xss type should be taken care.. They are essential for making a good app. Learning programming concepts/idea is also good... Like xssniper has option of cookie, some collect data to find info recon and search for xss.. Xsser is good but have lot of options and they just destroy the mood, hang often or dont work. Tamperscript such as encoding and dob.. Encoding script is essential. Even u can learn from sqlmap.similarly other things are to be considwred while developing and improving xss apps.
New modifications
Xss is not in input only its ecerywhere in headers.. Wherever it gets reflected its there.. If u store some data then ther's xss.. Moreover xss maybe in post data and lots..
So develop your app so that it places payload everywhere and test for response.. Create a domain... Play with domain and your app.. Increase security of domain so that certain script only work.. Then use your app test it
HEY ADD FEATURE OF --cookie parameter beacause you cant test in on many web sites and apps like bWAPP ,dvwa.
1)First install bWAPP and goto Reflected XSS page.
2)Then try using the app. It will fail .
3)Use burp to see the request and find cookie parameter
4)Download XSSniper app and using --cookie="cookiedata" you can find xss vulnerability but doesnt work in other app as it doesnt have --cookie feature.Plz make this feature available.
moreover
HEY. FROM HERE REQUEST OF NEW SECOND FEATURE STARTS.
What is the best way of earning money.. Creating a good app(no app shouldnt be sold for money as it will decrease no of users) but.. Since people use this app for bug hunting and if they get xss with this app maybe they donate some amount to app dev.. I too do that..so you will earn much if much people use it and to make people use it u have to continuosly develop. And many others do so create a goood app.. It will be beneficial for both devs and other.. Create --cookie feature to specify cookie --header to specify header and so on.
Make a feature called --file feature from which we can add our custom payload.. Once payload from a line.. Make sure while adding custom payload it detects properly.. Xss can be known by alert(1), prompt(1),console. Log, document. Write etx.. Sometimes console.log is a good payload and triggers xss while app dont show.. Read all python libs, import much increase its uses.. Use bwapp.. Try big..
So make a feature in which when we add custom payload in file and it takes line by line and exec (suppose my payload is ">document.write("alrrt") so most xss app are based on alert and thus this will be rendered as useless payload but manual testing proves it a payload.. So try adding features of console.log, prompy and other payload too.. Remember bWAPP and dvwa is your playground for imprving your app.. Just like sqlmap try to exec xss in usr agent and other agent by reading request.. Just like sqlmap -r requestfilename does all the sqli finding job your app should also do.. Your app should read the request try to exec xss in request like usr agent and other.. You should make your app big.. Learn from other.. Start from small.. Keep on developing.. Also check for false positives too in your playground.. Use a xss list from file and create tamper script too like sqlmap.. Waf filter so create a feature in which it takes a single line from a txt file use it as payload and apply tamper script if specified such as RaNDomcASe etc. I m your huge fan of good xss app and. Many people like me donate large money to maker of app from which i get bounty.. So develop properly. Think freely. Give options not many.. Automate things not much.. Improve your app ok.make XSS FOR SWF FILES TOO. And images too. Embeding feature

This account is spamming many different XSS projects on GitHub with their nonsense. Hopefully GitHub will ban them shortly.


Support s3 configuration as first class citizens

Rebases #137 from master.

In #136 I added convection support for CorsConfiguration S3 bucket property. This PR takes it one step further by adding all other configuration resource types to convection.

Lifecycle Configuration
Logging Configuration
Notification Configuration
Replication Configuration
Versioning Configuration
Website Configuration

Marking as do not merge until I add some specs for backwards compatibility.

Marking as do not merge until I add some specs for backwards compatibility.

I've removed the do not merge label. I've created an example repository and validating the changes by using convection from this branch (see the readme in the repository for instructions). The repositories rendered stacks are in the rendered-stacks/ subdirectory.

@bcall-r7 @athompson-r7 @jmanero-r7 @fmitchell-r7 could you guys give this a look? Maybe I should consider breaking this into separate PRs for each configuration resource type.

Closing since you can pass a hash into these methods currently to get equivalent functionality (albeit without the DSL support). We can import these one by one.


[jvm-packages] Fix partition related issue

In jvm package, there are some partition related issues.

For ranking case(group column defined), it assumes that the input data is partitioned by group column and the data for the  same group is in the same partition as aggByGroupInfo. But the assumptionis not guaranteed. In our real prodution use case, we have to repartition the input dataset by the group column and set the partition number same as the number of worker to bypass the repartition. Otherwise our ranking model perform extremely bad.
When checkpoint is enabled, needDeterministicRepartitioning is set to true. And the data set will be repartitioned base on the attached key. But for the ranking case the repartition key should be the group column, otherwise the data with the same group will be shuffled to different partitions which broken the ranking model assumption. I don't see any reasons to only make xgboost deterministic when checkpoint is enabled, i think we can make xgboost always being deterministic, and partition the data based on the group column when it's defined and on the row hash when it's not defined.

After this fix, it's gauranteed that data with same group are in the same partition, and xgboost is always deterministic no matter checkpoint is enabled or not.

Hi @jinmfeng001 , thank you for working on the ranking implementation (and other JVM package issues). I will look into this after 2.0 is released. Please note that we have revised the LTR implementation in 2.0, which doesn't affect the current status of the JVM package, but it brings a couple to-do items for us to explore and might create conflicts with changes made in this PR:

XGBoost might group and sort the samples internally based on query IDs.
XGBoost might change the strategy for training LTR models on distributed systems.

Hi @jinmfeng001 , thank you for working on the ranking implementation (and other JVM package issues). I will look into this after 2.0 is released. Please note that we have revised the LTR implementation in 2.0, which doesn't affect the current status of the JVM package, but it brings a couple to-do items for us to explore and might create conflicts with changes made in this PR:

XGBoost might group and sort the samples internally based on query IDs.
XGBoost might change the strategy for training LTR models on distributed systems.

@trivialfis Has this been fixed after version 2.0?

Hi  @jinmfeng001, Recently, I've been working on re-writing jvm package, and most of work is done. The PR can fix the group issue, please also help to review it. https://github.com/dmlc/xgboost/tree/jvm-rewrite

Hi @jinmfeng001 , thank you for working on the ranking implementation (and other JVM package issues). I will look into this after 2.0 is released. Please note that we have revised the LTR implementation in 2.0, which doesn't affect the current status of the JVM package, but it brings a couple to-do items for us to explore and might create conflicts with changes made in this PR:

XGBoost might group and sort the samples internally based on query IDs.
XGBoost might change the strategy for training LTR models on distributed systems.

Hi, may i know this issue is resolved in the latest version or not? thank you.

The PR is in review. BTW, would you like to take a look at it? https://github.com/dmlc/xgboost/pull/10639

The PR is in review. BTW, would you like to take a look at it? #10639

Thank you for your response. The PR #10639 is a redesign work taking care of lot of things, and not fixing this issue. I think it will take a long time to merge it to master. The issue here is a bug blocking users to train an correct model. Hope we can review this PR first and merge it to master, so that we can migrate from our self-maintained version to the open source version.
Thank you.

Related https://github.com/dmlc/xgboost/issues/6713 . @wbo4958 Could you please help take a look at whether the issue persists?

@jinmfeng Could you please share how many query groups and how many workers are you working with? In addition, could you please share the approximate size of each groups if possible?
Normally, when a query group is split between two workers, we simply sample pairs from sub-groups and then aggregate the gradient during histogram construction. The number of samples is reduced for the split group, but since we are using pairwise comparison for relevance degree is still correct. I would love to learn the impact of group spliting in your case.

Hi @trivialfis,
we have about 5M query groups, and we train our model on 100 workers, the approximate size of each group is about 5.
You can see each group only have 5 items, it's easy to have only 1 row for each group in a worker. I think it's not reasonable to assume the number of workers is much bigger than the group size to train a correct model.

Based on my understanding of https://github.com/dmlc/xgboost/issues/6713 , it's basically every group got split into multiple workers, instead of some unlucky groups sitting at the boundaries of the workers. Am I correct?
If that's the case, then indeed, the performance would be disastrous.

Based on my understanding of #6713 , it's basically every group got split into multiple workers, instead of some unlucky groups sitting at the boundaries of the workers. Am I correct?
If that's the case, then indeed, the performance would be disastrous.

Yes, you're right. Every group got split into multiple workers. And actually after the shuffle, the records of the same group are not stored together.

Thank you for sharing, then yes, will sync with @wbo4958 and see what we can do with the latest packages. We definitely need to fix this.

sure, I will have a PR to fix it.

Hi @jinmfeng, Could you help to review https://github.com/dmlc/xgboost/pull/11023 and help to verify it in the real case? Really appreciate it.


refactor(client): Refactor menu to use refs

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #37025

Hey @ismaelgt, I rather liked your idea of having a universal nav ref, as it simplifies the logic and provides a nicer UX.  At least I prefer it.  If you're okay with that, please float that idea in the issue since it would no longer be a pure refactor.

@ojeytonwilliams I started implementing the UniversalNav ref solution and then I realised that it doesn't work exactly the same. For example, clicking on some navigation items will not close the menu. That's why I ended up using the suggested approach with multiple references.

I see, the when the links don't go anywhere nothing gets unmounted.  Thanks for clarifying.  Multiple refs it is, then!

Also, it would be great if we could do away with forwardRef, if you have the time.  Just passing them as props simplifies things somewhat.

Done. I used forwardRef initially for consistency with the current codebase. The main benefit is that you can transparently pass a ref down. Without forwardRef you need to give the prop a different name. But I agree that it simplifies things.

@ismaelgt Thanks for the pull request.


🚀 - Add color attribute for Highlight

Which @taiga-ui/* package(s) are relevant/releated to the feature request?
core
Description
New attribute tuiHighlightColor to control the color of the Highlight.
Discussed #919

Hi, Can I try to handle this issue? @waterplea


The MongoDB response wasn't expected. [{"code":13,"ok":0.0,"errmsg":"not authorized on XXX

This error occurs when trying to connect to a MongoDB v2.6.12 database.
Using the same credentials works fine using Studio 3T and when connecting to a MongoDB v3.4 database.

MongoKitten doesn't support MongoDB 2.6 as it's not supported by MongoDB itself either. We can technically communicate with MongoDB 2.6 but many issues are really tough to fix or support for MongoDB 2.6.

What authentication mechanism are you using? This issue specifically should be working, though. It's likely regression due to the inability to actively test this feature for 2.6.

If anyone is having these issues with MongoKitten in the future, please create a new issue 👍


conda installation error

Hi all,
I tried to install the package using conda following the instruction here: http://openpathsampling.org/latest/install.html, but I got following error information:
UnsatisfiableError: The following specifications were found to be in conflict:
  - navigator-updater
  - openpathsampling -> pyqt 4* -> qt 4.8.6
  - openpathsampling -> pyqt 4* -> sip 4.16.5
Use "conda info <package>" to see the dependencies for each package

By running conda info openpathsampling, I got following output:
openpathsampling 0.9.0 py27_0
-----------------------------
file name   : openpathsampling-0.9.0-py27_0.tar.bz2
name        : openpathsampling
version     : 0.9.0
build string: py27_0
build number: 0
channel     : omnia
size        : 547 KB
arch        : x86_64
has_prefix  : False
license     : LGPL 2.1 or later
md5         : d8c2cf67b1897744ffcbf4dd115b8e15
noarch      : None
platform    : linux
requires    : ()
subdir      : linux-64
url         : https://conda.anaconda.org/omnia/linux-64/openpathsampling-0.9.0-py27_0.tar.bz2
dependencies:
    matplotlib
    mdtraj
    netcdf4
    networkx
    numpy
    openmm
    openmmtools
    pandas
    pyqt 4*
    python 2.7*
    pyyaml
    scipy
    svgwrite

openpathsampling 0.9.1 py27_0
-----------------------------
file name   : openpathsampling-0.9.1-py27_0.tar.bz2
name        : openpathsampling
version     : 0.9.1
build string: py27_0
build number: 0
channel     : omnia
size        : 551 KB
arch        : x86_64
has_prefix  : False
license     : LGPL 2.1 or later
md5         : dae126b286ef3431fae5bb5b2a3c9562
noarch      : None
platform    : linux
requires    : ()
subdir      : linux-64
url         : https://conda.anaconda.org/omnia/linux-64/openpathsampling-0.9.1-py27_0.tar.bz2
dependencies:
    matplotlib
    mdtraj
    netcdf4
    networkx
    numpy
    openmm
    openmmtools
    pandas
    pyqt 4*
    python 2.7*
    pyyaml
    scipy
    svgwrite
    ujson

openpathsampling 0.9.2 py27_0
-----------------------------
file name   : openpathsampling-0.9.2-py27_0.tar.bz2
name        : openpathsampling
version     : 0.9.2
build string: py27_0
build number: 0
channel     : omnia
size        : 709 KB
arch        : x86_64
has_prefix  : False
license     : LGPL 2.1 or later
md5         : 8c7207396fd021afdd390489445c4f49
noarch      : None
platform    : linux
requires    : ()
subdir      : linux-64
url         : https://conda.anaconda.org/omnia/linux-64/openpathsampling-0.9.2-py27_0.tar.bz2
dependencies:
    jupyter
    matplotlib
    mdtraj
    netcdf4
    networkx
    numpy
    openmm
    openmmtools
    pandas
    pyqt 4.11.4 py27_3
    python 2.7*
    pyyaml
    scipy
    svgwrite
    ujson

Could anyone tell me what the problem is and how should I fix it?
Thanks!

It looks to me like there are problems based on our old release (0.9.2, released 1 Dec 2016). The conda recipe for that release included specific pins to requirement versions, based on problems that have since been resolved. I think those pins are causing the problems you see.
We're very close to a new release (see relevant issue here: https://github.com/omnia-md/conda-recipes/pull/816), so if installation isn't urgent, you can watch there for the conda-installable version to be ready.
Or, you can try the following procedure:

Manually install the requirements listed in the requirements.run section of our devtools/conda-recipe/meta.yaml (all of which should be conda-installable, either in the omnia or conda-forge channels)
Download the current GitHub version (or the release at 0.9.3)
Install in the usual way with python setup.py install.

This should work. If you do that, I recommend also installing nose (via conda) and running the tests with nosetests -v (from within the GitHub-downloaded directory) to ensure that everything is working.
Keep in mind that OPS is still beta code (although we're already using it in our own production projects), so please keep an eye out here for links to the papers documenting the code once they get published. Let us know if this fixes you problems, and if any other problems come up!

OK, it works, thank you!

Glad that got it working. Just as an update to anyone who comes across this, the conda-recipes PR I mentioned was just merged, so 0.9.3 should be up and running in the omnia channel of conda.


izz

Widget request
Describe the widget you need
Additional information
Optional: Add screenshots, or Figma/Sketch files

ok

e

e


Update GUI and UserGuide.md

Codecov Report

Merging #124 (c57d61b) into master (8a6a75d) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #124   +/-   ##
=========================================
  Coverage     47.26%   47.26%
  Complexity      500      500
=========================================
  Files           110      110
  Lines          2503     2503
  Branches        248      248
=========================================
  Hits           1183     1183
  Misses         1254     1254
  Partials         66       66

Impacted Files
Coverage Δ

...a/seedu/address/logic/commands/IncludeCommand.java
0.00% <ø> (ø)

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


Can I use this package to record audio and play it with slider?

I have a chat application, and there in chat box people records their audio and send to their friends, so their friends will play the audio by clicking on play button then the slider is moving forward.
Question is, is that possible with this package ???
Already I was using react-native-audio and react-native-sound, but it is more than two years they never updated these packages and also they mentioned we are not maintaining any more. because that I am switching to some updated packages.

any help please...

yes, I do have the slider working, but struggling to get record to work on ios simulator....


Implement RFC0027 - Log Levels

We should implement RFC 27 in this buildpack. In particular, when BP_LOG_LEVEL=debug this buildpack should stream the logs from dotnet publish as they are happening, rather than storing them in a separate buffer. Debugging slow or hanging .NET builds is extremely challenging when the buildpack does not show dotnet publish logs until the command fails.

It appears that this is done. Closing. If I have missed something feel free to reopen.


expo and jest can't produce --coverage

I am in a react-native (expo SDK36) application , I have configured jest using the explanation from expo documentation https://docs.expo.io/versions/v36.0.0/guides/testing-with-jest/.
This is how my jest configuration look like:
{
  "dependencies": {
    "jest-expo": "^36.0.1",
    "jest-sonar-reporter": "^2.0.0"
  },
  "jest": {
    "testURL": "http://localhost",
    "preset": "jest-expo",
    "transformIgnorePatterns": [
      "node_modules/(?!(jest-)?react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|sentry-expo|native-base)"
    ],
    "coverageThreshold": {
      "global": {
        "statements": 0,
        "branches": 0,
        "functions": 0,
        "lines": 0
      }
    },
    "coveragePathIgnorePatterns": [
      "/node_modules/",
      "/build/",
      "/server",
      "/server/node_modules/",
      "/public",
      "/coverage",
      "/stylguide",
      "package.json",
      "package-lock.json"
    ],
    "collectCoverage": true,
    "collectCoverageFrom": [
      "**/*.{js,jsx}",
      "!**/coverage/**",
      "!**/node_modules/**",
      "!**/babel.config.js",
      "!**/jest.setup.js"
    ],
    "testResultsProcessor": "jest-sonar-reporter"
  },
  "jestSonar": {
    "reportPath": "reports",
    "reportFile": "test-report.xml",
    "indent": 2
  }
}

It produces the following error when I run NODE_ENV=test jest --coverage:
 PASS  src/tests/index.test.js
  <App />
    ✓ has 1 child (85ms)

TypeError: mappedCoverage.addStatement is not a function
    at /home/dka/workspace/test-native/node_modules/istanbul-lib-source-maps/lib/transformer.js:30:32
    at Array.forEach (<anonymous>)
    at SourceMapTransformer.processFile (/home/dka/workspace/test-native/node_modules/istanbul-lib-source-maps/lib/transformer.js:22:38)
    at /home/dka/workspace/test-native/node_modules/istanbul-lib-source-maps/lib/transformer.js:120:34
    at Array.forEach (<anonymous>)
    at SourceMapTransformer.transform (/home/dka/workspace/test-native/node_modules/istanbul-lib-source-maps/lib/transformer.js:109:29)
    at MapStore.transformCoverage (/home/dka/workspace/test-native/node_modules/istanbul-lib-source-maps/lib/map-store.js:173:14)
    at /home/dka/workspace/test-native/node_modules/@jest/reporters/build/coverage_reporter.js:225:59
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/home/dka/workspace/test-native/node_modules/@jest/reporters/build/coverage_reporter.js:124:24)

Some googling din't show me how to solve TypeError: mappedCoverage.addStatement is not a function.
Is anyone able to help me or give a little clue ?
Thanks and best!

Reproduction
git clone https://github.com/kopax/expo-native.git
cd expo-native
npm i

Run coverage:
npm run test

Test will pass, I expect them to pass
Build web:
npm run web
npm test

Test will fail, I expect them to pass.
This must be due to jest ignoring the current configuration when --coverage true switch is on.
Any idea how I can fix the coverage ?


feat(esl-utils): SyntheticEventTarget API extended with ability to choose target value and specify default event type

:tada: This PR is included in version 4.3.0-next.1 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Convenience methods for accessing a lightcurve by sector

Problem description
It'd be more productive if the package provides a way access a LightCurveFile among in a LightCurveFileCollection by sector. It could make some codes more readable.
Example

import lightkurve as lk

# get the lightcurves for a given target
lcf_coll = lk.search.search_lightcurvefile(target='TIC232612416', mission='TESS').download_all()

# proposed new method
lc14 = lcf_coll.get_by_sector(14)

lc14.PDCSAP_FLUX.plot()

The new method, tentatively get_by_sector(sector_num), returns the LightCurveFile of a given sector.
The behavior when there are multiple LightCurveFile instances with the same sector: throw exception, or maybe return the first one with warnings.
Environment

lightkurve version (e.g. 1.0b6): 1.3.0

Thanks @orionlee!  This is an interesting idea.  :+1:  It makes sense to me that users will want to select items from a collection by sector or quarter.
Currently, one can obtain the files for a specific sector by passing the sector argument to the search function, example:
lcf_coll = lk.search.search_lightcurvefile(target='TIC232612416', mission='TESS', sector=14).download_all()

Of course this is slow right now because we don't have caching working on the search operation yet.
Rather than adding a method, I wonder if the best way to support this is to add a lcf_coll.sector property (alongside lcf_coll.campaign and lcf_coll.quarter properties).  That way, one could select by sector using:
lcf_coll[lcf_coll.sector == 14]

But this would also enable more powerful expressions, e.g.:
lcf_coll[(lcf_coll.sector > 10) & (lcf_coll.sector < 15)]

What do you think?

The suggestion of using properties lcf_coll[lcf_coll.sector == 14] is better. It's a pattern that lightkurve users should be familiar with.


fix: Correctly handle undefined token decimals in onchain balance.

I faced the same issue (with decimals = 0) a while ago and I scanned the code to fix it, but apparently I missed one 😬 😅


fix: update logic to show loading indicator in accounting page

Details

prevent the not found page to be briefly displayed when switching from offline to online mode
Fixed Issues

$ https://github.com/Expensify/App/issues/45517
PROPOSAL: https://github.com/Expensify/App/issues/45517#issuecomment-2232895519
Tests

Log in
Turn off the network connection
Click on the account icon
Navigate to workspaces
Create a new workspace
Click on More Features
Enable accounting feature
Click on the enabled feature section
Reconnect to the network

Verify that: No "not found" page appears. The loading indicator shows for a while then the accounting page opens.

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

Offline tests

QA Steps

Log in
Turn off the network connection
Click on the account icon
Navigate to workspaces
Create a new workspace
Click on More Features
Enable accounting feature
Click on the enabled feature section
Reconnect to the network

Verify that: No "not found" page appears. The loading indicator shows for a while then the accounting page opens.

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

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/d9a2887f-e961-409b-8000-fc3edea80505

Android: mWeb Chrome
https://github.com/user-attachments/assets/cffcf0f8-f034-410a-8b1c-e0b8dea935c1

iOS: Native
https://github.com/user-attachments/assets/17b01c4e-b38a-44a3-a628-cc8bea5d56da

iOS: mWeb Safari

https://github.com/user-attachments/assets/17b01c4e-b38a-44a3-a628-cc8bea5d56da

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/c165d5f0-119c-4478-b977-a8aea2c53fec

MacOS: Desktop

https://github.com/user-attachments/assets/141b3f7f-931c-447f-a62e-996bcee9c8f3

@dominictb  I think we need to update to make sure isConnectionDataFetchNeeded is the boolean type

Reviewer Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@dominictb The change looks good. Please remember to include a border around the emulator in your videos. You can take a look at my videos for example. Thanks

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

🚀 Deployed to staging by https://github.com/jasperhuangg in version: 9.0.17-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 9.0.17-2 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 9.0.17-2 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 9.0.17-2 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Move known issues to correct release

Closing in favor of https://github.com/Microsoft/vscode-azurefunctions/pull/571


[Feature] Please add arm64 build

Motivation
While emqx builds are already available for arm64, MQTTX builds aren't yet (which is a bit unfortunate for users of arm64 desktop machines).

@m-ueberall Hi. Thanks for your suggestion, for now only the macOS version supports arm64, we continue to optimize the platform support later.

Hi! Sorry to come back to you after a long time, currently https://github.com/emqx/MQTTX/releases/tag/v1.7.2 has added more arm builds. Thank you for your suggestions and usage.


How to add nodes to the cluster created with oc-cluster up?

How to add nodes to the cluster created with oc-cluster up?
Can I just use oc-cluster up on another host and  link it to the first host in some way? Official docs seem too complex after oc-cluster ups magic :)

@umaxfun no, you can't. "oc cluster up" and this wrapper are meant to create an all-in-one cluster, hence there is no way to create a multinode cluster and it will not be.
For that you'll need to use ansible way of installing openshift.


[ADDED]: Flutter Instagram Clone

Title and Issue number

Flutter Responsive Instagram Clone
Close #2771

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@pranjay-poddar @MohitGupta121 @TusharKesarwani Can you please review my PR :)

@Killer2OP please resolve conflicts

Done 👍

Hello @MohitGupta121 &
I think he is copied the code from :-  https://github.com/Abhisheksolanki19/Flutter-Instagram-clone-App
Please check the code, even the variables are same. I don't think is a coincidence please remove the labels.
Proof :

Check the index.html code even the comments lines are same. It's really unfair for the real contributors.

Hey there @killingkillers, you got my respect 💯

The sickest part is the dude just copying the whole repository content even license, .gitignore, issue & pr-templates.
I don't know who are you @killingkillers, but don't fear to give the collected proofs to take the right action.
We can inform to the GSSOC Team regarding this by raising a ticket.

The files are absolutely same I request admin to remove the labels.
@0xabdulkhalid You can also contact the GSSoC 23 official and @gurjeetsinghvirdee about this.

@killingkillers I request you to check @0xabdulkhalid pr also he also added lots of project in dev geeks. I don't think so he created by himself

@shraddha761  Okay don't worry I'm going to end this scam soon.

Hey @shraddha761, you can verify my pr's.
Every project are add by me are done by me, they are all Frontend mentor projects.
And the recent javascript projects are also from my 30-days-of-Javascript-Challenge.

Hey @shraddha761, you can verify my pr's.
Every project are add by me are done by me, they are all Frontend mentor projects. And the recent javascript projects are also from my 30-days-of-Javascript-Challenge.

Okay, don't worry I can detect who is scammer or not.
If you are not copying then don't worry.

@gurjeetsinghvirdee .... check this too.

Yeah @killingkillers, that's what i'm saying to @shraddha761.
I don't want to worry, because the ones who copied want to worry.
I can easily map to original source code on my profile with proof.


Update pushProxy.js

Notifications are arriving just once on windows platform, use keepCallback to trigger the OnNotification callback more than once

@DaniOtero super 👍  thanks


chore: trigger new CI build

The last build failed. Let's check if it is only because there is no lockfile (we should add one) and if it is fixed with the latest dependencies.

Thanks @DanielRuf, we will check it now :)

@DanielRuf it fails again... Because of awesome-lint, but on my laptop, I've no error... Strange. Do you have any idea ?

https://travis-ci.org/lauthieb/awesome-storybook

:tada:


onProgress callback is not triggering on rn4.1 ios 10

Other callbacks are normal

@jsierles @qingfeng @arjan @thoblr @jhilden

when playing hls

Is my code in the wrong, not the problem of the module


Error reporting emails: Indicate user role.

Adds user role to the user's information in the error reporting
emails, as some bugs are role-dependent.
Fixes: #15344
Testing Plan:
Automated tests.

@timabbott I've added two commits with the refactoring and extraction of role_id_to_name_map.

Also, you should rebase, since I merged the extraction commit.

@timabbott is it how it should be now?

@alexmv can you take the rest of this review?  You've got how to test this much better in your head than I do.
I imagine that even though we're adding sentry, we may want to keep this code maintained for use by self-hosters (Otherwise we'd have no error-reporting mechanism that doesn't require setting up Sentry).

@alexmv Thanks for the review! I've made the changes you asked for and this is now ready for review again.
I also changed a few things to avoid doing a query for a key in when report['user'] is None.

This is great -- thank you!


Support Maven Surefire Plugin rerunning flaky tests

Hi,
First of all, I think this plugin works great and provides many GitHub reporting options. 👌
I'm currently in the process of running my tests in parallel to speedup my test run. Some of my tests now fail because of concurrency issues and that's why I also configured the Maven Surefire Plugin to rerun failed tests.
However, I notice a few things:

my regular mvn test command ultimately succeeds (i.e. after rerunning some tests, all my tests pass):

however, publish-unit-test-result-action creates a check with a failed status (❌ Maven Test Results)

the annotations show failed tests, since the first attempt they did indeed fail (however, succeeding attempts pass):

Note that my mvn test command completes with the following output (Flakes signifies the reruns):
2023-12-14T17:23:48.1537837Z [WARNING] Tests run: 5587, Failures: 0, Errors: 0, Skipped: 116, Flakes: 15
2023-12-14T17:23:48.1538689Z [INFO]
2023-12-14T17:23:48.1539320Z [INFO] ------------------------------------------------------------------------
2023-12-14T17:23:48.1540050Z [INFO] BUILD SUCCESS
2023-12-14T17:23:48.1540749Z [INFO] ------------------------------------------------------------------------
2023-12-14T17:23:48.1541494Z [INFO] Total time:  21:03 min
2023-12-14T17:23:48.1542240Z [INFO] Finished at: 2023-12-14T18:23:48+01:00
2023-12-14T17:23:48.1543112Z [INFO] ------------------------------------------------------------------------

the duration shown in the summary (57m) seems to be the sum of the parallel runs instead of the wall clock time

My simplified workflow:
- name: Run tests with Maven
  run: mvn --file pom.xml test
- name: Publish Test Results
  uses: EnricoMi/publish-unit-test-result-action@v2
  if: always()
  with:
    files: |
      example/target/surefire-reports/*.xml
    check_name: "Maven Test Results"
    report_individual_runs: "true"
    action_fail_on_inconclusive: "true"

Log output of the Publish Test Results step (sensitive parts removed):
2023-12-14 18:23:52 +0100 - publish -  INFO - Available memory to read files: 14.5 GiB
2023-12-14 18:23:52 +0100 - publish -  INFO - Reading files example/target/surefire-reports/*.xml (448 files, 40.5 MiB)
2023-12-14 18:23:53 +0100 - publish -  INFO - Detected 448 JUnit XML files (40.5 MiB)
2023-12-14 18:23:53 +0100 - publish -  INFO - Finished reading 448 files in 0.64 seconds
2023-12-14 18:23:54 +0100 - publish -  INFO - Publishing failure results for commit abcdef123
2023-12-14 18:23:55 +0100 - publish -  INFO - Created check https://github.com/example/runs/12649858973
2023-12-14 18:23:55 +0100 - publish -  INFO - Created job summary
2023-12-14 18:24:01 +0100 - publish -  INFO - Edited comment for pull request #...: https://github.com/example/pull/123#issuecomment-123

Example of annotations of 2 different tests where in both cases only the first attempt failed:

Just for completeness, but probably not necessary, relevant parts of pom.xml:
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-surefire-plugin</artifactId>
		<version>3.2.3</version>
		<configuration>
			<rerunFailingTestsCount>3</rerunFailingTestsCount>
		</configuration>
	</plugin>

Example of (part of) an xml report file that has a passing test after a rerun:
<testcase name="testSomething" classname="example.SomeTest" time="0.001">
    <flakyFailure message="[someAssertionHere]
Expecting actual not to be empty" type="java.lang.AssertionError">
        <stackTrace><![CDATA[java.lang.AssertionError:
[someAssertionHere]
Expecting actual not to be empty
at ...
]]></stackTrace>
        <system-out><![CDATA[...
]]></system-out>
        <system-err><![CDATA[...
]]></system-err>
    </flakyFailure>
</testcase>

Is there a configuration parameter I missed that might create a succeeding Check (✅ Maven Test Results) and that causes the report to show only succeeding tests (optionally after retries)? Or is rerunning simply not supported?
The repository I'm working on is private, so unfortunately I can't give any direct links, but let me know if more information is needed.

Thanks for the detailed description of your use case. There is no option available currently. Rather than changing the logic, I would specifically handle the "flaky" annotations in the test result files: https://maven.apache.org/surefire/maven-surefire-plugin/examples/rerun-failing-tests.html
Can you provide an example test result with one failure and success reruns, as well as one result file with all rerun failures?

Sure, for completeness, I made 4 tests fail/error by either throwing an exception or doing a false assertion:

throwsOnlyFirstAttempt()
throwsAlways()
failsAssertionOnlyFirstAttempt()
failsAssertionAlways()

Output of mvn test command with rerunFailingTestsCount=3:
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] example.ExampleTests.failsAssertionAlways
[ERROR]   Run 1: ExampleTests.failsAssertionAlways:40 Always fails assertion ==> expected: <1> but was: <2>
[ERROR]   Run 2: ExampleTests.failsAssertionAlways:40 Always fails assertion ==> expected: <1> but was: <2>
[ERROR]   Run 3: ExampleTests.failsAssertionAlways:40 Always fails assertion ==> expected: <1> but was: <2>
[ERROR]   Run 4: ExampleTests.failsAssertionAlways:40 Always fails assertion ==> expected: <1> but was: <2>
[INFO]
[ERROR] Errors:
[ERROR] example.ExampleTests.throwsAlways
[ERROR]   Run 1: ExampleTests.throwsAlways:26 Runtime Always throws exception
[ERROR]   Run 2: ExampleTests.throwsAlways:26 Runtime Always throws exception
[ERROR]   Run 3: ExampleTests.throwsAlways:26 Runtime Always throws exception
[ERROR]   Run 4: ExampleTests.throwsAlways:26 Runtime Always throws exception
[INFO]
[WARNING] Flakes:
[WARNING] example.ExampleTests.failsAssertionOnlyFirstAttempt
[ERROR]   Run 1: ExampleTests.failsAssertionOnlyFirstAttempt:32 First attempt fails assertion ==> expected: <1> but was: <2>
[INFO]   Run 2: PASS
[INFO]
[WARNING] example.ExampleTests.throwsOnlyFirstAttempt
[ERROR]   Run 1: ExampleTests.throwsOnlyFirstAttempt:18 Runtime First attempt throws exception
[INFO]   Run 2: PASS
[INFO]
[INFO]
[ERROR] Tests run: 4, Failures: 1, Errors: 1, Skipped: 0, Flakes: 2
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  24.788 s
[INFO] Finished at: 2023-12-15T10:22:37+01:00
[INFO] ------------------------------------------------------------------------

TEST-example.ExampleTests.xml:
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="example.ExampleTests" time="0.002" tests="2" errors="1" skipped="0" failures="1">
  <testcase name="throwsAlways" classname="example.ExampleTests" time="0.01">
    <error message="Always throws exception" type="java.lang.RuntimeException"><![CDATA[java.lang.RuntimeException: Always throws exception
	at example.ExampleTests.throwsAlways(ExampleTests.java:26)
]]></error>
    <rerunError message="Always throws exception" type="java.lang.RuntimeException">
      <stackTrace><![CDATA[java.lang.RuntimeException: Always throws exception
	at example.ExampleTests.throwsAlways(ExampleTests.java:26)
]]></stackTrace>
    </rerunError>
    <rerunError message="Always throws exception" type="java.lang.RuntimeException">
      <stackTrace><![CDATA[java.lang.RuntimeException: Always throws exception
	at example.ExampleTests.throwsAlways(ExampleTests.java:26)
]]></stackTrace>
    </rerunError>
    <rerunError message="Always throws exception" type="java.lang.RuntimeException">
      <stackTrace><![CDATA[java.lang.RuntimeException: Always throws exception
	at example.ExampleTests.throwsAlways(ExampleTests.java:26)
]]></stackTrace>
    </rerunError>
  </testcase>
  <testcase name="failsAssertionAlways" classname="example.ExampleTests" time="0.003">
    <failure message="Always fails assertion ==> expected: <1> but was: <2>" type="org.opentest4j.AssertionFailedError"><![CDATA[org.opentest4j.AssertionFailedError: Always fails assertion ==> expected: <1> but was: <2>
	at example.ExampleTests.failsAssertionAlways(ExampleTests.java:40)
]]></failure>
    <rerunFailure message="Always fails assertion ==> expected: <1> but was: <2>" type="org.opentest4j.AssertionFailedError">
      <stackTrace><![CDATA[org.opentest4j.AssertionFailedError: Always fails assertion ==> expected: <1> but was: <2>
	at example.ExampleTests.failsAssertionAlways(ExampleTests.java:40)
]]></stackTrace>
    </rerunFailure>
    <rerunFailure message="Always fails assertion ==> expected: <1> but was: <2>" type="org.opentest4j.AssertionFailedError">
      <stackTrace><![CDATA[org.opentest4j.AssertionFailedError: Always fails assertion ==> expected: <1> but was: <2>
	at example.ExampleTests.failsAssertionAlways(ExampleTests.java:40)
]]></stackTrace>
    </rerunFailure>
    <rerunFailure message="Always fails assertion ==> expected: <1> but was: <2>" type="org.opentest4j.AssertionFailedError">
      <stackTrace><![CDATA[org.opentest4j.AssertionFailedError: Always fails assertion ==> expected: <1> but was: <2>
	at example.ExampleTests.failsAssertionAlways(ExampleTests.java:40)
]]></stackTrace>
    </rerunFailure>
  </testcase>
  <testcase name="failsAssertionOnlyFirstAttempt" classname="example.ExampleTests" time="0.0">
    <flakyFailure message="First attempt fails assertion ==> expected: <1> but was: <2>" type="org.opentest4j.AssertionFailedError">
      <stackTrace><![CDATA[org.opentest4j.AssertionFailedError: First attempt fails assertion ==> expected: <1> but was: <2>
	at example.ExampleTests.failsAssertionOnlyFirstAttempt(ExampleTests.java:32)
]]></stackTrace>
    </flakyFailure>
  </testcase>
  <testcase name="throwsOnlyFirstAttempt" classname="example.ExampleTests" time="0.001">
    <flakyError message="First attempt throws exception" type="java.lang.RuntimeException">
      <stackTrace><![CDATA[java.lang.RuntimeException: First attempt throws exception
	at example.ExampleTests.throwsOnlyFirstAttempt(ExampleTests.java:18)
]]></stackTrace>
    </flakyError>
  </testcase>
</testsuite>

example.ExampleTests.txt:
-------------------------------------------------------------------------------
Test set: example.ExampleTests
-------------------------------------------------------------------------------
Tests run: 2, Failures: 1, Errors: 1, Skipped: 0, Time elapsed: 0.002 s <<< FAILURE! -- in example.ExampleTests
example.ExampleTests.failsAssertionAlways -- Time elapsed: 0.001 s <<< FAILURE!
org.opentest4j.AssertionFailedError: Always fails assertion ==> expected: <1> but was: <2>
	at example.ExampleTests.failsAssertionAlways(ExampleTests.java:40)

example.ExampleTests.throwsAlways -- Time elapsed: 0.001 s <<< ERROR!
java.lang.RuntimeException: Always throws exception
	at example.ExampleTests.throwsAlways(ExampleTests.java:26)

Thanks for the input. With the provided XML the action reports one test as error, one as failure and the last two as pass.
Can you add another two tests that fail / error twice and pass on third attempt?

 Given they only exist when all attempts fail / error, the reporting behaviour is correct. The test pass if not all attempts fail / error. Do you agree this is the current behaviour?

I think you're right and I agree with the current behaviour.
After reading your comment, I've dug a bit deeper and found that I had not accurately reproduced the actual problem.
Some context: we run ~5000 tests spread over many classes and each class gets its own TEST-fqdnClassNameHere.xml report generated (i.e. the 2 TEST-..xml files in my report are from 2 different classes, I'm assuming each class is considered a test suite).
Though our mvn test command exited successfully and reported that it reran some tests, the resulting xml reports from GitHub Actions still contained <failure>/<error> tags (even without any <flaky*> sibling tags 🤔). This probably means my problem lies in generating the xml reports instead of analyzing and reporting the failed tests with publish-unit-test-result-action. This action indeed seems to behave correctly.
I'll focus my efforts now on how the xml reports are generated, it might have to be related to the fact we're running our tests in parallel.
But that's all unrelated to this action 🙂 so I'll close this issue.
Thanks for helping along and the quick responses.

Thanks for clarification and for raising this!

Let's reopen this to track supporting the flaky annotation for eventual successful tests. That would be a great addition to the summary.

So, currently, the only way is to use "fail-on nothing* and rely on the failure of the build job, right?

Depends on what you want. Do you want to fail on falkiness? Or do you want to fail on consistent test failure? This action fails on the latter (with default settings).

We don't want it to fail on flakyness, but it does.. looks like it interprets first failed attempts of flaky tests as failures, and the corresponding job is marked as failed. We don't want that.

@EnricoMi I've also tried with fail_on nothing, https://github.com/eclipse/xtext/pull/3164 but the job for publishing test results is still marked with failure (due to flakes). Am I missing something?

We don't want it to fail on flakyness, but it does.. looks like it interprets first failed attempts of flaky tests as failures

Can you point me to an example workflow run?

In file org.eclipse.xtext.ui.tests/target/surefire-reports/TEST-org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.xml in artifact test-results-Linux-21  of workflow run https://github.com/eclipse/xtext/actions/runs/10538099413 the suite claims 11 tests and 1 failure, but there are only 10 <testcase>s. Looks like the last test is flaky and was rerun (which should not increment the tests counter).
Looking at ^1, a <flakyFailure> indicates the first run failed, but the second succeeded. So this test case should not be considered a failure. If all runs of the test have failed, we would see a <failure> tag for the first run and a <rerunFailure> for all reruns.
The xml files are inconsistent with ^1.

We use maven-surefire and for Eclipse tests (the flaky ones) we use tycho-surefire, which uses maven-surefire under the hood I think. So we don't do anything specific...

In file org.eclipse.xtext.ui.tests/target/surefire-reports/TEST-org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.xml in artifact test-results-Linux-21  of workflow run https://github.com/eclipse/xtext/actions/runs/10538099413 the suite claims 11 tests and 1 failure, but there are only 10 <testcase>s. Looks like the last test is flaky and was rerun (which should not increment the tests counter).
Looking at 1, a <flakyFailure> indicates the first run failed, but the second succeeded. So this test case should not be considered a failure. If all runs of the test have failed, we would see a <failure> tag for the first run and a <rerunFailure> for all reruns.

Thank you for investigating this. And although it is correct that Xtext uses the tycho-surefire-plugin, that plugin 'only' calls the functionality of the maven-surefire-plugin from an Eclipse/OSGi runtime.
And indeed I can reproduce the described behavior with a very simple Maven project that only has the following test class:
package bar;
import static org.junit.Assert.assertEquals;
import java.util.concurrent.atomic.AtomicInteger;
import org.junit.Test;

public class FailOnFirstExecutionTest {
	private static final AtomicInteger EXECUTIONS = new AtomicInteger(0);
	@Test
	public void testName() throws Exception {
		assertEquals(2, EXECUTIONS.incrementAndGet());
	}
}

and a very simple pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>foo</groupId>
	<artifactId>bar</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<maven.compiler.release>17</maven.compiler.release>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.2</version>
		</dependency>
	</dependencies>
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.4.0</version>
					<configuration>
						<rerunFailingTestsCount>3</rerunFailingTestsCount>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

The resulting text-report.xml has the described content:
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.2" name="bar.FailOnFirstExecutionTest" time="0.042" tests="2" errors="0" skipped="0" failures="1">
  <properties>
...
  </properties>
  <testcase name="testName" classname="bar.FailOnFirstExecutionTest" time="0.0">
    <flakyFailure message="expected:<2> but was:<1>" type="java.lang.AssertionError">
      <stackTrace><![CDATA[java.lang.AssertionError: expected:<2> but was:<1>
	at org.junit.Assert.fail(Assert.java:89)
	at org.junit.Assert.failNotEquals(Assert.java:835)
	at org.junit.Assert.assertEquals(Assert.java:647)
	at org.junit.Assert.assertEquals(Assert.java:633)
	at bar.FailOnFirstExecutionTest.testName(FailOnFirstExecutionTest.java:14)
...
]]></stackTrace>
    </flakyFailure>
  </testcase>
</testsuite>

The xml files are inconsistent with 1.

I cannot se that the this page make any statements regarding the summary in the head-line. But I agree without that the content is indeed surprising.
I would also expect the tests attribute to count the number of actual tests and not the number of runs, while I would expect that failures/errors would only count eventual failures/errors.
I'll ask the Maven devs if this is intended. I don't see anything regarding flakes in JUnit so I assume it's a Maven-Surefire feature.

https://issues.apache.org/jira/browse/SUREFIRE-1751

I think the <testsuite> counts all flaky failures / errors in addition to test case outcomes:
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd"
           version="3.0"
           name="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest"
           time="8.454" tests="8" errors="0" skipped="1" failures="1">
  <properties>
    ...
  </properties>
  <testcase name="testOnRemoveTwoProjects" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="0.177"/>
  <testcase name="testBug574908_Performance" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="3.674"/>
  <testcase name="testBug574908_Performance_500" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="0.0">
    <skipped message="Can be enabled for performance test purposes"/>
  </testcase>
  <testcase name="testGetStorages_Performance" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="3.771"/>
  <testcase name="testOnClasspathChange" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="0.452"/>
  <testcase name="testBug574908" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="0.107"/>
  <testcase name="testOnCloseOpenRemoveProject" classname="org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJavaImplTest" time="0.152">
    <flakyFailure message="{} expected:<1> but was:<0>" type="java.lang.AssertionError">
      <stackTrace><![CDATA[...]]></stackTrace>
    </flakyFailure>
  </testcase>
</testsuite>

We have 7 testcases, so you would expect <suite tests="7" ...>. Further, the failure is a flaky one, so the test case is considered successful. Still the suite counts a failure. Looks like all attempts / runs of a test and their outcomes are provided in the <suite>, which is not what you would expect. The test result report / this action has to ignore the <suite> and process the individual <testcase>s to distinguish successful from flaky tests.
I will have to extend JunitParser to support this. Then I will be able to have this action support flaky tests natively (mark flaky test as :snowflake: instead of :white_check_mark:.

https://issues.apache.org/jira/browse/SUREFIRE-1751

Thanks for the pointer! But from the report I'm not sure if it's just about processing a given test-report XML or if it's about the creation of that file. I have the impression it's about the former.

I think the <testsuite> counts all flaky failures / errors in addition to test case outcomes:
We have 7 testcases, so you would expect <suite tests="7" ...>. Further, the failure is a flaky one, so the test case is considered successful. Still the suite counts a failure. Looks like all attempts / runs of a test and their outcomes are provided in the <suite>, which is not what you would expect. The test result report / this action has to ignore the <suite> and process the individual <testcase>s to distinguish successful from flaky tests.

Yes I think that's exactly was happening.

I have a workaround to derive suite counts from test cases, which will make flaky tests count as successful tests and not over-count the number of tests.

Yes I wanted to suggest that as well, but first wanted to know if the current content is intended or not.
Actually the individual testcase elements just have to be inspected for real error or failure children, if the errors or failures attribute of the testsuite element is non-zero. If both are zero it means everything passed on the first run and the tests attribute value is exactly as expected and you could just rely on the summary.
Or is the entire XML parsed any way in any case?

Supporting flaky tests natively will require extending JunitParser. Then this action will mark flaky test as ❄ instead of ✅.

That would be nice :) Thank you!

https://issues.apache.org/jira/browse/SUREFIRE-1751

Thanks for the pointer! But from the report I'm not sure if it's just about processing a given test-report XML or if it's about the creation of that file. I have the impression it's about the former.

Just wanted to share that this issue exists already in some form.


Add spacefish to "Related Projects"

Description

Howdy spaceship team! 👋
I and the rest of the spacefish team have been working hard the last little while toward achieving feature parity with the most commonly used spaceship features. I was thinking that now would be a good time to create a "Related Projects" section to add spacefish and other projects that directly port or that may have been heavily inspired by the work done on spaceship.
I'd be open to hearing how this could perhaps be better positioned or formatted. I wouldn't want to draw too much attention from the rest of the project docs, but maybe if we can slot in space for a small project icon? 🤔

Good PR! I've already been talking about adding a link to Spacefish, since a lot of people ask me about fish port of this project. I'm really grateful for your effort of porting this theme to fish shell.
Meanwhile, we've been thinking a lot of making Spaceship cross-shell prompt. I've even started an experiment with writing prompt core in Node.js, but this solution doesn't look much performant. I have a dream of writing Spaceship core in some of the more native languages, like C or Rust. Let's stay connected, 'cause it seems like we share the same view of project development.

Having a core written Rust sounds interesting, but I'm curious how much spell-specific code there will still be. For example, you'd still have to use zsh-async to achieve asynchronous updates, I can't think of a way to trigger update for zsh prompt from an app that is running in background...

Happy to help! It's been fun to get to work on the port. 😄
Sounds like a solid idea! Would give us a lot of room to work on parallelization of tasks and performance optimizations. Being able to use a real programming language would be a big relief! I'd be partial to tackling this in Rust or Go.
Keep me posted! 👍


security/acme-client: add support for Google Cloud DNS API

Reference thread: https://forum.opnsense.org/index.php?topic=7170.0
Is it possible to add support for Google Domains API in ACME client GUI for DNS based validation?
https://support.google.com/domains/answer/3290350?hl=en&ref_topic=3251230
Would be great if it could be supported for the DNS TXT record automation tokens. Especially since it is required for the wildcard certs which are right around the corner.

Unfortunately, Google Domains API isn't currently supported by Neilpang/acme.sh and a feature request was even abondoned: https://github.com/Neilpang/acme.sh/issues/180.
We'll have to wait until support is added to acme.sh. I'm closing this issue for the time being. Feel free to reopen this issue once this requirement is met.

Support for Google Cloud DNS is pending.  Hopefully we'll have this soon. See: https://github.com/Neilpang/acme.sh/pull/1623

Google Cloud DNS is now supported by upstream. Perhaps now it could be added?

Here's the bad news: In order to use acme.sh with Google Domains, the gcloud command-line tool is required. Unfortunately, it's not available on *BSD systems.
But I've downloaded the Linux version and it seems that gcloud is just a python2 tool, so I might be able to adjust it so that it's usable on FreeBSD. No promises though...

This will be available in the upcoming release 1.24 of our acme plugin.
Note that several steps are required in order to get this working:

requires acme.sh 2.8.2, which is not released yet (because this bugfix is required)
you need to install the new os-google-cloud-sdk plugin in OPNsense (available in the next release)
you must create a service account key using the GCP Console
you must enable the Cloud Resource Manager API
finally paste the full JSON key in the OPNsense GUI (Services: Let's Encrypt: Validation Methods)

Not exactly user-friendly, but it looks like there's no other way to do it when using Google Cloud DNS.

Hey, sorry for posting on a closed issue, but Google Cloud DNS and Google Domains DNS are two different things. OP titled for Google Cloud DNS but the question was directed to Google Domains DNS.
For clarification:
Google Cloud DNS support was added.
There is no support for Google Domains DNS.

@dpieski Unfortunately, Google Domains DNS is not supported by acme.sh, so that wasn't an option. If this ever changes, feel free to open a new issue and we'll add support for it in our LE plugin.

Is this still unsupported? I have been looking for documentation, but am having a hard time finding documentation that shows how to setup Google Cloud DNS API with the ACME Client on OPNSense.

AFAICT, it is still supported. Please head over to the forum to ask for support.


WIP on chain heap

try to fix #312
But I have several question regarding this:

we have a CLI option to specify max heap pages, how are we going to handle this? simply remove it or make it a max cap?
should we have a hard limit on the heap size? otherwise I'm a bit concerned about the allocation attack.
we should use the usize::decode() interface to decode, right?

@gavofyork

Thank you for the answer.
And I'm using ":heappages" instead of ":heapsize" in the hope for more clear meaning.

cool


[WIP] [Fix #813] Cleaning up OPF-058 and OPF-059 from tests

I started by cleaning up the excessive testing because these were the largest and required the most work.

Awesome, thanks!
refs #813

Hi @tofi86
When running the tests I came across the test
com/adobe/epubcheck/test/package/interesting_paths_epub3_expected_results.json
Not really sure what it should test. It tests so many things and throws so many exceptions. And when I was done with it, it threw OPF-010 which has been commented as had to reproduce.
My approach was to go with the files inside of the directory. Another approach could be to actually use the phi character in the filename and get another set of error codes that you shouldn't use greek chars in filenames. Hard to figure out what was the actual test case and what was weird side effects.
Best regards
Daniel

Hi @tofi86
Another test case that was a bit weird was
com/adobe/epubcheck/test/opf/Mismatched_mimetypes_epub2.epub
Which generated 2 new errors:
RSC-010 : Reference to non-standard resource type found.
PKG-021 : Corrupted image file encountered.
Best regards
Daniel

Hi Daniel, thanks for your work on this!
Regarding the testcase Mismatched_mimetypes_epub2:
PKG-021 has already been in the old results: https://github.com/IDPF/epubcheck/pull/817/files#diff-7910489acff575ddcbc72a9498973debL372
Whereas RSC-010 is indeed new because the NCX now contains a reference to a spine item with an invalid/unknown mimetype: https://github.com/kalaspuffar/epubcheck/blob/c24b20f24bccac7bd791f0f3ff8b93af8cb897cd/src/test/resources/com/adobe/epubcheck/test/opf/Mismatched_mimetypes_epub2/OPS/content.opf#L11
<item id="page02" href="page02.xhtml" media-type="application/xhtml"/>

The mimetype is wrong, it should be application/xhtml+xml. If you fix that, the error will be gone.

Regarding the interesting_paths_epub3 testcase I think we should retain the cyrillic phi character Ф in the filename and adapt the tests accordingly. Alle filenames in this testcase contain "special characters" so I assume the original tests should check for those...

Hi @tofi86
Just to check the Mismatched_mimetypes_epub2 has the name Mismatched mimetypes so I didn't change the test data. You could interpret application/xhtml as mismatched.
But we should change the data and reduce the numbers of errors?
Best regards
Daniel

hej Daniel, absolutely right, I should have taken more time to look at this. the testcase is all about mismatching mimetypes so we don't fix that and I suggest to leave the tests as they are.
Fixing the TOC lead to the new error RSC-010 because the TOC only allows references to certain core-media types and application/xhtml isn't one of those.
I would leave it as it is because the Mismatched_mimetypes_epubX tests seem to be the only ones throwing this error code.

Merged! Thanks, Daniel! 🎉