feat: add paints support

Description
This is a continuation building upon #86, since the original author is not working on that PR anymore:

Discord screenshots

Checklist

[x] fetch paints from the API
[x] linear-gradient paints

[x] translate css angle to qt's 2-point style gradients

[x] figure out how exactly css deals with repeating gradients and their color stops, to translate that to qt as well

[x] radial-gradient paints
[x] drop shadows (i might have a way to get these to work, its only theoretical though and i have not confirmed if it works 100%)
[x] url paints

[x] with animations (maybe)

[x] setting to toggle paints off
[x] separate the colon from the username itself and only draw paint on the nametag itself to match webchat behavior
[x] some refactors xd

oh and no idea how i got zneix commit merged in there, absolutely no Clue about how I messed that up myself
Seems that you forked the original Chatterino2, rather than this repo. This may or may not make it difficult to merge this pull request in the future. Might be best to fork the correct repo and open a new PR to avoid complications / merging dankness

Seems that you forked the original Chatterino2, rather than this repo. This may or may not make it difficult to merge this pull request in the future. Might be best to fork the correct repo and open a new PR to avoid complications / merging dankness

I have definitely forked the c7 repo, it might be some dankness around the github CLI still pushing that branch to my normal c2 fork since I cant make another fork from a fork, or maybe I mixed up something while pulling (accidentally pulling something from upstream rather than origin or something 🤷).
It's definitely fine for merging, I have double-checked and this PR does not contain any changes from upstream c2, just the reference to this one commit, so there won't be any conflicts.

I can confirm you forked c2 as clicking on the branch in this PR takes you there;

Though in theory this shouldn't be an issue as long as you pull upstream from c7.

I can confirm you forked c2 as clicking on the branch in this PR takes you there;

Yeah my mistake, I meant cloned, the branch is then just pushed to that repo since you can't fork the same (upstream)repo multiple times and I still need the normal c2 fork.

Also regarding the "animation" tickbox; animations were deprecated after it was discovered creating a cross-platform standard for them would be too difficult. All current animated paints are actually just using the ImageURL type.

Also regarding the "animation" tickbox; animations were deprecated after it was discovered creating a cross-platform standard for them would be too difficult. All current animated paints are actually just using the ImageURL type.

Ah alright, yeah I had not looked into animations yet at all, just if it would be possible to implement in Qt, but only dealing with the URL type definitely makes things easier, good to know.

Figuring out how to translate the angle of a linear-gradient from css to qt's gradient system turned out to be a gigantic pain(t) in the ass, but after trying out & throwing away 10 different solutions, plus learning some more about qt's geometry classes, I now figured out how to replicate the css gradient correctly. Still needs some work on calculating the correct end point for repeating gradients, but the main problem is fixed.
Paints are now actually displayed in chat as well.

Drop shadows are now working, still planning to look into some edge cases and rendering will definitely not be exactly the same as in browser, but imo it works well enough.
I also had a new idea for rendering animated paints which I'll try out, but no idea if it's actually going to work. If not I'll postpone that to some later day and finish up whats currently working to at least get normal paints merged in.

Animated paints are currently only used in 2 custom paints, used by 2 people, so its not a priority

Animated paints are currently only used in 2 custom paints, used by 2 people, so its not a priority

ye exactly anatole also told me on twitch its still kinda experimental but if my idea works they would be easy to implement, so why not.
Otherwise yeah, its not a priority and I'd happily say this PR is finished without them.

Animated paints are currently only used in 2 custom paints, used by 2 people, so its not a priority

Only 1 of them is actually animated, but both are WEBP images.
@LosFarmosCTL I updated the "Staff Shine" paint with a lower resolution file.

Otherwise yeah, its not a priority and I'd happily say this PR is finished without them.

Feel free to remove the draft status when you'd like us to check this out 👍

@LosFarmosCTL I updated the "Staff Shine" paint with a lower resolution file.

Nice, I'll try that out later today, thanks.

Feel free to remove the draft status when you'd like us to check this out 👍

Still have some minor things and refactoring I'd like to do, but probably won't take longer than at most a few days.

@LosFarmosCTL There's now a public image url paint, Crazy Confetti, just wanted to let you know just in case that changes whether or not you want to implement url paints in this patch.

There's now a public image url paint, Crazy Confetti, just wanted to let you know just in case that changes whether or not you want to implement url paints in this patch.

Yeah, I have just seen the reminder from anatole on twitch. I was planning to include non-animated URL paints anyways, only the animated stuff is problematic.
Already looked at the new paint, should not be an issue to implement, URL paints are just drawn above the normal username anyways, so that should all work just fine.

PagMan ?

PagMan ?

from unrelated upstream PR comment:

Sorry for the lack of updates, as Felanbird reposted from upstream I have been out most of the time and basically only got home to sleep and chill a little, didn't want to actually work on anything.
I have updated the checklist in the PR description with the last things that need to be done and will have more time this weekend and next week to hopefully finish this PR.

Sorry I think this ci failure is my fault, my branch was affecting pull requests

Figured out animated paints (havent separated the colon yet, I want to extract that code first to avoid duplications):

Functionality wise this PR is ready now, I just want to refactor some more things, remove code duplication, clean up, etc. Might even be finished today, but shouldn't take longer than tomorrow to have everything ready for review 😄

Impressive work, can't wait to try this out

@Felanbird any idea why ci is still failing?

@Felanbird any idea why ci is still failing?

Looks like the same issue from the staging build, but I'm unsure why it's happening here.

but I'm unsure why it's happening here.

Actually, I have a feeling that due to the annotated tag created for the staging branch, when trying to use --tags, said branch is being borrowed - which causes the issue.

I deleted the tag since it's no longer needed anyway, hopefully that helps

I deleted the tag since it's no longer needed anyway, hopefully that helps

We are probably just better off stripping --tags from the main build, the issue from #81 seems to be resolved without the --tags variable

Feel free to move it to ready and ill review.

Do you mind doing a git rebase on this branch?
The steps will be like
git checkout feat/paints
git remote add c7 https://github.com/SevenTV/chatterino7
git pull c7
git rebase c7/chatterino7
git push -f

Is there a particular reason for the 80's Pool paint to have a drop shadow with a radius of 0

Definitely a mistake, I'll change that.

LGTM:

Festive Gold doesn't really look very nice sadly, but from what I can tell thats on Qt's drop shadow rendering, which just isn't as smooth as the browser one.

@LosFarmosCTL Seems good, whisper doesnt work yet tho.

And also sending whispers doesnt work might not be part of your pr since well nothing works on sending.

Very nice work!
Something i noticed
diff --git a/src/providers/seventv/paints/LinearGradientPaint.cpp b/src/providers/seventv/paints/LinearGradientPaint.cpp
index 77dc774e..49789526 100644
--- a/src/providers/seventv/paints/LinearGradientPaint.cpp
+++ b/src/providers/seventv/paints/LinearGradientPaint.cpp
@@ -59,8 +59,8 @@ QBrush LinearGradientPaint::asBrush(const QColor userColor,

     QPointF gradientStart;
     QPointF gradientEnd;
-    gradientAxis.intersects(colorStartAxis, &gradientStart);
-    gradientAxis.intersects(colorStopAxis, &gradientEnd);
+    gradientAxis.intersect(colorStartAxis, &gradientStart);
+    gradientAxis.intersect(colorStopAxis, &gradientEnd);

     if (this->repeat_)
     {

For whatever reason my version of qt had a different header files, not sure if this is documented could u provide some clarity on which is newest.
And also under building for linux, the package is not qt5-image-formats-plugin for ubuntu its qt5-image-formats-plugins
could u also update that in this pr.

Oh and 1 more small side note, not a big deal

when we don't have paints enabled the colon is colored too.
Is there a reasoning behind not coloring it such as readability or something.

Other than that really good work man thank you a lot for your contributions please tag us in discord when u read this and we will set u up with the contributors badge and role <3 We really appreciate the effort on this!

Is there a reasoning behind not coloring it such as readability or something.

Looks to be to match webchat behavior | also efb4aec

And also under building for linux, the package is not qt5-image-formats-plugin for ubuntu its qt5-image-formats-plugins could u also update that in this pr.

#98

For whatever reason my version of qt had a different header files, not sure if this is documented could u provide some clarity on which is newest.

Seems like it was called intersect up until Qt 5.14, actually not sure how to handle this since Qt 5.12 is still supposed to be supported. @Felanbird you know any examples from upstream for situations like that?
https://doc.qt.io/archives/qt-5.12/qlinef.html#intersect
https://doc.qt.io/qt-5/qlinef.html#intersects

Is there a reasoning behind not coloring it such as readability or something.

Yeah it's basically just me looking at how it's handled in webchat and matching that, since the paints extending over the colon in chatterino would change their appearance compared to webchat. IMO it only makes sense for nametags that actually do have a paint rendered on them, since the colored colon might conflict with the paints design (thats why I didn't change anything about how nametags without paints are drawn, didn't want to change c2's general design there)

whisper doesnt work yet tho.

Fixed what I could, for outgoing whispers + your own name when receiving there is no link information included, which is what we need to determine if whatever is drawn right now is actually a nametag element. Might make sense to add one, but that would be an upstream PR (if those are added, paints should be rendered correctly without further changes)

Other than that really good work man thank you a lot for your contributions please tag us in discord when u read this and we will set u up with the contributors badge and role <3 We really appreciate the effort on this!

Thanks a lot for that feedback :) This PR was actually really fun to work on, learned a ton of stuff while creating it as well.

Seems like it was called intersect up until Qt 5.14, actually not sure how to handle this since Qt 5.12 is still supposed to be supported. @Felanbird you know any examples from upstream for situations like that?

No idea, but it's likely we can sort of ignore 5.12 as it's already been dropped here due to to issues with the animated pfp build.
5.12 having issues with 2/2 of the Major PRs - as well as I believe Qt6 has been discussed more recently, so by the time chatterino7 -> chatterino2 happens we might just not have to deal with it. 😁


[BUG]: PDF extraction is supposed completed but nothing shows up in the Document page

Scenario: Model extraction
Step: 2.3
Link to the project: https://app.staging.terarium.ai/projects/34e7b955-f408-4e8b-be27-9429480ad6aa/workflow/26486066-01d1-4870-b687-6c99fc8901a0

Describe the issue
After the test document is uploaded, a notification says that the PDF extraction is completed:

However, the document page never shows any extraction - only "PDF Extractions are processing please come back in some time..."
Plugging this document into Create model from equations operator, no extraction show up there either.

Not an issue anymore per new design


Fix #2375  missing stdint.h for py2.7 vc9

Base on #2374
Closes #2375

Codecov Report

Merging #2376 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2376   +/-   ##
=======================================
  Coverage   86.21%   86.21%
=======================================
  Files         313      313
  Lines       59205    59205
  Branches     6390     6390
=======================================
  Hits        51042    51042
  Misses       7124     7124
  Partials     1039     1039


Error when opening docstring

Is it related to those python flags ?
# Keeps Python from generating .pyc files in the container
export PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
export PYTHONUNBUFFERED=1

#### Remove Assert and Docstring
export PYTHONOPTIMIZE=2

Code:
        if "s3:/" in dirs3:
          session = aws_get_session()
          with open(dirs3, mode=mode, transport_params={'client': session.client("s3")}  ) as fp:
             ddict = json.load(fp)

####Error message:
2023-03-27T23:45:37.482212821Z,"ERROR  ,Encountered a non-fatal error while building docstrings (see below). help(smart_open) will provide incomplete information as a result. For full help text, see <https://github.com/RaRe-Technologies/smart_open/blob/master/help.txt>."
2023-03-27T23:45:37.482478954Z,"ERROR  ,'NoneType' object has no attribute 'split'"
2023-03-27T23:45:37.482488402Z,Traceback (most recent call last):
2023-03-27T23:45:37.482492526Z,"  File ""/opt/miniconda/lib/python3.8/site-packages/smart_open/smart_open_lib.py"", line 512, in <module>"
2023-03-27T23:45:37.482496478Z,    doctools.tweak_open_docstring(open)
2023-03-27T23:45:37.482499871Z,"  File ""/opt/miniconda/lib/python3.8/site-packages/smart_open/doctools.py"", line 189, in tweak_open_docstring"
2023-03-27T23:45:37.482502592Z,    print('    %s' % submodule.__doc__.split('\n')[0])
2023-03-27T23:45:37.482505449Z,AttributeError: 'NoneType' object has no attribute 'split'

Yes, I think this is the cause:
#### Remove Assert and Docstring
export PYTHONOPTIMIZE=2


feature request: an option to delete duplicates during sync

With the new "duplicate file found" message, can we have a command line option to delete these duplicates as they're found?
Apologies if I've just missed this in the documentation—I didn't see anything there.

Good idea!  I'll see if I can add a flag to do this.

Oh, I dunno—start anywhere. I've got 8 or 9 or a dozen of 'em in some cases.
(I kid, I kid... I fully understand the delicacy of this sort of thing.)
Thanks for considering it.

If they're truly duplicates (identical filename, hash, creation time, etc) does it matter which gets deleted?

@juniormonkey good point!

Just stumbled on this, I too am seeing some duplicates. Would be great to have this feature.
Thanks.

Adding a +1 on this. I'm using rclone to transfer a couple of very large directories (a few TB in total, distributed over hundreds of thousands of files) on Google Drive, and that led to thousands of duplicate files.
This is only getting worse over time, since our cron job adds a few dozen additional duplicates every day.
If our Google Drive plan did not have unlimited storage, this would be a pretty serious issue.

The only thing I will say is they are not true duplicates. @juniormonkey   Mine had different md5, sizes in some cases, and dates.  I agree with an option to do it but care as to how to select the one to delete needs to be thought about.

I have made the dedupe command which you can try in this beta
http://pub.rclone.org/v1.26-51-g3101a7fβ/
rclone dedupe remote:path
Interactively find duplicate files and offer to delete all but one or
rename them to be different. Only useful with Google Drive which can
have duplicate file names.
$ rclone dedupe drive:dupes
2016/01/31 14:13:11 Google drive root 'dupes': Looking for duplicates
two.txt: Found 3 duplicates
  1:       564374 bytes, 2016-01-31 14:07:22.159000000, md5sum 7594e7dc9fc28f727c42ee3e0749de81
  2:      1744073 bytes, 2016-01-31 14:07:12.490000000, md5sum 851957f7fb6f0bc4ce76be966d336802
  3:      6048320 bytes, 2016-01-31 14:07:02.111000000, md5sum 1eedaa9fe86fd4b8632e2ac549403b36
s) Skip and do nothing
k) Keep just one (choose which in next step)
r) Rename all to be different (by changing file.jpg to file-1.jpg)
s/k/r> r
two-1.txt: renamed from: two.txt
two-2.txt: renamed from: two.txt
two-3.txt: renamed from: two.txt
one.txt: Found 2 duplicates
  1:         6579 bytes, 2016-01-31 14:05:01.235000000, md5sum 2b76c776249409d925ae7ccd49aea59b
  2:         6579 bytes, 2016-01-31 12:50:30.318000000, md5sum 2b76c776249409d925ae7ccd49aea59b
s) Skip and do nothing
k) Keep just one (choose which in next step)
r) Rename all to be different (by changing file.jpg to file-1.jpg)
s/k/r> k
Enter the number of the file to keep> 2
one.txt: Deleted 1 extra copies

The result being
$ rclone lsl drive:dupes
<PHONE_NUMBER>-01-31 14:07:22.159000000 two-1.txt
  1744073 2016-01-31 14:07:12.490000000 two-2.txt
  6048320 2016-01-31 14:07:02.111000000 two-3.txt
     6579 2016-01-31 12:50:30.318000000 one.txt


Fix update job error: Throttle violation

Fix for #191
Short description of changes
update-bot.js

The update job checks if the environment variable UPDATE_ALL has the value "Y".
If UPDATE_ALL is set to "Y" the behaviour is the same as before
Else:

For each question check if the question is in the database (and therefore was answered)
Only if the question is not in the database but has an answer, the answers are requested and added to the database

cronjob.yaml

Environment variable UPDATE_ALL was added to cronjob update-bot-job
Second cronjob update-all-bot-job was created (copy of update-bot-job with these modifications:

This cronjob runs only once per day
UPDATE_ALL="Y"
restartPolicy was set to Never to avoid a behaviour similar to #191 (crashing and due to restarts creating too many requests). Since there should be notifications when there is an issue (#195), there is no need to restart this job (from my point of view).

Changed update interval for new questions and answers for previously unanswered questions to 30 mins as discussed. Also added two comments to explain the difference between the two cronjob a little bit further. Additional explanations will be added to the internal wiki.
Any additional comments/requests for changes or can we merge this pull request now? @abbi-gaurav


Implement non-OA metadata in export outputs

Is your feature request related to a problem? Please describe.
As a publisher, I want to be able to distribute metadata that pertains to non-OA titles. which isn't fully possible at the moment.
As a team, we'll need to decide if we want to enable such features.
Additional context

JSTOR ONIX output currently not accurate for non-OA books (White Horse Press use case - fields such as <Unpriced Item Type> are output hard-coded); this is probably also the case for some other ONIX outputs
SciELO publishers: Amanda notes many of them will likely be seeking to use Thoth to manage metadata also for books that are not in SciELO, and non-OA. ONIX fields for e.g. regional dissemination restrictions one particular field that would be needed and is currently missing.
More generally, other hybrid presses would also benefit from from this expansion.

Similarly to the point about ONIX, the MARC output also currently includes a blanket OA statement. This could be amended while fixing #525 (e.g. move under the CC licence check, as per the incorrectly-implemented 1c8a0ce).

To be implemented based on assuming that works with a licence URL supplied are OA, and works without are non-OA.

#629 implements conditional outputting of existing OA-related information, but does not make any changes to the data model, e.g. to add storage of regional dissemination restrictions as mentioned in original description.


The password request upon wallet opening (Windows)

Currently the user have to enter the password at the smapp start (for Windows, not sure about other platforms).
Smeshing/Sync doesn't start until user enters correct password.
It prevents unattended smeshing (automatic smeshing start after Windows loads).
Acceptance criteria
Smapp should start without the password prompt
Smeshing / Sync should start automatically after smapp loads
The user should be asked for the password after the click on the wallet tab for the first time (or the click on any tab other then 'Network')

I assume you mean that smeshing/sync will start only if the current wallet that the user is prompted to open is configured to run with local node? Smeshing/sync and local node startup should not happen if the wallet was last used with a public sm api provider....

Obviously the wallet have to be configured before as default destination for smeshing rewards.
Is there anything that prevents sync without configured wallet?

@Stizerg thanks for the report.
I think I understand the pain and we really should tweak it.
User Story:

User opens Smapp, creates wallet (running local note), syncing, and also started smeshing...
User also turns on autostart of Smapp.
Then User rebooted OS

Expected:

Smapp should continue syncing and smeshing on startup without any questions.
So User may forget about it until he wants to check the balance or send some SMH.

Actual:

Smapp autostarted, but it does nothing until the User will type the password.

From the technical side:

If the User runs the local node in the previous App session — then Smapp should start the Node using the same node-config and arguments on Smapp startup.

@Stizerg am I understood it right?

It should def work this way - we had an old issue about it but I guess it was lost...

Yes, that's all correct @brusherru
Thanks


Add coverage badges

You will need to give the action permission to write to main:
Settings > Actions > General

I am not sure if this will work with the matrix approach you have for tests

@microsoft-github-policy-service agree [company="Transmute"]

@microsoft-github-policy-service agree company="Transmute"

@microsoft-github-policy-service agree

@christianpaquin I am not sure this will work with the matrix you have.
Do you want me to make a separate yaml file for coverage, and pin the node version?


WRP-19326: Updates node modules' major versions

Checklist

[x] I have read and understand the contribution guide
[x] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[x] Documentation was added or is not needed
[x] Documentation was verified or is not changed
[x] UI test was passed or is not needed
[x] Screenshot test was verified or is not needed
[ ] This is an API breaking change

Issue Resolved / Feature Added
Agate repo and sampler have node modules that need major updates.
Resolution
For Agate root:
Updated immer dependency to v10.
There were no breaking changes affecting our code https://github.com/immerjs/immer/releases.
For Agate sampler:
Updated babel-loader dependency to v9.
There were no breaking changes affecting our code https://github.com/babel/babel-loader/releases.
Additional Considerations
For Agate I have also updated minor versions of enact/docs-utils and enact/ui-test-utils.
For sampler, minimum required node version is v14.15.0 https://github.com/babel/babel-loader/releases/tag/v9.0.0. I have also updated minor versions of enact/storybook-utils and dotenv.
Links
WRP-19326
Comments
Enact-DCO-1.0-Signed-off-by: Stanca Pop<EMAIL_ADDRESS>

Closed in favour of https://github.com/enactjs/agate/pull/750.


Make "why not promoted" information more discoverable in IntelliJ

(Parent issue #44897)
As of a42244f73b27256eca44def4daa552e91c2dbc55, the analyzer now generates context messages in some circumstances explaining why type promotion failed.  IntelliJ integration exposes these messages to the user via a right click on the error message.  We would like these messages to show up in a way that's more easily discoverable.
Yesterday we discussed some possibilities for how to do this.  In an ideal world we'd like the "problems" view to have a tree structure so that the user can see context messages as collapsible leaves underneath the error messages.  Unfortunately there are performance limitations getting in the way of doing this when the error count is large.  Possible ways around the performance issues include:

Switching to a table view when the error count is large
Automatically filtering to just the current file (or perhaps folder) when the error count is large
displaying the context messages as a new, third column in the problems view

In addition, we might want to display the context messages in the tooltips for the analysis errors.

@jwren any progress on this?

Yes, the content is now shown, it was not in IJ, but now is:

Other opportunities still exist to make it better which can be tracked with other issues as needed.


Setup docker container for API

https://github.com/RyanWork/ubiquitous-doodle/commit/f7203c979c4d34b2a886d3adb0fa8b62128893d5


fix: display accountId when profile don't exist

Currently, if the user has not created a profile, the menu will display "Trigger" since that is the default text displayed by DIG.DropdownMenu
This PR fixes it by displaying the AccountId if no profile exist

added this change to #836


Request: Add kbrew to homebrew

Seems like an obvious step to make installation easier on Mac OS.
https://docs.brew.sh/Adding-Software-to-Homebrew

Seems like this project isn't really being maintained at this point 😞


Support for GOOGLE_APPLICATION_CREDENTIALS

It would be nice if this plugin can detect and use the GOOGLE_APPLICATION_CREDENTIALS environment variable.
This one way similar to issue #44, but using GOOGLE_APPLICATION_CREDENTIALS have some advantages:

The PHP Google APIs Client Library supports this out of the box.
If you are using Google Cloud Platform, this variable is already set. There is no need to fiddle with a JSON-key file.
Makes it easier to move away from the Google Cloud Storage plugin.

Because this plugin is planned to be used for a project I'm currently working on at work, I'm interesting in to help you guys out. Not only I can implement this for you, I can look into fixing bugs and generally make this plugin stable for version 1.10. Many of the features I need for this project is in 1.10 (eg. sm_root_dir).
Let me know how we can collaborative and make this plugin more awesome than what it already is. ;)

@walle89 Yes - this makes sense. We are trying to finish up the current release, now labeled as v2.0.0, and if we can work this in - that would be great.
Give us this week to finish up what we are currently working on, and then we can cleanup the branches a bit and get you more involved. Does that sound good?

Sounds good. Let me know if there is something I can help you with.

@walle89 ok - I think we're ready for you. Want to try including this functionality within the v2.0 branch?

Sure, I will give it a shot. I will start look into this sometime this week. But I have a few things I need to clear up.

What coding standard are you using? It's either PSR-2 or Wordpress coding standard. The reason for I'm asking this is I want to respect your coding style (even though I don't personally like 2 spaces  indentation).
What is the reason you are storing the key in the database if the WP_STATELESS_MEDIA_KEY_FILE_PATH constant is in use? My plan is just read the json-file from GOOGLE_APPLICATION_CREDENTIALS.
I think it's good to somehow in the settings panel (and setup assistant) to have some indication to that it's using the GOOGLE_APPLICATION_CREDENTIALS. But I currently don't have a good solution in mind. Do you have any suggestion?
In what priority order should each "json key method" be in? My idea is to have something like:

<?php
if(!empty(get_site_option( 'sm_key_json' )))
// Use site option
elseif (!empty($this->get( 'sm.key_json' )))
// use $this->get( 'sm.key_json' )
elseif(is_defined('WP_STATELESS_MEDIA_KEY_FILE_PATH') )
// Use WP_STATELESS_MEDIA_KEY_FILE_PATH (in your implementation, this is stored in the database)
elseif(getenv('GOOGLE_APPLICATION_CREDENTIALS') !== false)
// Use GOOGLE_APPLICATION_CREDENTIALS
else
// No key, return some error message.

I would love to hear your feedback.

What coding standard are you using? It's either PSR-2 or Wordpress coding standard. The reason for I'm asking this is I want to respect your coding style (even though I don't personally like 2 spaces indentation).

Not sure. Maybe @andypotanin or @alimuzzaman can chime in.

What is the reason you are storing the key in the database if the WP_STATELESS_MEDIA_KEY_FILE_PATH constant is in use? My plan is just read the json-file from GOOGLE_APPLICATION_CREDENTIALS.

The original intent was to allow the key to be loaded from the JSON file or the settings panel (database). I don't think we need to store the JSON key in the database if it is being loaded from a file. @alimuzzaman can you advise on your implementation here?

I think it's good to somehow in the settings panel (and setup assistant) to have some indication to that it's using the GOOGLE_APPLICATION_CREDENTIALS. But I currently don't have a good solution in mind. Do you have any suggestion?

For the setup assistant, I'm not sure we need to say anything.
For the settings panel, we could just insert an uneditable message into the field describing that we are using the GOOGLE_APPLICATION_CREDENTIALS environment variable.

In what priority order should each "json key method" be in?

Not sure, but maybe @alimuzzaman or @andypotanin can provide their thoughts?

Just to chime in regarding environment variable detection - I usually prefer to use $_SERVER instead of getenv in theory they should be same, or at least similar, but in many environments they can be rather different.

The priority order is:

Constant
Network Settings
Database

@ewsopp Regarding the JSON key in database if there is a constant. I did a test with a fresh WP installation with v2.0 branch. The reason for the key is saved in the database is because the field "Service Account JSON" in the settings panel is not disabled when a constant is in use. In other words, when you press save the key will be stored in the database.
Is it okay I fix this so that the field is disabled as part of the current task? Or shall I create a separate issue and report it as a bug?

Is it okay I fix this so that the field is disabled as part of the current task? Or shall I create a separate issue and report it as a bug?

Here is fine - thank you for testing this.

One more thing. You did change this task to be part of version 2.1. Should I fork and send pull request to the v2.0 branch? Or will you create a 2.1 branch?

I just cloned a v2.1 from v2.0. Let's go with v2.1. Unless there is a critical bug, I think we should release v2.0 as-is. It's currently with a handful of people for testing.

When I implement GOOGLE_APPLICATION_CREDENTIALS, do you think it should take higher priority than the constant?

Maybe lower priority than a wp-config constant. Otherwise, how would the user overrule it easily if they needed to?

May I ask when you plan to release 2.1? I need this information for planning of my project at work.
Also let me know if there is something in my pull request you want me to fix or help you guys out with something.

@walle89 Thanks. There is smething need to change. But I will do it.

@walle89 I'm aiming to publicly release v2.0 today. Let's plan on a v2.1 release next week to allow any uncaught bugs to surface from v2.0.

@walle89 this has been worked into the v2.1 release. Would you mind testing this out for us? You can download it from https://github.com/wpCloud/wp-stateless/archive/v2.1.zip

I did just a quick test and initially every thing seems fine. Soon I have time later this week, I will do more testing.
What's your current plan to release 2.1 (if you don't find any major issues)?

All that is left is more thorough testing. I'd like to release this week! :)

I have done the testing of v2.1 (not RC) and GOOGLE_APPLICATION_CREDENTIALS variable works as expected. I have yet tested it Google Cloud Platform, ut I feel quite conferment that this feature will work. I will continue the testing of other fixes and features that will be released. But as for this issue, in my opinion I would say this is working and ready for release.
Environment spec:
WP 4.8.1 subdir network (both with existing and brand new install with standard config)
PHP 7.1 (https://hub.docker.com//php/)
MySQL 5.7 (https://hub.docker.com//mysql/)
Environment variable set by Docker Compose

Thank you @walle89 - we are shipping v2.1.0 now! Expect an update today at https://wordpress.org/plugins/wp-stateless/


fix: [sort] func passed to Doc:replace must have two return values

Caused error /usr/share/lite-xl/core/doc/init.lua:443: attempt to perform arithmetic on a nil value at /usr/share/lite-xl/core/init.lua:1114 when using sort:sort.

Yup, looks good.


Bug fix for repeated infinite scroll calling after a state change with native scrolling

This issue #3871 discusses the problem but it was closed without a solution.
The problem was that the maximum scroll height and the current height were both 0 which made it appear like the scroll was at the bottom.

Thanks!


Remove deprecated isort recursive option

The option has been remove since 5.0.0 Penny - July 4, 2020

--recursive option has been removed. Directories passed in are now automatically sorted recursive.

https://github.com/timothycrosley/isort/blame/develop/CHANGELOG.md#L31
Motivation
Error:

isort: error: unrecognized arguments: --recursive

Looks like the sort changed and the style fails. It might affect other integrations.

Yes, looks like so. Fixing that.

Maybe the style of the other integrations should be fixed in another PR.

Agree.


App crashes for logged-in user from new API change

At least I'm pretty sure it's the new API change... in https://github.com/DoSomething/northstar/pull/125?
I have a session already saved in the app, but when it loads it goes crashy crash:
2015-05-19 15:48:12.534 Lets Do This[6512:1401439] +[NSManagedObjectContext(MagicalRecord) MR_contextWithStoreCoordinator:](0x107c05d78) -> Created Context UNNAMED
2015-05-19 15:48:12.535 Lets Do This[6512:1401439] +[NSManagedObjectContext(MagicalRecord) MR_setRootSavingContext:](0x107c05d78) Set Root Saving Context: <NSManagedObjectContext: 0x7f9354b124a0>
2015-05-19 15:48:12.535 Lets Do This[6512:1401439] +[NSManagedObjectContext(MagicalRecord) MR_newMainQueueContext](0x107c05d78) Created Main Queue Context: <NSManagedObjectContext: 0x7f9354b32db0>
2015-05-19 15:48:12.535 Lets Do This[6512:1401439] +[NSManagedObjectContext(MagicalRecord) MR_setDefaultContext:](0x107c05d78) Set Default Context: <NSManagedObjectContext: 0x7f9354b32db0>
2015-05-19 15:48:12.681 Lets Do This[6512:1401439] GET<EMAIL_ADDRESS>{
    "Accept-Language" = "en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5";
    Session = "amdrOG1QVkp6N09xNVBFTFJZcUM3VFkwWlpERjFVV0hpT0g1a3p4RWdCTT0=";
    "User-Agent" = "Lets Do This/1.0 (iPhone Simulator; iOS 8.3; Scale/2.00)";
    "X-DS-Application-Id" = ios;
    "X-DS-REST-API-Key" = [I am editing this to not paste the key here];
} (null)
2015-05-19 15:48:13.252 Lets Do This[6512:1401439] -[__NSCFDictionary firstObject]: unrecognized selector sent to instance 0x7f935243fba0
2015-05-19 15:48:13.294 Lets Do This[6512:1401439] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary firstObject]: unrecognized selector sent to instance 0x7f935243fba0'
*** First throw call stack:
(
	0   CoreFoundation                      0x0000000108d5cc65 __exceptionPreprocess + 165
	1   libobjc.A.dylib                     0x00000001089f5bb7 objc_exception_throw + 45
	2   CoreFoundation                      0x0000000108d640ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
	3   CoreFoundation                      0x0000000108cba13c ___forwarding___ + 988
	4   CoreFoundation                      0x0000000108cb9cd8 _CF_forwarding_prep_0 + 120
	5   Lets Do This                        0x000000010774f332 __45+[DSOSession startWithCachedSession:failure:]_block_invoke + 98
	6   Lets Do This                        0x000000010775c631 __84-[AFHTTPSessionManager dataTaskWithHTTPMethod:URLString:parameters:success:failure:]_block_invoke87 + 241
	7   Lets Do This                        0x000000010777ef7b __72-[AFURLSessionManagerTaskDelegate URLSession:task:didCompleteWithError:]_block_invoke_272 + 203
	8   libdispatch.dylib                   0x000000010b13c186 _dispatch_call_block_and_release + 12
	9   libdispatch.dylib                   0x000000010b15b614 _dispatch_client_callout + 8
	10  libdispatch.dylib                   0x000000010b143a1c _dispatch_main_queue_callback_4CF + 1664
	11  CoreFoundation                      0x0000000108cc41f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
	12  CoreFoundation                      0x0000000108c85dcb __CFRunLoopRun + 2043
	13  CoreFoundation                      0x0000000108c85366 CFRunLoopRunSpecific + 470
	14  GraphicsServices                    0x000000010cdf1a3e GSEventRunModal + 161
	15  UIKit                               0x0000000109155900 UIApplicationMain + 1282
	16  Lets Do This                        0x000000010774d66f main + 111
	17  libdyld.dylib                       0x000000010b18f145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Tried building on a different device in Simulator without any data saved.  I can login ok, but it seems the User is not saved anymore because of format changes.  When I go to the Hub, which currently prints the session.user:
2015-05-19 15:57:39.323 Lets Do This[6763:1409667] Unknown class I in Interface Builder file.
2015-05-19 15:57:39.324 Lets Do This[6763:1409667] (null)


Add Testing Changes to Develop Branch

Description Of Changes
Testing changes got added to main branch but never lower into develop branch.
Motivation and Context
Get these changes added to develop branch so contributing doc works as expected.
Testing

Found this while testing QSG

Operating Systems Testing

Windows Server 2022

Change Types Made

[X] Bug fix (non-breaking change).
[ ] Feature / Enhancement (non-breaking change).
[ ] Breaking change (fix or feature that could cause existing functionality to change).
[ ] Documentation changes.
[X] PowerShell code changes.

Change Checklist

[ ] Requires a change to the documentation.
[ ] Documentation has been updated.
[ ] Tests to cover my changes, have been added.
[X] All new and existing tests passed?
[X] PowerShell code changes: PowerShell v2 compatibility checked?

Related Issue
NA

Need to create this with only one commit instead of this way. Will re-create PR.


[dev] Update RPM to 4.17.0

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[ ] All package sources are available
[ ] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[ ] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[ ] Ready to merge

Summary

This change updates RPM to 4.17.0. This introduces some major changes (the most prominent in my opinion being removal of some scripting language support
Change Log

To be updated

Does this affect the toolchain?

YES
Test Methodology

Local normal package build
Local full toolchain build

I do have a few testing questions here: Have you been able to create a worker chroot archive with this upgrade? Are you able to go through a regular package build with this upgrade? Have you been able to to a full build in our pipelines?
I'm asking because I have a larger concern regarding certain dependencies we take on the build host RPM. I noticed once when trying to build on top of some Fedora version that the toolchain built just fine, but failed to create a worker chroot archive. I was able to track down the problem to a difference in supported databases between the version of RPM on the host and the version of RPM from the toolchain.
Specifically, this is the one line that was causing the problem. Note that this line is using the build host's RPM to install the toolchain packages into a clean chroot.
Since the build host RPM is used for this, whatever database format that the host RPM is configured to use will be used inside the chroot for package management. This database may happen to match with what our RPM version supports (as it does with our supported host of Ubuntu 18.04),  or it could be different (as it is for recent versions of Fedora). If our chroot has an RPM database which is unsupported by the toolchain version of RPM, this causes problems when the build system attempts to install packages inside the worker chroot during package builds.
So, in summary: I'm asking that you run a full build for this before merging, so that we can check for these types of problem and avoid having to revert this.


Modernize GitHub authentication

Message from GitHub

Hello there!
On February 13th, 2020 at 10:09 (UTC) your application (benchq) used an access token (with the User-Agent AHC/2.0) as part of a query parameter to access an endpoint through the GitHub API.
https://api.github.com/user
Please use the Authorization HTTP header instead as using the access_token query parameter is deprecated and will be removed July 1st, 2020.
Depending on your API usage, we'll be sending you this email reminder once every 3 days.
Visit https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api/#authenticating-using-query-parameters for more information.

The OAuth library we use has a fix in a newer version: https://github.com/mohiva/play-silhouette/pull/576#issuecomment-584031898
That may involve us upgrading to Play 2.8.


Error "TypeError: DataViewListCtrl.AppendTextColumn(): argument 'width' has unexpected type 'float'

Hello Bouni !
Seems like the plugins does not work since upgrade from Linux Mint 21 to 21.1 in December.
Describe the bug
When on PCB Editor, clicking on JLCPCB icon lead to Error window.
To Reproduce
Steps to reproduce the behavior:

Install KiCad 6 on Linux Mint 21.1
Install JLPCB Plugin from Plugin and Content Manager
Open the PCB Editor of a project
Click on JLCPCB icon (of the plugin)
See error: "TypeError: DataViewListCtrl.AppendTextColumn(): argument 'width' has unexpected type 'float'
https://drive.google.com/file/d/1SZ5yPxl2B0aMtOnKuGKxLdtT8BtCvCaF

Expected behavior
Clicking on Icon should open the normal plugin window.
KiCad Version
Application: KiCad
Version: 6.0.10-86aedd382b~118~ubuntu22.04.1, release build
Libraries:
wxWidgets 3.0.5
libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.13
Platform: Linux 5.15.0-57-generic x86_64, 64 bit, Little endian, wxGTK, mate, x11
Build Info:
Date: Dec 18 2022 19:39:39
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.74.0
OCC: 7.5.2
Curl: 7.86.0
ngspice: 36
Compiler: GCC 11.3.0 with C++ ABI 1016
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON

Sorry for disturbing for nothing, looks like I didn't have the last update of the plugin installed.
I unsintalled and installed with the latest one (dated 01/01/2023), and no more error ! :)


Configure broker relist behavior on a per-broker basis

Created from #627; we should be able to configure the controller's relist behavior on a per-broker basis.  I have requirements for:

Relist periodically (can be manually triggered)
Do not relist until manually triggered

The user should always be able to trigger a manual relist, see #704

Addition items from #812:

ability to ask for certain brokers to be excluded from the auto-re-get
do the re-get and reconcile the data

I have folks at Red Hat that have volunteered to take this on.  We spent some time today talking through a design that satisfies the known requirements for this feature, namely:

Broker relist behavior should be configurable on a per-broker basis
Brokers should be relisted on an interval or manually only
There should be a way to manually trigger a relist for any broker

Here's our proposal:
API changes:
type BrokerRelistBehavior string

const (
  BrokerRelistBehaviorDuration BrokerRelistBehavior = "Duration"
  BrokerRelistBehaviorManual   BrokerRelistBehavior = "Manual"
)

type BrokerSpec struct {
  // other fields omitted
  RelistBehavior BrokerRelistBehavior
  RelistDuration *metav1.Duration
}

Defaults:

RelistBehavior should default to BrokerRelistBehaviorDuration
RelistDuration should default to 15m if the broker is refreshed on a duration

Validations:

RelistBehavior should be a valid value
RelistDuration must be a valid duration if behavior is to use a duration
RelistDuration cannot be set unless behavior is to use a duration

Other changes:

Fuzzer changes to account for the defaulting behavior
Controller should change to consider the new spec fields to determine whether a broker is ready for relist instead of looking at the existing global config for the controller manager
Existing controller manager option should become a no-op and should be removed at beta

Additionally, there should be:

a new subresource (relist) for brokers that causes the broker to be relisted immediately by clearing the status and making the broker appear to require sync.
a new porcelain command (relist-broker) to invoke the new subresource

I have outlined the basic API changes to provide a good example; @jmrodri will write up his proposal for the subresource and porcelain commands
Note:
This proposal represents an amount of work larger than is appropriate for a single PR.  A good factoring of this work into PRs would be:

A PR that adds the new API fields, defaults, validations, controller behaviors
A PR that adds the new subresource
A PR that adds the new porcelain command

Also, all names are merely suggestions; better suggestions are welcome.

couple of questions:

what's the trigger to do a manual relist?
why not just have a "duration" field and when zero it means "manual"? Not sure we need two fields to convey what one can do.

what's the trigger to do a manual relist?

The new relist subresource would result in the broker being relisted

why not just have a "duration" field and when zero it means "manual"? Not sure we need two fields to convey what one can do.

I would strongly prefer not to have magic values for the duration field.  Without a magic value to indicate the manual-only behavior, in order to have a default for the duration, we need the behavior enum to disambiguate between 'use the default duration' and 'manual relist only'.

Actually, even with the magic value, it's impossible to distinguish between 'set the default' and 'manual'

Are we not allow to do... no "duration" property == "use default".  value of "0" means "manual".

CLI proposal:
Add a relist-broker subcommand to the kubectl tool. The easiest way to
accomplish this is to piggy back on the plugin support being added by PR #840.
This change will also depend on  the relist api proposed in this issue #705.
With PR #840 we could create a new relist-broker executable:
// Some pseudo code and boilerplate stuff
package main

...

const usage = `Usage:
  kubectl plugin relist-broker BROKER_NAME`

func main() {
    svcURL := utils.SCUrlEnv()
    if svcURL == "" {
        svcURL = "<IP_ADDRESS>:30080"
    }

    if len(os.Args) < 1 {
        utils.Exit1(usage)
    }
    ...
    restConfig := rest.Config{
        Host:    svcURL,
        APIPath: "/apis/servicecatalog.k8s.io/v1alpha1",
    }

    svcClient, err := clientset.NewForConfig(&restConfig)
    if err != nil {
        utils.Exit1(...)
    }

    // Relist the broker
    resp, err := svcClient.Brokers().Relist()
    if err != nil {
        utils.Exit1(...)
    }

    utils.Ok()
}

We will also need to update the Makefile with the above new utility.

add a build target for the command

$(BINDIR)/relist-broker/relist-broker: \
		plugin/cmd/kubectl/relist-broker/relist-broker.go \
		plugin/cmd/kubectl/relist-broker/plugin.yaml
	rm -rf $(BINDIR)/relist-broker
	$(DOCKER_CMD) go build -o $@ $<
	$(DOCKER_CMD) cp plugin/cmd/kubectl/relist-broker/*yaml \
		$(BINDIR)/relist-broker/

add command to the plugins target

plugins: $(BINDIR)/bind-service/bind-service \
			$(BINDIR)/create-service-broker/create-service-broker \
			$(BINDIR)/create-service-instance/create-service-instance \
			$(BINDIR)/relist-broker/relist-broker

The relist-broker utility will also need a plugin.yaml file defined:
name: "relist-broker"
shortDesc: "This command relists the service instances"
command: "./relist-broker"

Subresource proposal:
Add a relist subresource for brokers that causes it to be relisted
immediately. It will accomplish this by clearing the status and making
the broker appear to require sync.
First, in pkg/registry/servicecatalog/rest/storage_servicecatalog.go we will add the
relist storage type similar to status.
// other entries omitted
brokerStorage, brokerStatusStorage := broker.NewStorage(*brokerOpts)
brokerRelistStorage := broker.NewStorage(*brokerOpts)

Then add it to the return map.
return map[string]rest.Storage{
// other entries omitted
"brokers/status": brokerStatusStorage,
"brokers/relist": brokerRelistStorage, // NEW ENTRY
...

Since we updated the storage_servicecatalog, we'll want to update the
TestV1Alpha1Storage in storage_servicecatalog_test.go to include
brokerRelistStorage.
The last bit should be to update the broker strategy located in
broker/strategy.go. Add a brokerRelistRESTStrategy struct similar to
the existing brokerStatusRESTStrategy struct.
I believe that's all that needs to get done. But there might be some unknowns in
this section that might result in more changes.

That might sound a bit hacky, but isn't just removing the status from Broker resource enough to manually force relisting?

That might sound a bit hacky, but isn't just removing the status from Broker resource enough to manually force relisting?

Users normally don't have the ability to clear status themselves.
I have a solution which doesn't rely on destroying status or creating a subresource which I described in the meeting last thursday, but haven't had a chance to write up yet.  TLDR: add a field to BrokerSpec called RelistRequests that is an incrementing counter.  When the user needs to do a manual relist, they can bump the value of this field.
No subresource is required to do this, and it fits entirely within kube precedent.


Adds support to set AVVideoCodecType, fixes uninitialized property

Adds support to set the output video codec (H264, HEVC, etc):
public var videoCodecType: AVVideoCodecType? = nil
Also fixes an uninitialized property var flashEnabled: Bool which prevented compilation.

Thanks for the fix and the feature you added!


manager: manage capture and replay jobs

What problem does this PR solve?

Issue Number: close #665
Problem Summary:
Manage capture and replay jobs.
What is changed and how it works:

Add a JobManager to manage and show the jobs. It's the interface for HTTP API
Refactor Replay to make it reusable for replaying

Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Notable changes

[ ] Has configuration change
[ ] Has HTTP API interfaces change
[ ] Has tiproxyctl change
[ ] Other user behavior changes

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
None

Codecov Report
Attention: Patch coverage is 82.60870% with 24 lines in your changes missing coverage. Please review.

Please upload report for BASE (main@aa61869). Learn more about missing BASE report.

Files with missing lines
Patch %
Lines

pkg/sqlreplay/replay/replay.go
42.85%
10 Missing and 2 partials :warning:

pkg/sqlreplay/manager/manager.go
90.32%
6 Missing and 3 partials :warning:

pkg/sqlreplay/manager/job.go
82.35%
2 Missing and 1 partial :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #666   +/-   ##
=======================================
  Coverage        ?   69.63%
=======================================
  Files           ?       97
  Lines           ?     9296
  Branches        ?        0
=======================================
  Hits            ?     6473
  Misses          ?     2351
  Partials        ?      472

Flag
Coverage Δ

unit
69.63% <82.60%> (?)

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

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


Update Cygnus to 2.17.0

Proposed changes
This PR updates Cygnus to 2.17.0.
Types of changes
What types of changes does your code introduce to the project: Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update only documentation, not any source code.

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of
them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before
merging your code.

[X] I have read the CONTRIBUTING doc
[ ] I have signed the CLA
[X] I have updated the change log (CHANGELOG.md)
[X] I send this pull request to the v0.14.0-next branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
N/A

Codecov Report

Merging #176 (e70108e) into v0.14.0-next (43dca7a) will not change coverage.
The diff coverage is 100.00%.

@@              Coverage Diff               @@
##           v0.14.0-next      #176   +/-   ##
==============================================
  Coverage        100.00%   100.00%
==============================================
  Files                 2         2
  Lines              1746      1746
==============================================
  Hits               1746      1746

Impacted Files
Coverage Δ

config.sh
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add possibility to play more than one key on piano

@LFeh i'm trying developing this issue and i'm not to get success, because i cannot can get multiples keys events, just the last.
I believe that the idea from this issue is if the user press the keys "A" and "D" in the same time, so both piano keys should be pressed, but for now, just the last key is pressed.
Do you have some tip to do it? I'm searching about javascript event listener and for now, i don't have get success.
Thank you

Hey @tota1099, how are you?
Check if this example help you: http://jsfiddle.net/vor0nwe/mkHsU/

@LFeh i'm fine and you?
Sorry for arrive "out of thin air" but i'm trying start to make contributions in the github projects and i like your project and looks fine to start.
About your example, maybe i don't have understand right the idea:
The link when you click in the key "A" and "D" (example), the script just understand the "keydown" from the last key. If you remove the condictions if (!li) { [..] } and press both keys for some seconds, just the last key clicked that is added in the list.
You can see my example: https://jsfiddle.net/Tota1099/L86fec9j/1/
Press and hold the keys "A" and "D" in my example, just the last key clicked that will be showed.
I had understand that the idea from Piano is that the user can press two or more keys in the same time.
Do you can please explain better the idea? (if i have understand wrong)
Thank you :)

You are right.
I never try develop this issue and I can't think in a fast solution.
@fdaciuk Can you help us here?

I can play a full accord =)
Is that the problem here?

@fdaciuk Do you know how to press multiple keys in same time using javascript?

@felipefialho the same way you did on this project =)
I guess it is not a software limitation, but a hardware limitation. Some keyboards might have limitations about pressing more than one key at a time, but this project is working properly.

perfect, i had imagine it :/


updated PlottingGraphWithMatplotlibAndUnrealEnginePython.md

the original code said StaticMesh but the image of the blueprint editor shows StaticMeshComponent

Sorry for the huge late, You are right. Thanks for reporting.


fix(deps): upgrade gravitee-bom & alpha version

Issue
https://github.com/gravitee-io/issues/issues/XXXXX
Description
A small description of what you did in that PR.
Additional context

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 4.1.0-upgrade-deps-SNAPSHOT
download it from Artifactory here

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

4.1.0
GitHub release

Your semantic-release bot :package::rocket:


Export from query option returns an extremely large popup dialog

Description
Using the export from query option now returns an extremely large popup dialog.  The popup opens normally and then expands horizontally.   It is possible to resize the window down to a usable size after many drag and drop attempts.  Here is an example of the screen after it expands.

DBeaver Version
Community Version <IP_ADDRESS>407071610
Operating System
macOS Sonoma Versionn 14.5
Database and driver
Aurora PostgreSQL Engine Version 13.12
PostgreSQL JDBC Driver Version 42.7.2
Steps to reproduce
(1) A query like the following:
select id1, id2
from id2_table
where id1 in ('0193jdh3hdj3hdnhhdnbwhwhdh37292',
'0293jdh3hdj3hdnhhdnbwhwhdh37292',
'0393jdh3hdj3hdnhhdnbwhwhdh37292',
'0493jdh3hdj3hdnhhdnbwhwhdh37292',
'0593jdh3hdj3hdnhhdnbwhwhdh37292',
'0693jdh3hdj3hdnhhdnbwhwhdh37292',
'0793jdh3hdj3hdnhhdnbwhwhdh37292',
'0893jdh3hdj3hdnhhdnbwhwhdh37292',
'0993jdh3hdj3hdnhhdnbwhwhdh37292',
'1093jdh3hdj3hdnhhdnbwhwhdh37292',
'1193jdh3hdj3hdnhhdnbwhwhdh37292',
'1293jdh3hdj3hdnhhdnbwhwhdh37292',
'1393jdh3hdj3hdnhhdnbwhwhdh37292',
'1493jdh3hdj3hdnhhdnbwhwhdh37292',
'1593jdh3hdj3hdnhhdnbwhwhdh37292',
'1693jdh3hdj3hdnhhdnbwhwhdh37292',
'1793jdh3hdj3hdnhhdnbwhwhdh37292',
'1893jdh3hdj3hdnhhdnbwhwhdh37292',
'1993jdh3hdj3hdnhhdnbwhwhdh37292',
'2093jdh3hdj3hdnhhdnbwhwhdh37292',
'2193jdh3hdj3hdnhhdnbwhwhdh37292',
'2293jdh3hdj3hdnhhdnbwhwhdh37292',
'2393jdh3hdj3hdnhhdnbwhwhdh37292')
order by id1;
(2) Highlight and select the entire command
(3) Execute -> Export From Query
Additional context
No response

Thank you for bug report.
I'm closing it as a duplicate of https://github.com/dbeaver/dbeaver/issues/34705
The fix is on the way.


booleans should default to "false" not "null" in Accessibility Trait

There are a few places where we start booleans out as null. @jessegreenberg is there a reason we are doing this? Is it for space?

For example _focusable
          // @private {boolean} - whether or not this node's DOM element can receive focus from tab navigation.
          // Sets the tabIndex attribute on the node's DOM element.  Setting to false will not remove the node's DOM
          // from the document, but will ensure that it cannot receive focus by pressing 'tab'.  Several HTMLElements
          // (such as HTML form elements) can be focusable by default, without setting this property.
          // TODO: why null? why not boolean, https://github.com/phetsims/scenery/issues/748
          this._focusable = null;

@jessegreenberg, I noticed the same thing here for inputValue. Should that support null also? Please add that documentation to this issue with focusable and groupFocusHighlight

Thanks @zepumph, yes I believe inputValue should be {string|null}. I added documentation.

I don't think that https://github.com/phetsims/scenery/issues/762#issuecomment-378770475 applies anymore. It seems much worse to have two options controlling this single feature. Especially with TypeScript (which post dates the creation of this issue), we don't need to worry about boolean|Node too much. The only other options I saw defaulting to null seemed correct. I'm ready to close this issue. Thanks all.


Fix tqdm for notebooks

Please change all occurences of tqdm from from tqdm import tqdm to from tqdm.auto import tqdm.
Otherwise, model fit is printing a new line of progress bar for every update in the notebook.

Thank you! I will change it immediately.


NIFI-9514 NIFI-9515: Add UI support for Parameter Providers in Controller Services

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
This PR adds a new Parameter Providers tab in the Controller Settings UI dialog. From the Parameter Providers tab, users can add and configure Parameter Providers to fetch external parameters. Parameter contexts created from a provider will be listed in Parameter Contexts, where the parameters will be in a read-only state.

To test, you'll need to check out and rebase on top of PR 5369.
Links to Jiras: NIFI-9514, NIFI-9515

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[x] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Reviewing...

Please do not merge yet. This is still a work in progress.

This PR is now ready for review.

@mcgilman Thanks for reviewing! I addressed all of your comments.

I've also hit the issue addressed in this PR [1]. Once this PR is in, I'll try running against https://github.com/apache/nifi/pull/6388.

For this issue, I also tested my PR against PR 6388 and it works as expected.
Will you review again?


CMake sets incorrect version for library

When compiling this library, incorrect version is linked to shared object file. I pulled latest 1.2.0 tag, it's creating 1.1.0 instead of 1.2.0.
https://github.com/redis/hiredis/blob/master/CMakeLists.txt#L53
https://github.com/redis/hiredis/blob/master/CMakeLists.txt#L167
Plus it would be very nice to also add in symlinking to major release so when compiling this library we would get .so .so.1 .so.1.x.x instead of currently .so .so.1.x.x
# Proper symlinks with correct Cmakefile
lrwxrwxrwx 1 root root     15 okt  6 13:33 libhiredis.so -> libhiredis.so.1
lrwxrwxrwx 1 root root     19 okt  6 13:33 libhiredis.so.1 -> libhiredis.so.1.2.0
-rwxrwxr-x 1 root root 106296 okt  6 13:33 libhiredis.so.1.2.0

# What current project Cmakefile is doing
lrwxrwxrwx 1 root root     19 okt  6 13:44 libhiredis.so -> libhiredis.so.1.1.0
-rwxrwxr-x 1 root root 106296 okt  6 13:44 libhiredis.so.1.1.0

This is caused because of improper CMake configuration and wrong hiredis.h header .so (shared object) definitions

I get error ./hiredis-test: error while loading shared libraries: libhiredis.so.1.1.0: cannot open shared object file: No such file or directory on hiredis-1.2.0. How to fix ?


Inconsistency with Barriers having workgroup sizes above 256 work items.

For some reason, on some systems, the Barriers are not working properly. Inconsistent results are returned for workgroup sizes of 1024, or 512 on some NVIDIA systems, and 8192 workgroup sizes on some CPU systems.
The failing unit test is BarrierSupportTest.

NVIDIA NVS 4200M and NVIDIA GTX 760 pass the BarrierSupportTest on an Ubuntu 18.04 LTS, with nvidia-390, but a NVIDIA RTX 2070 is failing on a Ubuntu 16.04 LTS with Cuda 10-2, also GTX 1060 is failing on Arch linux.

In fact I've tested NVIDIA GT 1030 on the same system and the issue above is originated by the driver version. If using NVIDIA GT 1030 with nvidia-390 drivers the tests pass. If using the same NVIDIA GT 1030 on the same system, but with nvidia-440 drivers, the above test fails.


Added another cause of boot failure

If there is a blank GPT entry, the boot partition will not work. Added this info.
Problem: https://github.com/MicrosoftDocs/windows-itpro-docs/issues/9145

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.

#sign-off

@Dansimp PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Choose a minimum codecov patch coverage ratio

Chooses a minimum patch coverage ratio that the commit must meet to be considered a success.
This applies only to PRs.
Docs:
https://docs.codecov.io/docs/commit-status

Codecov Report

Merging #2425 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2425   +/-   ##
=========================================
  Coverage     82.87%   82.87%
  Complexity     2157     2157
=========================================
  Files           354      354
  Lines          6136     6136
  Branches       1122     1122
=========================================
  Hits           5085     5085
  Misses          475      475
  Partials        576      576

Continue to review full report at Codecov.

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


Update feiertage to 1.1.4

Please update my adapter ioBroker.feiertage to version 1.1.4.
This pull request was created by https://www.iobroker.dev c0726ff.

1.1.4 created 08.09.2023
680 user
OK


use a source build of libpcre

removes the need to link against system libpcre
exposed pcre-8.45 as zigpkg which was used for the zigmod version of this library: https://github.com/nektro/pcre-8.45/pull/2 unknown if it'll be merged so libpcre.zig would depend on my fork of it
drawback is that macos won't compile with source build, it'll still use system libpcre by default such that nothing breaks fixed
(this update should be carried out to koino post-merge such that koino doesn't depend on my fork of libpcre.zig, so I didn't open a PR for that yet)

I like this very much! Can you clarify the bit about the macOS build? I tried it locally (with -Dsystem_library=false and it tested fine, and it looks OK in CI too. Similarly, using that commit with koino seems fine on my system.

but now it works out without issues so I'll leave it as false by default

SGTM! I pushed a commit with a typo fix so you might need to pull.

I wonder if that would close https://github.com/kivikakk/libpcre.zig/issues/17 by accident 🤔

!!! Heyooo. I don't have a Windows dev machine right now but I'll try it in CI …

I think this would also kind of remove the need to vendor the library at this rate. if someone wants to use linkPcre they would be able to add .{ .system_library = "true" } to b.dependency()'s args. if you agree with this I can update the readme accordingly (and signal that windows is not supported in that mode)

if you agree with this I can update the readme accordingly (and signal that windows is not supported in that mode)

Yes, absolutely! I'm really pleased with this, thanks so much for pushing all your work up!

Windows success! :)

ready to merge as soon as CI passes again!

Tysm! <3

I'll make the koino update now and save you the extra work!


Clair scanner project structure (question)

Was wondering why Clair is not structured the "Go way":
bin/                                                                    # command executable
   clair
pkg/                                                                  # package objects

src/
   api/
        context/
        v1/
        api.go
        router.go
    ....
    clair/
        clair.go                                                    # main go file
    github.com/                                                # 3rd party packages
    ...
Dockerfile
config.example.yaml
...

This is the main convention for using golang as far as the official doc claim:
https://golang.org/doc/code.html
So am I missing something? and if not are you open to pullresquests for refactoring the project to look more like the official doc advise?
Thanks
Eli

Clair is structured properly. If you follow the instructions in the README, it should install it properly into your GOPATH.

Ok got it, so the only thing is missing for me in the README is package management.
Whats the right way to add packages?
go get will not install to vendor/ so how would you advise to do it?
Thanks

go get does download the vendor directory. If you attempt to build Clair, it will use the packages in vendor.


Proposal to add S.random

Would you be interested in adding a helper function for a random number generator, S.random?
Math.random is limited in that you can't specify a range (it's [0, 1)), which is why Lodash and Underscore have their own implementation. It would be nice to have something like this in the library.

Have you given any thought to how we can keep this function pure? Perhaps by accepting and returning a seed value for the next number.

Yeah, a seed sounds like a good idea. It would also be nice is implementing newStdGen could include CSPRNG as an option also.

Let's keep the discussion in one place: ramda/ramda#1677.


FEDIZ-232 added flag to disable RequestState verification

Thanks for the patch - I am going to merge a modified version of it.


fix(update-methods.md):add escaping to the template so helm doesn't consume it

If the {{ and }} are not escaped, Helm will consume those, and the whole template will be lost.
The original example:
argocd-image-updater.argoproj.io/git-branch: main:image-updater{{range .Images}}-{{.Name}}-{{.NewTag}}{{end}}

will render as image-updater because the whole template is lost. The fix to this is to escape the {{ and }} like so:
argocd-image-updater.argoproj.io/git-branch: main:image-updater{{"{{"}}range .Images{{"}}"}}-{{"{{"}}.Name{{"}}"}}-{{"{{"}}.NewTag{{"}}"}}{{"{{"}}end{{"}}"}}

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

Project coverage is 75.95%. Comparing base (02eee1d) to head (c7631ed).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #888   +/-   ##
=======================================
  Coverage   75.95%   75.95%
=======================================
  Files          31       31
  Lines        3198     3198
=======================================
  Hits         2429     2429
  Misses        635      635
  Partials      134      134

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


Creat ventilation rate model, Ve

Instead of using fixed value as it is currently.
Possible ideas: stochastic/ agent based modelling

duplicate with issue #16


Source tarball not available at "m/mypackage/mypackage-X.X.X.tag.gz" address

My apologies if this isn't the right place to report this issue!

Describe the bug

Source tarball for the latest version of my package is not available at the m/mypackage/mypackage-X.X.X.tag.gz address (the version of the address that does not contain hashes):
https://pypi.io/packages/source/n/neurotic/neurotic-1.2.1.tar.gz
The connection just times out.
Expected behavior

The source tarball should be available for download at that address, just as this older version is:
https://pypi.io/packages/source/n/neurotic/neurotic-1.2.0.tar.gz
To Reproduce

I'm not sure if this problem is reproducible. All I did was upload a new version of my package to PyPI about 8 hours ago, and it's still not available at the expected URL. I haven't tried uploading another version.
My Platform

N/A
Additional context

The m/mypackage/mypackage-X.X.X.tag.gz style URL is used by conda-forge feedstocks (e.g., this). I discovered this issue when my pull request to update my package's feedstock failed all its tests.
I am wondering, has PyPI changed, such that this style of address will not be supported in the future (in which case conda-forge needs to change how they fetch packages for building)? Or was there just a hiccup in my particular case with propagating my tarball to a CDN?

This was a crash in our "conveyor" service that translates legacy URLs like /source/{a-z}/{project-name}/{artifact} to canonical URLs. The service has been restored. Sorry for the confusion.

Thanks for the rapid response and fix, @ewdurbin!


CTRL+click in an URL should not decode it before pass to the browser

VSCode Version: 1.22.2
OS Version: Ubuntu 16.04
Default browser: Chrome

Steps to Reproduce:
In the integrated terminal is emitted the string:
http://localhost/app/auth/reset-password?userId=123&token=a%2Fb%2F%3D%2Fc
When you CTRL+click it, it opens in the browser:
http://localhost/app/auth/reset-password?userId=123&token=a/b/=/c
Of course this does not work correctly.

/dupe of #25852


[attribute multiple] When backspace is pressed it should delete the options

When backspace is pressed if the component has multiple attribute, it should delete the item.
Like gmail & hotmail do.

I believe we need thinking to write these behavior right, I imagine the scene like that

user are focusing in input, and has previous options
user press arrow keys, or backspace key
the previous options receive a focus, changing the background color to a strongest color, to indicate focus
if user press backspace the option focused is deleted, and if has previous options, the previous options receive the focus, if dont have previous options, the input receive focus
if user press arrow key, navigate to correspondent direction, if they press right key, and dont have option, the input receive focus

what u think?

I think this is the best scenario to this feature.
And it is better than just delete the previous item.

nice, lets work on that soon. when open a branch to work on that, me or your, mention the branch here, to we can work together and/or comunicate

Sure.


GPU not working with rocm-5.2.1

I have setup the MI 100 on ubuntu 20.04.5 with kernel version with 5.13.0-35-generic. I installed the rocm-5.2.1 version. But there was something strange which I observed.  The GPU is detected (I used rocm-smi) to check that
But there was another issue.

The hip sample programs are getting compiled but when I am executing them, There GPU is not executing them. I was getting issues that the GPU was not detected.
The code skips the section which has to be executed by the gpu.

Hoping to hear from you soon

Perhaps you can share the terminal output of your GPU not detected issue? Backtrace would be helpful to see.
Is the GPU detectable with rocminfo? It is another binary executable located in the same folder as rocm-smi.
It is possible your MI100 GPU needs a VBIOS update. You may have to contact your system provider for access to VBIOS updates.

Hi @srinivasans74, please check latest ROCm Documentation and ROCm 5.7.1 to see if your query has been resolved.  If resolved, please close the ticket.  Thanks.

Hi @srinivasans74, please try ROCm 6.0.0 to see if your issue has been fixed.  If the issue is still there, as suggested by saadrahim, please provide a backtrace.  Also please run rocminfo to check if the GPU is detected.  Thanks.

Closing the ticket as there was no response from the ticket reporter.  @srinivasans74, please re-open the ticket if your issue still exists with ROCm 6.0.0.  Thank you.


Added Tower of hanoi in java

Assigned Issue Number ?
#697
Language Opted ?
Java.
Number of files added or updated ?

Name of these files ?
Algorithms => DynamicAlgorithm => TOH.java
Checklist

[done] I've read the contribution guidelines.
[done] I've referred the correct issue number.
[done] I've fill up this entire template correctly.

Thanks brother
feeling happy after contributing


Drop support for Python 3.9 and 3.10

We are now in Q4 of 2024, and per SPEC0, it's time to drop support for Python 3.10. We still support 3.9, so perhaps we should drop 3.9 in our next release, and 3.10 in the following one.

This sounds scary, albeit is a best practice... empirically I think most of the Python code out there in tutorials still uses 3.9  I'd say let's hear the community on this one before dropping it.

This sounds scary, albeit is a best practice

Not just a best practice, but a policy we committed to! https://earthaccess.readthedocs.io/en/latest/user_guide/backwards-compatibility/#our-python-and-dependency-support-policy #471

I'd say let's hear the community on this one before dropping it.

What would this process look like? I'm really wary about having a community veto on following through with our policy. I'd rather have the process look like the community designs the policy, we follow it, and if it doesn't work, the community changes the policy. If we do have a community veto process, it should be tightly defined and time bounded.

Python 3.9 is at the very end of its life cycle, only receiving security fixes (and not bug fixes) until it's EOL in Oct. 2025. The scientific Python ecosystem, as described in SPEC0, started dropping support for Python 3.9 in Oct. 2023, and Numpy dropped support for it in its April 2024 release. Even Google CoLab, which is notoriously behind on updates, is currently running Python 3.10.12.
So yeah, I don't see any reason to keep 3.9 going forward -- if users are using 3.9 they can continue to use earthaccess v0.11.0 or lower.
For Python 3.10, I don't see a need to rush, but we could drop support in our next release. SPEC0 doesn't say you have to drop it immediately; it just communicates that users shouldn't expect support beyond those dates, so usually packages drop support 1-3 releases later. Since Google Colab is still 3.10, I guess keeping it makes sense, but once Google Colab updates, I don't see a reason to keep it at all since the are almost always the last to update.

I take the Google CoLab comment as the ultimate "what people are using" test

:thinking: it'd be nice to have a better understanding of what people are using earthaccess for and where.
I know we have a bunch of users using CoLab, and I'm pointing to it mostly because it's an environment users can't control well, so they are stuck with the provided Python version, and they CoLab incredibly slow at updating.  Other similar places are either better at staying up to date, or users can select the Python version they want.

The comment was not sarcastic haha I think CoLab is at the tail of adoption and hence a good measure on what is supported.

🤔 it'd be nice to have a better understanding of what people are using earthaccess for and where.

Speaking of something related, we used to have "used by" and now we don't, I think it's tied to having a dummy setup.py file, we can take a look at the current projects https://github.com/nsidc/earthaccess/network/dependents that depend on earthaccess.

I agree with dropping support for 3.9 and that we should wait on dropping support for 3.10, even though SPEC0 recommends dropping it this quarter. Dropping 3.10 feels a bit aggressive. (Hard to believe 3.10 was released 3 years ago already.)

(Hard to believe 3.10 was released 3 years ago already.)

This!


[DOC] Add documentation for separate Segment Replication rate limiting

What do you want to do?

[x] Request a change to existing documentation
[ ] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request and all versions that are affected.
With this PR we will be adding an additional index setting indices.replication.max_bytes_per_sec to control the max bytes per second for node-node segment replication.
This page should be updated to reflect this new setting.
I am thinking:

indices.replication.max_bytes_per_sec (String): Limits the total inbound and outbound replication traffic for each node. This applies to segment replication between nodes. Default is tied to the set value of indices.recovery.max_bytes_per_sec, which is by default 40mb. If you set the replication traffic value to less than or equal to 0mb, rate limiting will be disabled, which causes replication data to be transferred at the highest possible rate.

What other resources are available? Provide links to related issues, POCs, steps for testing, etc.

Thanks, @mch2 ! I assume we are targeting 2.14?

@hdhalter Yup this will be introduced starting 2.14.  Thanks

Hi @mch2 , what is your ETA for producing the doc PR? To meet entrance criteria, the PR must be open and in review by 4/30. Thanks!

Hi @mch2 , what is your ETA for producing the doc PR? To meet entrance criteria, the PR must be open and in review by 4/30. Thanks!

Will get this up today thanks for the heads up!


Fedot as separate node

Add Fedot automl node for classification and regression task

Hello @valer1435! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file examples/api_example/time_series/ts_forecasting/ts_regression_example.py:

Line 25:1: W391 blank line at end of file

In the file fedot_ind/core/architecture/preprocessing/DatasetLoader.py:

Line 161:121: E501 line too long (127 > 120 characters)
Line 276:121: E501 line too long (183 > 120 characters)
Line 277:121: E501 line too long (186 > 120 characters)
Line 286:121: E501 line too long (122 > 120 characters)
Line 386:121: E501 line too long (151 > 120 characters)
Line 394:121: E501 line too long (123 > 120 characters)
Line 404:121: E501 line too long (133 > 120 characters)
Line 432:121: E501 line too long (136 > 120 characters)
Line 434:121: E501 line too long (126 > 120 characters)
Line 438:121: E501 line too long (142 > 120 characters)
Line 440:121: E501 line too long (148 > 120 characters)
Line 444:121: E501 line too long (134 > 120 characters)
Line 446:121: E501 line too long (142 > 120 characters)
Line 450:121: E501 line too long (134 > 120 characters)
Line 452:121: E501 line too long (160 > 120 characters)
Line 456:121: E501 line too long (134 > 120 characters)
Line 524:121: E501 line too long (136 > 120 characters)
Line 550:121: E501 line too long (128 > 120 characters)
Line 552:121: E501 line too long (133 > 120 characters)
Line 599:121: E501 line too long (153 > 120 characters)
Line 600:121: E501 line too long (156 > 120 characters)
Line 737:58: E231 missing whitespace after ','

In the file fedot_ind/core/models/automl/fedot_evaluation_strategy.py:

Line 9:121: E501 line too long (126 > 120 characters)
Line 61:1: W391 blank line at end of file

In the file fedot_ind/core/repository/initializer_industrial_models.py:

Line 28:5: E722 do not use bare 'except'
Line 119:66: E127 continuation line over-indented for visual indent
Line 125:66: E127 continuation line over-indented for visual indent
Line 137:66: E127 continuation line over-indented for visual indent
Line 140:121: E501 line too long (126 > 120 characters)
Line 144:66: E127 continuation line over-indented for visual indent


Consider README history memory

Some repositories yield a memory error and cannot be parsed. I think they are cloned locally and that results in the memory error.
Example:
[WARNING] Executing query_readme_history with arguments (github_user_cleaned_url    cylammarco/ASPIRED-example
readme_path                                 README.md
Name: 97, dtype: object, 'github_user_cleaned_url', <github.MainClass.Github object at 0x7f88e31295d0>) failed:
Traceback (most recent call last):
File "/home/eidf048/eidf048/kmoraw/rse-repo-analysis/github/utils.py", line 15, in wrapper
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/eidf048/eidf048/kmoraw/rse-repo-analysis/github/crawl_contents.py", line 29, in query_readme_history for commit in repo_readme.traverse_commits():
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/pydriller/repository.py", line 213, in traverse_commits with self._prep_repo(path_repo=path_repo) as git:
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/contextlib.py", line 137, in __enter__
return next(self.gen)                                                                                ^^^^^^^^^^^^^^
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/pydriller/repository.py", line 177, in _prep_repo
local_path_repo = self._clone_remote_repo(self._clone_folder(), path_repo)                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/pydriller/repository.py", line 158, in _clone_remote_repo
Repo.clone_from(url=repo, to_path=repo_folder)
 File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/git/repo/base.py", line 1308, in clone_from
return cls._clone(                                                                                ^^^^^^^^^^^
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/git/repo/base.py", line 1219, in _clone
finalize_process(proc, stderr=stderr)
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/git/util.py", line 419, in finalize_process
proc.wait(**kwargs)
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/git/cmd.py", line 604, in wait
raise GitCommandError(remove_password_if_present(self.args), status, errstr)                                                                             git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
cmdline: git clone -v -- https://github.com/cylammarco/ASPIRED-example /tmp/tmp3o7vzcbo/ASPIRED-example
stderr: 'Cloning into '/tmp/tmp3o7vzcbo/ASPIRED-example'...
POST git-upload-pack (227 bytes)
fatal: packfile /tmp/tmp3o7vzcbo/ASPIRED-example/.git/objects/pack/pack-daffd17f5b2a5c44a37a64bb20100e9ef7b761cc.pack cannot be mapped: Cannot allocate memory
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

'

Exception in thread Thread-3895 (pump_stream):
Traceback (most recent call last):
File "/home/eidf048/eidf048/kmoraw/tools/miniconda3/envs/sw_mentions/lib/python3.11/site-packages/git/cmd.py", line 141, in pump_stream
handler(line)
MemoryError

Looking at the analysis results, this didn't happen very often. It should be addressed in future iterations, but doesn't need fixing at the moment.


Loading cert file

This fixes the default ssl cert file load up, making possible do https requests with the "request" library[1] on the code functions, without declare the ca parameter explicitly[2].
[1] - https://github.com/request/request
[2] - https://github.com/request/request#tlsssl-protocol

Could you please squash your commits and use english message? ;)

Please, add some tests and check out the Travis CI to fix the problems:
https://travis-ci.org/backstage/functions/jobs/235239773
/home/travis/build/backstage/functions/lib/support/loadCertFile.js
   4:1   error  'loadCertFile' is not defined                  no-undef
   5:7   error  'ca' is never reassigned. Use 'const' instead  prefer-const
  10:2   error  Missing semicolon                              semi
  12:18  error  'loadCertFile' is not defined                  no-undef
✖ 4 problems (4 errors, 0 warnings)

Coverage increased (+0.1%) to 92.197% when pulling 7d1a1c5d78331a3eca2ae19888f1f46147030965 on sergios:cert-file into c8e6cb965c489adaec9defe09c1b82d9364d50f6 on backstage:master.

Coverage increased (+0.1%) to 92.197% when pulling e86ff47c6a61ab691da6cc7657538f926676d38f on sergios:cert-file into c8e6cb965c489adaec9defe09c1b82d9364d50f6 on backstage:master.

Coverage increased (+0.1%) to 92.197% when pulling 22f872bcbef8d8555156bd8192a28d3d17d3e31c on sergios:cert-file into c8e6cb965c489adaec9defe09c1b82d9364d50f6 on backstage:master.

Coverage increased (+0.1%) to 92.197% when pulling 22f872bcbef8d8555156bd8192a28d3d17d3e31c on sergios:cert-file into c8e6cb965c489adaec9defe09c1b82d9364d50f6 on backstage:master.


Add EOP (EOP)

Currency name: EOP
Symbol: EOP
Website: I dont know
Theme color: #35a7df
Logo (SVG): eop.zip

We need a website. And I doubt EOP is the name.

You can see here, that its symbol is EOP and it's name is also EOP: https://info.binance.com/en/currencies/eop
Binance says the  website is: eospace.io
For BTC the make the difference in the title as BTC Bitcoin
https://info.binance.com/en/currencies/bitcoin

Alright


Change back to 0.25.0 uniffi, build go lib with 0.2.1 bindgen.

#55  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @zhenlu and the rest of your teammates on  Graphite


How to clear the image printed?

Firstly, thanks for your work and it provides very good display result in kitty.
I'm using it in my repo(https://github.com/tramhao/termusic) to display the album photo.
The display works without problems. However, i need to clear the printed image if the song doesn't have an album photo.
I cannot figure out how to do it.
Thanks so much.

I solve it by sending control sequence to terminal directly
    pub fn clear_image(&mut self) {
        write!(self.context.backend_mut(), "\x1b_Ga=d\x1b\\").expect("error delete image");
        self.context
            .backend_mut()
            .flush()
            .expect("error flush delete image");
    }

If this is the correct way, please close this issue. Thanks.

Thank you for using viuer. This is a really good point, I think viuer could use a clear/delete_image method. I will leave this issue open as a reminder :)

I met this problem again but for iterm2 protocol. I'm using same code to clear picture in iterm2, but not working. I'm using wezterm. Do you know if there is a way to clear image in iterm2? I didn't find related information in their website. Thanks so much.

By using termion, clearing looks like this:
        for i in 0..terminal_row {
            print!("{}", cursor::Goto(BEGINNING_COLUMN, BEGINNING_ROW + i as u16));
            print!("{}", clear::UntilNewline);
        }

cursor::Goto and clear::UntilNewline are both in termion. This works for me, FWIW.