[SPARK-47241][SQL] Fix rule order issues for ExtractGenerator

What changes were proposed in this pull request?

The rule ExtractGenerator does not define any trigger condition when rewriting generator functions in Project, which makes the behavior quite unstable and heavily depends on the execution order of analyzer rules.
Two bugs I've found so far:

By design, we want to forbid users from using more than one generator function in SELECT. However, we can't really enforce it if two generator functions are not resolved at the same time: the rule thinks there is only one generate function (the other is still unresolved), then rewrite it. The other one gets resolved later and gets rewritten later.
When a generator function is put after SELECT *, it's possible that * is not expanded yet when we enter ExtractGenerator. The rule rewrites the generator function: insert a Generate operator below, and add a new column to the projectList for the generator function output. Then we expand * to the child plan output which is Generate, we end up with two identical columns for the generate function output.

This PR fixes it by adding a trigger condition when rewriting generator functions in Project: the projectList should be resolved or a generator function. This is the same trigger condition we used for Aggregate. To avoid breaking changes, this PR also allows multiple generator functions in Project, which works totally fine.
Why are the changes needed?

bug fix
Does this PR introduce any user-facing change?

Yes, now multiple generator functions are allowed in Project. And there won't be duplicated columns for generator function output.
How was this patch tested?

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

No

cc @viirya @gengliangwang

cc @MaxGekk @yaooqinn @dongjoon-hyun

thanks for the review, merging to master/3.5!

@cloud-fan This change broke an existing behaviour. When a aliased generator field A is referenced in some another field B in project list, it will create a situation where the B will wait for A to resolve as it needs to know the field identifier of A and A will wait for B to resolve since we have check in place which needs all fields other than generator field to be resolved.
This is how you can reproduce this:
CREATE TABLE nestedTable1 (array_int_col array<int>, array_str_col array<string>, map_str_col map<string,string>, map_int_col map<string,int>, struct_col struct<col_3:string,col_1:int>, col_3 string, col_1 int) USING iceberg

INSERT INTO nestedTable1 (array_int_col, array_str_col, map_str_col, map_int_col, struct_col, col_3, col_1) VALUES (array(1, 2, 3, 4), array('a', 'b', 'c'), map('k1', 'v1', 'k2', 'v2'), map('k', 1), struct('a', 1), 'a', 1)

SELECT col_1, EXPLODE(MAP_KEYS(map_str_col)) AS key, map_str_col[key] AS value FROM nestedTable1;

This results in following final analyzed plan:
'Project [col_1#192, 'EXPLODE(map_keys(map_str_col#188)) AS key#329, map_str_col#188[lateralAliasReference(key)] AS value#330]
 +- RelationV2[array_int_col#186, array_str_col#187, map_str_col#188, map_int_col#189, struct_col#190, col_3#191, col_1#192]  spark_catalog.default.nestedtable1

Without this change the analyzed plan looks like:
'Project [col_1#192, key#331, map_str_col#188['key] AS value#330]
 +- Generate explode(map_keys(map_str_col#188)), false, [key#331]
    +- RelationV2[array_int_col#186, array_str_col#187, map_str_col#188, map_int_col#189, struct_col#190, col_3#191, col_1#192]  spark_catalog.default.nestedtable1

SELECT col_1, EXPLODE(MAP_KEYS(map_str_col)) AS key, map_str_col[key] AS value FROM nestedTable1;

I think this can be supported with LCA. cc @anchovYu


Add --all-tags option

Currently binfinder only picks up the latest tag for each repository. This means that the following happens:
Repo A: 10 tags of image A
Repo B: 20 tags of image B
With the --top=30 option, we will only get a total of 2 images  as each repo will give us 1 image (the latest tag).
Acceptance criteria:

[ ] Have an --all-tags option so that all tags of each repo are evaluated through binfinder. In the above mentioned case, binfinder should return a total of 30 images (10 tags of image A and 20 tags of image B) when given an option of --all-tags.

I've added a failing test which should be another way to tackle this problem. https://github.com/aquasecurity/binfinder/commit/c044329c8970acee333ca647bf7084d490637726
In this case you can see what's the expectation is and what we have today.


[Bug]: TypeError: Cannot read properties of undefined (reading 'text') even in native @adminjs/logger component

Contact Details
No response
What happened?
Added @adminjs/logger to latest version of adminjs, log item is created fine but I can't see a diff:

Bug prevalence
Reproducible, always
AdminJS dependencies version
npm ls --all | grep adminjs
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>
What browsers do you see the problem on?
Chrome
Relevant log output
ble.js:99 Uncaught TypeError: Cannot read properties of undefined (reading 'text')
    at styled.table.theme.theme (table.js:99:20)
    at _e (hoist-non-react-statics.cjs.js:103:38)
    at e.generateAndInjectStyles (hoist-non-react-statics.cjs.js:103:38)
    at e.generateAndInjectStyles (styled-components.browser.cjs.js:1:11336)
    at styled-components.browser.cjs.js:1:18616
    at styled-components.browser.cjs.js:1:18760
    at I (styled-components.browser.cjs.js:1:19206)
    at renderWithHooks (global.bundle.js:20564:19)
    at updateForwardRef (global.bundle.js:23480:21)
    at beginWork (global.bundle.js:25890:17)
s

### Relevant code that's giving you issues

Default code from the documentation

I was working fine before updating the versions.
Since the error is in atoms/table I posted it here.
Was the theme interface changed? Theme colors gives me undefined on all components including old mine own. Am I missing something?

@ivictbor can you try @adminjs/logger version 5.0.1?

@dziraf seams like it is 5.0.1 already:

@devforthadminjs-logger is not our package, I released 5.0.1 today.

@devforth/adminjs-logger is not our package, I've released 5.0.1 today.

Oh, my bad, thanks, indeed, I forked to fix a bug and bumped patch (now I see it is a bad habit), will check now

@dziraf awesome, fixed, works fine now


sliders

Added sliders. They work quite well, but there are a couple limitations:

requires ipympl,
works only in interactive mode %matplotlib widget,
my computer struggles to execute the whole notebook at once when the mode is enabled,
complains once more than 20 figures are open.
For now it is optional only.

And I've made LD normalisation compulsory, as discussed last week

Tell me how it works on your side. It may be too limiting to merge into the develop branch.

Hi @vkrajnak
I just saw your pull-request. I will review it before Thursday.
Thanks.
b

Added sliders. They work quite well, but there are a couple limitations:

requires ipympl,
works only in interactive mode %matplotlib widget,
my computer struggles to execute the whole notebook at once when the mode is enabled,
complains once more than 20 figures are open.
For now it is optional only.

And I've made LD normalisation compulsory, as discussed last week

Hi @vkrajnak
It's not working for me. I can see the sliders and manipulate them but nothing gets rendered.

I restarted the kernel multiple times and cleared the graphical output too. Nothing changed.
What version of ipympl did you install? I installed ipympl-0.3.3
Add it to the requirements.txt file in the future, please.
Thanks,
b

Glad it works. ipympl 0.3.3 is the one I'm using.
 Mine seems overloaded.

ipympl will only be added to the requirements if we decide to add the sliders to develop. Right now I have doubts whether it is a good idea.

Glad it works. ipympl 0.3.3 is the one I'm using.
 Mine seems overloaded.

I ran the NB in two different machines.

For my old Macbook with 8 CPUs, takes roughyl 3-4 secs for consecutive changes to take places after using the slider.
It feels a bit slow but I think it's rather acceptable.
However, I only ran the perturbed duffing oscillator example though. And with a 100x100 grid.

I also tried 300x300 grid and unsurprisingly it slowed down, taking roughly 6-12 secs for consecutive changes.
No idea how it would behave if I have other animations running in the background.

For my 32-CPU+GPU office machine, changes are instantaneous.

I wonder if ipympl performance can be enhanced using parallel CPUs or threads, if possible. Perhaps a little research is needed
Also, I noticed that optimal visibility of manifold-slices happens for a short interval of gradient values. Maybe also worth considering further filtering of the values based on the histogram distribution of LD values.
@VikJGG , can you try to run the NB in your machine too?
Using GitKraken just click on the branch named slider, and it will instantly allow you to run the NB. Install ipympl beforehand before running the NB at all. If you see any changes after running, with GitKraken just discard all changes (top right-hand side bin-button), to keep the original version.

Thanks for testing. It runs smoothly on my machine, but with %matplotlib widget some figures crash over time. I'm not sure this is acceptable.
Parallellisation would only help if you could parallelise contourf. As you found, a denser grid slows the calculation down. The slider widget itself should not be demanding, it only runs a given function with a given parameter when changed.
Filtering the LD values deserves attention indeed, but in a system- and LD definition-independent way, i.e. as an image.
Let's see how the NB runs for VikJGG and then decide what to do with it. Merging doesn't seem like a good idea.

Apparently matplotlib threads processes already, but it can be implemented using multiprocessing to boost speed.
Have a look at this example - I haven't tested myself but seems worth trying out with plt.contourf instead of plt.plot
https://stackoverflow.com/questions/4659680/matplotlib-simultaneous-plotting-in-multiple-threads

Interesting example, but how would you use batch processing in a jupyter notebook?

I've changed the function inside the slider, so that it doesn't recalculate the plot every single time. Should be faster now.

I have tried the slider feature for the forced Duffing oscillator system in my desktop computer, which is a DELL with an Intel core i7-8700 processor and 16 GB of RAM and it works smoothly :) I have tried different grid sizes, the largest is 1000x1000, and every time it has worked fine. The computation of LDs with the denser grid of 1000x1000 took around 2 minutes and 42 seconds to execute.


Correction for raw affiliation Chercheur associé au Centre Atlantique de Philosophie (C.A.PHI, EA 7463)

Correction needed for raw affiliation Chercheur associé au Centre Atlantique de Philosophie (C.A.PHI, EA 7463)
raw_affiliation_name: Chercheur associé au Centre Atlantique de Philosophie (C.A.PHI, EA 7463)
new_rors: 059ynac98
previous_rors:
works_examples: W4205352596
contact: 7668b680ddc703b5eccab9382918962c:257b28d016787bf857aba79d3968d6 @ univ-nantes.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Fix android test

Identified in https://github.com/square/okhttp/pull/8156

Test only - build / testandroid (29) (pull_request) Successful in 11m
Presumably a quirk of Android Regex?
@swankjesse requesting post review.


IN-PROCESS status

The "IN-PROCESS" status doesn't seem to be implemented and is not documented.
Currently listing the in-process tasks (todo list -s IN-PROCESS) always returns a empty line.
Expected behavior would be that all tasks with a start date set in the past are listed here.
Used version: todoman, version 4.2.1

Expected behavior would be that all tasks with a start date set in the past are listed here.

Expected behavior is to list tasks where STATUS=IN-PROCESS.
I think you want --startable: "Show only todos which can be started today".

Expected behavior would be that all tasks with a start date set in the past are listed here.

Expected behavior is to list tasks where STATUS=IN-PROCESS.

This makes sense, but how can I move a task into STATUS=IN-PROCESS?
Is there some command I overlooked?

I think you want --startable: "Show only todos which can be started today".
Actually I wanted to get a list of "started/in-progress" tasks and I thought, that I could achieve this by setting a "start" date... But a start command would be fine as well.

This makes sense, but how can I move a task into STATUS=IN-PROCESS?

There doesn't seem to be a command to do so. I guess the GUI in todo edit could have a line with the status and a switcher to change it.
Or todo edit could have a new flag --status to update the status.
But changing status is mostly limited to NEEDS-ACTION and IN-PROCESS right now through the done and undo workflows.
Keep in mind that not all fields can be edited with todoman, but if they're reflected and displayed because you might be synchronizing with a phone or some other device/client which does support editing them.

Actually I wanted to get a list of "started/in-progress" tasks and I thought, that I could achieve this by setting a "start" date... But a start command would be fine as well.

I've always used the start date with a slightly different meaning: to indicate that this tasks starts on a given date.
For example, if I have to do a tax declaration between the 1st and 30th of May, I'll create a todo with start=2023-05-01 and due=2023-05-01. So todo list --startable won't show me this todo before the 1st of May (since I cannot actually start it).
To be clear though, that's mostly me interpretation of it; there's nothing preventing you from using the start field with another meaning, but the --startable flag won't match your expectations.
There's also "progress" field, which goes between 0 and 100, but that one is also not editable right now. TBH, I'm pretty sure that what you want is the ability to edit status=IN-PROCESS.

Thank you for the explanation!

TBH, I'm pretty sure that what you want is the ability to edit status=IN-PROCESS.

Yes, what I miss is the ability to edit/toggle the status to IN-PROCESS/NEEDS-ACTION.

I guess the GUI in todo edit could have a line with the status and a switcher to change it.
Or todo edit could have a new flag --status to update the status.

Afaik in taskwarrior this was implemented by separate start and stop commands, but IMO a todo edit --status=IN-PROCESS and maybe a "IN-PROCESS" checkbox (or status drop-down) in the TUI would be perfect!
Maybe the "IN-PROCESS" tasks could also be marked as [-] (or something else) in the todo list?

There's also "progress" field, which goes between 0 and 100, but that one is also not editable right now.

Editing the "progress" field would be also nice but IMO this makes specially sense for tasks with subtasks...

I've always used the start date with a slightly different meaning: to indicate that this tasks starts on a given date.

I see the use case now. Haven't thought of this feature that way but makes definitely sense!


In prepare_ml_data.py, maybe don't allow create_files_specifying_spatial_and_temporal_locations_of_each_example to be run if a subset of data_sources is passed in at the command line

The issue is that, if the files specifying the spatial and temporal locations of each example are computed with less DataSources than the number of DataSources used to create batches, then we're likely to attempt to sample from locations that don't exist in at least one datasource.
Maybe the mechanism should be:
By default, if prepare_ml_data.py is called with at least one --data_source command line argument, and if the files specifying locations don't exist, then throw an error.  But allow users to overwrite this behaviour with a --force_creation_of_locations flag, or something like that??

And/or, check against start_time and end_time (after those have been implemented by issue #425) - as suggested by Peter in comment https://github.com/openclimatefix/nowcasting_dataset/issues/439#issuecomment-972728948


server: Fix redis tests relying on dev configuration

Motivation
Previously, running tests would only work if there was a config.toml with a useable configuration, or the SVIX_JWT_SECRET environment variable was set (one test would also pick this up from .env, others not).
Solution
Make tests work independently of dev configuration by hardcoding config values that work for testing.

run_tests.sh was actually setting the env vars. There's probably some important improvements to be had, but this doesn't seem right to me anymore.


Tokenize submodules

Below is a list of what remains for completion of the Tokenize submodule. I realize there may be included methods and files outside of this scope.

[x] Add api.rs

[x] TokenizerI
[x] StringTokenizer

[ ] Add casual.rs
[ ] Add mwe.rs
[ ] Add punkt.rs
[ ] Add regexp.rs
[x] Add sexpr.rs
[ ] Add simple.rs
[ ] Add stanford.rs
[ ] Add texttiling.rs
[ ] Add treebank.rs
[x] Add util.rs

[x] string_span_tokenize
[x] regexp_span_tokenize
[x] spans_to_relative

[ ] Attempt to use iterators in place of returning vectors as in the nltk API
[ ] Add thorough comments with examples
[ ] Add testcases

I recommend merging to develop once we finish all tokenizers that don't require external nltk modules (e.g., compat).
The list of tokenizers that meet this criterion are:

(Potentially) mwe
(Potentially) regexp
sexpr
simple
texttiling
treebank

That sounds like a good idea.


request is assigned to the requester?

"Hi Magdalena Sitarek
Magdalena Sitarek needs help with Access to tools: [...]"
Can we do sth about it?

Can't reproduce.
Maybe there are two accounts called "Magdalena Sitarek"?


How to remove an item properly?

I want to remove an item from the list.
Tried these 2 options below suggested in https://github.com/EdsonBueno/infinite_scroll_pagination/issues/18 but they didn't work.
I had to scroll the list manually, and then it was removed.
I don't want users to scroll manually to remove an item.
Option 1
final newList = List.of(_pagingController.itemList);
newList.removeWhere(...);
_pagingController.itemList = newList;

Option 2
_pagingController.itemList.removeWhere(...);
_pagingController.notifyListeners();

Same here! @EdsonBueno

Not sure if you've tried this yet @bizk-sato, but this works for me:
_pagingController.remove(object);
In this case the object is just a record/document that I've retrieved from firebase. Let me know if this helps!

Not sure if you've tried this yet @bizk-sato, but this works for me:
_pagingController.remove(object);
In this case the object is just a record/document that I've retrieved from firebase. Let me know if this helps!

PagingController does not have remove method, at least in version 3.2.0.

Apologies! I meant:
_pagingController.itemList.remove(object);

Please provide a code to reproduce the problem.

I have same question, then I try this, it's work for me.
void removePageItem(int index,E element){
  _pagingController.itemList?.remove(element);
  _pagingController.notifyPageRequestListeners(index);
}

remove

The code does not look elegant, but it works.
Thanks

I have same question, then I try this, it's work for me.
void removePageItem(E element){
  _pagingController.itemList?.remove(element);
  _pagingController.appendLastPage([]); // tigger notify
}

Maybe this could be better since the old method won't update the next page anymore.
void removePageItem(E element){
    controller.pagingController.itemList?.remove(element);
    controller.pagingController.appendPage(<E>[],0); // tigger notify but still can load the nextPage
  }

0 is my set initial page number, if your's is 1 then that's 1.

I want to remove an item from the list.
Tried these 2 options below suggested in #18 but they didn't work. I had to scroll the list manually, and then it was removed. I don't want users to scroll manually to remove an item.
Option 1
final newList = List.of(_pagingController.itemList);
newList.removeWhere(...);
_pagingController.itemList = newList;

Option 2
_pagingController.itemList.removeWhere(...);
_pagingController.notifyListeners();

Option 2 worked for me. Do you know of a way to make it animate instead of just suddenly disappearing?


add fetch-data to ironbank

Status
Ready/In Progress/In Hold (Reason for hold)
Related Content Pull Request
Related PR: link to the PR at demisto/content
Related Issues
Related: link to the issue
Description
A few sentences describing the overall goals of the pull request's commits.

Docker Image Ready - Dev
Docker automatic build at CircleCI has deployed your docker image: devdemisto/fetch-data:<IP_ADDRESS>631
It is available now on docker hub at: https://hub.docker.com/r/devdemisto/fetch-data/tags
Get started by pulling the image:
docker pull devdemisto/fetch-data:<IP_ADDRESS>631

Docker Metadata

Image Size: 439.01 MB

Image ID: sha256:6ebe510bb5f130e3e46866e1a03d38886c37a009541445fb59e7a4a805592ae3

Created: 2022-01-02T16:02:43.257275868Z

Arch: linux/amd64

Command: ["python3"]

Environment:

PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=C.UTF-8
GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568
PYTHON_VERSION=3.9.6
PYTHON_PIP_VERSION=21.2.4
PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/c20b0cfd643cd4a19246ccf204e2997af70f6b21/public/get-pip.py
PYTHON_GET_PIP_SHA256=fa6f3fb93cce234cd4e8dd2beb54a51ab9c247653b52855a48dd44e6b21ff28b
DOCKER_IMAGE=devdemisto/fetch-data:<IP_ADDRESS>631
NLTK_DATA=/ml/nltk_data

Labels:

org.opencontainers.image.authors:Demisto<EMAIL_ADDRESS>org.opencontainers.image.revision:2e69750745593f8b111930fd9b72b6fb324fb232
org.opencontainers.image.version:<IP_ADDRESS>631

fetch-data: https://repo1.dso.mil/dsop/opensource/palo-alto-networks/demisto/fetch-data/-/pipelines/630225

Docker Image Ready - Dev
Docker automatic build at CircleCI has deployed your docker image: devdemisto/fetch-data:<IP_ADDRESS>502
It is available now on docker hub at: https://hub.docker.com/r/devdemisto/fetch-data/tags
Get started by pulling the image:
docker pull devdemisto/fetch-data:<IP_ADDRESS>502

Docker Metadata

Image Size: 442.92 MB

Image ID: sha256:dcad2212c38dd0ba8d50bfa83db165309b346a9cf7888ca5a0a76a00d7486a9d

Created: 2022-02-02T12:04:26.580530928Z

Arch: linux/amd64

Command: ["python3"]

Environment:

PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=C.UTF-8
GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568
PYTHON_VERSION=3.9.6
PYTHON_PIP_VERSION=21.2.4
PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/c20b0cfd643cd4a19246ccf204e2997af70f6b21/public/get-pip.py
PYTHON_GET_PIP_SHA256=fa6f3fb93cce234cd4e8dd2beb54a51ab9c247653b52855a48dd44e6b21ff28b
DOCKER_IMAGE=devdemisto/fetch-data:<IP_ADDRESS>502
NLTK_DATA=/ml/nltk_data

Labels:

org.opencontainers.image.authors:Demisto<EMAIL_ADDRESS>org.opencontainers.image.revision:5de66174a78e07de5634b4474300d69d54fead21
org.opencontainers.image.version:<IP_ADDRESS>502

fetch-data: https://repo1.dso.mil/dsop/opensource/palo-alto-networks/demisto/fetch-data/-/pipelines/672392


Commands in other namespaces not able to auto-register

Laravel Version: 5.5.0

Description:
In my composer.json, I have multiple namespaces setup to be autoloaded. When Laravel attempts to auto-register commands, it only registers commands that are under the first namespace in the list.
Steps To Reproduce:
See this demonstration:
https://github.com/fitztrev/laravel-auto-register-commands/compare/demo
There's a command at MyCustomApp/Console/Commands/ThisCommandWillNotBeFound.php that is not being registered even though I'm loading its directory.

Did you run composer dump-autoload after composer.json changes?

Did you run composer dump-autoload after composer.json changes?

Yes. You can see in the linked PR that I attempted that shows why it happens. getNamespace() returns only the first namespace from the compose.json file. So when load() tries to prepend that to the file path it finds, it is not resolvable.

Yes it's meant to auto-load only commands in Console\Commands, for commands in other locations you'll have to register manually.

I know this is old, but why is this restriction in place? What is the benefit to forcing commands to exist in the App namespace? I have an application with multiple PSR-4 root paths, but I can only use $this->load() for paths in the one determined to be in the app_path().

It's common across the framework, to offer convenient "magic" functionality if you use the conventions. For instance, here's a recent tweet concerning a similar way of registering policies:
https://twitter.com/taylorotwell/status/1097582054349459456?s=21
These are conveniences for using the conventions. Laravel apps would probably take a small efficiency hit if all of those auto-registering utilities were changed to cover multiple/configurable locations.

The load() method already requires a specific directory as a parameter. The issue here is that even though I'm explicitly choosing a folder outside of app_path(), the load() method itself does not allow it.
It's an imposed restriction, not a "common convenience".


It doesn't show or respond when viewing an old commit.

Hello,
When I try to view the details of an old commit, the app doesn’t refresh or show the details after I click, but it works for newer commits.
Thanks.

Hello, when I updated SourceGit to version 8.31 (previously 8.30), the issue was fixed. I will close this issue.

 It doesn't show the new information and leaves the old details displayed.

You are right. This feature is added after 8.30 (available since 8.31) by commit 0ed1f369e9f22ad1e0d03aa08472cca85a51a39b


using lastindex to find coredns version

applicable when there are multiple colons in image/tag string, for example:
image-registry.canonical.com:5000/cdk/coredns/coredns-amd64:1.5.1
error from maesh-prepare init container:
2019/11/08 13:51:28 command prepare error: error during cluster check: unsupported CoreDNS version "", (supported versions are: 1.3,1.4,1.5,1.6)

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@github/support I have signed the CLA, however it is still pending... please help!

You need to repush. A ammended commit is enough :)

@SantoDE  I have squashed the commit.

@ElDiabloRojo this PR is ready to merge, but we need to to sign the CLA to properly receive credit.
Can you please give that a go?
Thanks!

@dtomcej he said

I have signed the CLA, however it is still pending... please help!

So I guess there's an issue with the CLA?

Hello @ElDiabloRojo,
could you please use the "recheck" link to see if that fixes the issue?
https://cla-assistant.io/check/containous/maesh?pullRequest=349
Thanks :)

There is no CLA issue.
PR has been open with the account @ElDiabloRojo and commit has been pushed with @el-diablo-rojo account.
The CLA need to be signed with @el-diablo-rojo github account.

Due to inactivity, we are closing this PR.


api-spec: 404 response not defined in /api/corpora/{corpusname}/play/{playname}

Affected Endpoint
/api/corpora/{corpusname}/play/{playname}
Problem
404 response is not defined
How to reproduce
curl -X GET https://staging.dracor.org/api/corpora/0/play/0

@cmil: like this?

@afuetterer I would reformulate the problem as: The 404 response is not documented for several endpoints in api.yaml.
That would then lead to another question: do we want to document this? The 404 response is a pretty common, well known and usually straight forward response that applies to almost all resources that have some sort of parameter. My approach  so far was only to document responses when the documentation would add something beyond the basic HTTP semantics. Otherwise we would also have to add documentation for 500 and probably a bunch of other response codes that can occur for any endpoint. To me that would look like a lot of boilerplate. What do you think @ingoboerner?

Alright, I will edit the issue accordingly. I would say, that you should document 404, if they can be returned (yes for /api/wikidata/author/{id}, no for /api/info).
I would not document 500, but rather fix the issues that cause them.
Would do you think? Of course it is your decision.

Closing this. Feel free to reopen.


adjust ACEs for acs-commons-package-replication-status-event-service …

…service user to fix JcrPackageReplicationStatusEventHandler issue.
fixes #1327
Also adjust acHandling to merge to ensure that updated ACEs get reflected

@salexb @kwin please take a look at this change.

Coverage remained the same at 38.612% when pulling 2ff4d284cc4926ba9d8bbdd705465648730f1162 on justinedelson:issue/package-status-event-handler-permission-fix into 77c558b7de9c90ba02f2d9163c7dc1b0ace95248 on Adobe-Consulting-Services:master.

This seems to fix the issue, I am wondering though why jcr:modifyAccessControl is required as well. I would like though to enrich the exception handling as well. Therefore I proposed a different PR at https://github.com/Adobe-Consulting-Services/acs-aem-commons/pull/1329.

Fixes the issue for me as well, tnx, however agree with @kwin .

closing in favor of #1329


update license year to range

@facebook-github-bot shipit

@cpojer, I don't think there's any real harm here, but this guy is drive-by pull requesting zillions of projects (presumably to gain lots of internet points?). See also https://secure.phabricator.com/T2274#22866 maybe.

Thanks @epriestley! May the Internet points be with him. To the best of my knowledge, the time range in our license and copyright headers are of little significance.


Workflow / Collaboration ideas

This thread documents some general guidance on how to effectively collaborate as a team.

Could you please do me a favor and assign yourself to tickets / PRs when you start looking and responding to them?
I assume that if you assign yourself (or being assigned) that you will finish the discussion/review till the end. If that is not realistic, then please get all possible conclusions and assign it to me.
If you verified a change and are happy with it but cannot merge yourself, please assign it to someone who has the rights.
Can the typescript experts please look into the tickets labeled with type: typescript. I sometimes just tag the PRs with that label and carry on since my knowledge is (yet?) not deep enough in that field.

@ephys I think you added some notes to the project that might fit better in this issue (like the branch naming)

Thanks for the reminder I forgot this thread existed :)
Here are the few requests I have after a few months working on sequelize:

Can we scope branch names per-author (author-name/feature)? eg. ephys/tsvector-types. This would help signal who is responsible for a branch when going through the list of branches
If a PR is out of date : only update the branch it if you're about to merge it, as it delays CI runs for other PRs. Only applies to PR that are not yours of course :)
We already discussed it on slack but I'll put in writing too: I think we should have a policy of closing bug reports that haven't had a lot of effort put in (no SSCCE, examples that are unusable for us because they're copy-pastes of their codebase and include framework-specific code irrelevant to their issue, etc) at the discretion of the issue reviewer. Can of course be reopened if the issue author adds the missing information.

I noticed our changelog doesn't list breaking changes. I think that's because we're not adding the BREAKING CHANGE: tag in our PR Squashed commit messages.
We can add them like this when merging a PR:

Note the extra blank line at the start of the body, which is required by conventional commits

I noticed our changelog doesn't list breaking changes. I think that's because we're not adding the BREAKING CHANGE: tag in our PR Squashed commit messages.

Interesting, I thought that it was due to not using feat! because it would interfere with semantic release.
I think it might be better to document all breaking changes to the docs since I think the breaking changes will not persist when we do the stable release. But it can't hurt to add it when squashing PRs as well for the alpha releases

! is another way of making the commit as breaking change, but our commitlint doesn't allow it (though commitlint isn't run on pr-merge commits as it's done through github).
It should not cause sementic-release to start publishing as V8 (hopefully) https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/release-workflow/pre-releases.md
Let's continue maintaining the "upgrade to v7" documentation of course, but documenting breaking change in each alpha release will be useful for people that are using them :)


deps: Update to Cobra 0.0.5

Among other improvements should bring proper Zsh autocompletion support.

@anthonyfok you know this code way better than me -- is there anything else wee need to do on the Hugo side for this?

OK, I don't need it.


Set Autocomplete input value based on selected item when allowOtherValues is true

Overview
Resolves #1496
This is a small change to update the inputValue state to the selected item when allowOtherValues is set. This issue was only  noticeable in uncontrolled instances of the Autocomplete, i.e. one that does not set the selectedItem prop (Default Example on our doc site). The correct value (i.e. the selected item) was being set internally, but the input field was not reflecting it.
I added some tests to cover this behavior as well. React testing library was updated to get rid of some warnings about the v18 createRoot API.
Screenshots (if applicable)

Previous
	Current

Documentation

[ ] Updated Typescript types and/or component PropTypes
[ ] Added / modified component docs
[x] Added / modified Storybook stories

Hey @brandongregoryscott ,
I also thought of a similar solution to this issue but I seem to fail to build the package.
Did you face any similar issues? I am very new to open source contribution and could not find any FAQ of sorts to check if it is an existing issue.
Could you guide me or point out some existing resources if any? Thanks in advance.

@rutvij2811 Please open up a new issue if you're having trouble running the project. Any output from the build, and version numbers of the tools in your environment would help. Thanks!


i Found this error

Failed to resolve: com.github.ome450901:SimpleRatingBar:4.2.3
Show in Project Structure dialog
Affected Modules: app

@WillSmith0  Hi, the latest version is 1.5.0


pallet-balances may not be the only provider

https://github.com/paritytech/substrate/blob/0803f7d953938aa65de36993ed74cecb1f7b5407/frame/balances/src/lib.rs#L1416-L1419
It should be using can_dec_provider instead of is_provider_required.
Also need to have some tests to cover the case where pallet-balances is not the only provider. Or if there are multiple instances of it.

I think it could be closed now with #9411 merged.


Issue 144 add machine learning challenges

Implement from_dict for the Tunable class.
Improved benchmark function.
Created MLChallenge.
Implemented CensusRF challenge, based on `MLChallenge.
Included a .tar.gz file with Census data in order to not depend on external resources (links).
Updated HyperParameters to have a default value that can be set by the user or autogenerated.
Updated tests.
Resolve #144

Codecov Report

Merging #149 into master will decrease coverage by 0.65%.
The diff coverage is 91.66%.

@@            Coverage Diff             @@
##           master     #149      +/-   ##
==========================================
- Coverage   96.11%   95.46%   -0.66%
==========================================
  Files          36       37       +1
  Lines         669      749      +80
==========================================
+ Hits          643      715      +72
- Misses         26       34       +8

Impacted Files
Coverage Δ

btb/benchmark/tuners/btb.py
0% <0%> (ø)
:arrow_up:

btb/benchmark/challenges/bohachevsky.py
100% <100%> (ø)
:arrow_up:

btb/benchmark/challenges/rosenbrock.py
100% <100%> (ø)
:arrow_up:

btb/tuning/hyperparams/base.py
90.47% <100%> (+0.15%)
:arrow_up:

btb/benchmark/challenges/__init__.py
100% <100%> (ø)
:arrow_up:

btb/tuning/hyperparams/numerical.py
96.66% <100%> (+0.37%)
:arrow_up:

btb/benchmark/challenges/branin.py
100% <100%> (ø)
:arrow_up:

btb/tuning/hyperparams/categorical.py
96.87% <100%> (+0.32%)
:arrow_up:

btb/tuning/hyperparams/boolean.py
100% <100%> (ø)
:arrow_up:

btb/benchmark/__init__.py
100% <100%> (ø)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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


405 Client Error?  No response body

Trying to set it up so it sends me a message when a new user is created.  But I keep getting and no reason as to why.  Was hoping someone else has seen this before.
Microsoft Teams responded with an error 405 - Client error: POST https://teams.microsoft.com/l/channel/19%3Ab078bb283c3843ec89b3849330d32773%40thread.skype/TestChat?groupId=a0dfa142-c15d-46d0-b400-071d26173017&tenantId=df2dd858-6005-4352-b666-dd038f050723resulted in a405 Method Not Allowed response

Hmm have you setup the connectors like described here: https://docs.microsoft.com/en-gb/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook#add-an-incoming-webhook-to-a-teams-channel ?

Hmm have you setup the connectors like described here: https://docs.microsoft.com/en-gb/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook#add-an-incoming-webhook-to-a-teams-channel ?


Fix RequestMoney tabs animations

Details

RequestMoney screen is laggy when switching between its tabs. This PR aims to refactor animations and temporarily disable them on web-based platforms until root cause is addressed in React Navigation (or other solution is implemented).
Fixed Issues

$ https://github.com/Expensify/App/issues/31190
PROPOSAL: https://github.com/Expensify/App/issues/31190#issuecomment-1851723261
Tests

[ ] Verify that no errors appear in the JS console

Open FAB -> RequestMoney
Switch to Manual and check if it is rendered correctly
Switch to Scan and check if it is rendered correctly
Switch to Distance and check if it is rendered correctly

Offline tests

n/a
QA Steps

[ ] Verify that no errors appear in the JS console

Open FAB -> RequestMoney
Switch to Manual and check if it is rendered correctly
Switch to Scan and check if it is rendered correctly
Switch to Distance and check if it is rendered correctly

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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes

[x] 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)

[x] All JSX used for rendering exists in the render method
[x] 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

[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(themeColors.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 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/Expensify/App/assets/62747088/3235252e-1d44-43be-91f0-fd23d25289cf

Android: mWeb Chrome

https://github.com/Expensify/App/assets/62747088/189f9c19-78d8-4355-ab96-f38045faab19

iOS: Native

https://github.com/Expensify/App/assets/62747088/5644a8b3-50d8-4cf5-90e6-8e02b05f4e2e

iOS: mWeb Safari

https://github.com/Expensify/App/assets/62747088/bc10bb74-727d-46cd-93d6-b52b383bd662

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/62747088/126c1444-22d4-413d-87f7-33b9189a4368

MacOS: Desktop

https://github.com/Expensify/App/assets/62747088/94c485b2-92d6-45ca-902d-7f13f4ced9f9

Hi @mananjadhav, could you look into that? Thanks a lot! 👍

I've gone through the explanation of the PR, I am going through the code now and will test this today/tomorrow.
@kacper-mikolajczak can you resolve the conflicts.

@mananjadhav conflicts are resolved 👍

Tested this on Web and it looks to be working fine.
https://github.com/Expensify/App/assets/3069065/c6bafa9c-fbfa-4776-bc9b-7fd5391fd831

@kacper-mikolajczak Seems like there are some unverified commits

Going to wait for @kacper-mikolajczak to resolve conflicts and fixed the signed commits before finishing the checklist.

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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] 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 form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label 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

Since @stitesExpensify is ooo this week and this is handy performance improvement, I am going to go ahead and merge this

: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/mountiny in version: 1.4.19-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Looking good, I see that the root cause is in react-navigation, could you link to react-navigation issue which can be used to track this and how we ensure this will be fixed and we can turn the animations for web too? thank you!

Sure thing! Here is a link to the issue I posted in react-native-proposals repo: https://github.com/react-native-community/discussions-and-proposals/issues/749. It turns out it more related to Animated module than react-navigation, that's why the issue ended up there :D

@kacper-mikolajczak please also check this regression. That bug is critical

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.19-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


enable the share extension to open main app

https://github.com/alinz/react-native-share-extension/pull/67/files

https://github.com/alinz/react-native-share-extension/issues/86

https://github.com/alinz/react-native-share-extension/issues/86#issuecomment-488720063


adds title component

adding styles for titles outside of content component.
@andresgalante @srambach @jgiardino is this the right way to do margins?
as per #211 this addresses titles, lists to come next.

Deploy preview for pf-next ready!
Built with commit b94baab9c5e781aadfdbf55e9a9833309942f3b8
https://deploy-preview-216--pf-next.netlify.com

I'm so confused. I just added an inline comment which normally displays in the PR discussion thread, but it's not. But it does show when viewing your latest commit.

@jgiardino oh no, did I delete it somehow? I am a bit confused when it comes to comments and commits and amends.
One thing I'd like to talk through a bit more with this is the default concept. What you are suggesting is to have no medium and just have a default? This could work, but I wonder about having a different concept just for one style. We will have to make it very clear that is what you get with default, also if the design ever changes that could re-define default. I also think that with default we don't get the required font-weight in this case (600) but I might be wrong there.
This is probably a good topic to have outside of comments on a PR but I needed to write it out :)

:tada: This PR is included in version 1.0.1 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:


Print "no passwords saved" when no passwords exist in the db

Print that there are no passwords when the only saved password is the key

Fixed in commit


Added a units select list to the advanced search

Summary Change Description
These changes add a units select list (currently only for the fields that are DurationFields: Animal.age and Sample.time_collected).  The select list only appears where one of those fields is selected.  If it's a complex format, a question mark icon will appear and if you hover over it, an explanation of the input format will appear.  Also, changing the units changes the placeholder test in the search term field with an example.
When a search term is entered and units selected, the search term will either be converted to the native units or add formatting to make the query valid when taking how the field values are stored.
Affected Issue Numbers

Resolves #231

Code Review Notes
Currently, basic search links could be supported, as I updated the function underneath, but I didn't test or check using units in a basic search.
I had to squash the last 12 commits in order to have a clean merge with main.
Checklist

[x] All issue requirements satisfied (or no linked issues)
[x] Linting passes.
[x] Migrations created & committed (or no model changes)
Tests

[x] Tests implemented (or no code changes)
[x] All multi_working tag tests pass locally
[x] All example load tests pass (remotely) (or their failures predated and are unrelated to this branch)
[x] @tag("multi_working") added to newly passing test functions/classes (or no newly passing tests)
[x] @tag("multi_broken"), @tag("multi_unknown"), or @tag("multi_mixed") removed from newly passing test functions/classes (or no newly passing tests)

I bet it treats it like a float, where there's no equality.  Loading my sandbox database currently because my current data is missing ages.  Did you try any other searches (like greater than/less than)?  I tried time_collected > 140 minutes and that worked.  I got records where the time_collected was 150.  Does that work for you?

After review the code and ran some tests, I have comments in two categories:

test "units" features:
Tests worked for me, but the display for units was not as I expected for some cases.
e.g.
if I search age>=90 days, after clicking "search" button, I got results but the form on top showed as Age >= 90 weeks.  ( I think it should display as 90 days). It happened to other non-default types too.

OK, this has to do with the javascript code and it's initial form population.  The results are fine.  It's just the original search wasn't correctly pre-populated.  Should be an easy fix.

[ ] Debug the initial form population from existing searches.

related to design decision:
It's a feature enhancement. Big-picture wise, I am not sure if we need/want to add units.  The "units" feature works for PostgreSQL database. If we want other outside groups to use it later, the question is if we want the code to be more flexible (e.g. run on other database platform with minor changes).
An alternative is to offer less flexible search with age and time_collected  in fixed unit type ( e.g. age (in weeks), time_collected ( minutes after infusion) , similar to Body Weight(g)). I can see the pros and cons, just think out loud.

I have a 2 category response as well.

Code review is not an ideal place for design review.  The point of a design review is to solve problems before implementation, in order to not waste implementation effort.  We have a design review structure implemented that lays out design implementation in the issues themselves and labels to indicate a review should be done and an approval process for handling those reviews, but that shouldn't happen here in a code review - it should take place in the design embedded in the issues.  I have proposed design review processes in the past, but we as a group, have not adopted them.  The problem is that we don't have a good process for determining when/if those reviews should occur.  We don't require them and we don't track them, so the onus is on individual developers to apply the "needs-review" label if they feel there's an issue or a potential issue associated with planned work in the issues interface.  The result is friction in these code reviews where developers have completely different design philosophies where one developer frequently wants to discard work that another developer (who put in the effort and thoughtful work) feels proud of.  I suggest that since you frequently take design-level issues with my efforts, you should review my issues and raise your design concerns there.
This feature is a bug fix as opposed to an enhancement and it is explicitly designed to disconnect the database from the base advanced search code^.  Flexibility is what the convert and pyconvert functions coded into the configuration are for.  And this code is explicitly designed to be applied to any project, let alone other instances of Tracebase.  In fact, the code before this PR was tied to the postgres database.  It only worked because we were using postgres.  This units interface now allows the code to work with other database architectures.  All one has to do is create and populate a derived class, which includes creating the convert functions.  In fact, it will work with any ORM field type, not just DurationField.

You requested changes Fan, which implies (given our convention) that one or more of your issues is blocking, but you did not specify which issues you raised are blocking.  So I will assume it is the initial select list population.  Since I think the second issue is not valid, I will leave that component of the PR as-is and fix the initial select list population issue you uncovered.  I'd fixed a similar issue before, but I suspect that perhaps the last fix broke it for the units select list.
^ - It's true that the current convert functions still take advantage of postgres, but the convert functions are anonymous functions specifically because the derived class in which they reside is essentially a config class, and is meant to be modified.  I suspect that making it database agnostic is for them to output timedelta objects, but I was only focused on separating the base code from the database, not the config.

I also think that we should adopt a policy of encouraging constructive and specific feedback.  I think that destructive feedback (i.e. rejecting work/effort) without discrete references in the code is harmful.  For example, if you feel that this work ties the code to postgres, attach that feeback to the specific piece of code that you think is what makes the code database-specific.  And even then, if you find the specific code that has this flaw, it would be better to suggest how to make it not tied to the database, or at the least, point out how that piece of code makes the code database-specific.

OK Fan, the issues you raised have been addressed.  I fixed the initial population of the units select list and I have re-requested your review.

@hepcat72 I hope you don't take my comments personally, since my intention was to share my thoughts about the project.  I agree with you that code review is not a good place for design review. I think the root problem is we often don't have a process for discussing design, prototypes before implementing feature(s).
I might have missed details or misunderstood something, but I was not aware of the  "units" feature is a bug fixing as issue 231 is labeled as "type:enhancement".
Sorry I didn't make it clear that the only blocking issue was display of correct unit type with advanced search. I fetched and merged the code you updated yesterday in my local branch. Just tried "Advanced Search" page, somehow the dynamic search form disappeared.  Is it working on your end?

@hepcat72 I hope you don't take my comments personally, since my intention was to share my thoughts about the project. I agree with you that code review is not a good place for design review. I think the root problem is we often don't have a process for discussing design, prototypes before implementing feature(s).
I might have missed details or misunderstood something, but I was not aware of the "units" feature is a bug fixing as issue 231 is labeled as "type:enhancement".
Sorry I didn't make it clear that the only blocking issue was display of correct unit type with advanced search. I fetched and merged the code you updated yesterday in my local branch. Just tried "Advanced Search" page, somehow the dynamic search form disappeared. Is it working on your end?

OK, I have fixed the issue.  I realized that the place where I'd handled the "initial value" of submitted forms was not exclusively for populated search forms, but some other case having to do with forms for other formats.  I have some tests to fix due to some changed return values, but those will be trivial to fix.
Regarding the "bug" versus "feature" question, the associated issue is somewhat of a gray area.  The code was originally intended to work with any underlying database, but it turned out to only work with the current postgres database.  In my mind, that was a bug, even though nothing was broken, per se.  If we'd switched databases, it wouldn't work.  There had also been an issue with a prior format description of "d-hh:mm:ss", which had been fixed prior to this PR to be "hh:mm:ss" because that other format didn't actually work, but also, it seemed like a bug to make the user multiply the weeks entry they wanted by 7 and 24 to come up with (for example) 14 weeks -> "2352:00:00".  That was just ridiculous.
The code I implemented works for both animal age (in weeks) and sample time_collected in minutes, and to make the code scalable and flexible, I decided to use the same code for both instead of hard-coding static units for each field.  It is this sort of decision that I feel strongly: reduces downstream maintenance costs.  Even though that code is initially simpler to implement, those simple decisions in development multiple and intertwine to create very difficult to maintain code.  It creates unknown side-effects.  Fixes to bugs in that code can cause unexpected other problems and defect frequency rises.  In the end, you often end up with a beast of a codebase that turns out to be more complex than what you would have if you'd gone to the effort to create a generic solution in the first place.  This is something I learned formally, from an industry software engineering expert who moonlighted as a prof on the UNM satellite campus in Los Alamos.  And it wasn't just his opinion.  He presented large amounts of project audit data and performance analyses and assessments.  He was essentially a software engineering evangelist.  My boss and I took the class together and we immediately implemented what we learned in our team development efforts.  And one of the biggest things we learned was where most of the costs are in software development: the maintenance phase.  As a rule of thumb, the more software engineering processes employed, the lower the maintenance costs.  And, the more effort expended in the earliest portions of the software development lifecycle, the lower the maintenance costs.  Bugs introduced in the earliest phases (planning, requirements, design) are more expensive to fix the later they are caught.  This case of having design "bugs" discussed during the implementation and testing phases is a case-in-point.  I've already spent the time (that's the "cost") implementing the code and worked on tests.  If we find a "bug" in the design, that has already been implemented, then the solution is a refactor, which means the work done before is lost/wasted and the implementation cost doubles, if not more than doubles.  Now, I don't think there is a design bug, but you can see what I mean.
It's not necessarily that I'm taking your feedback personally.  It's that I have frustration that I know solutions to the problems that this sort of repeated interaction is the result of, and despite my efforts to solicit buy-in from others on the team to adopt those solutions (e.g. a clear process to govern design reviews, awareness of the value of scalability and robustness to reduce downstream maintenance costs, clearly defined roles and goals during the code review process, etc), I feel it's a lost cause.  And even though I try to hold my own personal efforts on this project to those standards, I feel I am met with increasing resistance to the point where I almost feel like my efforts are seen as a liability as opposed to a benefit.  I'm not the best coder in the world.  Far from it.  I know a good portion of my own coding deficits.  But I'm realizing that without reciprocal investments, I feel I benefit less from the code reviews, (e.g. if others on the team take exception to the design, they don't feel obliged to understand the code enough to provide a detailed critique and instead fall back to holistically call the design decisions into question).  When I put a PR out, I'm looking for help to make the code better, not try and justify that my design decisions were correct.  The principles behind those design decisions are the same ones I've been making all along.  A code review should be detailed and technical, to determine how well it meets the issue requirements, how well it adheres to the design, and if it has any defects based on those requirements and design.  It should be pretty banal in that regard.  Instead, I feel like it repeatedly turns into a debate that has nothing to do with the technical correctness of the code, which is what a typical code-review prescribes.


MLHR-1725 #resolve Add Support for Setters to PojoUtils

Vlad, please add a test for complex expression (getter and setter).

Thomas, can you point me to a documentation, JIRA or provide an example
for complex expressions syntax.
Currently Getters only support complex expressions in a form
"fieldA.methodB().methodC() + object.methodD().fieldE/object.methodF()".
IMHO, syntax is confusing and will lead to errors and bugs. For example
the following is invalid "(fieldA.methodB().methodC() +
object.methodD().fieldE)/object.methodF()" and will throw compile error
as "object" is always added as prefix to the expression.
Setters only support rhs assignment in complex expressions, meaning that
the following syntax is allowed "fieldA.methodB().methodC().fieldD" as
it is converted to "object.fieldA.methodB().methodC().fieldD = val;"
Is it necessary to support "fieldA++"? For getter it will work, but only
if fieldA is a public field. Is it even desirable to allow such
expressions? Generally speaking it is not a getter or a setter.
Can you please comment on generalizing getters the same way I
generalized setters. Should I go ahead and add them to getters?

Hey Vlad, please refer to this http://javarevisited.blogspot.com/2013/08/why-use-sl4j-over-log4j-for-logging-in.html about the slf4j logger syntax. It talks about how and why its more efficient.

MLHR-1726 #comment Removed fieldListToGetExpression method as it does not provide intended functionality. The idea was to construct ".getA().getB().getC().isD()" from {"a","b","c","d"} list that latter may be used in getter as expression. To do this properly it is necessary to analyze return type of all getters. The method needs to be reimplemented once there is a use case for such functionality.

Implemented support for complex expressions in getters and setters. Use {$} for object placeholder (getters and setters) and {#} for value placeholder in setters.
Fixed boxing/unboxing issues in CassandraOutputOperator.java and MemsqlOutputOperator.java.


[Communication] SMS 1:N Messages - update tests - new test cases, refactor tests

Made test coverage more in-line with other language SMS SDKs.

/azp run js - communication-sms - tests

/check-enforcer evaluate

/check-enforcer reset

/azp run js - communication - ci


[Nautilus] New Sheet

Changes / Comments
A new sheet for the Nautilus RPG.
http://www.legrog.org/jeux/nautilus/nautilus-fr
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[X] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[X] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


nested groupbys with same leaf name cause error

x.z=count(),y.z=count() by addr

on
#0:record[addr:ip]
0:[<IP_ADDRESS>;]
0:[fe80::215:17ff:fe84:c13f;]

causes
duplicate field z

Also, "x.y=count() by foo" drops the outer x.

This has been fixed...
% cat in.zson
{addr:<IP_ADDRESS>}
{addr:fe80::215:17ff:fe84:c13f}
% zq "x.z:=count(),y.z:=count() by addr" in.zson
{addr:<IP_ADDRESS>,x:{z:1(uint64)},y:{z:1(uint64)}}
{addr:fe80::215:17ff:fe84:c13f,x:{z:1(uint64)},y:{z:1(uint64)}}


Binary artifacts aren't published on bintray

Should be automated with the help of build integration process.

Prefered way to install native Rust binaries - to use cargo install.


#3050 #3054

#3050 RTVS won't change help browser to external

remove forced saving of settings in RToolsOptionsImplementation when connections are assigned (see #3050 for more details)
add settings save to CM SaveSettings.

#3054 Output full version of RTVS in remote/local version mismatch

output full version

Ping. To merge today, get build for the smoke check and BB.

👍

:shipit:


devServer.proxy config only allow simple options for http-proxy-middleware

Version
3.0.1
Node and OS info
Node 10.7.0 / yarn 1.7.0 / OS High Sierra
Steps to reproduce
devServer: {
    port:3005,
    proxy:[
      {
        context: [
          '**',
          '!/js/appDist/**'
        ],
        target: 'http://'   ip.address()   ':8080',
        secure: false,

      }]
  }

What is expected?
can use complete http-proxy-middleware config
What is actually happening?
can't use Complicated http-proxy-middleware config

From the source it is clear that only simple matcher is supported, And it's not support Array config， For example reproduce
https://github.com/vuejs/vue-cli/blob/3def765ba438638b09c6e76547b85a29ddde3ba6/packages/%40vue/cli-service/lib/util/prepareProxy.js#L66

Duplicate of https://github.com/vuejs/vue-cli/issues/2285


Invite User Link

As an administrator I want to be able to invite users to my application with the API V2, some user data I will already prefill, the user should add the authentication method itself (password, passkey, sso).
Acceptance Criteria

[ ] Create user request is changed to have the possibility to not send an email / phone code, if the isVerified is false and sendCode, and returnCode are not sent, the user will not get an email / message
[ ] Request invite code is added as a new method

[ ] I can choose if I want to get a code as return message or if ZITADEL should send the email

[ ] The method will send an email, your user has been invited to application xyz, please click the link below to accept the invite
[ ] The invite code is accepted on all methods which accept a code
[ ] A new message type invite user is added
[ ] I am able to manage the message texts for the email
[ ] Please test the following usecases:

[ ] Given user is created with firstname, lastname, email, email not verified, the user will get an invite code and can add a password, user email is verified and password set
[ ] Given user is created with firstname, lastname, email, email not verified, the user will get an invite code and can add a passworkey, user email is verified and passkey set
[ ] Given user is created with firstname, lastname, email, email not verified, the user will get an invite code and can add sso, user email is verified and sso linked

Additional Notes
How to be able to verified email and auth method?
What if i don't need email but phone, in that case i would need to verifiy the phone instead of email, how do i know what to verify?

This feature will be great for creating user management functionality in apps. One thing we should consider is that I might add already a role to the user when I send out the invitation. That would allow the user to finish the onboarding, and then login directly and work as they are supposed to. Maybe this is already possible, but it would be nice to have the ability to set the roles also in the same request (like creating an org and adding the first user and their Manager permissions).

As discussed with @hifabienne:
We'll focus on providing all the options through the v2 login. V1 must be at least be able to handle to create a user with password (like with init code).

What if i don't need email but phone, in that case i would need to verifiy the phone instead of email, how do i know what to verify?
As of now: only allow email (for backwards compatibility with v1 login)


Don't prefix a class if it already exists without the prefix.

Fixes #650
For the test I needed to use a package other than java.util, or a security exception is thrown.

Thanks a lot for contributing! :+1:

@joelittlejohn When will you be cutting the next release?

@DavidTanner 0.4.32 is on Maven Central now.

Ha, I kept meaning to comment here but didn't get around to it in the last few days. I still need to update the project docs...


Update aws-core, http-client-spi, ... to 2.17.280

Updates

software.amazon.awssdk:aws-core
software.amazon.awssdk:http-client-spi
software.amazon.awssdk:netty-nio-client

from 2.17.104 to 2.17.280.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "software.amazon.awssdk" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #283.


How to return multiple validation errors?

Description
Is there any way to capture and return all validation errors?
Expected behaviour
I want connexion to send response with an array of validation errors rather than a message which contains only one error message even if there are multiple errors.
Actual behaviour
It returns only one error even if there are multiple validation error.
Additional info:
I guess even if I use custom validator it is not possible to return an array of errors because validate_schema method catches ValidationError and send its message as a part of a response. Precisely speaking, I can write a custom validator that returns ValidationError
whose message contains multiple errors joined by some delimiters. But it is not a clean way of achieving what I want.

I've had a similar issue, and made a workaround by monkey patching validator:
import connexion

def parameter_validator_call(self, function):
    _checks = (
        ("query", "validate_query_parameter"),
        ("path", "validate_path_parameter"),
        ("header", "validate_header_parameter"),
    )

    @functools.wraps(function)
    def wrapper(request):
        if self.strict_validation:
            query_errors = self.validate_query_parameter_list(request)
            formdata_errors = self.validate_formdata_parameter_list(request)

            if formdata_errors or query_errors:
                raise ExtraParameterProblem(formdata_errors, query_errors)

        for param_name, validator_name in _checks:
            func: Callable = getattr(self, validator_name)
            errors = []
            for param in self.parameters.get(param_name, []):
                result = func(param, request)
                if result:
                    errors.append(result)

            if errors:
                return ...  # Custom logic for preparing Flask response with errors

        errors = []
        for param in self.parameters.get("formData", []):
            result = self.validate_formdata_parameter(param["name"], param, request)
            if result:
                errors.append(result)

        if errors:
            return ...  # Custom logic for preparing Flask response with errors

        return function(request)

    return wrapper

connexion.decorators.validation.ParameterValidator.__call__ =         parameter_validator_call

@danie1k Thanks, it seems like this is currently the best we can do :)


Datatable- rows are not getting updated while props values get updated

Found in carbon version
   "carbon-components": "9.57.0",
    "carbon-components-react": "6.54.1"

This works very well in
   "carbon-components": "8.23.1",
    "carbon-components-react": "5.32.0",

Rows get updated with this.props.instances then rows pass to further this.rendernstances(rows).
The issue is when this.props.instances get updated with new values, rows will still have old values.
<DataTable
                **rows={this.props.instances}**
                headers={headers}
                render={({ rows, headers, getHeaderProps }) => (
                    <TableContainer >

                            <TableHead>
                                <TableRow>
                                    {headers.map(header => {
                                        return (
                                            <TableHeader {...getHeaderProps({ header })}>
                                                {header.header}
                                            </TableHeader>
                                        )
                                    })}
                                </TableRow>
                            </TableHead>
                            <TableBody>
                                **{this.rendernstances(rows)}**
                            </TableBody>

                    </TableContainer>
                )}
            />

Hi 👋 your example above contains some of specifics in your application (and thus hard to look into). Do you want to create a reduced case based on https://codesandbox.io/s/github/IBM/carbon-components-react/tree/master/examples/codesandbox? Thanks!

@asudoh Ah! You're correct, on initial render open is undefined, since it's not included in our default props. undefined && false === undefined so the defaultProps kick in.
React default props don't get applied if the result is null (which was my assumption here).
It looks like our solution might be as simple as adding open: false to the defaultProps so that we don't pass in undefined to the active prop.
<FocusTrap active={!!open && focusTrap}> would also do the trick.

Hi @vpicone was your response ^ meant to be for #2131? Thanks!

I have tried creating a sandbox application, However its giving me errors:
https://codesandbox.io/embed/jppq1qknkw
After inspecting the issue in my code: i found that data table  component is not re-rendering after prop changes.  In the above code value of "this.props.instances" gets  updated however the value for rows in datatable component  remains same as the initial value.

@reeteshsingh93 From my quick glance at your CodeSandbox:

<TableContainer>, etc. are not named exports of carbon-components-react. They are properties under DataTable instead.
There is no component named <TableData> - Probably you meant <TableCell>?

@asudoh Thats an incomplete example as we have used tabledata component in our code.Its giving me eerror there.

OK great if you can create more isolated case - Thanks!

@asudoh Even changing tabledata to tablecell is giving me same error:

@asudoh I have updated the example which has similar functionality however we are using "rowValues" in props in our case so that the react component should update.

Hi :wave: thank you for sharing your reduced case! The root cause of the problem you are facing is you muted rowValues with .push(), which is hostile to React which basically expects immutable data. In the component in question in particular - Given there is no change in rows prop (same array reference) as you try to add a row, there is no way for Carbon data table to detect the change. You can instead e.g. do const newRows = rowValues.concat([newObj]) and assign newRows to <DataTable>. Hope this helps!

@asudoh In our actual case we have used props instead which is meant to re-render the component if its value changes here:
First time when compnent is loaded all the rows are loaded with the initial data , When we perform any action on table rows add/edit/delete the value for "this.props.parsedAdditionalSecurityCapabilities" in our code gets changed however  rows value doesn't get updated (this same was working in previous carbon version). Since the rows value never gets updated in new version we can't see the changed value without refreshing the page.
<DataTable
rows={this.props.parsedAdditionalSecurityCapabilities}
headers={additionalServiceHeaders}
render={({ rows, headers, getHeaderProps }) => (
<TableContainer className="customSolutionTableContainer" title={this.props.t('manage.additional-securities-table.table-header')}>

{headers.map(header => {
let sortClass = "";
if (header.key === "url") {
sortClass = "hideSort"
}
return (
<TableHeader translateWithId={this.props.t} className={sortClass} {...getHeaderProps({ header })}>
{header.header}

)
})}

{this.renderAdditionalServiceInstances(rows)}

)}
/>

Even mutating with the above suggestion in sandbox is not working:

Seems that you still have rowValues as a global variable. React doesn't detect a change in global variable. You need to manage it as a component state instead.

@asudoh This is similar issue which we are facing https://github.com/IBM/carbon-components-react/issues/740

#740 has closed as resolved already? Have you tried my (latest) suggestion?

Yes i implemented it in state locally and it didn't worked for me either.
renderAdditionalSecurityCapabilities() {
    this.localizeAdditionalServiceHeaders();
 this.state.rowValues = this.props.parsedAdditionalSecurityCapabilities;
  console.log(  this.state.rowValues);
    return (
        <DataTable
            rows={this.state.rowValues}
            headers={additionalServiceHeaders}
            render={({ rows, headers, getHeaderProps }) => (
                <TableContainer className="customSolutionTableContainer" title={this.props.t('manage.additional-securities-table.table-header')}>

                        <TableHead>
                            <TableRow>
                                {headers.map(header => {
                                    let sortClass = "";
                                    if (header.key === "url") {
                                        sortClass = "hideSort"
                                    }
                                    return (
                                        <TableHeader translateWithId={this.props.t} className={sortClass} {...getHeaderProps({ header })}>
                                            {header.header}
                                        </TableHeader>
                                    )
                                })}
                            </TableRow>
                        </TableHead>
                        <TableBody>
                            {this.renderAdditionalServiceInstances(rows)}
                        </TableBody>

                </TableContainer>
            )}
        />
    );
}

Above is not the right way to update the state: https://reactjs.org/docs/react-component.html#setstate

We figured out the issue with our component, we can close this.

Cool thanks @reeteshsingh93!


allow printing logs from exec probes facilitate debugging

Feature Request
add log_enable to probe config which would add stdout\err output by probe either in PC logs or process logs
Use Case:
when things don't work, and potential issue is in the probe command
Proposed Change:
Who Benefits From The Change(s)?
Alternative Approaches

Hello, we tried to solve the issue.
This is what we did:
Added log_enable field to Probe struct in health/probe.go and implemented logging functionality in health/health_checks.go
You can review changes in this commit: https://github.com/wwqwq2313/F1bonacc1-process-compose-286/commit/39754f57c5183aab8c22d6a45265bf46f56693bf.

[!CAUTION]
Disclaimer: The concept of solution was created by AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.


[Solves #254] Add support for RANDOMKEY command

Hey @JyotinderSingh @arpitbbhayani,
Sorry if it was not allowed to initiate a pull without getting assigned (Issue #254) (If it was feel free to discard this MR).
I had implemented this some weeks back but did not get a reply so decided to commit and push the changes.
For now I've made it so that it uses the existing KEYS implementation and works in O(n). It took approximately 1ms for 100k key entries and 40ms for 1m entries based on the go test benchmark.
If we need it in O(1) might have to create a separate key slice to keep track of the keys and extract RANDOMKEY in O(1).
Additionally, I have skipped the loop to check if the RANDOMKEY is expired, so it is possible for a non-evicted expired key to be returned, again can make changes as needed for the requirement.
Thanks.

Hi @xanish, Thanks for the changes. Ideally, people work on the issues assigned to them, to avoid duplicate effort. Hopefully, this will answer your question, but if you would like to discuss more, drop a message on the discord community here.

Since the existing owner of the issue did not submit any PRs for a while, let's go ahead with this one. Assigning the issue to you. I'll go through this PR in a bit

Let's ensure we don't return expired but non-evicted keys.

Updated and rebased with new changes on upstream master

@SyedMa3 looks good?

If we have to get it done in less than O(0) time complexity, we would have to dive deep into the map implementation of Go.
I found this article which explores random key in O(1) space and O(L * (1 + k/n)) time, where n is the number of elements in the map, k is the "capacity" of the map (how many elements it can hold before being resized), and L is the length of the longest "bucket chain." Since Go maps double in size when they grow, the total time will generally not exceed 2x the normal map lookup time.
Article: https://lukechampine.com/hackmap.html
Repo: https://github.com/lukechampine/randmap
We can take inspiration and maybe do something like this?
What do you guys think?
@JyotinderSingh @apoorvyadav1111 @arpitbbhayani @soumya-codes @AshwinKul28

If we have to get it done in less than O(0) time complexity, we would have to dive deep into the map implementation of Go.
I found this article which explores random key in O(1) space and O(L * (1 + k/n)) time, where n is the number of elements in the map, k is the "capacity" of the map (how many elements it can hold before being resized), and L is the length of the longest "bucket chain." Since Go maps double in size when they grow, the total time will generally not exceed 2x the normal map lookup time.
Article: https://lukechampine.com/hackmap.html
Repo: https://github.com/lukechampine/randmap
We can take inspiration and maybe do something like this if it's possible?
I have not understood it completely so not sure if it's production safe.
What do you guys think?
 Maybe we can put this off for later since it is not of the highest priority to have this command run in O(1) time.
Thanks for exploring and diving deep into this @SyedMa3. If someone wants to take up this task independently then that's great. However, the core team is stretched thin across a lot of the different projects which are going on right now and won't be able to provide active support on the initiative to make this run faster.

This PR does not compile, could you please take a look @xanish?

Some of the test cases are failing, please take a look.

@JyotinderSingh can you check now

@xanish thanks for working on this feature.
We are going to make multi-threading the default mode of operation for DiceDB in the coming days. We will need to migrate this command as a part of this change itself.
I'm pulling in @AshwinKul28 to help lead the discussion on that and guide you about it since multithreading support for this command will not be straightforward.
Feel free to take your time on the implementation.

Hey @AshwinKul28 can you direct me on this? i will have free time from this weekend so i can wrap this up.


Clinical Note attachment reference mismatch bug

We just found another error that we think is a bug in inferno source code. This is in the Clinical Notes Guidance test section, "DiatnosticReport and DocumentReference reference the same attachment".

As you can see there is a null pointer error coming from the Ruby code. Looks like this is where the issue is
https://github.com/inferno-framework/us-core-test-kit/blob/main/lib/us_core_test_kit/custom_groups/clinical_note_attachment_test.rb#L37
I'm not a Ruby expert, but to me this looks like
            "#{url} in DiagnosticReport/#{report_attachments[patient_id][url]} for Patient #{patient_id}"

needs to be changed to this
            "#{url} in DiagnosticReport/#{report_attachments[url]} for Patient #{patient_id}"

As report_attachments looks like it should be hashmap with url's for keys and not patient_id's
It looks like this error is presented because our test data has a mismatch that inferno was trying to give us a proper error message for, but this is still an inferno bug.

Thank you @nathanloyer!  This is absolutely a bug in Inferno.  End users should never see the "Purple Errors" (as we call them), regardless of server behavior.  They usually happen when the server is misbehaving and would fail the test anyhow, but at the very least it is an opportunity for us to improve failure messages.
Q for you as a user: is the above statement obvious, or should we put some explanatory text in the error message, and perhaps hide the technical details somewhere (e.g. as a Message)?

@nathanloyer Thanks for the PR. I pulled your changes into my branch and added unit test.

Thanks for the feedback on error messages, this is helpful.

Usually I have to dig through code to figure out where the data is coming from and that's not something that should have to happen.

Absolutely!

Thanks for the quick turnaround. I just opened a related issue in #113 that I was hoping yall could review as well when you get a chance. I'd like to get a resolution for that issue as well as this one into the next release that I assume should be happening in a week or so.


How to parse tuple like label arrays?

Hey,
I am new in Rust.  I have a file that I couldn't parse for hours. Like that struct:
hosts:
  - foo: "Hi"
    bar: "Hey"

  - foo: "Hi"
    bar: "Hey"

What kind of structure should I build to deserialize this yaml file correctly?
Thank you!

The 'hosts' field looks like a vec of structs.
use serde::Deserialize;

#[derive(Deserialize, Debug)]
struct Doc {
    hosts: Vec<Host>,
}

#[derive(Deserialize, Debug)]
struct Host {
    foo: String,
    bar: String,
}

const Y: &str = r#"
hosts:
  - foo: "Hi"
    bar: "Hey"

  - foo: "Hi"
    bar: "Hey"
"#;

fn main() -> serde_yaml::Result<()> {
    let doc: Doc = serde_yaml::from_str(Y)?;
    println!("{:#?}", doc);
    Ok(())
}

@dtolnay Thank you!
And lastly, How can I de-serialize for non-required labels? Like foo is required, but bar and baz not;
hosts:
  - foo: "Hi"
    bar: "Hey"

  - foo: "Hi"
  - foo: "Hello"
  - foo: "Hola"
    baz: "Salut"

Currently, when i run the code, it panicked at run-time:
thread 'main' panicked at 'called Result::unwrap()on anErrvalue: Message("missing fieldbar", Some(Pos { marker: Marker { index: 190, line: 13, col: 7 }, path: "hosts[1]" }))', src/libcore/result.rs:997:5

Use Option<T> as the type of optional fields.


Support PostgreSQL enum in DatabaseSetup

CREATE TYPE PRODUCT AS ENUM ('phone', 'laptop', 'mouse');

CREATE TABLE products (
    id BIGSERIAL NOT NULL PRIMARY KEY,
    title VARCHAR(20) NOT NULL,
    type PRODUCT NOT NULL
);

<dataset>
    <products id="1" title="Pixel" type="phone" />
</dataset>

Caused by: org.postgresql.util.PSQLException: ERROR: column "type" is of type product but expression is of type character varying
Hint: You will need to rewrite or cast the expression.

+1

+1

+1

+1

https://stackoverflow.com/questions/37989786/dbunit-postgresqldatatypefactory-does-not-recognizes-enum-list

https://sourceforge.net/p/dbunit/feature-requests/204/

+1