Line numbers and inline editing

New features:

Line numbers in the motion detail view (including projector view). The maximum line length is configurable.
Inline editing of motion text (if the "update"-permission is present and the most recent version of the motion is selected)
Unit-tests based on Karma

The functions in diff.js are in preparation for the next feature (amendments).
This commit is the merged version of all commits in https://github.com/OpenSlides/OpenSlides/pull/2285 .

Ok, ready to merge!

Hi CatoTH, many, many thanks for this great new feature! This is a huge improvement for the workflow. Also the feature to go to a certain line to highlight it is great. That is what we need in party conventions almost every time.


bot refuses to start.

Everytime i try and start it using the provided start command
python -m src.main
i just get
/usr/bin/python: No Module Named SRC

getting the same issue when running that line after basic setup

just move the main.py file from the src folder and paste it in the bot folder. like this.

solution on my end
python3 -m src.py
if you're on macos or linux for example should work

ah try running touch src/__init__.py and then trying python -m src.main again

Hi! Can u help, when I try to launch the bot, it gives these errors(

check your discord bot token.

For help, please use Discord API Discussions or Discord Project Post

Everytime i try and start it using the provided start command python -m src.main
i just get /usr/bin/python: No Module Named SRC

Make sure your python3 is up to date


Add support for defining custom dnssec-policies

This is a complement to #205 to allow to setup custom policies.
This is currently a draft until I manage to deploy this code in a real-world workload.

I have no strong opinion (and not too versed in dnssec), but it doesn't look crazy to me? ;)

Thanks!  I squashed the commits.


Using the environment variable in the connection string for the database in the genbil

Hi,
I usually load a set of my test cases from my database like:
case load query 'Relative Directory\myQuery.sql' on 'Data Source=...';
However, I was wondering if it is possible to place the environment variable in the connection string for the database instead of 'Data Source=...';
For example:
case load query 'Relative Directory\myQuery.sql' on 'environment name ="Database"';
Unfortunately, this example does not work. Obviously, I took a few tests, where I changed this syntax, but none of my ideas works..
Could you please tell me if it is possible to implement the environment variable in this connection string for the database?
If so, would you be so kind as to advise me how to deal with it?
I would appreciate it if you could share any ideas with me.
Thanks in advance!

There is no support of environment variables within genbiL.
This should be implemented as a new feature.

Hi! Thank you for your answer.
It seems that this feature would be extremely useful and helpful.
Could you please tell me if you implement it soon ?
Should I create a new pull request about it ?
I would appreciate it if you could tell me about it.
Best regards,
Lukasz

To be honest, I’m not working on Nbi at this moment. I’ve other urgent priorities.
Nevertheless, it’s not really complex to implement. Will try to find one hour to implement it this week.
If you want to work on it, feel free. I do believe that the right syntax woulld be something like env$:my Var without the quotes. Before pushing any code would be better to check that we are aligned on syntax.

On 8 Jun 2022, at 08:56, Lukasz @.***> wrote:

Hi! Thank you for your answer.
It seems that this feature would be extremely useful and helpful.
Could you please tell me if you implement it soon ?
Should I create a new pull request about it ?
I would appreciate it if you could tell me about it.
Best regards,
Lukasz
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.

Hi,
Thank you for your advice and response !
I will try to handle this problem once again and inform you about it provided that it works.
If you find this solution earlier, I will be thankful if you share it with me.
Therefore, we keep in touch!
Best regards,
Lukasz

I hope that this version is adding the feature.  To reference an environment variable use the following syntax
case load query 'Relative Directory\myQuery.sql' on $env:Database;

where Database is the name of the environment variable.
Could you confirm that it's matching with your need? If yes, I'll merge and create a beta.

Hi!,
Thank you for your contribution to it.
I downloaded Framework.zip and UI.zip files in order to run my genbiL.
Unfortunately, if I open my genbiL files with your syntax, I will encounter difficulties in opening it. This failure appears: "Object reference not set to an instance of an object".
However, if I open the normal genbiL files without this syntax, it will work.
I tried to open these nupkg files by Visual Studio , but it did not work as well..
Therefore, could you please try to fix it and inform me about it ? Then, I will test it.
If I run it wrongly, can you advise me how to open it properly to run my genbiL with your syntax ?
I would appreciate it if you could fix it.
Best Regards,
Lukasz

Could you share your file?

Hi,
Do you mean a genbiL file ?
If so, these codes are included there:
case load query 'Relative_Directory\myQuery.sql' on $env:Database;
template load file 'Relative_Directory\Template.nbitt';
suite generate;
setting default assert connectionString '';
setting default systemundertest connectionString '';
suite save 'Relative_Directory\Save.nbits';
If no, could you please tell me which ones you need ?

I published a new version that should be working: https://ci.appveyor.com/project/Seddryck/nbi/builds/43833902/artifacts

Hi,
Thank you for your contribution to it.
Could you please tell me which files I need to download from this link to try it ?
It seems that I should download Framework.zip and UI.zip. Is it correct ?
I would appreciate it if you could advise me which ones are necessary to test it.
Thanks in advance !

I'd say that UI.zip should be enough, changes are limited to genbiL.

Hi!,
I put this code, which I sent you, to a genbiL file and when I run my macro I received this information:
"Exception generated during execution of the macro.
connectionString
The connection string cannot be null or empty."
I checked my environment variables in Windows and all of them has connection strings.
Could you please tell me how you modify your genbiL file that works properly ?
I am not aware where I made a mistake.
Best Regards,
Lukasz

Hi!,
I tired it once again and it works successfully!
I needed to change locally my environment variables in Windows with respect to this structure: 'Data source:...'
Then, I needed to run this Genbi as a administrator.
Thank you for your contribution and aid in this modification!
Best Regards,
Lukasz

Yes, it will be integrated into the next release. After some additional review, I'll write down some documentation and push to the develop branch. That will generate a new beta.
There is no difference between a beta and a release except the naming. I don't know when I'll publish a release.


[ci] Fixes nightly publish ci bug

Description
Brief description of what this PR is about

If this change is a backward incompatible change, why must this change be made?
Interesting edge cases to note here

Codecov Report
Patch coverage: 54.55% and project coverage change: -0.03 :warning:

Comparison is base (bb5073f) 72.08% compared to head (b53cc0b) 72.06%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2691      +/-   ##
============================================
- Coverage     72.08%   72.06%   -0.03%
- Complexity     5126     7019    +1893
============================================
  Files           473      698     +225
  Lines         21970    31250    +9280
  Branches       2351     3224     +873
============================================
+ Hits          15838    22519    +6681
- Misses         4925     7199    +2274
- Partials       1207     1532     +325

Impacted Files
Coverage Δ

api/src/main/java/ai/djl/modality/cv/Image.java
69.23% <ø> (-4.11%)
:arrow_down:

...rc/main/java/ai/djl/modality/cv/MultiBoxPrior.java
76.00% <ø> (ø)

.../main/java/ai/djl/modality/cv/output/Landmark.java
100.00% <ø> (ø)

...djl/modality/cv/transform/RandomFlipLeftRight.java
25.00% <0.00%> (-25.00%)
:arrow_down:

...djl/modality/cv/transform/RandomFlipTopBottom.java
25.00% <0.00%> (-25.00%)
:arrow_down:

...i/djl/modality/cv/translator/BigGANTranslator.java
21.42% <0.00%> (-5.24%)
:arrow_down:

.../modality/cv/translator/ImageFeatureExtractor.java
0.00% <0.00%> (ø)

.../ai/djl/modality/cv/translator/YoloTranslator.java
27.77% <0.00%> (+18.95%)
:arrow_up:

...ain/java/ai/djl/modality/cv/util/NDImageUtils.java
67.10% <0.00%> (+7.89%)
:arrow_up:

api/src/main/java/ai/djl/modality/nlp/Decoder.java
63.63% <ø> (ø)

... and 227 more

... and 368 files with indirect coverage changes

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


Valid user access to run Test-CsLisCivicAddress

[Enter feedback here]
The part not mentioned on the document is that the fact I observed, and the reference article below which the certificate(.pfx) will be stored in the Personal Certificate Store instead of Local Machine in course of the Set-CsLisServiceProvider process, which is related to the step when it comes to the PScmdlet Test-CsLisCivicAddress.
In the case for a large org which happens to have multiple admins for their SfB and the admin who didn't originally configure the  LIS provider with the Set-CsLisServiceProvider on the machine, the specific admin wouldn't be able to leverage the certificate for him/her personal certificate store and could end up with the error "Could not create SSL/TLS secure channel"
It would be helpful for the customers get the detail information and background included in the document.
Thanks.
Reference document
https://ucworkerbee.com/2019/08/02/fix-skype-for-business-server-cannot-access-master-street-address-guide-msag/
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e505d937-c075-bab3-0103-ac5f93df9372
Version Independent ID: 98b66f30-07a8-37b9-e82d-6cda847cd25c
Content: Set-CsLisServiceProvider (SkypeForBusiness)
Content Source: skype/skype-ps/skype/Set-CsLisServiceProvider.md
Service: skypeforbusiness-powershell
GitHub Login: @hirenshah1
Microsoft Alias: hirshah

Hello @jinbchoi
I am looking into this, thanks for your feedback.

@get-itips Any update

Hello @jinbchoi
Sharing with you the answer from product team
The cmdlet Set-CsLisServiceProvider, that takes a .pfx certificate file will not copy the certificate in the Personal Store (of the running admin) of the SfB Server where it's run.
From what we understand the issue is :

When using the Test-CsLisCivicAddress cmdlet it returns an error

The error being : The request was aborted: Could not create SSL/TLS secure channel.

This happens because you need to set before you do any other actions.
When we use the Set-CsLisServiceProvider cmdlet, it takes the name of the provider, a URL for the web service that the organization will use to send the locations and a certificate &  password for the secure web service.
example :
Set-CsLisServiceProvider -ServiceProviderName E911Provider -ValidationServiceUrl https://www.911contoso.com/validation/ -CertFileName C:\MS-Contoso-Cert.pfx -Password $p
Then , a sproc is run which stores this authentication information in DB of that machine -and not in personal store.
Then when a Test-CsLisCivicAddress cmdlet is run, it uses that stored information.
But if we run the test command directly, it doesn’t have that certificate info in DB. So, it throws an error.
Hope this information helps you, other than that, I don't see an edit to the article required.

Hi Andres,
Thanks a lot for the review and providing the update. I guess my(cx's) main question was "why Test-CsLisCivicAddress command fails on the person who wasn't the user who set up the E911 provider using Set-CsLisServiceProvider?"
Here is the challenge customer has;

The provider has set early on from a person(say, John) in the past and E911 had worked fine ever since
They have a routine check for the E911 using Test-CsLisCivicAddress, but they don't know who would be the user performing the test since there are multiple admins
They have noticed that there wouldn't be an issue when John performs the test. But, all other people than him gets failure
You probably elaborated in the explanation, but cx would like to get the consistent result no matter who execute the tests expecting Set-CsLisServiceProvider would be one time thing unless there is any changes with the provider/cert/etc.

Hope this clarify the challenge with the design and current public documentation.
Please feel free to contact me if you have any questions.
Thanks again!
Jin
From: Andres Mariano Gorzelany @.>
Sent: Thursday, December 15, 2022 11:46 AM
To: MicrosoftDocs/office-docs-powershell @.>
Cc: Jin Choi @.>; Mention @.>
Subject: Re: [MicrosoftDocs/office-docs-powershell] Valid user access to run Test-CsLisCivicAddress (Issue #9797)
Hello @jinbchoihttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjinbchoi&data=05|01|jinchoi%40microsoft.com|7c2f665ad3ce49bcdef608dadebbe6a6|72f988bf86f141af91ab2d7cd011db47|1|0|638067195866465653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=Cw3YZvFs5Y0P%2Fsf4Lde6mm6zmdDFz6tP5mik1oB3oBc%3D&reserved=0
Sharing with you the answer from product team
The cmdlet Set-CsLisServiceProvider, that takes a .pfx certificate file will not copy the certificate in the Persona
l Store (of the running admin) of the SfB Server where it's run.
From what we understand the issue is :

When using the Test-CsLisCivicAddress cmdlet it returns an error
The error being : The request was aborted: Could not create SSL/TLS secure channel.

This happens because you need to set before you do any other actions.
When we use the Set-CsLisServiceProvider cmdlet, it takes the name of the provider, a URL for the web service that the organization will use to send the locations and a certificate & password for the secure web service.
example :
Set-CsLisServiceProvider -ServiceProviderName E911Provider -ValidationServiceUrl https://www.911contoso.com/validation/https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.911contoso.com%2Fvalidation%2F&data=05|01|jinchoi%40microsoft.com|7c2f665ad3ce49bcdef608dadebbe6a6|72f988bf86f141af91ab2d7cd011db47|1|0|638067195866465653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=rkMAwdOOSA6giv0vHkPJy1QpMu4cpquFF5qOUcD%2Fe%2BQ%3D&reserved=0 -CertFileName C:\MS-Contoso-Cert.pfx -Password $p
Then , a sproc is run which stores this authentication information in DB of that machine -and not in personal store.
Then when a Test-CsLisCivicAddress cmdlet is run, it uses that stored information.
But if we run the test command directly, it doesn't have that certificate info in DB. So, it throws an error.
Hope this information helps you, other than that, I don't see an edit to the article required.

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Foffice-docs-powershell%2Fissues%2F9797%23issuecomment-1353381795&data=05|01|jinchoi%40microsoft.com|7c2f665ad3ce49bcdef608dadebbe6a6|72f988bf86f141af91ab2d7cd011db47|1|0|638067195866465653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=WkZ%2BO3wU18IYKMoUSlsTY0E7pGRGm0X7kEdDeMPN66U%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FA2P2UG7WXOEF7FTP4ZL27ELWNNDN7ANCNFSM56OTBZGA&data=05|01|jinchoi%40microsoft.com|7c2f665ad3ce49bcdef608dadebbe6a6|72f988bf86f141af91ab2d7cd011db47|1|0|638067195866465653|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=dp%2FBtgUV1t5WSBkc7bCpi8uDGCtIR7jivYMrXFYm94A%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

@jinbchoi I can understand, I'll share the feedback.


Horizontal scroll support

Looks good, just not sure if the top function should remain, or should it's name be changed to reflect what it does? Maybe topLeft or something?

I changed the function name.

Thanks for the contribution! :)


add support for {x86_64,aarch64}-pc-windows-gnullvm

These are tier 3 targets but are in use by windows-sys (as of last month) which causes things using this library to parse packages to now fail. Relevant section in rust book:
https://doc.rust-lang.org/rustc/platform-support/pc-windows-gnullvm.html

Thanks for the speedy response here :) have a nice weekend 😊

Thanks


Update ru.coffee

Leaderboard and Teachers block + unlock_help_vidoes.

Is it mistake with "unlock_help_vidOEs"?
Also, i think, it will be good to change HoC-related text to something more common.

Nice catch on the "help_videos"! As always, thanks for keeping the file up-to-date.

OK, thank you!


Finalize security header fields for CHIP v0.1

Problem
What message header fields are needed for secure channel in CHIP's v0.1 release.
Proposed Solution
Identify the fields, and update the code.

Fixed by https://github.com/project-chip/connectedhomeip/pull/1950


Add unnesting for correlated subquery in where clause with aggregation

This PR adds support for unnesting for correlated subquery in where clause with aggregation. For example, for query SELECT t.a From test AS t WHERE EXISTS (SELECT count(b) FROM test WHERE a = t.a) we'll pull up the correlated predicate, the transformed query would look like: SELECT t.a From test AS t, (SELECT count(b) FROM test GROUP BY a)  WHERE test.a = t.a.
This PR will also fix #1146 because now we support aggregate expressions in predicates.
I also add error handling logic in the optimizer to throw an exception if see a query not supported.
I think Patrick is the best person to review this, I'll try to contact him.

Coverage decreased (-0.06%) to 76.816% when pulling 2d3aa8c0a491e8be3a14a979282604e2c7b2b5b2 on chenboy:nested_query into ab16393d87833b0b580dfac38b9503cb44022de6 on cmu-db:master.

Working on adding fix for #1162

@malin1993ml I just added support to subqueries in having clause, it's logic is similar to subqueries in where clause. Please take a look at this PR when you're free.

Reply to some comments first.

There are some cases in this test case, I'm not sure if this is the what you referred to.
If the query specify an aggregate expression in its select list, even if there's no group by clause, we would generate an aggregate operator for it.
PushFilterThroughAggregation is a general rule, while PullFilterThroughAggregation is designed for unnesting.
According to Postgres documentation, operators with subqueries should be in the form of expression operator ANY/SOME/ALL (subquery). We could specify desired semantics we want using ANY/SOME/ALL.

I see. It's not a newly added test so I guess that's why I didn't see it earlier.
Then can I write something like this: select B.a from test as B where exists (select c from test where a = B.a);?
Then how would you ensure that PullFilterThroughAggregation only applies to nested queries but not "normal" queries?
That makes sense now.

Yes, you could write queries like this. In this case it does not quite matter what the select list is in the subquery.
In `PullFilterThroughAggregation, we only pull queries that have correlated predicates.

Sure. But my point is, in this case how would you generate the aggregate operator for this subquery to perform unnesting?
I see.

Unnesting does not rely on aggregate operators. In this case, we could directly pull the predicate through join to perform unnesting. We've supported this query in the previous PR.

I see. That's the part that I was missing before. Thanks for the explanation!

@malin1993ml Just address these comments. The depth is used in the binder to annotate TVE with their nested level. If you refer to a column from a nested table, the TVE would have a depth less than the current depth. It's a legacy from the old framework. I also have some doubts about its correctness and necessity, but it would be better to work on it in another PR.


FreeBSD issue with tag 5.0.0 and missing bindings

Release v5.0.0 does not contain freebsd-x64-88_binding.node again with node 15.  :-( !
You can check your repo:
https://github.com/sass/node-sass/releases/tag/v5.0.0
@saper @nschonni

Wondering this as well.  Is the FreeBSD release strategy different than the other supported platforms?

freebsd-x64-88_binding.tar.gz
Here's the result of building on freebsd w/ node 15.  Hope it helps someone

@moracca thx

I have added the missing binaries for 5.0.0.


CTAs are appearing in English on homepage for Brazilian user

logged in as user 2987505 (who has language set as BR PT)
seeing campaign titles in PT (good)
seeing CTAs in English (bad)
when I use the finder, I'm seeing CTAs in PT (good)

homepage:

filtered results on finder:

might be related to #5257? Which I kind of think we might not need because we really should have an editorial rule where a version of the homepage doesn't include campaigns that don't have a translation in the language of the homepage (i.e. we shouldn't have a MX-SP homepage that has a campaign that doesn't exist in MX-SP)

The experience has changed. I'll be making updates this afternoon.

I can't reproduce this issue anymore, I think it's because of all the new logic (eg: #5349) that's been implemented since this issue was made
can we close out?

I agree @deadlybutter -- this is most likely outdated. @mikefantini, I suggest closing this out. We can re-open with fresh eyes if we can reproduce anything like it against the current codebase.

Sounds good.

This is happening again in the finder if:

GL EN translation is published
BR PT translation exists, but is unpublished

Go to thor as a user from BR and filter by cause "Meio ambiente"

To be clear, for Bookmark Climate Change, since GL EN is the published content that should be accessible for the user, we would want the Title and CTA to appear in GL EN.

@blisteringherb I think when you fixed #5570 you resolved this issue as well:

(see Bookmark Climate Change which was the offending campaign previously)

Yay!


Server returning RequestTimeout if the request stream is not read

If I implement a very simple ASP.NET Server, which returns a hardcoded dummy response without reading the request, and send a couple of larger (a couple kbytes) requests to it, the server responds to the second request with a RequestTimeout instead of OK. It only happens on Linux, it works properly on Windows.
I uploaded a self-contained repro here: https://github.com/markvincze/KestrelRequestTimeout
The test works properly on Windows, but it fails on Linux (I tested with Ubuntu, and also with Docker on Windows).
Does this seem to be a bug, or am I doing something wrong in my code?
(I've seen this issue, which seems to be similar, but that's supposed to be fixed in 2.0.)

@markvincze Thanks for the awesome repro. It made it very easy to track down the issue. I captured a network trace using wireshark, and it looks like there is a bug in the Linux HttpClient.
In your repro, Kestrel is sending a 200 response without sending a "HTTP/1.1 100 Continue" response or waiting for the first request body to even start uploading. This itself is not a bug, but this is what triggers the HttpClient issue.
At this point, HttpClient should either upload the first request body before reusing the TCP connection for new requests or simply close the TCP connection. Instead, HttpClient on Linux is attempting to immediately send the following request without ever sending the 7000 byte response body for the first request.
Kestrel interprets this "new request" as the body of the first request. The bytes and the very end of the the "new request" are interpreted as the beginning (i.e. start line) of the second request. Since Kestrel never technically receives a complete second request, it eventually times out and sends a 408 response.

Hi @halter73,
Thanks for picking this up!
And thanks @lucaslorentz for investigating the original issue.

No problem. At least you can work around the issue for now by explicitly consuming the request body.


[Question] Expected behaviour when identifying whilst opt'd out

Hello!
What's the expected behaviour when calling posthog.identify whilst the posthog client is opt'd out?
I can see that the propertiesCache contains the properties set whilst the client was opt'd out but they're never sent.
posthog.optOut(true)
posthog.identify(properties)
posthog.optOut(false)
posthog.identify(id)

Sorry for the delay.
Yes, the properties are cached but never sent unless you opt in again.
https://posthog.com/docs/libraries/js#opt-users-out
We're currently reworking the Android SDK and this may change, stay tuned.


Apache Pulsar Scaler

This is a request for an Apache Pulsar (https://github.com/apache/pulsar) scalar so that Keda users can integrate with Pulsar.

Great idea!
Are you open to contributing this @vishal-biyani ?

Hi, @tomkerkhove I would love to contribute but the next 3 weeks is tough based on my schedule. I will update here when I plan to start this one. In meantime are there any good pointers I should look at apart from existing Scalar implementations?

No worries at all, take your time!
We are always happy to help on the Kubernetes Slack or you can follow this doc: https://github.com/kedacore/keda/blob/master/CREATE-NEW-SCALER.md

Actually, I am working for Pulsar Scaler. Even before I didn’t notice this issue.

Well if you want to pick it up @liangyuanpeng, just let me know!

@tomkerkhove  Yes,I am interested in this. Keda and Pulsar are both amazing things , Thank you for your reply!

You may want to take a look at this blog before Pulsar scaler is finished. Creating an External Scaler for KEDA

@tomkerkhove @liangyuanpeng @vishal-biyani I have created an external scaler for KEDA. It can be easily converted to a built-in scaler. Take a look at this https://medium.com/@krvarma/creating-an-external-scaler-for-keda-31b314b5c4a3. Let me know I can work on the conversion and send a PR.

I'm happy with however contributes it so I'll leave it up to you folks to discuss who does what!

@liangyuanpeng @vishal-biyani What you think?

@krvarma I am not working on this ATM so I will leave it to you and @liangyuanpeng

Hi @krvarma @vishal-biyani @liangyuanpeng any update on this issue? I would love to see Pulsar scaler :)

@turbaszek Since its been long time with no reply from @liangyuanpeng I think it is OK to proceed. I am working on the it and hopefully finish it by couple of weeks. I will keep posing updates.
@tomkerkhove @vishal-biyani

Awesome, thanks!

Any update on this? If not started can I pick this up?

As far as I know, this has not been picked up, thanks for grabbing this one!

Do we have a timeline on when this will get merged? We heavily rely on Pulsar and this feature would be of great help.

The PR is still open since it was not ready yet but I've pinged the contributor on #1666

Thank you @tomkerkhove.


AttributeError: 'Result' object has no attribute 'records'

Hey Lucas,
Hate to ask you another question, but am I possibly missing some code or data here? I ran
./run config/mock_species_articles.json

and then after checking that the database actually had data in it. I ran
./run config/search.json

to create the index file. I got this error message
AttributeError: 'Result' object has no attribute 'records'

Documentation about the error message is attached! I really appreciate your time if you could help me with this!
AttributeError 'Result'object has no attribute 'records'.pdf

Weird. .records() is a builtin neo4j function, it's how the neo4j API returns data from a query. Can you post your package versions? Mine are the following:
neo4j==1.7.6
neobolt==1.7.17
neotime==1.7.4

Looked into it, and the issue is just that the neo4j client version isn't pinned. Either you can remove the .records() everywhere, or downgrade neo4j. I recommend updating it if possible.
See this documentation

See the latest version of bitflow and #30. Does this fix things? The latest neo4j client has a ton of breaking changes, and the requirements.txt wasn't frozen, so you must've been using 4.0

Yes, the poetry package manager did fix the issue! Thank you for all your help.


Do not delete target wallet, do not fail migration on item-error

This is set of changes to make the migration.

More graceful, one migration error should not halt migration of the rest. It's up to migrating user to evaluate whether the migration result is satisfactory.
Idempotent - if migration fails for example due an IO error midway, it should be possible to finish it on 2nd try.

Changes:

If migration fails, do not delete the target wallet.
Disable adding records to vdrtool cache when running migration.
Do not fail migration if the record has unexpected format. Just skip it and log the record.
If migration of the record itself fail, skip it and log.
If adding item to target wallet fails due duplication error, skip it. For idempotency it would be ideal to overwrite it, but that would need digging deeper. For now, skipping these records still gives us idempotency under assumption item migration process was not changed between 2 migrations attempts.
If adding item fails for other reason, fail the migration (likely IO error).

Codecov Report

Merging #1006 (73813f4) into main (725797b) will increase coverage by 0.00%.
The diff coverage is 16.66%.

@@           Coverage Diff           @@
##             main    #1006   +/-   ##
=======================================
  Coverage   30.39%   30.40%
=======================================
  Files         422      422
  Lines       26227    26238   +11
  Branches     5084     5085    +1
=======================================
+ Hits         7972     7977    +5
- Misses      16038    16047    +9
+ Partials     2217     2214    -3

Flag
Coverage Δ

unittests-aries-vcx
30.40% <16.66%> (+<0.01%)
:arrow_up:

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

Files
Coverage Δ

libvdrtools/indy-wallet/src/export_import.rs
0.00% <ø> (ø)

libvdrtools/indy-wallet/src/wallet.rs
48.08% <66.66%> (+0.01%)
:arrow_up:

...ibvdrtools/indy-api-types/src/domain/wallet/mod.rs
7.14% <0.00%> (-0.55%)
:arrow_down:

libvdrtools/indy-wallet/src/lib.rs
48.47% <12.50%> (-0.53%)
:arrow_down:

... and 3 files with indirect coverage changes

While I understand that this helped in troubleshooting some issues (practically unrelated to the migration code) I think most changes (maybe apart from logging) should be reverted.

The fact that the migrator cleans up after itself on failure might not be a big deal for us, but it probably is for consumers that will use it.

If migration fails, you might want to inspect the wallet

Likewise, I don't think the migration should just continue on record errors. This is important data and I personally believe that anything that does not go well should be manually investigated and dealt with and the migration re-attempted afterwards, essentially succeeding only if everything is in order.

If you fail on first error, you don't even get to know all the problem you have, only the first one. The changed approach in this PR provide flexibility to migrators. You can but don't have to be strict about failures, it's your call based on MigrationResult. In case of libvcx, as the only users, I chose the approach of being relaxed about it and decide on upper level of abstractions.


Issue 5 map

This PR solves issue #5
Summary

Created Map component using react-leaflet.js for map implementation
Add option to use map to select location and display weather information
Add map dark theme feature

Contributions
@gauravgulati15 implemented the map feature and location marker for map
@amv2 implemented dark mode feature for map

[x] My Pod Leader knows I'm working on this Pull Request
[x] I've explained what the Pull Request is adding.
[x] I've explained why this is important.

@amv2 @gauravgulati15 we have conflicts

@akshitadixit Resolved the merge conflicts. Kindly review it.
Thanks!


How to show error page for server-side script errors?

I my pursuit to validate this project as a good way forward for us in introducing React server-side rendering “piecemeal”, I ran into a few issues around error handling.
In a ASP.NET Core view when calling @Html.React() (or other HtmlExtention methods) and the JS has errors, the JavaScriptEngineFactory will throw an error - which is to be expected. For V8 the error is quite clear, though for ChakraCore not so much – but I assume that’s a problem upstream.
My problem is that this result in an aborted HTTP 200 response instead of 500 error response and that the exception is somehow interfering with the exception handling middleware. This results in another exception with the message "The response has already started, the error page middleware will not be executed.”. This is problematic for two reasons – it makes it hard for developers to see the real exception since they need to find the logs and in production it means the customers will just see a partially rendered page instead of “a pretty error page”.
I tried looking into the code, but I can’t really see why this is happening or what has started writing to the output at this point, so I hope someone with more experience with this has some clues. If I create view with the following:
@using React.AspNet
@{ Layout = null; }
@Html.React("ReactTestComponent", new { });

This will just return an empty page, instead of a developer exception page. (Just to be clear, ReactTestComponent has invalid JS, so it is expected to throw an error.)
For reference, I have disabled LoadBabel+LoadReact and using this setup method for this test:
app.UseReact(config =>
{
    config
        .SetLoadBabel(false)
        .SetLoadReact(false)
        .AddScriptWithoutTransform("~/scripts/reactComponents/reactComponents.js");
    config.UseServerSideRendering = true;
});

Normally if I throw an error in a view (fx. Replacing the Html.React() with “var x1 = 0; var x2 = 1 / x1;” or simply a throw statement) this works fine and results in a 500 error.
I tried following the code in the repo and I can’t find what might be causing this – if I follow it correctly, it goes something like:
HtmlHelperExtensions.React() (https://github.com/reactjs/React.NET/blob/master/src/React.AspNet/HtmlHelperExtensions.cs#L69)
-> Environment.CreateComponent() (https://github.com/reactjs/React.NET/blob/master/src/React.Core/ReactEnvironment.cs#L276) ->
-> which tries to create an Engine and ends in JavaScriptEngineFactory.LoadUserScripts() (https://github.com/reactjs/React.NET/blob/master/src/React.Core/JavaScriptEngineFactory.cs#L172)
which throws.
Now this all seems fine to me, but I can’t figure out what has written to the output at this point. Iit looks like nothing has accessed the “stringwriter” up until this point in HtmlHelperExtensions.React(). ☹ So I’m not sure why, apparently, throwing from JavaScriptEngineFactory.LoadUserScripts() doesn’t give the same result as if I put a “throw new Exception(“test”);” instead of @Html.React() in the view.
Any insights to what might be going on and hopefully ideas to fix this behavior?

For V8 the error is quite clear, though for ChakraCore not so much – but I assume that’s a problem upstream.

@Reonekot You can give an example of differences in error messages?
In the JavaScript Engine Switcher version 3.X was done work on the unification of error messages.
Compilation error
ChakraCore
==========

SyntaxError: Unexpected identifier after numeric literal
   at declinationOfSeconds.js:12:23 ->          caseIndex = number % 1O < 5 ? number % 10 : 5;

V8
==

SyntaxError: Invalid or unexpected token
   at declinationOfSeconds.js:12:24 ->          caseIndex = number % 1O < 5 ? number % 10 : 5;

Runtime error
ChakraCore
==========

TypeError: Unable to get property 'Ч' of undefined or null reference
   at transliterate (russian-translit.js:929:4) ->                      newCharValue = typeof charMapping[charValue] !== 'undefined' ?
   at Global code (Script Document:1:1)

V8
==

TypeError: Cannot read property 'Ч' of undefined
   at transliterate (russian-translit.js:929:37) ->                     newCharValue = typeof charMapping[charValue] !== 'undefined' ?
   at Script Document:1:1

Do you see the same problem in the .NET Core sample in this repo?
It does sound like a bug if there’s a problem loading user scripts.. that should return a 500.
Can you also list the package versions? There as an issue template that appears to have been dropped in your bug report.

@Taritsyn - Sorry about that, apparently I can't reproduce this again. There must be something else interfering with the errors in our project, which lead my to the wrong conclusion. I thought I remembered what had triggered it (forgetting "this." in "this.props.xxx"), but reversing to have that JS error gives pretty much the same result on ChakraCore and V8, as you said.
ChakraCore
"React.Exceptions.ReactServerRenderingException: Error while rendering "ReactTestComponent2" to "react_0HLMA3PM7D23Q": ReferenceError: 'props' is not defined\r\n   at render (reactComponents.js:28698:7) ->             throw err;\r\n   at processChild (reactComponents.js:3283:5)\r\n   at resolve (reactComponents.js:3136:5)\r\n   at render (reactComponents.js:3526:7)\r\n   at read (reactComponents.js:3485:11)\r\n   at renderToString (reactComponents.js:3970:5)\r\n   at Global code (Script Document [2]:1:1) ---> JavaScriptEngineSwitcher.Core.JsRuntimeException: ReferenceError: 'props' is not defined\r\n   at render (reactComponents.js:28698:7) ->             throw err;\r\n   at processChild (reactComponents.js:3283:5)\r\n   at resolve (reactComponents.js:3136:5)\r\n   at render (reactComponents.js:3526:7)\r\n   at read (reactComponents.js:3485:11)\r\n   at renderToString (reactComponents.js:3970:5)\r\n   at Global code (Script Document [2]:1:1) ---> JavaScriptEngineSwitcher.ChakraCore.JsRt.JsScriptException: Script threw an exception.\r\n   at JavaScriptEngineSwitcher.ChakraCore.JsRt.JsErrorHelpers.ThrowIfError(JsErrorCode error) ...
V8
"React.Exceptions.ReactServerRenderingException: Error while rendering "ReactTestComponent2" to "react_0HLMA3SGP7P7N": ReferenceError: props is not defined\r\n   at render (reactComponents.js:28698:119) ->             throw err;\r\n   at processChild (reactComponents.js:3283:18)\r\n   at resolve (reactComponents.js:3136:5)\r\n   at render (reactComponents.js:3526:22)\r\n   at read (reactComponents.js:3485:29)\r\n   at renderToString (reactComponents.js:3970:27)\r\n   at Script Document [3]:1:16 ---> JavaScriptEngineSwitcher.Core.JsRuntimeException: ReferenceError: props is not defined\r\n   at render (reactComponents.js:28698:119) ->             throw err;\r\n   at processChild (reactComponents.js:3283:18)\r\n   at resolve (reactComponents.js:3136:5)\r\n   at render (reactComponents.js:3526:22)\r\n   at read (reactComponents.js:3485:29)\r\n   at renderToString (reactComponents.js:3970:27)\r\n   at Script Document [3]:1:16 ---> Microsoft.ClearScript.ScriptEngineException: ReferenceError: props is not defined\r\n   at V8Exception.ThrowScriptEngineException(V8Exception* ) ...
So I'm the error has probably been something else and it was fixed at the same time I tried changing from ChakraCore to V8. I used 3.0.7 of ChakraCore at the time, but have since updated to 3.0.9.

dustinsoftware : It was my plan to link to https://github.com/reactjs/React.NET/issues/769, which includes the version template stuff, but forgot it in the end - sorry about that. Only difference, is that ChakraCore is updated to newest version, but else it should all be up-to-date.
Anyway, I tried reproducing from the .NET Core webpack example project today and that project work as expected (unfortunately for me...). I tried changing a few things in that project, so it matches my setup, basically disabling Bable, so config for both projects is just .SetLoadBabel(false).SetLoadReact(false).AddScriptWithoutTransform() + adding razor view compilation, but it still works as expected (showing the developer exception page) in that project.
So I tried minimizing middleware setup in our project, so now it is basically just:
app.UseDeveloperExceptionPage();
app.UseReact(...)
app.UseSession();
app.UseMvc(ConfigureRoutes);

And it still doesn't work on our project :( Very frustrating stuff...
I'll see if I can get to the bottom of this Monday/Tuesday. At the moment I can't really think of much else difference besides we are running .NET Core on full framework 4.7.2 and not .NET Core runtime and that we are hosting on IIS.
As said, my test view has no code or layout and if I just "throw new Exception("");" it works fine, so I'm a bit at a loss as to why the same doesn't happen calling React() or ReactInitJavaScript().

I finally managed to isolate the issue and reproduce it in the React.Sample.Webpack.CoreMvc project.
From a clean checkout I did the following:

Run dev-build.bat
Make "wwwroot/dist/components.js" contain invalid JS (I just insert "test" on the second line)
In Home/Index.cstml either:
a. Remove the call to Html.ReactRouter() (which means the call to ReactInitJavaScript() is the only thing in there)
b. or call Html.React() instead of ReactRouter()
In Home/Index.cshtml I added a "The end" on the last line just to get some output if it "fails the wrong way"
Start the project (dotnet run bin\Release\netcoreapp2.1\React.Sample.Webpack.CoreMvc.dll)

The result of the above, for me, is a HTTP 200 response and not the developer exception page.
I took a look at the difference between React() and ReactRoute() and I can see one is "lazy" (React()) and the other isn't and apparently this lazyness of writing to the writer triggers this behavior.
So adding this code to the view "fixes" the issues:
@{
	var output = Html.ReactInitJavaScript();
	using (var writer = new System.IO.StringWriter())
	{
		output.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
	}
}
@output

I also tried adding the above hack to our project, wrapping Html.React() in the above call to WriteTo() and now it throws as expected.
So basically the issues is with the ActionHtmlString wrapper at https://github.com/reactjs/React.NET/blob/master/src/React.AspNet/HtmlHelperExtensions.cs#L69 as I see it. One way to fix it, I think, for React() would be to pull out Environment.CreateComponent() so it will throw at that point. I'm not sure about how to fix ReactInitJavaScript() though, besides adding an explicit call that checks if the Engine is initialized or simple requiring that either React/ReactRouter() must allways be called (which might already be a requirement - but always nice to fail "correctly" even when misused.)

Thanks for digging... I’ll take a look
On Tue, 30 Apr 2019 at 03:48, Toke Noer<EMAIL_ADDRESS>wrote:

I finally managed to isolate the issue and reproduce it in the
React.Sample.Webpack.CoreMvc project.
From a clean checkout I did the following:

Run dev-build.bat
Make "wwwroot/dist/components.js" contain invalid JS (I just insert
"test" on the second line)
In Home/Index.cstml either:
a. Remove the call to Html.ReactRouter() (which means the call to
ReactInitJavaScript() is the only thing in there)
b. or call Html.React() instead of ReactRouter()
In Home/Index.cshtml I added a "The end" on the last line just to
get some output if it "fails the wrong way"
Start the project (dotnet run
bin\Release\netcoreapp2.1\React.Sample.Webpack.CoreMvc.dll)

The result of the above, for me, is a HTTP 200 response and not the
developer exception page.
I took a look at the difference between React() and ReactRoute() and I can
see one is "lazy" (React()) and the other isn't and apparently this
lazyness of writing to the writer triggers this behavior.
So adding this code to the view "fixes" the issues:
@{
var output = Html.ReactInitJavaScript();
using (var writer = new System.IO.StringWriter())
{
output.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
}
}
@output
I also tried adding the above hack to our project, wrapping Html.React()
in the above call to WriteTo() and now it throws as expected.
So basically the issues is with the ActionHtmlString wrapper at
https://github.com/reactjs/React.NET/blob/master/src/React.AspNet/HtmlHelperExtensions.cs#L69
as I see it. One way to fix it, I think, for React() would be to pull out
Environment.CreateComponent() so it will throw at that point. I'm not sure
about how to fix ReactInitJavaScript() though, besides adding an explicit
call that checks if the Engine is initialized or simple requiring that
either React/ReactRouter() must allways be called (which might already be a
requirement - but always nice to fail "correctly" even when misused.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/reactjs/React.NET/issues/786#issuecomment-487891764,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHGCFQEMQMG6XCXOMXSZTDPTAIYRANCNFSM4HINQTFQ
.

Fixed by #793

Thanks !
FYI, if your are interested, I did some quick benchmark of it locally, comparing ChakraCore with pure MVC. This is with our full middleware pipeline setup (which does user lookup etc.), but without extra data fetch/logic in the Controller and a single very simple React component and my conclusion is that it looks quite good to me. 391 request/sec for React, 427 for the same in MVC with just a RenderPartialAsync() with the same markup for a single 60 sec run example. Median responsetime for this test was 72 ms. vs. 75 ms., so if this scales that is very good compared to what we have seen on our other solutions using NodeJS.


change(state): Deduplicate note commitment trees stored in the finalized state

Motivation
Close #4784.
Previous PRs that address parts of #4784:

#7239.
#7266.

This is a final PR that prunes the trees stored in the database.
Solution

Add support for deleting Sapling and Orchard trees in DiskWriteBatch.
Prune duplicate Sapling and Orchard trees starting from the genesis block to the initial tip.
Zebra doesn't store Sprout trees by height, it keeps only a single tree for the tip, so this PR doesn't prune Sprout trees.
I kept the database version at 25.1.0, which was introduced in #7266. The reason is that both this PR and #7266 leave the database in the same format—this PR affects already stored trees, and #7266 affects incoming trees.

Reviewer Checklist

[ ] Will the PR name make sense to users?

[ ] Does it need extra CHANGELOG info? (new features, breaking changes, large changes)

[ ] Are the PR labels correct?
[ ] Does the code do what the ticket and PR says?

[ ] Does it change concurrent code, unsafe code, or consensus rules?

[ ] How do you know it works? Does it have tests?

@mergify refresh

@Mergifyio update

@Mergifyio update

I'm doing more manual testing, so I temporarily converted this PR to a draft.

The current task seems to be working, but it's very slow.

The migration is now blazing fast.

When I run this test on my fully synced v25.0 state, I get these logs:
2023-08-22T05:08:00.359950Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate sapling trees after running de-duplicate tree upgrade height=Height(419200) prev_height=Height(0) tree_root=Root("fbc2f4300c01f0b7820d00e3347c8da4ee614674376cbc45359daa54f9b5493e")

2023-08-22T05:08:02.610711Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(1687104) prev_height=Height(0) tree_root=Root("ae2935f1dfd8a24aed7c70df7de3a668eb7a49b1319880dde2bbd9031ae5d82f")
2023-08-22T05:08:03.271360Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199893) prev_height=Height(2199892) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271380Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199894) prev_height=Height(2199893) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")

8 duplicate orchard trees from 2199895-2199902
```
2023-08-22T05:08:03.271385Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199895) prev_height=Height(2199894) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271388Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199896) prev_height=Height(2199895) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271392Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199897) prev_height=Height(2199896) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271395Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199898) prev_height=Height(2199897) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271399Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199899) prev_height=Height(2199898) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271402Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199900) prev_height=Height(2199899) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271406Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199901) prev_height=Height(2199900) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271412Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199902) prev_height=Height(2199901) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
```

2023-08-22T05:08:03.271416Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199903) prev_height=Height(2199902) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")
2023-08-22T05:08:03.271420Z ERROR zebra_state::service::finalized_state::disk_format::upgrade: found duplicate orchard trees after running de-duplicate tree upgrade height=Height(2199904) prev_height=Height(2199903) tree_root=Root("ffb1812f72a3888d8ccc307ca4701078daa6df664e5766ccc3ead1764ed29727")

The application panicked (crashed).
Message:  found duplicate sapling or orchard trees after running de-duplicate tree upgrade
Location: zebra-state/src/service/finalized_state/disk_format/upgrade.rs:489

Metadata:
version: 1.1.0+41.g54ce3ad
Zcash network: Mainnet
running state version: 25.1.0
initial disk state version: 25.0.2

extra metadata
```
features: default,getblocktemplate_rpcs,metrics_exporter_prometheus,prometheus,release_max_level_info
branch: de-duplicate-test
git commit: 54ce3ad
commit timestamp: 1980-01-01T00:00:00.000000000Z
target triple: x86_64-unknown-linux-gnu
rust compiler: 1.74.0-nightly
rust release date: 2023-08-21
optimization level: 3
debug checks: true
```

Testnet has about 30 sapling duplicates, and about 10,000 orchard duplicates. (There might be an early termination or concurrency bug on orchard, or it might just be the same bugs.)

I opened PR #7379 which addresses all comments.


[Bug]: weekdays between Epiphany and Baptism of the Lord are not calculated correctly

What happened?
We are not calculating correctly the weekdays between Epiphany and Baptism of the Lord, when Epiphany is a Sunday AND falls on Jan 7 or Jan 8. Since we are calculating these weekdays until the next Sunday, it doesn't work in this case because Baptism of the Lord is NOT the next Sunday, it's the next Monday (= the day after in 2024).
Only way to fix this is to move the calculation of the weekdays between Epiphany and Baptism of the Lord to after we have calculated Baptism of the Lord.
Currently, we are calculating these weekdays in Calendar::calculateEpiphanyJan6() and in Calendar::calculateEpiphanySunday(), which is too early because we haven't yet calculated the Feasts of the Lord. So we're going to have to move this calculation to a proper place after the Feasts of the Lord are calculated. However, this merits an issue of it's own, so I'll close the current issue as fixed and open a new one.
Version
v1
Which browser or browsers are you seeing the problem on? (can select more than one, or N/A if not applicable)
No response
Relevant error messages
No response

check if the memorial of Saint Basil on Jan 2nd (or any other obligatory memorial that should take place during the Christmas weekdays before and after Epiphany) should suppress the Christmas weekday before Epiphany... (see for example Jan 2nd 2023)


Nancy.Hosting.Self -Pre nuget package incompatible with Core 1.1

Prerequisites

[x] I have written a descriptive issue title
[x] I have verified that I am running the latest version of Nancy
[x] I have verified if the problem exist in both DEBUG and RELEASE mode
[x] I have searched open and closed issues to ensure it has not already been reported

Description
I am unable to install nuget package Nancy.Hosting.Self -Pre.
Log:
Install-Package : Package Nancy.Hosting.Self 2.0.0-clinteastwood is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Nancy.Hosting.Self 2.0.0-clinteastwo
od supports: net452 (.NETFramework,Version=v4.5.2)
At line:1 char:1

Install-Package Nancy.Hosting.Self -Pre

  + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
  + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package : One or more packages are incompatible with .NETCoreApp,Version=v1.1.
At line:1 char:1

Install-Package Nancy.Hosting.Self -Pre

  + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
  + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package : Package restore failed. Rolling back package changes for 'Sir.Server'.
At line:1 char:1

Install-Package Nancy.Hosting.Self -Pre

  + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
  + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Steps to Reproduce
Create new core 1.1 project and try to install Nancy.Hosting.Self -Pre.
System Configuration
VIsual Studio 2017, Windows 8.1

Nancy version:
Nancy host

[ ] ASP.NET
[ ] OWIN
[ ] Self-Hosted
[ ] Other:

Other Nancy packages and versions:
Environment (Operating system, version and so on):
.NET Framework version: Core 1.1
Additional information:

Hi Marcus 😄
This is actually by design. Back when we first added support for netcore, Microsoft did not support (nor did they intend to) support the HttpListener (which the self host it build on-top of). However, now that they've added it back into the fold, we can look into bringing it back

The equivalent way of doing it, right now, is to host it using Kestrel as in the Nancy.Demo.Hosting.Kestrel sample.
Hope this helps

Hey Mr Håkansson. :) Very helpful, thx! 👍

Hi Andreas,
is there any timeline on Nancy.Hosting.Self support for .NET Core console apps?
Best regards

@ziggisto88 no nothing set. If you want you can send us a PR and it will be available to you on our MyGet feed once it's been pulled in. What do you need self hosting for vs hosting it using Kestrel?


Set signature on Windows build update json

LGTM :thumbsup:

This works but the signing will block if there is a password prompt... Tracking that here: https://keybase.atlassian.net/browse/DESKTOP-1145


Print problem when importing this project

My problem is that no print is displayed in the command line when using this module:
A simple example could show this problem:
from super_gradients.training import models
print("hello")

but no print appears on the console.
I tried with sys.stdout.write("hello") and sys.stdout.flush() but no results.
Is there any conflict with default print function? Do you have any idea about how to solve this issue?

Hi @UserAEH , can you try:
stdout = sys.stdout

from super_gradients.training import models

sys.stdout = stdout

print("hello")

Hi @UserAEH , can you try:
stdout = sys.stdout

from super_gradients.training import models

sys.stdout = stdout

print("hello")

It works perfectly, thanks.
Do you think there's some problem within the package or my environment? (In case there's a problem with the package, we could request a fix to enhance the project)

It's the first time someone faced this issue, I guess there must be a conflict between SuperGradients and something else in your environment. Did you import anything before the snippet you showed, or it happened when just importing super_gradients?

No, there's nothing before the snippet. I posted the full code.
I'm working with Python 3.10.11 if you want to test it.

Tried on 3.10.11 as well but it doesn't reproduce on my device.
I will investigate when I have some time, in the meantime I guess the workaround is to wrap the first super-gradient import with it. I think that the next imports won't create this issue again.
You can also try the following code, it might work as well:
import sys
from super_gradients.training import models

sys.stdout = sys.__stdout__

print("hello")

Tried on 3.10.11 as well but it doesn't reproduce on my device. I will investigate when I have some time, in the meantime I guess the workaround is to wrap the first super-gradient import with it. I think that the following imports won't create this issue.
You can also try the following code, it might work as well:
import sys
from super_gradients.training import models

sys.stdout = sys.__stdout__

print("hello")

This solution is working. It seems like the problem is coming from the file common/abstractions/mute_processes.py.
When i commented the line 30:
#sys.stdout = open(os.devnull, "w")
Print worked with the first code i posted and without reassigning original value to stdout.
Another thing to mention is that there was one line that was added in the console before printing hello which i think is normal:

The console stream is logged into some\path\logs\console.log.

Hi @Louis-Dupont , i tried to install from master. The encoding is added but the issue persisted.

Problem confirmed for
super-gradients               3.1.1
Platform Windows 10
from super_gradients.training import Trainer is enough to cause the problem for me.
Workaround sys.stdout = sys.stdout works, but it is still annoying.

same problem here(Window 10)!

I found the solution:
(super_gradients 3.1.3)
\common\abstractions\abstract_logger.py
commented the line 9&18: 'mute_subprocesses()'
Then log and print() will show again:)
by default this func is always called which not friendly for some users like me:( , I spent a lot of time to find it...

I found the solution: (super_gradients 3.1.3) \common\abstractions\abstract_logger.py commented the line 9&18: 'mute_subprocesses()' Then log and print() will show again:) by default this func is always called which not friendly for some users like me:( , I spent a lot of time to find it...

The problem in your solution is that It prints also logger messages also so I am not sure if it is a normal behavior. Logger should be written in log file not printed in the CLI.

this issue still exists until now 2024.01.14


Update Get-SPOHubSite.md

In the current version of the cmdlet you get more details. I have added those properties in the code example.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOHubSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOHubSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

OPS Build status updates of commit 5c1f4d2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOHubSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

thx Dennis, appreciated.


Java Regex

Closing Issue/Referencing Issue
issue reference (#)
Changes Made In Pull Request

HackerRank problem: Java Regex
HackerRank problem link: https://www.hackerrank.com/challenges/java-regex/problem

Please accept my PR, I did as asked in the documentation, don't know whats wrong, with my code, either accept or reject, at least response.


Add twitter card metadata

I think we could easily introduce some metadata to display better content when docs are shared on twitter, nothing big but a nice to have I guess.

@jeremenichelli hi man, i hope you dont mind i've put up a PR for this as it was kinda stalled for a while (last action 5th of April)

in rebuild now 🎉


Remove references to accman/pull_keys.

@openprivacy looks like you approved but forgot to merge? or are there further changes needed?

@kevwalsh I reviewed and accepted, but no place to merge? (I'd merge if I could...) Page says"Code owner review required" - an I missing something?

@openprivacy i'll merge this, and i'll look into why you couldn't. i guess cause you're not a member of the docs or management team, and one of the files touched is /docs/03-policies/security.md ... we should make you a codeowner of that file in particular.  Changes to anything in /docs/03-policies must be approved by someone in mgmt.


ImportError: cannot import name 'WhatsAPIDriver'

when I intalled this with pip it failed, so I try to install it from source. While I met this problem. Am I the only one who met this strange problem?

try: pip install git+https://github.com/mukulhase/WebWhatsapp-Wrapper.git -U

Closed due to inactivity and no reply to solution


Demag_GUI will not save plots

Current version of Demag_GUI will not save plots in the PmagPy package or standalone. Receive error message "AttributeError: module 'wx' has no attribute 'SAVE'".

This is a wxPython 3 --> 4 problem, fixed elsewhere but apparently missed it here.  I will get this fixed shortly.

I still need to re-release for pip and the standalones, which I'll do asap since this is core functionality.  It is working again with the developer install now, and I'll get the other releases up shortly.

pip release is done.  @CourtneySprain, let me know if this isn't fixed for you!

standalones now updated as well (Windows & OS X)


feat(button): converts subscribe link to button

Fixes #4191
Describe the changes you have made in this PR -
Converts the Subscribe/Unsubscribe link to Button in Comment section of project
Screenshots of the changes (If any) -
Before

After

Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

@tanmoysrt do you know why this test is failing ?

cc  @vedant-jain03


WW-3714 Deprecate and repackage common APIs part 7

WW-3714
This PR deprecates and provides repackaged replacements for the following APIs, ahead of their permanent migration in Struts 7.0:

``

Hmm these specific changes are getting a bit too complex/risky for my liking


Pull in rustc_serialize as a dev dependency only

Since rustc_serialize is now deprecated, and since it is currently only used
for the websockets example, limit the dependency to development only.

bors r+


Downgrade minimum support version

Downgrade minimum support version
remove [weak self] in public func owner(domain: String, completion: @escaping StringResultConsumer ) {
completion get not called when using weak

If you need iOS 10 support I will check the possibility, how we could provide it...
@vladyslav-iosdev What project do you develop, where is our library is necessary?

Also about weak. Please read our docs...
NOTE: make sure an instance of the Resolution class is not deallocated until the asyncronous call brings in the result.

If you need iOS 10 support I will check the possibility, how we could provide it...

i am working on https://github.com/AlphaWallet/alpha-wallet-ios
i saw u commented pr (thanks a lot for u reply). I updated PR files,  removed all unnecessary changes.

@merenkoff i updated changes with ios 11, it should work with swift 5 version.

@merenkoff Thanks a lot ;)

Congratulations! :tada: This was released as part of Release 0.1.6 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.1.6 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 1.1.5 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 1.1.5 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.1.6 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.1.6 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.1.7 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.1.7 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.2.0 :rocket:Generated by GitBuddy

Congratulations! :tada: This was released as part of Release 0.2.0 :rocket:Generated by GitBuddy


cli (new): add run packagemanifests

Description of the change:

cmd/operator-sdk: add run packagemanifests to new CLI, and set defaults for new project layouts
test/e2e-new: test run packagemanifests
test/utils: add utils to install/uninstall OLM

Motivation for the change: run packagemanifests should be available for new operator project layouts. This command must be used on operator projects with a package manifests format available.
/kind feature

This command will incidentally read config/packagemanifests/bases and assume it is a valid package, causing this command to error. #3257 fixes this as it moves the relevant package manifests files to a directory <project root>/packagemanifests/ separate from kustomize-related files.


fix message cleanup

nrm_msg_t needs to destruction functions, depending on whether we created the whole object or it was created by protobuf. Properly fix the codebase to deal with that.

Fixed by #54


Relax 40X error specificity in Additional Tests

Inferno's Tab 6: Additional Tests currently features two tests that evaluate very similar functionality.
6.2.03 Token refresh fails after token revocation ensures that, when given a refresh token that has been revoked and is no longer valid, the Health IT module does not issue access tokens.
6.5.03 OAuth token exchange fails when supplied invalid code ensures that, when given an authorization code that is invalid, the Health IT module does not issue access tokens.
Auth0, one of the most popular authorization and authentication providers, considers both of these invalid_grant errors, which yield 403 responses per their documentation on Standard Error Responses.
It's in the best interest of both Inferno and the applications it evaluates to accept industry-standard HTTP responses so as not to force Health IT modules to insert home-rolled shims that intersect and massage auth responses, which have the potential to introduce unnecessary lag, complexity, and in the worst case vulnerabilities.
(In addition to adding 403 to both tests, I chose to keep 401 in the 6.2.03 allow list so as not to introduce breaking changes for modules who may be returning that error code already, and subsequently added 401 to 6.5.03 so that the test criteria would have parity.)
Thanks in advance for your consideration.

Thanks for letting us know about the discrepancy between our interpretation of the specs and Auth0's implementation.  And also thanks for doing the legwork of identifying what code would need to change.
I agree that a very bad outcome here would be if developers had to write/maintain code & services to work around this difference to make Auth0-based implementations pass these tests.
The language where we got this test is from the OAuth 2.0 RFC:
5.2  Error Response

   The authorization server responds with an HTTP 400 (Bad Request)
   status code (unless specified otherwise) and includes the following
   parameters with the response:

   error
         REQUIRED.  A single ASCII error code from the
         following:

         invalid_request
               The request is missing a required parameter, includes an
               unsupported parameter value (other than grant type),
               repeats a parameter, includes multiple credentials,
               utilizes more than one mechanism for authenticating the
               client, or is otherwise malformed.

         invalid_client
               Client authentication failed (e.g., unknown client, no
               client authentication included, or unsupported
               authentication method).  The authorization server MAY
               return an HTTP 401 (Unauthorized) status code to indicate
               which HTTP authentication schemes are supported.  If the
               client attempted to authenticate via the "Authorization"
               request header field, the authorization server MUST
               respond with an HTTP 401 (Unauthorized) status code and
               include the "WWW-Authenticate" response header field
               matching the authentication scheme used by the client.

         invalid_grant
               The provided authorization grant (e.g., authorization
               code, resource owner credentials) or refresh token is
               invalid, expired, revoked, does not match the redirection
               URI used in the authorization request, or was issued to
               another client.

         unauthorized_client
               The authenticated client is not authorized to use this
               authorization grant type.

         unsupported_grant_type
               The authorization grant type is not supported by the
               authorization server.

So we expect it to be a 400 unless it is an invalid client.
Perhaps having this be a strict requirement wasn't the intent of the spec writers though (no must/shall on the 400), and maybe there is no reason to not allow other codes.  Are we interpreting 'unless otherwise specified' incorrectly maybe?
Are there other major implementations out there that do something other than 400?  I'm not sure that a single implementation defines 'industry standard', though I suspect Auth0 carries a lot of weight here.

Thanks for letting us know about the discrepancy between our interpretation of the specs and Auth0's implementation.  And also thanks for doing the legwork of identifying what code would need to change.
I agree that a very bad outcome here would be if developers had to write/maintain code & services to work around this difference to make Auth0-based implementations pass these tests.
The language where we got this test is from the OAuth 2.0 RFC:
5.2  Error Response

   The authorization server responds with an HTTP 400 (Bad Request)
   status code (unless specified otherwise) and includes the following
   parameters with the response:

   error
         REQUIRED.  A single ASCII error code from the
         following:

         invalid_request
               The request is missing a required parameter, includes an
               unsupported parameter value (other than grant type),
               repeats a parameter, includes multiple credentials,
               utilizes more than one mechanism for authenticating the
               client, or is otherwise malformed.

         invalid_client
               Client authentication failed (e.g., unknown client, no
               client authentication included, or unsupported
               authentication method).  The authorization server MAY
               return an HTTP 401 (Unauthorized) status code to indicate
               which HTTP authentication schemes are supported.  If the
               client attempted to authenticate via the "Authorization"
               request header field, the authorization server MUST
               respond with an HTTP 401 (Unauthorized) status code and
               include the "WWW-Authenticate" response header field
               matching the authentication scheme used by the client.

         invalid_grant
               The provided authorization grant (e.g., authorization
               code, resource owner credentials) or refresh token is
               invalid, expired, revoked, does not match the redirection
               URI used in the authorization request, or was issued to
               another client.

         unauthorized_client
               The authenticated client is not authorized to use this
               authorization grant type.

         unsupported_grant_type
               The authorization grant type is not supported by the
               authorization server.

So we expect it to be a 400 unless it is an invalid client.
Perhaps having this be a strict requirement wasn't the intent of the spec writers though (no must/shall on the 400), and maybe there is no reason to not allow other codes.  Are we interpreting 'unless otherwise specified' incorrectly maybe?
Are there other major implementations out there that do something other than 400?  I'm not sure that a single implementation defines 'industry standard', though I suspect Auth0 carries a lot of weight here.

We had a similar discussion on v1.8
https://github.com/onc-healthit/inferno-program/issues/422

Hey, thanks for your quick feedback! I don't know why Auth0 chose to diverge from the RFC. This blog post describes somewhat how Auth0 thinks about each of the three big 40X errors, but it's not particularly technical in nature. Would it be helpful for me to reach out to our Auth0 liaison to try to get more clarity into why their system operates this way?
My questions to you would be: Are there known compromises to interoperability or security being made if our application returns 403 instead of 400? And what value are we producing for our patients and collaborators if we insert this shim to comply with this requirement?
Thanks again!

Hi @kayadanae --
It might be a good idea to reach out to the Auth0 folks to see what they think, if you have a way of doing that.  Perhaps they made a mistake here and are interested in fixing it?
I also see that there is an OAuth 2.1 draft out there, but the language for this section hasn't changed.  If Auth0 thinks that OAuth 2.0 is misleading or wrong, could they get this language changed in 2.1?
I don't know how loosening this check would affect interop. As long as the system doesn't return a success status code then I doubt it would make a difference for clients.  But the spec authors put that line in for a reason, presumably.
I agree that a bad outcome would be a disagreement here that results in a bunch of shims.
My best argument for removing it is that there is no explicit SHALL/MUST there, and there is a fuzzy "(unless specified otherwise)" qualifier that isn't 100% clear about who is adding that specificity.  My main concern is that then we have no hard requirement for requiring any check on status there (why just allow 400, 403 -- why not others?).  And secondarily, there might be other important requirements where there is technically no SHALL/MUST statement, and will lose the ability to enforce other requirements that are important.
Rob

Hey Rob,
Appreciate the thoughtfulness here.
I did reach out to Auth0 and unfortunately they had no documentation justifying their diversion from the spec, and in fact it’s apparently on their Q4 roadmap to correct this behavior and achieve conformity with the spec. Given that, I don’t think it makes sense for inferno to change the requirements. We’ll be inserting the shim, which will hopefully be temporary.
Thanks again,
Kaya

Thanks for reaching out to Auth0 on this Kaya.  I'll go ahead and close this. I hope you don't have to maintain this workaround for long.


restreamer: Give me frame at timestamp as image file

@ElementalAlchemist restreamer half of this is done, could you add a button to thrimbletrimmer to "download this frame" that calls /frame/CHANNEL/QUALITY.png?timestamp=CURRENT_TIME?

The main use-case here was requests to just grab a frame for download (mainly for HP to then edit further into a thumbnail, but I bet it'd be useful for giffers etc too). Having this button also available in the editor is probably nice just for feature parity, so you're never in a situation where as an editor you're both editing and grabbing a frame but you need to open two windows to do it.
But for thumbnails in the editor in general, what I was thinking we eventually want is something where you have choices:

Upload image to use as thumbnail
Use [timecode picked from edited video] as thumbnail
with the latter maybe having some additional processing on it to add a common overlay (example)

so I think having just the "download image" on its own in the editor is useful, but keep in mind it probably won't be used directly in the thumbnail flow.


Some issue with copy-paste functionalities

What?
Recently after merging #1 i got an issue where the copy functionality not working on my current version of TMUX.

Where?

On Babun (Cygwin) with TMUX 2.3
On WSL (Ubuntu 14.04) with TMUX Master, Install from here

/cc @mrofi, Could you please confirm what's TMUX version are you using?

I thing I should close this issue, since I never experiencing it in awhile.


Requests for Functionality: Ability for Buttons to be placed inside Draggables + Draggables Parent Container Validation Array

First off thank you for your incredible work on this plugin. I found this when trying to explore solutions on how to do some really common things with UI that I found out that Godot simply tells you to "figure it out yourself"...
I also love the other plugin you have to view Resources as Sheets. :)
Anyway, my question is: I would like to be able to combine functionality of the draggable with a button. Currently whenever I put a button nested as a child into a Draggable with a ColorRect as a simple background (though this could be implemented as a TextureRect or other element type), it completely disregards the draggable functionality. Draggable nodes are set to Stop by default, but even if I set one or both of them to pass, it doesn't allow any part of it to be dragged. If I have both the Draggable and Rect in Pass it let's me pick the button, but then it thinks I'm trying to resize the button whenever I click the background to use it. If the ColorRect is set to anything besides Ignore, it also fails to move even with no button present. So long and short, it'd interact with the button if it's visible on render from its control siblings/parent, but otherwise the mouse will just go about its business to allow dragging.
Also, may I suggest that Draggables have a means via Array in the inspector to define specific "valid" parent controls to be dropped into? And that if it is not dropped in the area of that container it returns to the edge of the originating parent container, just like how it does if it's told to stay in bounds currently and it attempts to go out of bounds. In an ideal situation it'd even have the hover ghost have a highlight to permit showing when it's going into a valid container with theming potential, but obviously that could be tossed well on the backburner to just having the functionality, lol.

Yea, controls inside Draggable nodes will block input unless set to Ignore. If a button is stretched to the full extents of the Draggable, it would have to ignore input to not cover up the Draggable's "move" area. However, nodes inside can have anything else in them,  including buttons resized in any way.
If the need is to allow the button to move the node when grabbed, extra behaviour would be needed to prevent it from being clicked when moving it. So, try making a script that extends Draggable!
The base class stores an initial position to let you check drag distance (so the button only presses if not dragged), and you can define additional _gui_input() behaviour to emulate a button - just don't forget to call super().
The second suggestion sounds like a niche feature, but I'll consider it! Sounds like how InterpolatedContainer works.

I'll be closing this to keep feature discussion in #11 and #12!

InterpolatedFreeContainer, a container that allows dragging children freely and transferring between, should be already up on the main branch if still needed 😉


GBs used counter in neofetch

Hi everyone. I have a suggestion for some future version. Could you put a GB counter in Neofetch?

Reopen this issue with more information. If you're talking about memory usage, this is already supported via --memory_unit kib/mib/gib   Memory output unit..


Feature/Programming Exercise/Activate tutor dashboards

Checklist

[x] I tested all changes and all related features with different users (student, tutor, instructor, admin) on the test server https://artemistest.ase.in.tum.de.
[x] ~Server: I added multiple integration tests (Spring) related to the features~
[x] Server: I added @PreAuthorize and check the course groups for all new REST Calls (security)
[x] Server: I implemented the changes with a good performance and prevented too many database calls
[x] Server: I documented the Java code using JavaDoc style.
[x] ~Client: I added multiple integration tests (Jest) related to the features~
[x] ~Client: I added authorities to all new routes and check the course groups for displaying navigation elements (links, buttons)~
[x] Client: I documented the TypeScript code using JSDoc style.
[x] Client: I added multiple screenshots/screencasts of my UI changes
[x] Client: I translated all the newly inserted strings into German and English

Motivation and Context

Enable the tutor dashboards for programming exercises as discussed in https://github.com/ls1intum/Artemis/issues/940.
:information_source: ~Currently blocked by~ https://github.com/ls1intum/Artemis/pull/965.
Description

Supported with this PR:

Show programming exercises with assessment type manual on the leaderboards
Confirm that the instructions were read and understood
Get next assessment for a programming exercise / show assessment list
Calculate scores / stats (including tutor leaderboard)
Partial double blind (student info hidden in REST responses and UI)

Not included in this PR:

Complaints / more feedback
Lock mechanism
Assessment within Artemis (see https://github.com/ls1intum/Artemis/issues/932)
Complete double blind (traces of the student are part of the repository, e.g. in the zip folder name or the mvn project)

Todos:

[x] Enable the course dashboard
[x] Enable the exercise dashboard

Bugs:

[x] Statistics are incorrect for multiple submissions per student (should only count 1 submission per student)
[x] Remove student from next submission => should work already, test with tutor later
[x] After manually assessing all submissions, a submission with a manual result is presented as the next one (probably happens because loadAll() is called on refresh)
[x] Refresh page after result create/update
[x] Result shows 'new result' even though has manual result
[x] Fix circular serialization issue on update

Steps for Testing

Log in to Artemis
Navigate to Course Administration
Create a programming exercise with a due date and the manual assessment enabled
Go to course administration > tutor dashboard
Open programming exercise in tutor dashboard
Assess submissions, check results, ...

Screenshots

(Note: The translation bug in the modal is fixed)

Update: The implementation is done and tested locally.
I'll need to review the code and test it on our server, after that it can go into review.

@krusche The PR is tested and ready to review. I also made sure that text and modeling exercises are still working on the tutor dashboard.
@reviewers: Some of the code is copy&pasted from other exercise types, I tried to keep it to a minimum though and also tried to not copy mistakes from previous implementations (e.g. unnecessary transactionals). Please see the gif in the description on how the tutor dashboard is used.

I just tested it on the test server. It work well for me, good job

@ungaralex @maxr96 The first priority is that this feature works! So please test it on the test server! I can login without problems...
The code quality is really second priority!

@thilo-behnke I tested it on the test server and it looks good to me :) good job
One minor issue that I found is within the status graph: I assume that the steps in here are accumulated and therefore displayed wrongly. How to reproduce: assess multiple submissions

@thilo-behnke I was finally able to login to Bamboo and test the feature on the test server and found some bugs:

Number of total submissions is incorrect. That is why also in unassessed submissions there is a negative value.

And also the number of assessments on tutor course dashboard is wrong now

Programming points are not calculated in the dashboard:

It is not a real bug, but can be a bit misleading that we show the complaints and more feedback requests, but don't allow to do them on tutor exercise dashboard for programming exercise. It is quite easy to disable them.

After clicking Download Repos for already assessed submission I receive empty archive

@thilo-behnke I was finally able to login to Bamboo and test the feature on the test server and found some bugs:

Number of total submissions is incorrect. That is why also in unassessed submissions there is a negative value.

And also the number of assessments on tutor course dashboard is wrong now

Programming points are not calculated in the dashboard:

It is not a real bug, but can be a bit misleading that we show the complaints and more feedback requests, but don't allow to do them on tutor exercise dashboard for programming exercise. It is quite easy to disable them.

After clicking Download Repos for already assessed submission I receive empty archive

Thanks for the extensive testing!
Concerning 1:
This is an existing 'issue' with the tutor dashboards: Only the submissions are filtered by the deadline, but not the assessments. So if you e.g. create a manual result for a submission that was created after the currently set due date, the submission will not be found, but the assessment will be. So in this case this would result in 1 / 0 or -1. This should only happen when you play around with the due date.
Concerning 2-4:
They all seem to be valid bugs, good finds!


Disable menu item (tabs)

Hello!
Feature request: To be able to disable and remove hovering/clickable on a tab menu item (not the pane, the pane shouldn't be able to be shown since you can't click on the menu item).
Something like the following
<Menu.Item disabled={true}>

If there is already a way to do this then how?

@basickarl do you mean something like this?

import React from 'react'
import { Tab } from 'semantic-ui-react'

const panes = [
  { menuItem: 'Tab 1', render: () => <Tab.Pane>Tab 1 Content</Tab.Pane> },
  { menuItem: { content: 'Tab 2', disabled: true }, render: () => <Tab.Pane>Tab 2 Content</Tab.Pane> },
]

const TabExampleBasic = () => <Tab panes={panes} />

export default TabExampleBasic

https://codesandbox.io/s/ky7xw?module=/example.js

Yes exactly!


Add black linter workflow

Issue Description:
Add a suitable linter to ensure proper linting of the code. As a project with multiple users contributing to it, it is essential to maintain a proper linting style to ensure better code readability by users. An excellent way to do this is by automatic linting checks using GitHub actions.
I would like to work on this project as a part of GSSoC 23. Please assign this issue to me.
Expected Behavior:
Linter will run on every push and on every pull request.
Current Behavior:
None
Labels:
enhancement

Please assign this issue to me @sahil-sagwekar2652

@sahil-sagwekar2652 Could you assign this issue to me?

I would like to work under this issue under GSSOC'23


Fix/ Venue: withdrawn and desk-rejected visibility

Fixes #1992
I am always adding readers to authors/authorids in the content and readers to withdrawn/desk-rejected submissions.
I then check withdrawn_submission_public/desk_rejected_submission_public to see if the readers should be everyone instead. I don't think we should check what the readers are in the submission_stage because these can change at any time.

it seems the tests don't finish because one test is waiting for the process NeurIPS.cc/2023/Track/Datasets_and_Benchmarks/-/Withdrawal-0-0 to finish, probably this is not being run.

it seems the tests don't finish because one test is waiting for the process NeurIPS.cc/2023/Track/Datasets_and_Benchmarks/-/Withdrawal-0-0 to finish, probably this is not being run.

Thanks for the heads-up! This should be fixed.
Note that now the default will be to have withdrawn/desk-rejected and their author names hidden (so I adding readers to notes and authors/authorids by default). Only if PCs explicitly choose in the request form to make public will they be public. This means that papers that were initially single blind could potentially have their author names hidden (this was not allowed in API1 because in this case we wouldn't create blind submissions). If this sounds good, then I can remove this check from the request form preprocess:
if 'Double-blind' not in request_form.content['Author and Reviewer Anonymity']:
    if 'No' in note.content.get('withdrawn_submissions_author_anonymity', ''):
        raise openreview.OpenReviewException('Author identities of withdrawn submissions can only be anonymized for double-blind submissions')

    if 'No' in note.content.get('desk_rejected_submissions_author_anonymity', ''):
        raise openreview.OpenReviewException('Author identities of desk-rejected submissions can only be anonymized for double-blind submissions')

I agree that the default option should be hiding the data including single blind venues. Let's remove that check.

Adding Emilia as a reviewer so she can be aware of these new changes.