Manage Cache-Control/Expires header more friendly

Currently StaticFilesMiddleware does not append Cache-Control and/or Expires headers to response. But managing browser cache is very important for static files.
Currently I use code in Startup.cs like this:
var staticFileOptions = new Microsoft.AspNet.StaticFiles.StaticFileOptions
{
    OnPrepareResponse = (context) =>
    {
        context.Context.Response.Headers.Add("Cache-Control", "public, max-age=15552000"); // 180 days
    }
};
app.UseStaticFiles(staticFileOptions);

It's too complex for simple scenario like 'set expiration on all static content'. I think StaticFileOptions should have one simple property like DefaultCacheControl for this.

That's too complex?

99% of static files in /wwwroot of 99% web sites need "non-empty" cache control. Additional property on top-level options class vs "lambda method that appends header to three-level-deeper collection" - I think first method is more friendly.

I agree, I feel like setting the cache headers should be a first class citizen in the StaticFileOptions class. It should be pretty easy to add a CacheProfile property to it, or potentially a Func<CacheProfile, StaticFileResponseContext>. This would greatly streamline this whole process, as well as avoiding typos by developers in the header values etc.
This could run just before the OnPrepareResponse method, and would use essentially the same behaviour as the ReponseCacheFilter.
I've just had to create something like this manually so I think it would be very useful. I'd be happy to put together a pull request for it?

Not a fan of this change, using the typed headers for setting the cache if you want a strongly typed API.

We decided to not do this.  Thanks folks (and thanks @andrewlock for the PR.)

For anyone else who came here, @andrewlock raised a PR https://github.com/aspnet/StaticFiles/pull/157 to use the CacheProfile class to add Cache-Control and Pragma HTTP headers to static files.
The ApplyCacheProfile(HttpContext, CacheProfile) method @andrewlock has written in his PR is not something trivial and not something I'd want to include in my projects.
For anyone else who doesn't want to have to copy pasta his code, I've included it in the Boilerplate.AspNetCore NuGet package. The GitHub repo is ASP-NET-MVC-Boilerplate/Framework.


Replace Typeahead.js

Twitter's Typeahead.js autocomplete widget has been mostly abandoned. There are better, more performant ways of doing typeahead search.
Replace typeahead.js with a combination of ember-power-select, ember-concurrency, or https://github.com/cibernox/ember-power-select-typeahead

@tangollama/ @donaldwasserman would it be possible to tackle this one?

@darrylpargeter Thanks for the help!
Please be sure to reference this issue in your PR and include relevant tests!
If you have any questions, don't hesitate to check-in on slack

@darrylpargeter is this still WIP or may I give it a try?

@darrylpargeter @FalkF @donaldwasserman Is this issue still being worked on? If not, can I work on it?

Hi, we are in the process of the complete HospitalRun rewrite using React and more modern tools.  Any further PRs to the current version (1.0.0-beta) will be not merged.
However, if you want to contribute, we will be happy to have you on board for the 2.0.0 release.

@fox1t That would be great. So should I be focusing on issues with the v2.x tags only?

@cukejianya Exactly! We are almost ready to reveal the public roadmap and open the first issues. Then we can focus on v2.x. At the moment that tag is used to mark "old issues" that will need to be addressed also in the upcoming version. :)


Remove the FairScale integration

What does this PR do?
See title
In a follow-up I will replace the fsdp_native key for fsdp
Closes #13339
Closes #11207
Closes #13431
Closes #7217
Does your PR introduce any breaking changes? If yes, please list them.
Removes deprecated code
cc @justusschock @awaelchli @borda

Merge blocked by https://github.com/Lightning-AI/lightning-quick-start/pull/27


Add some notes on shapes layer state.

Some notes on shape state.
(I don't have direct push access to your branch).

You should also add yourself as an author to the doc at the top.


Sim not inserted

Hi, this isnt an issue off your library! But please help me.
My SIM800L wont recognize my SIM card.
The SIM card has NO pin (Id disabled the pin)
AT+CGATT
+CME ERROR: SIM not inserted

VCC voltage is 4.1V using an DC regulated power supply (max 2A).
The SIM card is inserted... Did you encounter that problem too?
Or do you may know what im missing?
Im sorry for my bad english.
Thanks in advance,
gamecompiler

Id found the solution. The sim card slots on some versions of the sim800l are so bad made, that im able to insert the sim card in two positions. So id inserted the sim card "wrong" (short side shows out). It works perfectly now. Pls leave that issue open. Id found many people discussing about that without any solution.

So id inserted the sim card "wrong" (short side shows out).

Like so:

Isn't that the right way?
I'm asking because I'm having the same problem and I don't know how to fix it.


Component.isFormDisabled throws error (add form controls in runtime)

Hi,
Problems appear when I add controls to the form in runtime.
something like that
_generateControls() {
  if (this.state.flag) {
    return (
              <Control1
                name='name1'
                required
                />
       )
  } else {
    return (
              <Control2
                name='name2'
                required
                />
       )
  }
}

render() {
  return (
        <Form
          disabled={this.state.disabled}
          >
             {this._generateControls()}
            <button
                onClick={() => {
                       this.setState({flag: !this.state.flag})
                  }}
            />
        </Form>
  )
}

Components uses disabled={this.isFormDisabled()}
So in this case on button click formsy componentWillUpdate calls but it calls registerInputs with timeout and component render method calls before registering. And error in this.isFormDisabled() as result.

Hi @mloginov ,
Identified problem, working on fix now, will probably be released later today. Thanks for reporting!

Okay, released new version, please try again :-)

Thanks! Will try.


[5.6] Allow Schema to select from write connection.

This solves issue when using Schema::hasColumn() or Schema::hasTable()
on a read write connection with huge latency.
Signed-off-by: Mior Muhammad Zaki<EMAIL_ADDRESS>

I dont understand. If you have read/write connection, why would you expect the "read" to be done from the "write" db? Seems counterintuitive to me?

why would you expect the "read" to be done from the "write" db? Seems counterintuitive to me?

If you happen to depends on Schema::hasColumn('table', 'column') before attempting do add the said column when your read database is behind the master, you might be getting PDOException and migrations fails.
It the same as queue's SerializesModel where if we need to run jobs on a recently created model we need to select from "write" db. https://github.com/laravel/framework/blob/5.6/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php#L81-L86

My problem with this PR is the misleading title. You're not allowing reads from the write connection, you're forcing reads from the write connection.
Please either change the title of the PR or adjust your PR to match the title.

It the same as …

I think a better example is https://github.com/laravel/framework/blob/0ec1522a74f4ef7b6a01d617a482ae3f46c81a70/src/Illuminate/Database/Query/Processors/PostgresProcessor.php#L18-L20
IMHO:

the change looks sensible
as @36864 said: the PR title is definitely wrong
it shouldn't be changed in a minor version but should target the next one

it shouldn't be changed in a minor version but should target the next one

I would highly consider this a bug fix and this similar changes has been done in patch releases all the time:

https://github.com/laravel/framework/commit/c0517e779b83510318f84f9ffb7969e96accfe01 v4.2.9
https://github.com/laravel/framework/commit/a8109891d8d97716462b3a90f5df2c936ce4e629 v5.1.32
https://github.com/laravel/framework/commit/c688e5a16c7185d5cf916288740f3f255de97d70 v5.1.36

But for the sake of arguments, what are the use cases that your guys having to prefer "read" connection to be resolved and executed for Schema::hasTable() and Schema::hasColumn()? Migration command is mostly "write" operations, having part of the code opt to "read" connection will just force Laravel to open a secondary connection (for "read") when I would assume we don't need it.

which is a feature I created for this exact purpose?

It is a feature, and it is suitable for web based request (If your schema does any writes, then any subsequent reads on the same lifecycle will use the write connection automatically.), when you go into console and daemon queues or jobs, if you happen to have any write query executed, with sticky options, any read database would then use write, is it preferable?
Again, what are the benefit of using read connection for Schema and Migration?

Again, what are the benefit of using read connection for Schema and Migration?

Very well summarized, that's why I'm 👍 for this.


[PHP Docs]: add Docs/Tutorials of PHP language

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
There are many docs but 1 is remaining it is PHP i  want to add it. and as of now add basics of PHP laguage.
Use Case
User can know more about PHP laguage.
Benefits
User can know more about PHP laguage.
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

hey @Ajay-Dhangar , please assign i want to work on it.

@Vipullakum007 Please complete your task otherwise I will close it.

hey @Ajay-Dhangar , i will complete it today.


Fix recipe

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

@conda-forge-admin, please rerender

@isuruf I picked your commit and trying to rebuild it again after the recent binaryen update https://github.com/conda-forge/binaryen-feedstock/

@conda-forge-admin, please rerender

It looks like we actually need to downgrade binaryen, not upgrade it

Closing as superseded by #27


🐛 [BUG] - Improve validation of Registration form [User]

There is scope of validation:

Mentor registration form
Login
Registration

TBR- There is server-side validation too!

Does one have to Implement Custom Validation Logic?

Also , please assign me this under gssoc 23

Does one have to Implement Custom Validation Logic?

hmm like that!


[Suggestion]

A good idea is to add cooldown to crates, also an option if a key is need it or not, like key-need: true/false, cooldown: 60 in seconds, doing this you will help users doing rewards, per day, week, year etc etc, also if there is a possibility let says I did /cc set (crate name), like 3 times in different locations, so every crates has its own cooldown, they can share the 1 minute, or a differente if there is a possibility, thanks I think with this suggestion you will help fullpvp, skyblock, and survival server and of course me. Also can you add a Max and Min Rewards per crate?

Duplicate of #341


Edit files from the admin interface

Just to let you know that this module plays well with django-dirtyedit that let you edit files from the admin interface. It may be useful for some users

Linked in the README. Thanks!


Api portal v1

If this pull request addresses any open issues, please link them here.
#32
#52
#53
#55
#56
What has been done to verify that this works as intended?

Unit tests
CI: Release process that runs tests on deploy
Manual testing

Additional notes
This branch is already actively deployed in staging and production.
Due to the size of this addition, including a lot of other testing, bugfixes, and linting that was done during the process, it may be better just to do a code review and, upon successful review, make this the new develop branch and also the new master branch.

@jkpr This has been in production for awhile now. I'm going to merge this, test it, and if successful, merge to master. We can do a retroactive code review any time you want, however.


PP-8438 Optionally accept service_id on create account route

POST /v1/api/accounts/ accepts service_id in the request body and
writes this to the corresponding database column.
Parameter is currently nullable in order to not break before consumers
are updated.

What’s here looks good but feels like there should be some tests in CreateGatewayAccountResourceIT.

🤦  covered in GatewayAccountResourceIT.java but didn't realise they were split up in the test layout, will add those now.


Improve some fast-path/slow-path tests

Motivation

Pre-work for #5808.
The only difference in behavior on these tests should be that the assertion at
the top of the file goes away, and these files take the fast path instead of the
slow path.
Test plan

See included automated tests.

Yep sorry that was always the plan (technically it’s removing the slow path assertion and adding the fast path one and I shortened it in a rush)


[V1.2][T11-B1] Cho Chih Tun feature contribution

Add AddTuteeCommand feature in developer guide

Pull Request Test Coverage Report for Build 66

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 82.366%

Totals

Change from base Build 62:
0.0%

Covered Lines:
1490

Relevant Lines:
1809

💛  - Coveralls


Suggestion: temporary file creation is redundant

How system works now:

Attachment is downloaded
Temporary file is created
File is uploaded

How system should work:

Attachment is downloaded to memory (stream)
Attachment is uploaded from memory

Now there is problem with Confluence and host(script) file system file naming compatibility. For example national symbols, special symbols like BOM and other, prohibited windows filename symbols like ":" that are allowed in Confluence as filenames. If file will not be saved to the host filesystem - then all these problems will not exist

It would make sense if the process would take place at Confluence server, then of course putting it to the memory could be treated as optimization. In our case we always download file, so it won't make much difference putting it to the memory of file, IMO.
Also it could happen that either file is too big or memory is not enough, so the file won't fit to the memory.
What about names -- I can save file as md5 sum from it's content or generate random string and during upload rename it back. What do you think?

Okay, maybe I was not completely correct: at least about the file size and memory: if there is swap it should help for these cases with big files..
I changed script, so now it uses in-memory content.
Could you please have a look?

error when copying attachment with simple normal name like "empty.docx"
c:\python27\python.exe copier.py --username="" --password="" --endpoint="https://*.atlassian.net/wiki" --src-id=74514552 --dst-parent-id=66322435 --dst-space="~rf" --src-space="~rf"
DEBUG:confl-copier:Searching page by id '74514552'
DEBUG:confl-copier:Setting ancestor id to 66322435
DEBUG:confl-copier:Searching page by space '~rf' and title 'test page 1 (2)'
DEBUG:confl-copier:Found 0 page(s)
DEBUG:confl-copier:Searching page by id '66322435'
INFO:confl-copier:Copying [~rf]:'*├ó┬Ç┬Ös Home'/'test page 1' => [~rf]:'*├ó┬Ç┬Ös Home'/'test page 1 (2)'
INFO:confl-copier:Copying 1 attachment(s)
Traceback (most recent call last):
File "copier.py", line 469, in
recursion_limit=args.recursion_limit
File "copier.py", line 113, in copy
self._copy_attachments(source, page_copy_id)
File "copier.py", line 317, in _copy_attachments
attachment_comment = attachment['metadata']['comment']
KeyError: 'comment'

I was not able to reproduce this issue, but try new version, it should work fine now.
Version of Confluence I use is 5.8.16.

I am using cloud Confluence 1000.132.1, running the script on Windows 10 platform
Now attachments are working like this:

with "normal" name copied successfully
with "unsupported windows name" "image2016-6-22 14:40:49.png" copied successfully (before it was not working on windows)
with national symbols "Iðnó.txt" - fails (before it was also failing)
with BOM in the filename ").png" - fails (before it was also failing)

so for me it looks like kind of not perfect but acceptable behavior
DEBUG:confl-copier:Downloading 'I─é┬░n─é┼é.txt' attachment
DEBUG:confl-copier:Creating new attachment 'I─é┬░n─é┼é.txt'
Traceback (most recent call last):
File "copier.py", line 471, in
recursion_limit=args.recursion_limit
File "copier.py", line 113, in copy
self._copy_attachments(source, page_copy_id)
File "copier.py", line 345, in _copy_attachments
'comment': attachment_comment
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 820, in create_new_attachment_by_content_id
callback=callback)
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 140, in _service_post_request
return self._service_request("POST", *args, **kwargs)
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 116, in _service_request
response.raise_for_status()
File "c:\python27\lib\site-packages\requests\models.py", line 844, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://parspro.atlassian.net/wiki/rest/api/content/75202568/child/attachment
DEBUG:confl-copier:Downloading 'image2016-6-22 14:40:49.png' attachment
DEBUG:confl-copier:Creating new attachment 'image2016-6-22 14:40:49.png'
DEBUG:confl-copier:Downloading ')─Å┼Ñ┼╝.png' attachment
DEBUG:confl-copier:Creating new attachment ')─Å┼Ñ┼╝.png'
Traceback (most recent call last):
File "copier.py", line 471, in
recursion_limit=args.recursion_limit
File "copier.py", line 113, in copy
self._copy_attachments(source, page_copy_id)
File "copier.py", line 345, in _copy_attachments
'comment': attachment_comment
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 820, in create_new_attachment_by_content_id
callback=callback)
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 140, in _service_post_request
return self._service_request("POST", *args, **kwargs)
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 116, in _service_request
response.raise_for_status()
File "c:\python27\lib\site-packages\requests\models.py", line 844, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://parspro.atlassian.net/wiki/rest/api/content/75202569/child/attachment

Can you rename existing attachment to one of that failing? In the Confluence interface you can click on attachments properties and set new name there.

Yep, it's possible to rename file to something like I─é┬░n─é┼é.txt. Will take a look what could be done.

I─é┬░n─é┼é.txt - is printed on the windows console. real file name is "Iðnó.txt"
')─Å┼Ñ┼╝.png' - is printed on the windows console. real file name is  ").png" (that contains BOM after closing bracket before dot)
so here are two problems actually, one that file is not copied (bigger problem), and one that file name is displayed incorrectly

for small copy copy jobs one can simply go to Confluence and change attachment file names by hand
the real problem would be if one has to copy big projects full of attachments with national symbols in filenames

I agree.. But don't know how to do it correctly with requests library. I've tried encoding it with urllib.quote(attachment_name), but in this case attachment renamed to something like I%E2%94%80%C3%A9%E2%94%AC%E2%96%91n%E2%94%80%C3%A9%E2%94%BC%C3%A9.txt
Here are some post:
http://stackoverflow.com/questions/20591599/why-arent-post-names-with-unicode-sent-correctly-when-using-multipart-form-data
http://stackoverflow.com/questions/24397418/python-requests-issues-with-non-ascii-file-names

I think we can close this issue since suggestion is implemented, and functionality of the script improved by being host-platform-independent

It should be possible, but needs some time to implement.
http://stackoverflow.com/questions/28282318/how-to-do-multi-part-upload-with-python-requests-library-and-unicode-filename
http://linuxonly.nl/docs/68/167_Uploading_files_with_non_ASCII_filenames_using_Python_requests.html

@rfominych, looks like it works now: you can copy pages with attachments, containing non ASCII symbols in their names.
Can you have a look?

now files are copied, but attachment names are changed in the process, and file with national symbols in the filename becomes unaccessible from the page's link:
INFO:confl-copier:Copying 3 attachment(s)
DEBUG:confl-copier:Downloading ')─Å┼Ñ┼╝.png' attachment
DEBUG:confl-copier:Creating new attachment ')─Å┼Ñ┼╝.png'
DEBUG:confl-copier:Downloading 'I─é┬░n─é┼é.docx' attachment
DEBUG:confl-copier:Creating new attachment 'I─é┬░n─é┼é.docx'
DEBUG:confl-copier:Downloading 'image2016-6-22 14:40:49.png' attachment
DEBUG:confl-copier:Creating new attachment 'image2016-6-22 14:40:49.png'
national symbols - Iðnó.docx copied to the file IĂ°nĂł.docx:
page link: https://*.atlassian.net/wiki/pages/viewpage.action?pageId=75628552# (broken link, no attachment)
BOM: ").png" copied to the ")ďťż.png"
page link: https://*.atlassian.net/wiki/download/attachments/75628552/%29%C4%8F%C5%A5%C5%BC.png?version=1&modificationDate=1467017832058&api=v2 (accessible)
maybe changes should be reverted so that "bad" files are not copied at all?

important notice:
master branch should be reverted to the previous version, that is "stop on copy non-ascii filename"
all further "playing" should be conducted in according branch
so page visitors will download correct version of application, that keeps pages consistent on copy

bug is confirmed with the latest version

@rfominych,
Yep I totally agree. Was a little bit busy, sorry for that.
Will revert this code and move to separate branch.

Moved last commit to https://github.com/grundic/confluence-page-copier/tree/non_ascii_attachments

weird, --dst-parent parameter not working
so page is copied to the root
C:\Users\roman\Documents\documentation\confluence-page-copier-master>c:\python27\python.exe copier.py --username="" --password="" --endpoint="https://*.atlassian.net/wiki" --src-id=81133576 --dst-parent-id=81133572 --dst-space="~rf" --src-space="~rf"
DEBUG:confl-copier:Searching page by id '81133576'
DEBUG:confl-copier:Setting ancestor id to 66322435
DEBUG:confl-copier:Searching page by space '~rf' and title 'good attach page (1)'
DEBUG:confl-copier:Found 0 page(s)
DEBUG:confl-copier:Searching page by id '66322435'
INFO:confl-copier:Copying [~rf]:'Roman Fominych├ó┬Ç┬Ös Home'/'good attach page' => [~rf]:'Roman Fominych├ó┬Ç┬Ös Home'/'good attach page (1)'
INFO:confl-copier:Copying 1 attachment(s)
DEBUG:confl-copier:Downloading 'BET-255.png' attachment
DEBUG:confl-copier:Creating new attachment 'BET-255.png'

confirm, now application throws exception when "illegal file name" is encountered, thus file structure is correctly preserved
C:\Users\roman\Documents\documentation\confluence-page-copier-master>c:\python27\python.exe copier.py --username="" --password="" --endpoint="https://*.atlassian.net/wiki" --src-id=74842114 --dst-parent-id=81133572 --dst-space="~rf" --src-space="~rf"
DEBUG:confl-copier:Searching page by id '74842114'
DEBUG:confl-copier:Setting ancestor id to 66322435
DEBUG:confl-copier:Searching page by space '~rf' and title 'attachment page (1)'
DEBUG:confl-copier:Found 0 page(s)
DEBUG:confl-copier:Searching page by id '66322435'
INFO:confl-copier:Copying [~rf]:'Roman Fominych├ó┬Ç┬Ös Home'/'attachment page' => [~rf]:'Roman Fominych├ó┬Ç┬Ös Home'/'attachment page (1)'
INFO:confl-copier:Copying 3 attachment(s)
DEBUG:confl-copier:Downloading ')─Å┼Ñ┼╝.png' attachment
DEBUG:confl-copier:Creating new attachment ')─Å┼Ñ┼╝.png'
Traceback (most recent call last):
File "copier.py", line 471, in
recursion_limit=args.recursion_limit
File "copier.py", line 113, in copy
self._copy_attachments(source, page_copy_id)
File "copier.py", line 345, in _copy_attachments
'comment': attachment_comment
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 820, in create_new_attachment_by_content_id
callback=callback)
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 140, in _service_post_request
return self._service_request("POST", args, **kwargs)
File "c:\python27\lib\site-packages\PythonConfluenceAPI\api.py", line 116, in _service_request
response.raise_for_status()
File "c:\python27\lib\site-packages\requests\models.py", line 844, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://.atlassian.net/wiki/rest/api/content/81133573/child/attachment


Hinted Handoff Write Support

This PR adds support for hinted handoffs for writes.  If a write to a remote node fails, it will be queued in a hinted handoff queue and retried later.  The queue is local to the node receiving the write and is stored on disk.
The queues on disk are stored (by default) at the same level as the data and meta and in a hh dir.  Under that dir, is a directory per node ID.  This is the queue directory for a remote node.  Under that directory is the queue's segment files.  A segment is a set of writes that need to be retried to the owning node.  Segments have a max size they can reach (default 10MB) before a new segment is added.  When all the write have successfully been sent to the remote node, that segment is removed.
The hinted handoff queue can have a max size and age.  The max size controls how much disk space will be used before writes to it will return an error.  The max age determine how long segment files can live on disk.  The default is 7 days.  After that point, old segments will be removed and anti-entropy will need to reconcile the writes.
Still TODO:

[ ] Add retry throttling limits to avoid thundering herd when node comes back online
[ ] Process write queues in parallel (currently just serial)
[ ] Handle node removal.  They will expire after 7d currently but will continue to retry them until they expire.  Can also manually delete the node dir on disk if needed.
[ ] Handle corrupted queue files on disk.  If a segment gets corrupted somehow, we should be able to recover gracefully from it or at least ensure a proper log message exists so that an admin can delete that segment manually.

+1  I think that turned out really nice.

nicely done, :+1:


Vendors should not be included!

The vendor scripts should not be included with this package.  When you "bower install" this package just for the CSS/JS portions, its not good to have all the other 3rd party parts in it as well.  If people want them, they would include it in their own bower file and have the latest versions.

Hi there @Raikia ,
Thak you for the suggestion, we'll take that into consideration, thank you !

@AndreiCN , Hello.
What news about this issue?
I approve @Raikia. We  can install all required packages from bower. It makes repository size smaller than now.

Working on a solution @fps01 , thank you !

@AndreiCN, thanks for information! Then I look forward to it.

@AndreiCN thanks for considering this issue. I wanted to stress the importance of the issue itself.
Can you point steps one need to take to fix this issue?

I'm totally disagree with this task. This is the application and it should provide always locked dependencies on master. When I want to develop i should work on the same dependencies as at master.
In bower manifest are requirements like: "flot.orderbars": "*". It's a really bad practise.
IMO to remove vendor files the bower dependencies must be locked and eventually updated when tests are passed.

@krzysiekpiasecki This is a web template project where people will take the theme and not use even remotely all of the libraries included for the example template demonstration.  On top of that, this is the entire reason a bower file exists at all.  if you want the third party libraries installed, you would run "bower install".
Having the option of installing 93 MBs of libraries vs not having an option at all is a huge difference.
There is a reason everyone recommends ignoring the vendors directory for this exact reason: http://bfy.tw/D21Z

@Raikia Maybe because of my language, but you just don't understand me. Every one who knows what is dependency manager, knows also that vendors must no be a part of the project. No need to use google ... On the other side everyone knows that when collaborating dependencies should be locked and tests are required.
Vendor dir should be removed. It's clear, but the dependencies in manifest files must be locked.
On the margins, why are you expected, that i want have a bower? You wrote:

This is a web template project

Without bower and with current state of this project this template will be not runnable.

@krzysiekpiasecki I think @Raikia did not understand what you mean because you commented on wrong issue. AFAIU, you mean using * instead of locking to version x.y.z is a bad idea which I don't think anyone contests as dependencies can change with broken backward compatibility.
I suggest you open new issue on that so that we avoid confusion on this specific issue.
Peace...


Color option preference SQL Comment Color not enforced

Bug
I'm currently using the dark theme and I've noticed that the SQL comment color option doesn't appear to be enforced.

Currently comment color change takes effect only after SQL editor reopen.


bug in spec generation when objects are contained and references itself (recursion)

Basically, the spec generates fine when the object references itself or the contained references the container. However, the reference is missing (in the spec) when the contained references itself.
We've identified this problem here: https://github.com/kongchen/swagger-maven-plugin/issues/177
it should have been fixed https://github.com/swagger-api/swagger-core/issues/1131 but it isn't i think
I have a simple get rest method
@Api(description = "Operations about pets")
@Path("/test")
public class TestResource {
    @GET
    @Path("menudata")
    @Produces({"application/json"})
    @ApiOperation(httpMethod = "GET", value = "Get the menu", response = MenuData.class)
    public MenuData getMenu() {
        MenuData root = new MenuData();
        return root;
    }
}

My MenuData Class that holds a menu
package api;
import java.util.List;
public class MenuData {
   public List<MenuItem> menudata;
}

My MenuItem Class which is recursive, public List sub;
public class MenuItem {

    public String description;
    public String title;

    public List<MenuItem> sub;

    public MenuItem(String title, String description) {
        this.title = title;
        this.description = description;
        this.sub = new ArrayList<MenuItem>();
    }

}

This then generates in the MenuItem definition an array without any reference..
So it seems that the recursion isn't solved yet i guess
"sub" : {
"type" : "array"
}
{
  "swagger" : "2.0",
  "info" : {
    "description" : "This is a sample.",
    "version" : "v1",
    "title" : "Swagger Maven Plugin Sample"
  },
  "host" : "localhost:9998",
  "basePath" : "/api",
  "schemes" : [ "http" ],
  "paths" : {
    "/test/menudata" : {
      "get" : {
        "summary" : "Get the menu",
        "description" : "",
        "operationId" : "getMenu",
        "produces" : [ "application/json" ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/MenuData"
            }
          }
        }
      }
    }
  },
  "definitions" : {
    "MenuData" : {
      "type" : "object",
      "properties" : {
        "menudata" : {
         "type" : "array",
          "items" : {
            "$ref" : "#/definitions/MenuItem"
          }
        }
      }
    },
    "MenuItem" : {
      "type" : "object",
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "title" : {
          "type" : "string"
        },
       "sub" : {
          "type" : "array"
        }
      }
    }
  }
}

Note: if i change the
public List<MenuItem> sub;

to another class type, it's fine
public List<MenuNode> sub;

result:
"definitions" : {
    "MenuData" : {
      "type" : "object",
      "properties" : {
        "menudata" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/MenuItem"
          }
        }
      }
    },
    "MenuItem" : {
      "type" : "object",
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "title" : {
          "type" : "string"
        },
        "sub" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/MenuNode"
          }
        }
      }
    },
    "MenuNode" : {
      "type" : "object",
      "properties" : {
        "node" : {
          "type" : "string"
        }
      }
    }

If i only return the menuItem (without being used in another class like the menuData, its also fine)
  @GET
    @Path("menuitems")
    @Produces({"application/json"})
    @ApiOperation(httpMethod = "GET", value = "Get the menu", response = MenuItem.class)
    public MenuItem getMenu() {
        MenuItem root = new MenuItem("a","b");
        return root;
    }

public class MenuItem {

    public String description;
    public String title;

    public List<MenuItem> sub;

    public MenuItem(String title, String description) {
        this.title = title;
        this.description = description;
        this.sub = new ArrayList<MenuItem>();
    }

}

 "paths" : {
    "/test/menudata" : {
      "get" : {
        "summary" : "Get the menu",
        "description" : "",
        "operationId" : "getMenu",
        "produces" : [ "application/json" ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/MenuItem"
            }
          }
        }
      }
    }
  },
  "definitions" : {
    "MenuItem" : {
      "type" : "object",
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "title" : {
          "type" : "string"
        },
        "sub" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/MenuItem"
          }
        }
      }
    }
  }
}

Fyi
  <!-- swagger -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-core</artifactId>
            <version>1.5.0</version>
        </dependency>

       <build>
        <plugins>
            <plugin>
                <groupId>com.github.kongchen</groupId>
                <artifactId>swagger-maven-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <apiSources>
                        <apiSource>
                            <springmvc>false</springmvc>
                            <schemes>http</schemes>
                            <host>localhost:9998</host>
                            <basePath>/api</basePath>
                            <info>
                                <title>Swagger Maven Plugin Sample</title>
                                <version>v1</version>
                                <description>
                                    This is a sample.
                                </description>
                            </info>
                            <locations>rest</locations>
                            <swaggerDirectory>${project.basedir}/target/swagger-json/</swaggerDirectory>
                        </apiSource>
                    </apiSources>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

So there is good and bad news,
the bad news is that there is some sort of problem and it looses track of the right reference probably,..
but the good news is, i found a "workaround", so it's not blocking, however it's not what i want..
if i specify the DataType i get an array with an object definition so swagger.ui doesn't block..
however the "type" : "object" should point to the definition of "MenuItem"..
    @ApiModelProperty(required = true, dataType="java.util.ArrayList")
    public ArrayList<MenuItem> sub;

results in
  "MenuItem" : {
      "type" : "object",
      "required" : [ "sub" ],
      "properties" : {
        "description" : {
          "type" : "string"
        },
        "title" : {
          "type" : "string"
        },
        "sub" : {
          "type" : "array",
          "items" : {
            "type" : "object"
          }
        }
      },
      "description" : "MenuItem"
    }

@mortias - you said it is not working with the maven plugin, but have you tested the real time generation with swagger-core?

@webron we have this PR #1163 for the issue.

@mortias - can you try with the snapshot version?

We have the same bug, compiling 1.5.1-SNAPSHOT from branch Develop_2.0 to test ;-)

I confirm this is fixed in upcoming 1.5.1-SNAPSHOT version.
Thanks

Thanks for the confirmation. Closed as fixed in develop_2.0.

sorry for the late reply but i also confirm it in my case

Please re-open the issue and test it with my simple case above..

@mortias - just tested it, works as expected.

Hmm... i 'll test it again then :)

The bug is fixed on swagger-maven-plugin >3.1.2, I have test it is OK on the swagger-maven-plugin =3.1.2 & swagger-core 1.5.9.


Sync Django trove classifiers with test setup

Completes missing parts from https://github.com/django-extensions/django-extensions/pull/1730/

Thank you


Badly packaged gem?

Hi there - not sure if I've not had enough coffee yet this morning, but I don't think the newly released 5.4.1 gem is built correctly.
It does contain my recently added mem_cache_store_proxy.rb file, but I think lib/rack/attack.rb is maybe from an older version.   In particular, the gem version of Rack::Attack#instrument looks like this:
    def instrument(request)
      notifier.instrument('rack.attack', request) if notifier
    end

but that was changed 3 months ago to this:
    def instrument(request)
      notifier.instrument('rack.attack', request: request) if notifier
    end

(8802ebfbaf532dab1336da3a92039feb49c7f3a7)
Or am I confused?

Ohhh, sorry.  Ignore me 😄


broken link in readme

The image under the introduction heading is broken.

I think the GitHub site had issues earlier today. I wasn't seeing the logo on the the awkward-1.0 site, but then they were back.
The image appears for me, and even clicks through to the logo, so I think it's an intermittent problem.


Extract Text with complete html tags

I need to get complete text format with tags or extract data in json format but only text is appear in logs so who to get text with complete tags or in json format ?

You can only get the full text using e.g., https://github.com/mozilla/pdf.js/blob/master/examples/node/getinfo.js. There is no possible output as JSON or with HTML tags. This is mainly because the PDF format does not always allow us to tell if e.g., text is bold/underlined. Closing as answered.

Ok thanks
On 27 Aug 2017 1:14 am, "Tim van der Meij"<EMAIL_ADDRESS>wrote:

You can only get the full text using e.g., https://github.com/mozilla/
pdf.js/blob/master/examples/node/getinfo.js. There is no possible output
as JSON or with HTML tags. This is mainly because the PDF format does not
always allow us to tell if e.g., text is bold/underlined. Closing as
answered.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mozilla/pdf.js/issues/8827#issuecomment-325159355,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXkePbE_WO27omCCtKf3TlWjg2wcwLs9ks5scHyUgaJpZM4PDlI6
.


Add version: TopazLabs.TopazPhotoAI version 0.4.0

Pull request has been created with Komac v1.11.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335226 2024-01-25 06:02:11.199 [CLI ] ShellExecute installer failed: 1603 CustomAction DownloadModelsAction returned actual error code 1157 (note this may not be 100% accurate if translation happened inside sandbox) MSI (s) (AC:CC) [06:02:10:802]: Product: Topaz Photo AI -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action DownloadModelsAction, entry: DownloadModels, library: C:\Windows\Installer\MSID56A.tmp  Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action DownloadModelsAction, entry: DownloadModels, library: C:\Windows\Installer\MSID56A.tmp  Property(S): ErrorDialog = ErrorDlg MSI (s) (AC:CC) [06:02:10:959]: Windows Installer installed the product. Product Name: Topaz Photo AI. Product Version: 0.4.0. Product Language: 1033. Manufacturer: Topaz Labs LLC. Installation success or error status: 1603.

(Automated response - build 655.)


updated cannabinoid names.

added common names, cleaned up scientific names.

Holding for discussion at next WCIA meeting. The use of the parenthesis, while less desirable characters for string parsing, as a name they are more scientifically correct.


consistency check for 15.7 and 12

Hi!
for mean 15.7 and n=12 consistency check say that is all consistent. Please take a look on the following output:
In [22]: mean_tester.summary_consistency_check('15.7','12')
Out[22]:
{'ROUND_CEILING': True,
'ROUND_DOWN': True,
'ROUND_FLOOR': True,
'ROUND_HALF_DOWN': True,
'ROUND_HALF_EVEN': True,
'ROUND_HALF_UP': True,
'ROUND_UP': True,
'ROUND_05UP': True}
but according to article:
https://www.sciencemag.org/news/2018/02/meet-data-thugs-out-expose-shoddy-and-questionable-research
at paragraph:
"For example, it might seem plausible if a researcher running a study involving 12 children aged 11 to 17 reports a mean age of 15.7. (After all, it’s less than 17 and greater than 11.) But the GRIM test reveals that value is mathematically impossible, because 15.7 is not a number that can be produced by dividing the sum of the ages by 12."
not.

Thanks @karolszk I'll take a look into this.

Hello @karolszk,
I had a look into your example, If we take the mean of these twelve numbers:
11,14,15,16,16,16,16,16,17,17,17,17
That gives us 15.666666....
This can be rounded to 15.7 (by ROUND_HALF_UP for example)
I suspect the author means (but does not write) 15.70, e.g.:
mean_tester.summary_consistency_check('15.70','12')

Note the zero at the end, Which returns:
{'ROUND_05UP': False,
 'ROUND_CEILING': False,
 'ROUND_DOWN': False,
 'ROUND_FLOOR': False,
 'ROUND_HALF_DOWN': False,
 'ROUND_HALF_EVEN': False,
 'ROUND_HALF_UP': False,
 'ROUND_UP': False}

And this is inline with the PrePubMed GRIM tool (That the author may have used) The PrePubMed tool is designed for 2 decimal places.
So, in summary, the GRIM library appears to be correct here, and the author probably means 15.70 and not 15.7.
Thanks

Thank you @phoughton for fast check and answer. Now is clear for me. Indeed intention for 2 decimal points is explained in genuine GRIM-test paper "The GRIM test: A simple technique detects numerous anomalies in the reporting of results in psychology":
"As psychological journals typically require 186 the reporting of means to 2 decimal places, the sample size corresponding to each mean typically needs to be less than 100 in order for its consistency to be checked."
https://peerj.com/preprints/2064v1/
https://doi.org/10.7287/peerj.preprints.2064v1


Replaced the term "sensitive info type collection" with "Rule package…

…" which is what's used elsewhere.
A few customers had complained this led them to think we had a maximum of 10 SITs.

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

@chrfox Please merge this PR. Thanks.


New-ExternalHelp removes specific carriage returns

It appears that if a line of text in the SYNOPSIS section of a markdown topic starts with bold formatting, the carriage returns around that line of text are not honored when running New-ExternalHelp.
Sample text in markdown topic (note that there are 4 distinct lines of text/paragraphs):
## SYNOPSIS
This cmdlet is available only in the cloud-based service.

Use the Get-HostedConnectionFilterPolicy cmdlet to view the settings of connection filter policies in your cloud-based organization.

**Note**: We recommend that you use the Exchange Online PowerShell V2 module to connect to Exchange Online PowerShell. For instructions, see [Connect to Exchange Online PowerShell](https://docs.microsoft.com/powershell/exchange/connect-to-exchange-online-powershell).

For information about the parameter sets in the Syntax section below, see [Exchange cmdlet syntax](https://docs.microsoft.com/powershell/exchange/exchange-cmdlet-syntax).

Result (note that there are only 3 paragraphs; the Note paragraph is munged together with the previous paragraph):
      <maml:description>
        <maml:para>This cmdlet is available only in the cloud-based service.</maml:para>
        <maml:para>Use the Get-HostedConnectionFilterPolicy cmdlet to view the settings of connection filter policies in your cloud-based organization. Note : We recommend that you use the Exchange Online PowerShell V2 module to connect to Exchange Online PowerShell. For instructions, see Connect to Exchange Online PowerShell (https://docs.microsoft.com/powershell/exchange/connect-to-exchange-online-powershell).</maml:para>
        <maml:para>For information about the parameter sets in the Syntax section below, see Exchange cmdlet syntax (https://docs.microsoft.com/powershell/exchange/exchange-cmdlet-syntax).</maml:para>
      </maml:description>

Attached is a topic and the resulting XML file for inspection.
platyPSissue.zip
Steps to reproduce

Take a markdown topic that contains a line of text in the SYNOPSIS section that contains a **Note** paragraph.

Run the following command:
New-ExternalHelp -Path "<Path to markdown topic"> -OutputPath "<Output folder>"

Expected behavior
The line of text that starts with **Note** should be contained within its own <maml:para></maml:para> tag.
Actual behavior
The line of text that starts with **Note** is not contained within its own <maml:para></maml:para> tag. It's treated as if it's a second sentence in the previous line of text
Environment data

platyPS 0.14.1
Windows 10 Enterprise 20H2
Windows PowerShell 5.1

@chrisda Can you test this with https://github.com/PowerShell/platyPS/releases/tag/v2.0.0-preview1. They may have been fixed.

Hey @chrisda!  We plan on having this functionality working in Preview 3. #538


Feature request - air quality index

Would it be possible to include an air quality index within the forecast?
Notes:

Projections for air quality are monitored and distributed to the general public on https://www.airnow.gov/. It seems limited to North America and US embassies.
OpenWeatherMap offers air pollution through its api for free: https://openweathermap.org/api/air-pollution#concept.

@kerry-tarrant I'm sure I could find a way to work that in somewhere. I'll add it to the project board and hopefully get a chance to start work on it soon.

@kerry-tarrant I'm sure I could find a way to work that in somewhere. I'll add it to the project board and hopefully get a chance to start work on it soon.


Additional Bug Fixes when Internet is not available

The following bugs were detected when doing further testing (both in the pre-previous bug fix code and post-previous bug fix code):

When internet is no longer available while WiFi is still connected and then internet comes back on, ESP32 cannot connect to Azure IoT Central server
When internet goes off during inital provisioning stage, Azure IoT Central Operation ID becomes corrupted
When WiFi is restarted without internet connectivity, ESP32 gets stuck in an infinite Azure IoT connection loop which leads to memory exhaust

Hi @danewalton. Just FYI, this is another bug I came accross while working on my project. If you could check it out whenever you've got some free time, I'm sure this would benifit others also

Code changes merged through PR #56


SOTA Operator References Aren't Imported From ADI files

Describe the bug
When importing SOTA logs, the activator SOTA reference is not imported. However, the hunter references are.
Version Information
We need some information about your versions. You can get all Information in the Admin > Debug Menu

OS:               Fedora Linux + Docker
PHP:              8.3.15
MySQL/MariaDB:    11.3.2-MariaDB-1:11.3.2+maria~ubu2204
Wavelog:          1.9 (dev branch)

Steps to Reproduce

Perform SOTA activation in Hamrs
export ADI file
Import file to wavelog
check QSO log. Activator SOTA references are not there.

Expected Behavior
SOTA references should be imported form ADI files. Specifically my_sota_ref (activator) field.
Desktop Information:

OS:               MacOS
Browser:          Brave

Additional Context
Unlike POTA, SOTA does use its own ADI fields like sota_ref and my_sota_ref.

MY_SOTA_REF does get imported. But We override it with the SOTA Reference in the Station Location. When importing a new SOTA activity, you have to create a new station location for that with the referring details like SOTA, POTA and so on.

If that is the case, shouldn't the third party services in Station Location (the QRZ, Clublog, HRDLog integrations) be moved to account settings instead?

@ethancedwards8
No because the most services are based on the used Callsign. For example  the QRZ.com Integration requires the QRZ logbook api key which is bind to the callsign of that logbook in QRZ.com (You can't use the QRZ API Key for HB9HIL if the Station Callsign is HB9HIL/P)
Therefore the most integrations are based on the Station Callsign -> on the Station Location. There are exceptions for this like LoTW and eQSL, which requires the Login Details in the User Settings. eQSL needs only the QTH Nickname in the Location and LoTW does the callsign declaration based on the LoTW Certificates.
You see there is not "that one way". Different services require different credentials on different station/callsign details... Thats the nature of hamradio 😆

I see. Thank you for explaining this to me. I will close this issue.

I see. Thank you for explaining this to me. I will close this issue.

You're very welcome. Don't hestitate to ask in the Discussions if something is not clear :)


Look into replacing Enzyme with ReactTestUtils

Enzyme doesn't support the new version of React, and it could become difficult to maintain in the future. We should try to use the ReactTestUtils instead.

Can you add the link to the Enzyme ticket?

https://github.com/airbnb/enzyme/issues/953

Done in #583

Either this or https://github.com/artsy/emission/issues/559 should probably still be active, it's tough make non-brittle tests that are not just straight up "render to snapshots" or "render to svg"
I investigated into react's shallow renderer
describe("User Interaction", () => {
  it("calls goto Artist on to the artist button", () => {
    const testFunc = jest.fn()

    const r = shallow.createRenderer()
    r.render(<TODO goToArtist={testFunc} />)
    const e = r.getRenderOutput()

    e.props.children[1].props.onPress()
    expect(testFunc).toBeCalled()
})

Which does something, but I can't find a safe way to find the thing I'm looking for when the objects all look like this:
{ '$$typeof': Symbol(react.element),
      type: [Function: Button],
      key: null,
      ref: null,
      props:
       { onPress:
          { [Function: mockConstructor]
            _isMockFunction: true,
            getMockImplementation: [Function],
            mock: [Getter/Setter],
            mockClear: [Function],
            mockReset: [Function],
            mockReturnValueOnce: [Function],
            mockReturnValue: [Function],
            mockImplementationOnce: [Function],
            mockImplementation: [Function],
            mockReturnThis: [Function],
            mockRestore: [Function] },
         children: [ [Object], [Object], [Object] ] },
      _owner: null,
      _store: {} }

also ReactTestUtils only are for react-dom I think

Not this ticket, I think, because this ticket was about removing enzyme.
And what’s the problem with ReactTestUtils being liited to react-dom?

React-dom is only for the web

Alright, I'll bring https://github.com/artsy/emission/issues/559 back to life

Hrm, afaik ReactTestUtils is supposed to work fine with RN.

They require a DOM, which RN doesn't have, for example:
import * as React from "react"
import * as ReactTestUtils from "react-dom/test-utils"

  it("calls goto Artist on to the artist button", () => {
    const testFunc = jest.fn()
    const d = ReactTestUtils.renderIntoDocument(<TODO goToArtist={testFunc} />)
    const a = ReactTestUtils.findAllInRenderedTree(d, c => true)
    console.log(a)
  })

Doesn't load:

Ah right, you’ll probably need to add JSDOM or something


Update kerberos-constrained-delegation-overview.md

minor grammar fix

#assign: @robinharwood, @Xelu86
@robinharwood @Xelu86
Can you review the proposed changes?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


[TextField] Improve outlined variant customization

The documentation doesn't mention the class name to customize the outline when using a Textfield with the outlined variant.

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
In the Input api page, the CSS Api should list the notchedOutline class property name.
Current Behavior
Currently there is nothing in the documentation that allow us to know how to customize the outline.
Context
Changing the color of the border.
Your Environment

Tech
Version

Material-UI
v3.3.0

We could maybe improve the documentation and say that the input part is mostly a switch for Input | OutlinedInput | FilledInput. Basically extend the part in https://material-ui.com/api/text-field/#advanced-configuration to mention the used component depending on the variant.

@eps1lon You just made me realize that the input part is switch according the variant.
Indeed, in that case that would be totally more understandable if there will be something to indicates that the InputProps is used for Input || OutlinedInput || FilledInput according to the selected variant.

Changing the color of the border.

It's the same concern as with https://github.com/mui-org/material-ui/pull/13105#issuecomment-427320778

The customization story was overlooked when implementing this outlined variant. Right now, you can change the color like this:
import React from "react";
import PropTypes from "prop-types";
import { withStyles } from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField";

const styles = theme => ({
  notchedOutline: {},
  focused: {
    "& $notchedOutline": {
      borderColor: "yellow"
    }
  }
});

class OutlinedTextFields extends React.Component {
  state = {
    name: "Cat in the Hat"
  };

  handleChange = name => event => {
    this.setState({
      [name]: event.target.value
    });
  };

  render() {
    const { classes } = this.props;

    return (
      <form className={classes.container} noValidate autoComplete="off">
        <TextField
          id="outlined-name"
          label="Name"
          InputProps={{
            classes: {
              notchedOutline: classes.notchedOutline,
              focused: classes.focused
            }
          }}
          value={this.state.name}
          onChange={this.handleChange("name")}
          variant="outlined"
        />
      </form>
    );
  }
}

OutlinedTextFields.propTypes = {
  classes: PropTypes.object.isRequired
};

export default withStyles(styles)(OutlinedTextFields);

https://codesandbox.io/s/7jpl38xm1x
Going forward, I think that we should extract the state logic style out from the private NotchedOutline.js component and move it to the OutlinedInput.js component.

@oliviertassinari Hi, thank you for answering. It's not complicated for what you have provided; however, I am still not able to get the "HOVER" color changed which was my original question. Not focused, not root color but HOVER.
I have tried adding &:hover to various style you have suggested but HOVER color is always black (when not focused).
    cssFocused:{
        '&:hover':{
            borderColor:'#FFFFFF'
        }
    },
    cssOutlinedInput: {
        '&$cssFocused $notchedOutline': {
            borderColor: '#448cff',
        },
        '&:hover $notchedOutline':{
            borderColor:'#FFFFFF'
        }
    },
    notchedOutline: {
        borderColor:'#FFFFFF',
        '&:hover':{
            borderColor:'#FFFFFF'
        }
    },

@oliviertassinari YAY it works now. Thanks!

@rbenvenuto The example with the :hover property that @oliviertassinari said was for the TextField component.
For you case you should just remove the $notchedOutline, add the :before selector  and you will got something like :
    root: {
        width: '100%',
        color: '#636F88',
        '&:hover:not($disabled):not($focused):not($error):before' : {
            borderColor: '#636F88' /*it's possible you need to add the "!important".... Which is not very pretty though */
        }
    },
    focused: {
        '&:before': {
            borderBottom: '1.2px solid rgb(186, 47, 125)',
        },
        '&:after': {
            borderBottom: '2px solid rgb(186, 47, 125)',
        },
    },
    underline: {
        '&:before': {
            borderBottom: '1.2px solid #636F88',
        },
    }

@francoiscabrol Did you have a look at our customization demo? You should have a warning in your console when doing the above.

I have no warning... I used the doc https://material-ui.com/customization/themes/#customizing-all-instances-of-a-component-type

Can someone tell me how to do this with styled-component?
Also the demo link does not seem to work either https://codesandbox.io/s/7jpl38xm1x?file=/demo.js:223-230
The color is wrong.
Thanks.

I set border hover red with this
const theme =  createTheme({
    components: {
        MuiOutlinedInput: {
          styleOverrides: {
            root: {
                "&:hover": {
                  borderColor: "red"
                }
              },
          }
        }
    }
});

But the outcome is still black even when I can see that the css rule is applied

Too late already, but might help...
You were almost there, since this is specific to the "outline" input, you override the MuiOutlinedInput
MuiOutlinedInput: {
      styleOverrides: {
        root: {
          "&:hover .MuiOutlinedInput-notchedOutline": {
            borderColor: "red",
          },
        },
      },
 },

It also workd with MuiInputBase but with !important,
MuiInputBase: {
      styleOverrides: {
        root: {
          "&:hover .MuiOutlinedInput-notchedOutline": {
            borderColor: "red!important",
          },
        },
      },
 },

@aldabil21
Thanks for your sample code. This helped me halfway. Now, the hover border is the intended color but the hover effect is also applied on disabled inputs. How is it for you?
@oliviertassinari
I tried adding :not($disabled):not($focused):not($error) $notchedOutline but this has no effect (the directive is ignored, the hover border is the default color and no hover on disabled).
MuiOutlinedInput: {
  styleOverrides: {
    root: {
      backgroundColor: '#F9FAFE',
      '&.Mui-focused': {
        backgroundColor: 'transparent',
      },
      '& fieldset': {
        borderColor: '#A9B6E5',
      },
      '&:hover .MuiOutlinedInput-notchedOutline': {  // :not($disabled):not($focused):not($error) $notchedOutline
        borderColor: '#046CCC',
      },
      '&.Mui-focused fieldset': {
        borderWidth: '1px'
      },
    },
  }
},

On https://mui.com/components/text-fields/#customization, there is no example for overriding the hover border of outlined input via theme while honoring the disabled state.

@nuarhu
There are a probably thousands of possibilities of how you can override styles and it's impossible to document them. It's easier to focus on what classes Mui uses, it has a pattern, like in this case, you target ths Mui-disabled class.
Try this:
MuiOutlinedInput: {
      styleOverrides: {
        root: {
          "&:hover .MuiOutlinedInput-notchedOutline": {
            borderColor: defaultTheme.palette.error.main, // Your active border color
          },
          "&.Mui-disabled:hover .MuiOutlinedInput-notchedOutline": {
            borderColor: defaultTheme.palette.action.disabled, // Your active border color
          },
        },
      },
    },

@aldabil21
Thank you for your example. It just took me a while to find out that .Mui-disabled was what I needed, and that not(.Mui-disabled) won't work.
My solution - in case it could help someone:
MuiOutlinedInput: {
  styleOverrides: {
    root: {
      backgroundColor: '#F9FAFE',
      '&.Mui-focused': {
        backgroundColor: 'transparent',
      },
      '& fieldset': {
        borderColor: '#A9B6E5',
      },
      '&.Mui-disabled .MuiOutlinedInput-notchedOutline': {
        borderColor: 'inherit',
      },
      '&.Mui-disabled:hover .MuiOutlinedInput-notchedOutline': {
        borderColor: 'inherit',
      },
      ':hover .MuiOutlinedInput-notchedOutline': {
        borderColor: '#046CCC',
      },
      '&.Mui-focused fieldset': {
        borderWidth: '1px'
      },
    },
  }
},

@nuarhu
You welcome.
Actually the not() pseudo-class would work, however I read somewhere that it's less performant, not sure how much it matters, havent benchmark it.
Try this:
    MuiOutlinedInput: {
      styleOverrides: {
        root: {
          "&:not(.Mui-disabled):hover .MuiOutlinedInput-notchedOutline": {
            borderColor: "red",
          },
        },
      },
    },

@aldabil21
not(.Mui-disabled) didn't work for me. That's what I initially tried in different variants. I'm not sure whether I tried exactly the CSS directive that you posted, though.

This changes the color for input hover <fieldset> tag
MuiInputBase: {
  styleOverrides: {
    root: {
      [`&:not(.Mui-focused)`]: {
        '&:hover': {
          [`& .${outlinedInputClasses.notchedOutline}`]: {
            borderColor: `red!important`,
          },
        },
      },
    },
  },
},

@aldabil21 Thank you for your quick response with example!
It just took me a while to find out that .Mui-disabled was what I needed, and that not(.Mui-disabled) won't work.
My solution - in case it could help someone:
MuiOutlinedInput: {
  styleOverrides: {
    root: {
      backgroundColor: '#F9FAFE',
      '&.Mui-focused': {
        backgroundColor: 'transparent',
      },
      '& fieldset': {
        borderColor: '#A9B6E5',
      },
      '&.Mui-disabled .MuiOutlinedInput-notchedOutline': {
        borderColor: 'inherit',
      },
      '&.Mui-disabled:hover .MuiOutlinedInput-notchedOutline': {
        borderColor: 'inherit',
      },
      ':hover .MuiOutlinedInput-notchedOutline': {
        borderColor: '#046CCC',
      },
      '&.Mui-focused fieldset': {
        borderWidth: '1px'
      },
    },
  }
},

show all code please?


help: how do i connect

how do i connect to my rage coop server??
i started a server but idk how to connect to it i try manually using the ip in advanced but dont work (YES WITH THE 4499 PORT)

try coping one of the ips from your console when you create a server


Add a validator infront of the input processor

Describe the bug
We are expecting the input JSON Schema draft 7 to be a document that can validate correctly, but we do nothing when this is not the case.
Example: If a schema uses combination schemas that each contain the same property name, it will try to merge the two common models. However, if it is from an allOf combination schema, it should "fail" somehow if conflicts occur. Since the input JSON Schema could never validate any data we should consider it an invalid input.
How to Reproduce
Given the JSON Schema:
{
  "allOf": [
    {
      "type": "object",
      "properties": {
        "somePropName": {
          "type": "number"
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "somePropName": {
          "enum": [
            "residential",
            "business"
          ]
        }
      },
      "required": [
        "type"
      ]
    }
  ]
}

It would create the simplified model:
{
  "type": "object",
  "properties": {
    "somePropName": {
      "type": [
        "number",
        "string"
      ]
    }
  }
}

Which is incorrect. However, it is the input that is incorrect, since the JSON Schema can never validate the input.
Expected behavior
I would expect the model generator to fail the generation, or handle invalid inputs somehow.

While this would be great to have, there exist no tools for this.
In the simplest form we should be able to detect the following schemas:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "not": {
    "type": "object"
  }
}

A possible approach suggested by @jdesrosiers on the JSON Schema slack:

I could imagine a tool that automatically refactors a schema to clean up common problems such as remove duplicated/unnecessary keywords or merge allOfs where possible. Such a tool might reduce a schema to false. It wouldn't be perfect, but it could at least detect some cases.

Closing this issue for now, as we have no way to enable this.


UI: Pipeline edit issues with vault users

Task Description
Couple different issues with vault users:
(note: this happened with a saved then run then edited pipeline, which may be the only case)

removing a column from the vault covariate list is not actually changing the output spec  --- CNR?
with a vault user, removing the computation then readding it doesnt regen the covariates
then removing the vault user doesnt narrow down the computations
down to the whitelist and doesnt regen covars as well -- CNR?

how to reproduce:

create a pipeline with a vault user
select a computation
save the pipeline
delete the computation
re-add the computation
observe no auto populated covariates (age, control, etc)


Update year in LICENSE.txt

[ ] Closes #xxxx
[ ] Tests added / passed
[ ] Passes pre-commit run --all-files

Thanks David! 😄
Should we do the same thing in distributed?

We agreed elsewhere to simply remove the latter date, rather than to have to keep updating it.

Just curious, is there agreement between the legal folks that having a single year in a copyright covers "to present"? How would there ever be an expired copyright?

Just curious, is there agreement between the legal folks that having a single year in a copyright covers "to present"?

It seems yes. Does copyright assigned to a company expire ever?

Some interesting perspectives:
https://softwareengineering.stackexchange.com/q/130478
https://softwareengineering.stackexchange.com/q/210472
https://softwareengineering.stackexchange.com/q/227812

We agreed elsewhere to simply remove the latter date, rather than to have to keep updating it.

Interesting. Think I missed (or perhaps forgot) this conversation. Do you have a reference?

Does copyright assigned to a company expire ever?

IANAL, but I believe so. In the US think this is 95yrs.
In any event if we are curious about this, maybe it makes sense to just ask NumFOCUS.

In any event if we are curious about this, maybe it makes sense to just ask NumFOCUS.

Brought this up on the NF Slack channel and was pointed to this ( https://stackoverflow.com/q/2390230 ) by another dev.

I'm going to merge this since having an implied to present is clearly better than having an out of date end date :)


Change the fonts of badges

Is your feature request related to a problem? Please describe.
The font used in badges is not very nice compared to the fonts used in github, it is very different.
Describe the solution you'd like
In the document of the visual identity the typography is proposed, I suggest to modify the configurations of the badges to use the defined fonts.
Additional context
The badges are currently like this:

https://github.com/hmil/project-badge

We're just getting the source: Arial.

This was solved within #86


better website

scalameta.org is very minimalistic - both design-wise and information-wise. We need it to be more impressive.

I've had a really great experience using Scalatex in https://olafurpg.github.io/scalafmt/. The source for the page is here.
My favorite parts:

the site is an sbt project. For example, you can depend on your library from the site project.
.scalatex files are just Scala code. You can use your API inside the docs and you can abstract over the structure of your docs.
Examples are always up to date, when you change your api your docs don't compile
live preview site while writing docs using ~readme/run + https://www.browsersync.io/

My not so favorite parts:

HTML links/lists are boilerplatey compared to markdown
error messages are sometimes cryptic
no IDE support when writing .scalatex files

Btw, I implemented something similar to tut but for scalatex. See implemenatation. This means you can write code in your docs like here and it compiles with scalac and produces output like here


Unable to get LiFi quotes for certain pairs

Overview
Currently in Production there are many pairs that do not display a LiFi quote and we get unsupported pair UI for simple trades that should have integrated routes.
References and additional details

Unavailable on SS

Available on Jumper

Unavailable on SS

Available on Jumper
The pattern of what is available and what is not for LiFi quotes is still unidentified but it appears stable coins maybe be a pattern that are affected.
Acceptance Criteria
Users should receive LiFi quotes for all available pairs they can from Jumper in the ShapeShift app.
Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
No response

Some of these may be due to the disabled routes, but doesn't seem to tell the whole story to describe the lack of quotes.

quick peak and we are getting valid routes back from lifi it appears, not sure why these aren't showing up
{
  "routes": [
    {
      "id": "0xc6d006e6ccb6a4c366eb22e7f38cb1f73e71f69634ba83db306b4b4d3f04a683",
      "fromChainId": 1,
      "fromAmountUSD": "8966.16",
      "fromAmount": "4000000000000000000",
      "fromToken": {
        "address": "0x0000000000000000000000000000000000000000",
        "chainId": 1,
        "symbol": "ETH",
        "decimals": 18,
        "name": "ETH",
        "coinKey": "ETH",
        "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
        "priceUSD": "2241.540000000000000000"
      },
      "fromAddress": "0xeF678D1ad8C897c71D0a6145390a474035Db8f1f",
      "toChainId": 137,
      "toAmountUSD": "8960.01",
      "toAmount": "8958588091",
      "toAmountMin": "8895967561",
      "toToken": {
        "address": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
        "chainId": 137,
        "symbol": "USDC",
        "decimals": 6,
        "name": "USD Coin",
        "coinKey": "USDC",
        "logoURI": "https://static.debank.com/image/coin/logo_url/usdc/e87790bfe0b3f2ea855dc29069b38818.png",
        "priceUSD": "1.000159060035165"
      },
      "toAddress": "0xeF678D1ad8C897c71D0a6145390a474035Db8f1f",
      "gasCostUSD": "199.76",
      "containsSwitchChain": false,
      "steps": [
        {
          "type": "lifi",
          "id": "1b6b79e3-04f0-4c26-8e41-4cd083537d84",
          "tool": "allbridge",
          "toolDetails": {
            "key": "allbridge",
            "name": "Allbridge",
            "logoURI": "https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/bridges/allbridge.png"
          },
          "action": {
            "fromToken": {
              "address": "0x0000000000000000000000000000000000000000",
              "chainId": 1,
              "symbol": "ETH",
              "decimals": 18,
              "name": "ETH",
              "coinKey": "ETH",
              "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
              "priceUSD": "2241.540000000000000000"
            },
            "fromAmount": "4000000000000000000",
            "toToken": {
              "address": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
              "chainId": 137,
              "symbol": "USDC",
              "decimals": 6,
              "name": "USD Coin",
              "coinKey": "USDC",
              "logoURI": "https://static.debank.com/image/coin/logo_url/usdc/e87790bfe0b3f2ea855dc29069b38818.png",
              "priceUSD": "1.000159060035165"
            },
            "fromChainId": 1,
            "toChainId": 137,
            "slippage": 0.005,
            "fromAddress": "0xeF678D1ad8C897c71D0a6145390a474035Db8f1f",
            "toAddress": "0xeF678D1ad8C897c71D0a6145390a474035Db8f1f"
          },
          "estimate": {
            "tool": "allbridge",
            "approvalAddress": "0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE",
            "toAmountMin": "8895967561",
            "toAmount": "8958588091",
            "fromAmount": "4000000000000000000",
            "feeCosts": [
              {
                "name": "Integrator Fee",
                "description": "Fee shared between integrator and LI.FI",
                "token": {
                  "address": "0x0000000000000000000000000000000000000000",
                  "chainId": 1,
                  "symbol": "ETH",
                  "decimals": 18,
                  "name": "ETH",
                  "coinKey": "ETH",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                  "priceUSD": "2241.540000000000000000"
                },
                "amount": "12000000000000000",
                "amountUSD": "26.90",
                "percentage": "0",
                "included": true
              },
              {
                "name": "Allbridge's fee",
                "description": "AllBridge fee and messenger fee charged by Allbridge",
                "token": {
                  "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
                  "chainId": 1,
                  "symbol": "USDC",
                  "decimals": 6,
                  "name": "USD Coin",
                  "coinKey": "USDC",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
                  "priceUSD": "1"
                },
                "amount": "26031",
                "amountUSD": "0.03",
                "percentage": "0.0000",
                "included": true
              }
            ],
            "gasCosts": [
              {
                "type": "SEND",
                "price": "151713147120",
                "estimate": "587393",
                "limit": "930393",
                "amount": "89115240626258160",
                "amountUSD": "199.76",
                "token": {
                  "address": "0x0000000000000000000000000000000000000000",
                  "chainId": 1,
                  "symbol": "ETH",
                  "decimals": 18,
                  "name": "ETH",
                  "coinKey": "ETH",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                  "priceUSD": "2241.540000000000000000"
                }
              }
            ],
            "executionDuration": 1290,
            "fromAmountUSD": "8966.16",
            "toAmountUSD": "8960.01"
          },
          "includedSteps": [
            {
              "id": "9d4a620b-d786-4526-a14f-328b1c3ba507",
              "type": "protocol",
              "action": {
                "fromChainId": 1,
                "fromAmount": "4000000000000000000",
                "fromToken": {
                  "address": "0x0000000000000000000000000000000000000000",
                  "chainId": 1,
                  "symbol": "ETH",
                  "decimals": 18,
                  "name": "ETH",
                  "coinKey": "ETH",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                  "priceUSD": "2241.540000000000000000"
                },
                "toChainId": 1,
                "toToken": {
                  "address": "0x0000000000000000000000000000000000000000",
                  "chainId": 1,
                  "symbol": "ETH",
                  "decimals": 18,
                  "name": "ETH",
                  "coinKey": "ETH",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                  "priceUSD": "2241.540000000000000000"
                },
                "slippage": 0.005
              },
              "estimate": {
                "fromAmount": "4000000000000000000",
                "toAmount": "3988000000000000000",
                "toAmountMin": "3988000000000000000",
                "tool": "feeCollection",
                "approvalAddress": "0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9",
                "gasCosts": [
                  {
                    "type": "SEND",
                    "amount": "100000",
                    "token": {
                      "address": "0x0000000000000000000000000000000000000000",
                      "chainId": 1,
                      "symbol": "ETH",
                      "decimals": 18,
                      "name": "ETH",
                      "coinKey": "ETH",
                      "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                      "priceUSD": "2241.540000000000000000"
                    },
                    "price": "151713147120",
                    "limit": "200000",
                    "estimate": "200000",
                    "amountUSD": "0.01"
                  }
                ],
                "feeCosts": [
                  {
                    "name": "Integrator Fee",
                    "description": "Fee shared between integrator and LI.FI",
                    "token": {
                      "address": "0x0000000000000000000000000000000000000000",
                      "chainId": 1,
                      "symbol": "ETH",
                      "decimals": 18,
                      "name": "ETH",
                      "coinKey": "ETH",
                      "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                      "priceUSD": "2241.540000000000000000"
                    },
                    "amount": "12000000000000000",
                    "amountUSD": "26.90",
                    "percentage": "0",
                    "included": true
                  }
                ],
                "executionDuration": 0
              },
              "tool": "feeCollection",
              "toolDetails": {
                "key": "feeCollection",
                "name": "Integrator Fee",
                "logoURI": "https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/protocols/feeCollection.png"
              }
            },
            {
              "id": "e0a6958d-fc1e-42cb-b140-73955b27202b",
              "type": "swap",
              "action": {
                "fromChainId": 1,
                "fromAmount": "3988000000000000000",
                "fromToken": {
                  "address": "0x0000000000000000000000000000000000000000",
                  "chainId": 1,
                  "symbol": "ETH",
                  "decimals": 18,
                  "name": "ETH",
                  "coinKey": "ETH",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                  "priceUSD": "2241.540000000000000000"
                },
                "toChainId": 1,
                "toToken": {
                  "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
                  "chainId": 1,
                  "symbol": "USDC",
                  "decimals": 6,
                  "name": "USD Coin",
                  "coinKey": "USDC",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
                  "priceUSD": "1"
                },
                "slippage": 0.005
              },
              "estimate": {
                "tool": "1inch",
                "fromAmount": "3988000000000000000",
                "toAmount": "8934059845",
                "toAmountMin": "8889389546",
                "approvalAddress": "0x1111111254eeb25477b68fb85ed929f73a960582",
                "executionDuration": 30,
                "feeCosts": [],
                "gasCosts": [
                  {
                    "type": "SEND",
                    "price": "151713147120",
                    "estimate": "202393",
                    "limit": "263111",
                    "amount": "30705678985058160",
                    "amountUSD": "68.83",
                    "token": {
                      "address": "0x0000000000000000000000000000000000000000",
                      "chainId": 1,
                      "symbol": "ETH",
                      "decimals": 18,
                      "name": "ETH",
                      "coinKey": "ETH",
                      "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png",
                      "priceUSD": "2241.540000000000000000"
                    }
                  }
                ]
              },
              "tool": "1inch",
              "toolDetails": {
                "key": "1inch",
                "name": "1inch",
                "logoURI": "https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/exchanges/oneinch.png"
              }
            },
            {
              "id": "23467da8-ff19-4e16-b047-e5e25d519a2d",
              "type": "cross",
              "action": {
                "fromChainId": 1,
                "fromAmount": "8889389546",
                "fromToken": {
                  "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
                  "chainId": 1,
                  "symbol": "USDC",
                  "decimals": 6,
                  "name": "USD Coin",
                  "coinKey": "USDC",
                  "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
                  "priceUSD": "1"
                },
                "toChainId": 137,
                "toToken": {
                  "address": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                  "chainId": 137,
                  "symbol": "USDC",
                  "decimals": 6,
                  "name": "USD Coin",
                  "coinKey": "USDC",
                  "logoURI": "https://static.debank.com/image/coin/logo_url/usdc/e87790bfe0b3f2ea855dc29069b38818.png",
                  "priceUSD": "1.000159060035165"
                },
                "slippage": 0.005,
                "destinationGasConsumption": "0",

if jumper is showing a lifi quote and we aren't, here are some possible reasons why:

we have have 3 bridges blocked due to unsupported fee model
we dont have multi-hop routes enabled currently
timeout on the quote api in react. We have a 20s limit on the quote generation which includes gas requests. If this exceeds our timeout the swapper wont return any quotes.

point #3 does rely on the node to generate a qutoe because it includes gas estimation. Most of the time it times out is due to slow gas estimation

we dont have multi-hop routes enabled currently
@woodenfurniture I assume a swap then a bridge is considered multi-hop? If so, that probably makes sense looking at their UI as the explanation for us not showing these paths.

So far I'm unable to reproduce the issue - one of the pairs above is actually unsupported in our current app (see payload), likely due to blocked bridges and/or lack of multi-hop support.
Please note that an available quote also request the whitelisted bridges are online at the time of the quote, and that we're not guaranteed to return the same quotes as jumper due to the factors outlined above and in this comment:
https://github.com/shapeshift/web/issues/5874#issuecomment-1859419659
This pair is actually correctly unsupported:

This pair worked - likely a transient issue when reported:

thanks @woodenfurniture - closing as known / expected behavior.
I think our current path of collecting these failures and determining if we need to add support for different routes based on that data is the correct approach from here.
cc @purelycrickets


Beewrre Tutorial Step 5: can't find folder

Describe the bug
I've been following your tutorial as recommended prior to contribution. It all ran wonderfully until I got to the part about mobile devices. Since I'm on Linux I picked Android. When I ran briefcase create android I received an Errno 20 Not a directory. I received the errors in the log file below.
It seems to have something to do with my jdk. I did find some threads online about issues with OpenJDK but they were a few years old. I just installed the latest JDK for Ubuntu 22.04 last week.
openjdk version "19.0.2" 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)

Steps to reproduce
Type briefcase create android within the beeware-tutorial/helloworld virtual environment.
Expected behavior
I expected it to create as it did when I just ran briefcase create
Screenshots
No response
Environment

Operating System: Ubuntu 22.04
Python version: Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Software versions:

Briefcase: (beeware-venv) angeleah@angeleah-X580VD:~/Documents/Dev/beeware-tutorial/helloworld$ briefcase -V
0.3.13
Toga:  Not sure how to find this. I followed the tutorial and there was no install toga part, but the tutorial worked until Step 5.
...

Logs
briefcase.2023_03_20-15_24_38.create.log
Additional context
No response

It looks like we've got to the bottom of this (or, at least, we've been able to replicate it) - For some reason, your JAVA_HOME is pointing to the java binary, rather than root of the java install (which is what JAVA_HOME should point at). We've just added some extra protection to Briefcase to catch this edge case, but the immediate fix for you is what I said previously - unset the JAVA_HOME variable, then re-run the problem briefcase command.


npm install error

when I run 'npm install',cmd show:
<EMAIL_ADDRESS>copy-libs C:UsersAdministratorDesktopfrontDemoangular-seed
cpx "node_modules/{angular,angular-,html5-boilerplate/dist}//" app/lib -C
Failed to copy: ENOENT: no such file or directory, chmod 'C:UsersAdministratorDesktopfrontDemoangular-seedapplibhtml5-boilerplatedistjsmain.js'.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>copy-libs: cpx "node_modules/{angular,angular-,html5-boilerplate/dist}/**/" app/lib -C
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>copy-libs script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
I can not find the way install no error
(i am a rookie.)

@zackzergzeng did you ever resolve this? I'm seeing the same thing.

I just resolved it by removing the post install script in the package.json. Not sure the ramifications of this, but it worked  for my needs.

@hammondan I just delete cpx command in package.json and copy those documents to /lib by my self

I still don't know how to solve it


Walk speed that won't get you acc reported

Hello. So I've been using the bot since yesterday, but it seems like my account was reported by niantic and now I can't spin poke stops or catch any Pokemon. So I'd like to know a safe walk speed to prevent this from happening.

8 is fine

how many bot are you running?

@hklcf I was running only one bot. But when I logged into the app those things happened.

For eggs the max walk speed is 14. The bot can handle softban when detected.

slow down your walk speed

@hklcf Is the account ever coming back?

@Lapito sure, just wait a few minutes

@hklcf @iruy @Lunik Thanks

@hklcf Do you recommend 8 too?

I was running only one bot. But when I logged into the app those things happened.
If the bot was running fine and you get the soft ban while logging into the app...

Did you disconnect the bot before you logged into the app? Can Bot and App at the same time.
Is the bot in the same location as you? If the bot is in Central Park and you stop the bot and logged in the App while in Mexico you get a soft ban... if the Bot location and your real one are far apart wait a few hours before loggin in.

To cancel your softban spin the Pokestop 40-50 times. (Click, Spin, Close, Click, Spin Close, repeat until you get rewards)

or just wait a few minutes/hours

im using the default setting 4.16

I'll try everything out, thanks. Will report back if it worked.

If your bot location is much further than you real location  on the pokemon go app, softban would occur... you could change the location of your bot to your current location... and the bot will take care of the soft ban, exit bot.. load app... should work?

It worked guys! Thank you very much!


Integration with Home Assistant?

Has this been folded into HA? I'm struggling to get my AC connected, and before I dig much deeper I figured I would ask,

Here's some more context, this occurs after trying to add the integration:
`This error originated from a custom integration.
Logger: custom_components.frigidaire.config_flow
Source: custom_components/frigidaire/config_flow.py:66
integration: frigidaire
First occurred: June 30, 2024 at 5:51:27 PM (3 occurrences)
Last logged: 11:10:02 AM
Unexpected exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/urllib3/connection.py", line 174, in _new_conn
conn = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/urllib3/util/connection.py", line 72, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/socket.py", line 963, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -2] Name does not resolve
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 715, in urlopen
httplib_response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 404, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1060, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.12/site-packages/urllib3/connection.py", line 363, in connect
self.sock = conn = self._new_conn()
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/urllib3/connection.py", line 186, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f64cf81d0>: Failed to establish a new connection: [Errno -2] Name does not resolve
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/requests/adapters.py", line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/urllib3/connectionpool.py", line 801, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/urllib3/util/retry.py", line 594, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.latam.ecp.electrolux.com', port=443): Max retries exceeded with url: /authentication/authenticate (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f64cf81d0>: Failed to establish a new connection: [Errno -2] Name does not resolve'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/frigidaire/config_flow.py", line 66, in async_step_user
await validate_input(self.hass, user_input)
File "/config/custom_components/frigidaire/config_flow.py", line 38, in validate_input
appliances = await hass.async_add_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/frigidaire/config_flow.py", line 30, in setup
client = frigidaire.Frigidaire(username, password, timeout=60)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/frigidaire/init.py", line 246, in init
self.authenticate()
File "/usr/local/lib/python3.12/site-packages/frigidaire/init.py", line 282, in authenticate
auth_response = self.post_request('/authentication/authenticate', data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/frigidaire/init.py", line 428, in post_request
response = requests.post(f'{API_URL}{path}', data=json.dumps(data), headers=self.headers, verify=False, timeout=self.timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.latam.ecp.electrolux.com', port=443): Max retries exceeded with url: /authentication/authenticate (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f64cf81d0>: Failed to establish a new connection: [Errno -2] Name does not resolve'))`

This is the supported repo:
https://github.com/bm1549/home-assistant-frigidaire

Thank you, sorry to not have done enough digging before asking for help.


list features in docs, that jumped over ES5.1 (ES6)

Class has been implemented at https://github.com/dop251/goja/commit/0b5d2105245750c4ba3305bf31081f36fdca9862.  It is great feature,
thank you.
At this time, static/private was also implemented. this goes beyond ES6.
People who come later, may missed this feature(even it's a great feature.).
Do you plan to list features that jumped over ES5.1 (ES6) in the Readme? or is it ok to contribute to the Readme?

I think it would be better to have a separate document and add a link to it from the README. The document should be a table with all ES6 features (i.e. features introduced in ES6, including not yet implemented) and ES6+ features implemented so far. The columns should be: Feature, Implemented? (Yes/No), Link to an issue (optional).
If someone could come up with such a table, it would be great.

Thanks,
may finish it a little late, but I would like to work it

[ ] The let keyword
[ ] The const keyword
[ ] Arrow Functions
[ ] The ... Operator
[ ] For/of
[ ] Map Objects
[ ] Set Objects
[ ] Classes
[ ] Promises
[ ] Symbol
[ ] Default Parameters
[ ] Function Rest Parameter
[ ] String.includes()
[ ] String.startsWith()
[ ] String.endsWith()
[ ] Array.from()
[ ] Array keys()
[ ] Array find()
[ ] Array findIndex()
[ ] New Math Methods
[ ] New Number Properties
[ ] New Number Methods
[ ] New Global Methods
[ ] Object entries
[ ] JavaScript Modules