Licensing problem

Not all Wagtail dependencies have same licenses. This is not a problem in most cases, many licenses are compatible with each other, in particular non-contaminating licenses such as BSD, MIT, ...
Wagtail is made available through one of these non-contaminating license : a BSD 3 Clauses.
The problem comes from Unidecode, which is GPL v2 (https://github.com/avian2/unidecode/blob/master/LICENSE). This license is a so-called contaminant license. All derivative works resulting from the integration of the software component are therefore theoretically contaminated and should therefore be distributed with the same license. Wagtail should be GPL v2.
Unfortunately, this license is very contaminating and therefore poses many integration problems - which limits the possibilities of use and integrate your piece of software. Moreover, it is not really in the philosophy of Python that prone the opening and the non-contaminating licenses.
Moreover, the GPL v2 license is incompatible with another component : Django-treebeard, which is released under Apache v2 (https://github.com/django-treebeard/django-treebeard/blob/master/LICENSE).
More informations about that :

http://gplv3.fsf.org/wiki/index.php/Compatible_licenses
https://www.apache.org/licenses/GPL-compatibility.html

Today, licenses of Wagtail and its dependencies are so incompatible.
Can you do the necessary tasks to correct this problem?
The removal of the Unidecode component will probably be the better solution. This solution keeps the current license and therefore the user community of Wagtail.
For your information, I am not the owner of one of these libraries. I just want to integrate Wagtail for my developments and I have strong constraints to produce "clean" software.

Thanks for reporting this. It seems like others have had this problem with unidecode in the past: https://github.com/avian2/unidecode/issues/1.

No, I have no plans to release Unidecode under a different license. See https://github.com/kmike/text-unidecode for a similar library under an Artistic License.

https://github.com/kmike/text-unidecode is also a port of Perl's Text::Unidecode. Its README states:

There are other Python ports of Text::Unidecode (unidecode and isounidecode). unidecode is GPL; isounidecode doesn't support Python 3 and uses too much memory.
This port is licensed under Artistic License and supports both Python 2.x and 3.x. If you're OK with GPL, use unidecode (it has better memory usage and better transliteration quality).

Seems to me like this is an option worth looking at.

Hello, just to add some insights on this discussion:
The bad behavior of the stock django slugify against non-latin characters is a really old and painful story. Slugify will happily accept non-latin characters in its input and will just convert them to spaces (!)... Yes,  since django 1.9 slugify actually accepts an allow_unicode flag by which the unicode characters are identified and copied as they are in the output (but no transliteration is performed so slugify('μια δοκιμή') will be "μια-δοκιμή"). This option is almost as useless as the conversion-to-space since non-latin characters should not be used in a number of places (for example URLs or filenames).
Due to this behavior I have experienced problematic behavior related to greek characters ignored in slugs in various project like django-taggit (https://github.com/alex/django-taggit/pull/273), django-crispy-forms (https://github.com/django-crispy-forms/django-crispy-forms/issues/396) and Wagtail (before some of the unidecode patches ware provided).
So the correct solution would be to create slugs that contain transliterated unicode characters to their latin counterparts this, unfortunately (because of its restrictive license) unidecode is (at least for me) the only proper way of implementing a unicode-friendly slugify (the text-unidecode that is proposed by @thibaudcolas seems abandoned)!
Now, I think that the best way to resolve the problem of unidecode's restrictive license will be to remove it from dependencies but use it in wagtail if it has been installed anyway. This is the solution that was used in django taggit (see the discussion on https://github.com/alex/django-taggit/pull/273 and the relevant patch at https://github.com/alex/django-taggit/pull/315) and from my understand it does not introduce any GPL-related licensing problems.

As of Wagtail 1.6, URL slugs preserve unicode characters by default (and the WAGTAIL_ALLOW_UNICODE_SLUGS option to disable it only affects the JS-side behaviour), so unidecode isn't involved there. As far as I can see, it's currently only used in image/document filenames and generating internal field names for wagtailforms.
Given the less-public-facing nature of those filenames, I think we could reasonably drop unidecode there in favour of a simpler unicode-to-ascii conversion - a good candidate that already exists in the Wagtail codebase is cautious_slugify.
The bigger problem will be wagtailforms, I believe - if I'm not mistaken, changing the function that converts from human-readable labels to internal form field names will cause existing form submission data to be 'lost' (they'll still exist in the database, but we lose the ability to map them back to the original fields when exporting). Related: #3088

Hello @gasman, I wasn't aware that in Wagtail URL slugs preserve unicode characters by default. This behavior in my opinion is not ideal: Try visiting the URL for a greek wikipedia page, for example: https://el.wikipedia.org/wiki/Ελλάδα (using either chrome or firefox) and then copy and paste that url from your browser in a notepad. You'll get the following:
https://el.wikipedia.org/wiki/Ελλάδα
For me this is not acceptable, that's why I recommend never using Unicode characters in URLs and always transliterate them to latin ones.
Also, for filenames and form fields I'd really prefer the transliterated version instead of the cautious_slugify one (I'd like my users to see 'dokime.pdf' instead of 'u03b4u03bfu03bau03b9u03bcu03b7.pdf' when downloading their uploaded files).
So please allow using unidecode if it is installed -- it is really required for non-english speakers!

Hi @spapas - please see the discussion at https://github.com/wagtail/wagtail/issues/1443. I guess different languages / nationalities have different thoughts about the acceptability of needing a Latin transliteration - and if we have to choose one way or the other, I'd rather choose the option that doesn't add an extra task for editors. (Also, the fact that Wikipedia have decided in favour of Unicode URLs, despite the messy copy/paste behaviour, surely can't be discounted :-) )
Either way, slug generation usually happens client-side (the exception being page instances that are created outside of the admin interface, e.g. import scripts) so there would be extra work involved in hooking up unidecode there.

Also, for filenames and form fields I'd really prefer the transliterated version instead of the cautious_slugify one (I'd like my users to see 'dokime.pdf' instead of 'u03b4u03bfu03bau03b9u03bcu03b7.pdf' when downloading their uploaded files).
So please allow using unidecode if it is installed -- it is really required for non-english speakers!

Agreed - happy to support unidecode here if available.

A solution could be to use our own script to generate transliterations.
We could even use the output of the PostgreSQL Python script that generates rules for the unaccent extension: the script and its current output.
We could also parse [these official transliteration XML files] to fetch only the more basic rules (see syntax detail), I guess we would already have an excellent support for non-latin languages. That’s more work than the previous solution, but it would be much more complete too.

Just stumbled on https://pypi.python.org/pypi/text-unidecode, a unidecode replacement licensed under the Artistic License. (Still need to confirm that it's compatible with BSD, and if we do switch we'll still need to handle form builder fields as per https://github.com/wagtail/wagtail/pull/3088#issuecomment-284877264 so that we don't lock out old form submission data.)

@gasman the Artistic License version 1 might be a problem for commercial users of Wagtail as it uses terms like "reasonable copying fee":

You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own.

I'm not a lawyer, but I don't want to worry about whether I'm charging for my services or for the distribution of third-party packages I use in my work.

@connorsml No progress on it lately, but it's something we're keen to resolve. Contributions welcome!

So the issues with changing to another library are:

django slugify does not work for certain languages
The other alternative text-unidecode is an artistic license (I don't know if there is an issue with this or not)
If an alternative was used there would need to be a migration mechanism put in place to upgrade existing sites?

I wonder if the Ruby version matches the current functionality of the python implementation.
https://github.com/norman/unidecoder
Perhaps we could port this to python.

@connorsml Finding an alternative library with comparable functionality to unidecode isn't really an issue - unidecode is only used in fairly minor places (filenames for images/documents, and generating field names for the form builder) where it's not the end of the world if we switch to a less-smart conversion algorithm, such as cautious_slugify which already exists in the codebase (and we can still offer unidecode as an option for people who do have it installed).
The bigger issue is indeed with migrating existing sites, specifically ones using the form builder (see #3088) - if we change the conversion algorithm at all then we risk making existing form submissions inaccessible.

See https://github.com/wagtail/wagtail/pull/3088#issuecomment-284877264 for a proposal of how to deal with the form builder migration. Forgot that I'd already written this up :-)

The Postgres search backend's dependency on unidecode has now been removed, in #5514.

More progress towards this goal
https://github.com/wagtail/wagtail/pull/6093

I found this - https://pypi.org/project/anyascii/
I think it might be a suitable drop in replacement for unidecode, it may have a different output (at first glance the approach to æ is different). However, it looks like it could work once the above mentioned PR resolves the backwards compatibility with form submission data.
The licence is ISC, which hopefully is ok. @geonux would this licence be appropriate?

ISC license seems to be compatible as it is a declination of the BSD license (as the Wagtail License). So for me it is a good solution.
I hope that anyascii fulfill your needs.

+1 for anyascii; I tested it and works perfectly:
>>> print(anyascii('Δοκιμή με ελληνικούς χαρακτήρες. ΚΑΙ ΚΕΦΑΛΑΙΑ!'))
Dokimi me ellinikoys charaktires. KAI KEFALAIA!

The ISC licence seems to be the same as the MIT with some changes in language so it should be fine for using it in any kind of project!
Thank you for mentioning it, i'm going to slowly replace unidecode with anyascii on my projects :)

@gasman is there anything I could do help get this resolved or #6093 merged? I'm not clear what this is still waiting on.

#6093 is now merged - this eliminates the use of unidecode in the form builder, which was the blocker for swapping out unidecode for an equivalent-but-not-100%-exact replacement such as anyascii. The dependency on unidecode will have to remain until 2.12 to provide an upgrade path for anyone with saved form data that's stored under the unidecode-created field names.
@rjmackay (or anyone else...) - I'd be happy to accept a PR that updates the wagtail.core.utils.string_to_ascii function to use anyascii in place of unidecode, and updates the tests accordingly.

Completed in #6244 - the unidecode dependency will be left in place until 2.12 so that developers have the window of time of the 2.10 and 2.11 releases to deploy a new Wagtail version and have their form data migrated. (After that, if they skip straight from 2.9 to 2.12 then they'll need to install unidecode themselves to do the migration.)


Max Order Age - Orders are not created immediately after cancelling orders

Describe the bug
When running the avellaneda market making strategy, orders are not created immediately afterwards when max order age is reached. This only happens when order refresh tolerance is enabled and the orders are retained (not canceled) because it didn't reach the value set on order_refresh_tolerance_pct. This issue doesn't affect hanging orders that reaches the max order age and other strategies as well.

Steps To Reproduce

Create and run an avellaneda market making strategy.
On my test, I set the order_refresh_time to 30, max_order_age to 60 and order_refresh_tolerance_pct to 1 to easily reproduce the issue.
When there are no spread changes above or below 1%, orders are retained and max order age will cancel the orders, however it will not create new set of orders immediately and will wait until the next cycle before placing new set of orders.

Release version
dev-0.42.0
Attachments
Logs and config: avellaneda.zip
┆Issue is synchronized with this Clickup task by Unito

Same case is happening on PMM strategy:

https://user-images.githubusercontent.com/57189990/133953822-a8d428d5-b733-4047-865f-3e25a04eccb5.mov

@RC-13 were there no new orders created at all? If there were, how long was the "gap" in between the cycle?

@RC-13 yes, no order are created in the next 30 seconds. The bot will create a new sets of order after the 60 seconds refresh time.

Issue still showing for Avellaneda MM and Pure MM, staging v1.2.0


Need to update the doc as configuration tab is not available in permission analytics trigger section

Need to update the doc as configuration tab is not available in permission analytics trigger section.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 03a2acba-a3c1-cadc-4448-c608a712881b
Version Independent ID: 54fafa9f-0b1d-46eb-f04b-85b3d314f44e
Content: Create and view permission analytics triggers in Permissions Management - Microsoft Entra
Content Source: articles/active-directory/cloud-infrastructure-entitlement-management/product-permission-analytics.md
Service: active-directory
Sub-service: ciem
GitHub Login: @jenniferf-skc
Microsoft Alias: jfields

@Givary
Thanks for your feedback! We will investigate and update as appropriate.

@jenniferf-skc
Kindly take a look at this issue and provide your inputs.
As per information from @Givary this is a document issue which he has confirmed from engineering team.
Please find the below ADO details related to this issue.
Bug 2160197: IcM - EPM Alerts Not Working. No Configuration tab for Permission Analytics Triggers. - Boards (visualstudio.com)

I have removed the steps that mention the Configuration tab on both articles, and have submitted PR requests.

https://review.learn.microsoft.com/en-us/azure/active-directory/cloud-infrastructure-entitlement-management/product-permission-analytics?branch=pr-en-us-218334
https://review.learn.microsoft.com/en-us/azure/active-directory/cloud-infrastructure-entitlement-management/product-statistical-anomalies?branch=pr-en-us-218335
These have been merged and should be live tomorrow morning.

@Givary
Thanks for contributing towards enhancement of document. Required changes has been made and will go live by tomorrow morning.


Nice function for parsing args -- doesn't work when using compiler as crate

Ah, is this the parse_args_default_or_exit? We need the trait gumdrop::Options in scope for it to work. We could write our own function for this instead.


[8.x] Return a new or existing guzzle client based on context

Issue
This PR resolves a breaking change in backwards compatibility between Laravel Framework 8.36.2 and 8.37. Laravel 8.37 introduced support for concurrent asynchronous requests in the HTTP client #36948. As part of that change, a protected $client property was introduced in the PendingRequest class which stores a reference to the Guzzle client in order to reuse it for asynchronous request pooling. An unintended side effect of this update occurs when making synchronous calls through the HTTP client. The reused client appears to hold references to every request made in a script, keeping all streams (temporary files) open until the script completes. This results in a "too many open files" error when sufficient HTTP requests are made in a process #38641. In our case that number was ~300 running in a queued job.
Proposed Solution
This update restores the previous functionality of returning a new Guzzle client for each standard HTTP request. In the updated buildClient method, the PendingRequest will check if either a Guzzle client has been set using the setClient method, or if the call is asynchronous ($this->async), if so, it will continue to use the $this->client property. If not, it will return a new client as it had previously. The change supports the new pooling feature without breaking backwards compatibility.
Further Development
It does seem the appearance of this issue hints at a further refactoring that may be necessary at some point. While the async calls don't seem to create the same open files issue, manually setting a Guzzle client using the setClient method may still be affected by the underlying problem depending on configuration of that client. I suspect the source of the problem may be that open references to Guzzle Request objects in the reused Guzzle Client are preventing them from closing their streams and being garbage collected as the requests in the recreated client are when it goes out of scope, but I am uncertain.

@craigballinger please add a thorough explanation to your PR why this is needed and don't link to an issue (see the PR template when submitting PR's.

Apologies, I just went looking for a template, but I guess it's only in the original PR submission? I'll do my best to update the original PR comment to follow what other active PRs cover.

This is what you should see when submitting new PR's. Doesn't that show up for you?

I saw it when I did the original submission, but wasn't able to pull it up again this morning when editing that commit or submitting a new one. Looks like the requirements should be covered in the updated original comment now, minus the tests, but the existing tests covered the functionality that is being restored. If you need anything else, please let me know. Thanks!

Thanks @craigballinger!


Procurement cant log in at all

Hey there been using this program for over 4 years never had issues but now whatever i do wont let me log in here is debug info .
[14-04-2019 18:27] System.Exception: Error downloading account name, details logged to DebugInfo.log. Please open a ticket at https://github.com/Stickymaddness/Procurement/issues and include your DebugInfo.log
at POEApi.Model.POEModel.GetAccountName()
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass22_0.b__0()
at System.Threading.Tasks.Task.Execute()
Saw couple of same bugs issue on the site and did what you guys recommended still dotn work
Changed path of exile id couple of times deleted procurement reinstalled it result is the same always no matter how many id i change i get the above bug info . Added procurement to antivirus program to win firewall still wont work please any help is apritiated ty in advance

Hi, can you provide the full contents of your DebugInfo.log file?  By "path of exile id" you mean the POE Session ID?  And you changed it by logging out and back in on the pathofexile.com website?  You're using the latest version of Procurement?

Hi ty for the fast response ^^
So i saw on site that couple of other people had same issue like me i saw
people response was to change path of exile id so i went on the path of
exile site change my e-mail and my password couple of times i belive my
password is my session id if not care to explain what is it ??
. Yes i am using latest Procurement version Procurement 1.26.1
https://github.com/Stickymaddness/Procurement/releases/tag/1.26.1 .
[15-04-2019 7:20] Failed to build HTTP request and get response for:
method=GET, url='https://www.pathofexile.com/login', allowAutoRedirects=,
requestData='': The remote server returned an error: (503) Server
Unavailable.
[15-04-2019 7:20] Failed to build HTTP request and get response for:
method=GET, url='
https://www.pathofexile.com/character-window/get-account-name',
allowAutoRedirects=, requestData='': The remote server returned an error:
(401) Unauthorized.
[15-04-2019 7:20] Error downloading account name, exception details:
System.Net.WebException: The remote server returned an error: (401)
Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at
POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod
method, String url, Nullable1 allowAutoRedirects, String requestData)    at POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData)
at POEApi.Transport.HttpTransport.GetAccountName()
at POEApi.Model.POEModel.GetAccountName()
[15-04-2019 7:20] System.Exception: Error downloading account name, details
logged to DebugInfo.log. Please open a ticket at
https://github.com/Stickymaddness/Procurement/issues and include your
DebugInfo.log
at POEApi.Model.POEModel.GetAccountName()
at
Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass22_0.b__0()
at System.Threading.Tasks.Task.Execute()
[15-04-2019 7:23] Failed to build HTTP request and get response for:
method=GET, url='https://www.pathofexile.com/login', allowAutoRedirects=,
requestData='': The remote server returned an error: (503) Server
Unavailable.
[15-04-2019 7:24] Failed to build HTTP request and get response for:
method=GET, url='
https://www.pathofexile.com/character-window/get-account-name',
allowAutoRedirects=, requestData='': The remote server returned an error:
(401) Unauthorized.
[15-04-2019 7:24] Error downloading account name, exception details:
System.Net.WebException: The remote server returned an error: (401)
Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at
POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod
method, String url, Nullable1 allowAutoRedirects, String requestData)    at POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData)
at POEApi.Transport.HttpTransport.GetAccountName()
at POEApi.Model.POEModel.GetAccountName()
[15-04-2019 7:24] System.Exception: Error downloading account name, details
logged to DebugInfo.log. Please open a ticket at
https://github.com/Stickymaddness/Procurement/issues and include your
DebugInfo.log
at POEApi.Model.POEModel.GetAccountName()
at
Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass22_0.b__0()
at System.Threading.Tasks.Task.Execute()
[15-04-2019 7:24] Failed to build HTTP request and get response for:
method=GET, url='https://www.pathofexile.com/login', allowAutoRedirects=,
requestData='': The remote server returned an error: (503) Server
Unavailable.
[15-04-2019 7:24] Failed to build HTTP request and get response for:
method=GET, url='
https://www.pathofexile.com/character-window/get-account-name',
allowAutoRedirects=, requestData='': The remote server returned an error:
(401) Unauthorized.
[15-04-2019 7:24] Error downloading account name, exception details:
System.Net.WebException: The remote server returned an error: (401)
Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at
POEApi.Transport.HttpTransport.BuildHttpRequestAndGetResponse(HttpMethod
method, String url, Nullable1 allowAutoRedirects, String requestData)    at POEApi.Transport.HttpTransport.PerformHttpRequest(HttpMethod method, String url, Nullable1 allowAutoRedirects, String requestData)
at POEApi.Transport.HttpTransport.GetAccountName()
at POEApi.Model.POEModel.GetAccountName()
[15-04-2019 7:24] System.Exception: Error downloading account name, details
logged to DebugInfo.log. Please open a ticket at
https://github.com/Stickymaddness/Procurement/issues and include your
DebugInfo.log
at POEApi.Model.POEModel.GetAccountName()
at
Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass22_0.b__0()
at System.Threading.Tasks.Task.Execute()
Those are my last couple of times trying to log in onto Procurement
On Mon, Apr 15, 2019 at 5:26 AM Charles Macanka<EMAIL_ADDRESS>wrote:

Hi, can you provide the full contents of your DebugInfo.log file? By
"path of exile id" you mean the POE Session ID? And you changed it by
logging out and back in on the pathofexile.com website? You're using the latest
version
https://github.com/Stickymaddness/Procurement/releases/tag/1.26.1 of
Procurement?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Stickymaddness/Procurement/issues/1015#issuecomment-483086949,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AvUXHFcQqMFXZM2Ax-82gwtWpafJMQvRks5vg-NTgaJpZM4cusBA
.

The Session ID is different from your password.  For the last two leagues or so GGG has changed how the login process works, and since then Procurement has not supported using your password.  See this page for how to get your Session ID.  The instructions might be slightly out of date; if you have trouble, please let me know which browser you are using to log in to pathofexile.com.

Ty so much for the help it worked first time i try didnt play last 2 leagues so the info you mentioned above sleep from me Thank you  once again fro the fast response and help  ^^

Please close the issue if you are able to login :)


Poetry 0.12.17 venv not detected

Environment data

VS Code version: 1.38.1
Extension version (available under the Extensions sidebar): 2019.9.34911
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): 3.7 vanilla
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): poetry
Relevant/affected Python packages and their versions: -
Jedi or Language Server?: Language Server

Expected behaviour
VSCode detects poetry venv and allows to select it through the Python version window, like Pipenv
Actual behaviour
VSCode does not detect the poetry venv. I can confirm it works for Pipenv, on the other hand
Steps to reproduce:
poetry init
poetry install ...
poetry lock
echo > main.py
code .

Duplicate of https://github.com/microsoft/vscode-python/issues/4235
Currently the extension only supports poetry as a dependency manager.

@DonJayamanne it appears to work in this blog post:
https://www.pythoncheatsheet.org/blog/python-projects-with-poetry-and-vscode-part-2/
Is this only in the Insiders version?

Thanks for sharing that with us. I'll re-open this issue to confirm how that works.
Its possible the user has somehow configured something to get it detected.

After a careful re-read, I just figured it out:

The first command, poetry shell, will spawn us inside our virtual environment, and code . will open the current folder inside VSCode.

Thanks, closing again. @karthiknadig /cc
Closing as a dup of the one mentioned in an earlier comment.


Not sure what fields to Choose

Hello,
I am trying to build a Concatenate rollup to tell me all of the campaigns a particular lead is in. I want to either roll up the Campaign names, or the Campaign ID's. However, I cannot seem to get either to work. Any guidance on fields to choose would be greatly appreciated.
I have screenshot my first attempt:

Thanks!

It can be tricky to make campaign memberships rollup to contact and or
leads. I managed to do it. The trickiest bit was deploying The trigger on
the campaign member. It required a little bit of extra test code which I
found by googling. I also found that it was not reliable in real time mode
– perhaps my fault. I do have the five most recent campaign summarized on
every contact and it updates nightly.
On Fri, Apr 27, 2018 at 1:50 PM jillmyers<EMAIL_ADDRESS>wrote:

Hello,
I am trying to build a Concatenate rollup to tell me all of the campaigns
a particular lead is in. I want to either roll up the Campaign names, or
the Campaign ID's. However, I cannot seem to get either to work. Any
guidance on fields to choose would be greatly appreciated.
I have screenshot my first attempt:
[image: screen shot 2018-04-27 at 12 49 32 pm]
https://user-images.githubusercontent.com/28907558/39379736-77532248-4a19-11e8-8e80-b175debcf92d.png
Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/afawcett/declarative-lookup-rollup-summaries/issues/680,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQaRD6pkIgUKSwOdVFGNjiUfnN1QMuj1ks5ts2hqgaJpZM4Tq2Tq
.

@streetyouth
I have a similar end goal - congrats on solving it! Hope you had a moment to for a couple questions:

Can you clarify what you mean by requiring extra test code?
Did you build a rollup for leads and contacts, or just leads? If both, did you deploy just for leads? I'm running into an issue where deploying from the Contact rollup window gets me this issue
Which Calculation Mode is declared on your rollup? I read elsewhere that even if scheduling, some circumstances operated best with Calc Mode = Process Builder

Appreciate any help you can afford. :)

@streetyouth Any insight into the campaign member trigger modification would be greatly appreciated.
Thanks!!

Campaignid isn't what relates leads to campaign member I think the field is LeadId and for contacts it is ContactId.  The tricky part will making it not fire on campaign membership changes where it is a converted lead as it will have a LeadId and ContactId and the lead update will fail as the record is locked. It should fail silently if you don't mind a ever growing error log.

@mountainmonk   take a look at this thread > https://github.com/afawcett/declarative-lookup-rollup-summaries/issues/197

I'm going to go ahead and close this but is anyone comes here with similar questions, questions like this are better supported through the Trailblazer Community Group and the awesome group of people there.


fix Minecraft fabric versioning

The fabric api no longer supports "latest" as a loader version. Defaulting to a specific version instead.
Resolves #235

@LordRalex That's a good question. I can remove that argument entirely.


Introduce PKI support

After the discussion in #102, I refactored and squashed our work to enable backups encryption.
This allows us to create a custom bacula fd profile that creates a key, a certificate, combine them and configures the bacula-fd service accordingly.
If this is acceptable, I'll add a commit for adding documentation to README.md.

This looks great.  Thank you @smortex.  I'll merge once the README is updated.

Excellent!  I was not sure about giving a configuration example or not, so I added two commits, one for the generic usage instructions, and a second one with examples.
Feel free to drop the examples if you think they add more clutter than value.  BTW, I'm around to amend these commits if needed, just tell me what to do :wink:

Much appreciated @smortex. If you solve the cert generation piece in a creative manner, I'd love to hear about it. Thanks for the contribution.

If you solve the cert generation piece in a creative manner, I'd love to hear about it.

For now, we just use exec resources to run the documentation commands (with little adjustements, mainly adding -subj to run non-interactively and -days because while Bacula works well with expired certificates, it's something that makes me think this certificate is expired, so it's not used anymore and I can remove this safely :smile: ).
  $pki_key     = "/etc/bacula/ssl/${trusted['certname']}_pki_key.pem"
  $pki_crt     = "/etc/bacula/ssl/${trusted['certname']}_pki_crt.pem"
  $pki_crt_key = "/etc/bacula/ssl/${trusted['certname']}_pki_crt+key.pem"

  exec { 'generate-bacula-pki-key':
    command  => "umask 077 && openssl genrsa -out ${pki_key} 4096",
    path     => '/usr/bin',
    creates  => $pki_key,
    provider => 'shell',
  }
  -> exec { 'generate-bacula-pki-crt':
    command => "openssl req -new -x509 -key ${pki_key} -out ${pki_crt} -days 3650 -subj /CN=${trusted['certname']}",
    path    => '/usr/bin',
    creates => $pki_crt,
  }
  -> concat { $pki_crt_key:
    ensure => present,
    owner  => 'root',
    group  => 'bacula',
    mode   => '0440',
  }

  concat::fragment { 'bacula-pki-crt':
    target => $pki_crt_key,
    source => $pki_crt,
    order  => '10',
  }

  concat::fragment { 'bacula-pki-key':
    target => $pki_crt_key,
    source => $pki_key,
    order  => '20',
  }

I guess some module dedicated to building PKIs would be more suitable, but for now, we will stick to this solution.
Thanks for merging!


iox-#1693 support for iox::string in NamedPipe

By default, the NamedPipe class relies on std::string objects to send and receive data, as defined by its interface. However, this approach can potentially lead to dynamic memory allocation when handling larger data payloads that exceed the stack space optimization (SSO) limit.
To address this issue, an alternative API has been introduced that enables data transmission and reception using iox::string. This approach allows for direct data manipulation within stack memory, effectively eliminating the need for dynamic memory allocation.
Pre-Review Checklist for the PR Author

[ ] Add a second reviewer for complex new features or larger refactorings
[x] Code follows the coding style of CONTRIBUTING.md
[ ] Tests follow the best practice for testing
[x] Changelog updated in the unreleased section including API breaking changes
[x] Branch follows the naming format (iox-123-this-is-a-branch)
[x] Commits messages are according to this guideline

[x] Commit messages have the issue ID (iox-#123 commit text)
[x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)

[x] Update the PR title

Follow the same conventions as for commit messages
Link to the relevant issue

[x] Relevant issues are linked
[ ] Add sensible notes for the reviewer
[ ] All checks have passed (except task-list-completed)
[x] All touched (C/C++) source code files from iceoryx_hoofs are added to ./clang-tidy-diff-scans.txt
[ ] Assign PR to reviewer

Notes for Reviewer

Checklist for the PR Reviewer

[ ] Commits are properly organized and messages are according to the guideline
[x] Code according to our coding style and naming conventions
[x] Unit tests have been written for new behavior
[x] Public API changes are documented via doxygen
[x] Copyright owner are updated in the changed files
[x] All touched (C/C++) source code files from iceoryx_hoofs have been added to ./clang-tidy-diff-scans.txt
[x] PR title describes the changes

Post-review Checklist for the PR Author

[ ] All open points are addressed and tracked via issues

References

Closes https://github.com/eclipse-iceoryx/iceoryx/issues/1693

@lucabart97 sorry for letting you wait so long. Not sure if I manage to do the review today but your PR is on the top of my todo list

@elBoberido Done!

@lucabart97 thanks. Next step would be using the new API

@elBoberido
What should would I do? Starting from which part of the code?
I could start finding and replacing all the send methods of those classes, using the new API.
But if I remember correctly, there is another issue in the message serialization, right?
(iceoryx_dust/include/iceoryx_dust/cxx/serialization.hpp)

@lucabart97 yes, the serialization would be the next step. There are essentially two options. One short term solution would be to make the current serialization work with iox::string. This should not be too hard and also not take too much time, although it might not be the most performant solution it should be better than the current one. In the long run we would like to improve the serialization. See also #503. Since the proposal from the comment in #503 would require quite a big refactoring, a stepping stone would be to start with the current concept and make the de-serialization work with iox::string first and as second step the serialization. For the serialization itself, I think some of the iox::convert functions need to be adapted to work with an iox::string. Here some of the building blocks from the logger could be re-used.

@elBoberido
So if I understood correctly I should start to support iox::string in the serialization method and later move forward to use the new posix/ipc API?

@lucabart97 yes starting to support iox::string in the serialization functions. From my gut feelings I think the de-serialization part might be simpler but it's up to you to choose :)

@elBoberido
Yesterday I tried to participate in the meeting, I joined it, but we had some connection issues, maybe next time!
Ok, I start to understand the serialization part and try to support also iox::string!


Initial RELAYMSG implementation

This implementation doesn't store relayed messages in history, and we may want to allow network admins to enable/disable relaymsg in the config file, but otherwise it's a complete implementation of the current spec with the restrictions described in #1119

note to self, test:

[ ] Enabling/Disabling and separator chars cannot be changed thru rehash
[ ] Separators a little more in-depth (have already done initial pass)
[ ] Nick can have seps when relaying is disabled
[ ] Just all the paths in relaymsgHandler

history also needs to be tested and confirmed OK


[fpv/pinmux] align usb port name

This PR aligns pinmux port name according to the recent change.
Signed-off-by: Cindy Chen<EMAIL_ADDRESS>

Sorry I forgot to keep these aligned!

no worries at all!


FileFormatException is in WindowsBase and System.IO.Packaging

FileFormatException is in WindowsBase and System.IO.Packaging
I am working on porting a WPF application to .NET Core.  The projects reference the Microsoft.Windows.Compatibility nuget to bring in types that I need.  I am running into issues with FileFormatException.  When I use it I get a build error that FileFormatException is defined in WindowsBase and System.IO.Packaging.
General
I am seeing this issue with .NET Core 3 preview 1 and Microsoft.Windows.Compatibility nuget version 2.1.0-preview.18571.3.  I could probably solve this with an Alias but that seems ugly and I don't even know how to alias an assembly that comes from a nuget.
You can see here where it is defined in more than 1 assembly:
https://apisof.net/catalog/System.IO.FileFormatException
You can also reproduce the issue by creating a default WPF .NET Core app, reference Microsoft.Windows.Compatibility and try to use a FileFormatException.

@danmosemsft @vatsan-madhavan @rladuca any idea what's going on here? Is the type currently defined in 2 places?
The CoreFX version hints that it is typeforwarded from WindowsBase:
https://github.com/dotnet/corefx/blob/a10890f4ffe0fadf090c922578ba0e606ebdd16c/src/System.IO.Packaging/src/System/IO/Packaging/FileFormatException.cs#L15-L19
However, I wonder how WPF dependency on compat pack works ... I heard it raised as a concern recently. cc @ericstj

As of right now, all of System.IO.Packaging exists both in the compat pack and in WindowsBase.  We haven't done the work to remove it from WindowsBase, we have a work item for that already.

You plan to remove it from WindowsBase? The S.IO.Packaging that is in CoreFX today is only a subset.
This is tracked here, but not currently scheduled: https://github.com/dotnet/corefx/issues/29959

@danmosemsft When I say we have a work item, that work item is not scheduled for the immediate future, but we recognize that we need to do work to clean up the duplicates.  As that work gets completed that duplicate list will grow.  It's best to wait and do it all in one go, but I don't have any easy solution for developers in the short term.

Yep, I just wanted to clarify that this was not correct:

all of System.IO.Packaging exists both in the compat pack

Meanwhile a possible workaround could be to remove the reference on S.IO.Packaging - you are probably getting that implicitly through referencing the Compatibility pack, which is a meta package. You could remove that and explicitly reference the packages you want (excluding S.IO.Packaging)

@danmosemsft Yes, you could do that, but how does that interact with publishing?  Most WPF applications on .NET Core (that we've seen) tend to publish self-contained.  Maybe there is some extra workaround we can add there, but I don't have the requisite knowledge to know how to fix that with VS publish.


'WeakMap' is undefined in Vue 2.7.11 and above (IE10 and under)

Version
2.7.11
Reproduction link
github.com
Steps to reproduce
Open a Vue2 app using internet explorer 10 or below
What is expected?
App loads and 'Hello Vue!' is displayed
What is actually happening?
App does not load and 'WeakMap' is undefined is printed to the console

WeakMap is not supported in Internet Explorer 10 or less and was introduced to Vue in version 2.7.11

as a workaround, use a weakmap polyfill: https://github.com/polygonplanet/weakmap-polyfill

Thanks @posva - we provide a framework to customers with a fairly wide browser base, while we're happy to include this polyfill for our own testing purposes, this does seem like a change in browser support that some of our customers may also be feeling. Does the Vue team intend to continue supporting these legacy browsers for Vue2, or is there an intended change in browser support that we should be prepared for?


Pagination option on Manage Account > Configurations > Lists

Manage Account > Configurations > Lists
Which Cloudflare product(s) does this pertain to?
-> CloudFlare Websites
--> Manage Account > Configurations > Lists
Can you add page numbers or Skip to end of the List due to fact only been able to traver per page means there is hundred of pages in worse scenario to get to the end.
In my case I have a List - with nearly 10,000 IP address that I block due to hack attempts detected from these networks.
And if i need to manage the list, i.e. remove a single IP from that list its practically impossible to browse to the IP in question and remove it if I wanted too.  I would have to click on the Next button hundred of times. Again in my case 400 times, hitting the next button.
What needs to be documented?
###Manage Account > Configurations > Lists
Pagination option/improvement
Also, ability to search the list for specific items/IP's in case one need to be removed for example.
Please provide any URLs to existing documents.
Additional information
I have looked here for info on what can I do my end to make the above possible, but I cant see an option todo what I want.
https://api.cloudflare.com/#rules-lists-list-lists

Howdy @angelperezleon, unfortunately this is a documentation repo, so we can't do much to fix this... but I'll pass along the feedback to the PM regardless.

OK thanks Kody.


CMake FetchContent Fails

When using this Action CMake's FetchContent fails with the following message:
fatal: unable to access 'https://github.com/TartanLlama/expected/': Could not resolve host: github.com

Ah, flatpak expects to fetch the dependencies at update dependencies build sage

Ah, flatpak expects to fetch the dependencies at update dependencies build sage

Ah, thanks, I should be able to fetch the sources before the build and then tell cmake to use the local sources :D

That should work, please open issues about anything weird/unexpected you find. The extension have been mostly tested with meson so far

Never mind my comment, I thought the issue was on flatpak-vscode and not flatpak-github-actions...


broken links in the paper

Description
Links to sections, figures, and references are broken in the html version and result in a 404 error when clicked. Links in the table of contents on the left hand side of the page are also broken.
(Optional:) Please add any files, screenshots, or other information here.
No response
(Required) What is this issue most closely related to? Select one.
References
Internal issue ID
2a6949a4-7dc2-4f11-acc6-2fbebb6cd30c
Paper URL
https://arxiv.org/html/2401.06666v1
Browser
Firefox/122.0
Device Type
Desktop

Hello @jessiethw, we have fixed this issue in new conversions and will recreate the HTML for existing papers when the next version of LaTeXML is released. Thanks for your report.

Hello @jessiethw, this paper has been rebuilt with the updated converter and appears to work. Thank you for bringing this to our attention - we rely on feedback reports to help prioritize improvements to the html conversions. I will close this issue report -- if the issue persists, please let me know.


fix: Ensure Windows path compatibility in web platform transformation

This PR fixes an issue where Windows paths were not correctly handled in the Metro transformer's web platform transformation, causing incorrect runtime module resolution.
It's a duplicate of https://github.com/marklawlor/nativewind/pull/854, but with a better naming so we don't break it again. ❗
@marklawlor could you please merge it ASAP as we're using nativewind in production and we hate to patch it :)
The related issue - https://github.com/marklawlor/nativewind/issues/784#issuecomment-2018604499

@marklawlor  We encountered the same issue on Windows as well, and the fix appears to be working as expected. 🙏

why not merge yet?

Same here. It would be great if it could be merged soon. By the way, great work by all @marklawlor and all contributors, Nativewind is amazing

@dmitryshostak how can i use this branch in my project now? I am blocked.

Hi, @aaronksaunders. I think there are ways to install a package from a pull request / fork, but at least it didn't seem to work for me (I'm using yarn, that might be the reason). I created this simple PHP script that applies the fix one the dependency has been installed. I run it whenever I install my front-end dependencies. You can easily translate the script to whatever language you prefer.
<?php

$filePath = 'front-end/node_modules/nativewind/dist/metro/transformer.js';
$content = file_get_contents($filePath);

$issue = '`require(\'${config.nativewind.output}\');`';

if (! str_contains($content, $issue)) {
    echo 'NativeWind fix already applied!';
    return;
}

$fix = '`require(\'${config.nativewind.output.replace(/\\\\/g, \'\\\\\\\\\')}\');`';

$result = str_replace($issue, $fix, $content);

file_put_contents($filePath, $result);

echo 'NativeWind fix applied successfully!';

Inspired by @Alejandro-M-Cruz, I've created JavaScript instead. You can place it in the root directory of your project.
To integrate this script with your application, add the following entry to your package.json. This will ensure the script runs every time you start your program:
 "scripts": {
    "start": "node fix.js && expo start"
  },

Here is the JavaScript script:
// fix.js
const fs = require('fs');
const path = require('path');

const filePath = path.join('.', 'node_modules', 'nativewind', 'dist', 'metro', 'transformer.js');

fs.readFile(filePath, 'utf8', (err, content) => {
    if (err) {
        console.error(err);
        return;
    }

    const issue = '`require(\'${config.nativewind.output}\');`';

    if (!content.includes(issue)) {
        console.log('NativeWind fix already applied!');
        return;
    }

    const fix = '`require(\'${config.nativewind.output.replace(/\\\\/g, \'\\\\\\\\\')}\');`';
    const result = content.replace(issue, fix);

    fs.writeFile(filePath, result, 'utf8', (err) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log('NativeWind fix applied successfully!');
    });
});

This setup allows the fix.js script to batch process necessary adjustments automatically whenever you initiate your project with expo start.

The script by @rickychan0611 works but in my end first install and run of the web script will cause the following error:
Web Bundling failed 31297ms C:\path\index.js (2280 modules)
Unable to resolve "C:\path\node_modules\.cache\nativewind\global.css" from "app\global.css"

Metro error: Unable to resolve module C:\path\node_modules\.cache\nativewind\global.css from C:\Users\ZachNoche\WebstormProjects\seriousmd-loyalty-card\app\global.css:

None of these files exist:
  * node_modules\.cache\nativewind\global.css(.web.ts|.ts|.web.tsx|.tsx|.web.mjs|.mjs|.web.js|.js|.web.jsx|.jsx|.web.json|.json|.web.cjs|.cjs|.web.scss|.scss|.web.sass|.sass|.web.css|.css|.web.css|.css)
  * node_modules\.cache\nativewind\global.css\index(.web.ts|.ts|.web.tsx|.tsx|.web.mjs|.mjs|.web.js|.js|.web.jsx|.jsx|.web.json|.json|.web.cjs|.cjs|.web.scss|.scss|.web.sass|.sass|.web.css|.css|.web.css|.css)
> 1 | @tailwind base;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2 | @tailwind components;
  3 | @tailwind utilities;

Call Stack
  MetroBundlerDevServer.getStaticResourcesAsync<EMAIL_ADDRESS>  processTicksAndRejections (node:internal/process/task_queues)
  MetroBundlerDevServer.getStaticPageAsync<EMAIL_ADDRESS>  getHtml<EMAIL_ADDRESS>  handler<EMAIL_ADDRESS>  <unknown><EMAIL_ADDRESS>
However, if I stop the server and run the web script again, it now works as normal. Anyone know why?

However, if I stop the server and run the web script again, it now works as normal. Anyone know why?

You need to clear the cache when starting the server
yarn start -c

As native-wind is no longer maintained, I have switched to tailwind-react-native-classnames. It is also much faster

@rickychan0611 it's not no-longer maintained, check this: https://github.com/nativewind/nativewind/issues/600

@marklawlor please merge this 💔

For now, since this didn't got merged yet, added, got it to work other way, here is how:
Created in the root of the project a fix.js with the following code
/*
  This is used to fix a bug in Metro that prevents NativeWind from being applied on web in Windows, which crashes the compiler.
  See: https://github.com/nativewind/nativewind/pull/860
*/

// require('dotenv').config()
// console.log('EXPO_USE_METRO_WORKSPACE_ROOT:', process.env.EXPO_USE_METRO_WORKSPACE_ROOT)

const fs = require('fs')
const path = require('path')

const filePath = path.join('.', 'node_modules', 'nativewind', 'dist', 'metro', 'transformer.js')

fs.readFile(filePath, 'utf8', (err, content) => {
  if (err) {
    console.error(err)
    return
  }

  const cjsIssue = "`require('${config.nativewind.output}');`"
  const ecsIssue = "`import '${config.nativewind.output}'`"

  if (!content.includes(cjsIssue) && !content.includes(ecsIssue)) {
    return console.log('🎉 NativeWind fix already applied!')
  }

  const fix = "`require('${config.nativewind.output.replace(/\\\\/g, '\\\\\\\\')}');`"

  let updatedContent = content.replace(cjsIssue, fix)
  updatedContent = updatedContent.replace(ecsIssue, fix)

  fs.writeFile(filePath, updatedContent, 'utf8', (err) => {
    if (err) {
      return console.error(err)
    }
    console.log('🎉 NativeWind fix applied successfully!')
  })
})

Then I added postinstall to run it:

Versions are
"nativewind": "^4.0.1",
 "tailwindcss": "^3.4.4",

@guibzo nice patch!
Have you ever used pnpm patch before? It does something like this.

I did not, but probably it would work as well as with postinstall.

please merge this

i tried this patch but it didn't work for me while using flatlist component

We create this patch using patch-package.
by one of our team members @amrya200t
create: patches/nativewind+4.0.36.patch
diff --git a/node_modules/nativewind/dist/metro/transformer.js b/node_modules/nativewind/dist/metro/transformer.js
index 75f0c40..9b6d303 100644
--- a/node_modules/nativewind/dist/metro/transformer.js
+++ b/node_modules/nativewind/dist/metro/transformer.js
@@ -11,7 +11,8 @@ const transformer_1 = require("react-native-css-interop/metro/transformer");
 async function transform(config, projectRoot, filename, data, options) {
     if (path_1.default.resolve(process.cwd(), filename) === config.nativewind.input) {
         if (options.platform === "web") {
-            return metro_transform_worker_1.default.transform(config, projectRoot, filename, Buffer.from(`require('${config.nativewind.output}');`, "utf8"), options);
+            const windowsCompatibleOutputPath = config.nativewind.output.replace(/\\/g, '\\\\');
+            return metro_transform_worker_1.default.transform(config, projectRoot, filename, Buffer.from(`require('${windowsCompatibleOutputPath}');`, "utf8"), options);
         }
         else {
             const css = config.nativewind.css[options.platform ?? "native"] ??

then add to package.json
{
  "scripts": {
    // ... your scripts
    "postinstall": "patch-package"
  }
  // ... rest of package.json properties
}

This is how it worked for me
Step 1: install PostCSS and the necessary plugins. You can do this using Yarn or npm:
Using Yarn
yarn add postcss postcss-cli tailwindcss autoprefixer cssnano --dev
Using npm
npm install postcss postcss-cli tailwindcss autoprefixer cssnano --save-dev
2: Create a file named postcss.config.js in the root of your project with the following content:
module.exports = {
plugins: [
require('tailwindcss'),
require('autoprefixer'),
require('cssnano')({
preset: 'default',
}),
],
};
Step 3: Create a script to build your CSS. In your package.json, add a script to run PostCSS:
"scripts": {
"build:css": "postcss global.css -o build.css"
}
yarn build:css
will find new file created called:
"build.css"
will use it in metro config
const { getDefaultConfig } = require('expo/metro-config');
const { withNativeWind } = require('nativewind/metro');
const config = getDefaultConfig(__dirname);
module.exports = withNativeWind(config, { input: './build.css' });


Pressing Back while on Weapon Detail view returns to main menu

From the main menu, click weapon.
Click a weapon type, e.g. Hammer
Click a weapon of choice
Press back

Pressing back should return you to weapons list instead of main menu

It apparently happens to all kinds of list, be it armor, quedt, item, map... all lists.

It's implemented as a home button, which is unfortunate and confusing. Use the android back button to return normally, and the top bar button to return to home. We're working on a more intuitive interface.

I actually noticed that a few hours after submitting this issue. If it's intended then I have no more issues with it.


Feature Request: Hide File View Button Bar

Feature Requested
Is it possible to add an option to hide file viewer bar? For me it is more logical to have them in the ribbon bar. Therefore i've added the new note & new folder button to ribbon to have only one button bar.
Relevant Screenshot

Relevance

[X] The feature would be useful to more users than just me.

Style Settings

[X] I have checked that the feature is not already available via the Style Settings plugin.

implemented in latest release 👍


Removed VID wraparound logic

Removed vid wraparound logic, moved privacyBucketsOverlap() to PrivayBucketGroup class, added unit test

This change is

src/main/kotlin/org/wfanet/measurement/eventdataprovider/privacybudgetmanagement/PrivacyBucketGroup.kt, line 59 at r2 (raw file):
Previously, uakyol wrote…
I don't think you need this comment. Is there a specific reason for this?

Make sense. Will remove it


Porting changes related to environment output to M91

PR against master - https://github.com/Microsoft/vso-agent-tasks/pull/723/files

Looks fine.


DIsable to find any servers.

I can get into the offical unofficial server yesterday ,but now no server can be found. I ask the furum it seems that it is not a particular bug.

This was likely due to a reboot of the master server that happened around then.


Async calls do not show up as expected

Hi, thank for this excellent project. I noticed that in llms/base.py you only hijack the generate not the agenerate for the BaseLLM. Why not also hijack agenerate?
Without hijacking agenerate as well, output missing the llm call:

I created a simple PR which fixes this to look somewhat more reasonable, but still the final output never shows up (not sure why)

If I change all my calls to be synchronous, then everything looks much nicer with prices showing up too:

Would appreciate it if you look at the PR and let me know why the prices are not working and also why the final result does not appear to show up.
Thanks again for your work.

Hey Sam, thanks for submitting the PR! I've added a commit to fix it. It's a bit confusing, but the actual function that needs to be overridden is VisualizationWrapper.run. Because the function you created was named _agenerate instead, it does not override anything and does not actually get called. I realized that this was a problem with the existing ChatLlmAsyncVisualizer as well, and I've fixed it there too.
I've wanted to name it something different, but if I do name it something like visualize, then every single call gets "Visualize" tacked on to the end:

Changing this would require delving further into ICE code, which I haven't got the energy to do just yet.
Costs should now show up for async calls. Unfortunately I was not able to reproduce the lack of return values. I've added a test to check and visualize async calls. Could you please see if running python tests/chains/langchain_how_to/test_async.py gives you return values? For me it generates this visualization:

Hi @amosjyng, thank you for putting in the fix. I tested it with my previous use case and indeed, now the prices do show up (yay and thanks for that). The issue with no output showing seems to also have been resolved for now.

I suspect the missing output (which still happens sometimes is a silent failure in the API. Unfortunately all the errors are suppressed so it is hard to know what happened when things go wrong. We should find a way to propagate the errors to the ICE interface or at least to the stdout for easier debugging...
Related to the above, I also tried running the test you mentioned and it fails because I have to use an organization ID in the header and your test explicitly prohibits that. Probably should update the test to allow the OpenAI-Organization to be set.
Matchers succeeded : ['method', 'scheme', 'host', 'port', 'path', 'query', 'body']
Matchers failed :
headers - assertion failure :
{'OpenAI-Organization': '<censored>'} != {}

Anyway, that is not urgent and I think the issue has been addressed so will close this ticket now. Thanks again for the quick turnaround and keep up the good work!

No problem, glad to help! :)

Errors being suppressed doesn't sound right. Can I ask what OS you're running this on? Are you running it in Jupyter or in the terminal?
That's weird, my requests don't seem to include the OpenAI-Organization header. I've tried to filter it out anyways; what happens if you try to install vcr-langchain v0.0.29?


Crash on HTTP 403 when api type is Call

Please complete the following information:

Library Version: v1.0.8
Affected Device(s): Pixel 3a with Android 11

Describe the Bug:
The problem looks similar with crash on 401 unauthorized status #5
Crash log:
2021-01-04 18:14:25.391 14244-14534/net.hikingbook.hikingbook E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-2
    Process: net.hikingbook.hikingbook, PID: 14244
    retrofit2.HttpException: HTTP 403
        at retrofit2.KotlinExtensions$await$2$2.onResponse(KotlinExtensions.kt:53)
        at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:161)
        at com.google.firebase.perf.network.InstrumentOkHttpEnqueueCallback.onResponse(InstrumentOkHttpEnqueueCallback.java:69)
        at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)

Here is my code. I try to use the Call to get the response.
Service:
@POST("/login")
    suspend fun postLogin(
            @Body body: RequestBody
    ): Call<User>

Repository:
   suspend fun login(email: String, password: String) {
        val params: MutableMap<String, String> = mutableMapOf(
                "email" to email,
                "password" to password
        )
        router?.let {
            val request = it.postLogin(body = createRequestBody(params))
            request.callback(
                    onSuccess = { user ->
                        handleLoginResponse(user = user)
                    },
                    onError = {}
            )
        }
    }

   suspend fun <T> Call<T>.callback(
            onSuccess: (T?) -> Unit,
            onError: (String) -> Unit
    ) {
        this.request { response ->
            runBlocking {
                response.suspendOnSuccess {
                    onSuccess(data)
                }.suspendOnError {
                    when (statusCode) {
                        StatusCode.Forbidden -> {
                            // do somting...
                        }
                        else -> {
                            onError(message())
                        }
                    }
                }.suspendOnException {
                    onError(message())
                }
            }
        }
    }

Expected Behavior:
If the api is type is ApiResponse then the suspendOnError() method can handle the 403. But Call cannot handle
by onError.
Am I do something wrong? Thanks~

Hi, as you can see in the error log there is a concurrency problem in your code.
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)

The request operator requests the lambda code in the OKHttp's own worker thread and it will be executed asynchronously.
So we can't use the runBlocking in the request lambda and we don't need to use coroutines in this case.
The callback extension should be like this.
fun <T> Call<T>.callback(
    onSuccess: (T?) -> Unit,
    onError: (String) -> Unit
  ) {
    this.request { response ->
      response.onSuccess {
        onSuccess(data)
      }.onError {
        when (statusCode) {
          StatusCode.Forbidden -> {
            // do somting...
          }
          else -> {
            onError(message())
          }
        }
      }.onException {
        onError(message())
      }
    }
  }

Hi, as you can see in the error log there is a concurrency problem in your code.
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)

The request operator requests the lambda code in the OKHttp's own worker thread and it will be executed asynchronously.
So we can't use the runBlocking in the request lambda and we don't need to use coroutines in this case.
The callback extension should be like this.
fun <T> Call<T>.callback(
    onSuccess: (T?) -> Unit,
    onError: (String) -> Unit
  ) {
    this.request { response ->
      response.onSuccess {
        onSuccess(data)
      }.onError {
        when (statusCode) {
          StatusCode.Forbidden -> {
            // do somting...
          }
          else -> {
            onError(message())
          }
        }
      }.onException {
        onError(message())
      }
    }
  }

Hi, @skydoves.
It works! Thanks a lot!
I update my code and remove the suspend keyword
Service:
@POST("/login")
    fun postLogin(
            @Body body: RequestBody
    ): Call<User>

Repository:
   fun login(email: String, password: String) {
        val params: MutableMap<String, String> = mutableMapOf(
                "email" to email,
                "password" to password
        )
        router?.let {
            val request = it.postLogin(body = createRequestBody(params))
            request.callback(
                    onSuccess = { user ->
                        handleLoginResponse(user = user)
                    },
                    onError = {}
            )
        }
    }

  fun <T> Call<T>.callback(
    onSuccess: (T?) -> Unit,
    onError: (String) -> Unit
  ) {
    this.request { response ->
      response.onSuccess {
        onSuccess(data)
      }.onError {
        when (statusCode) {
          StatusCode.Forbidden -> {
            // do somting...
          }
          else -> {
            onError(message())
          }
        }
      }.onException {
        onError(message())
      }
    }
  }

I think I should review the coroutine again ｡ﾟヽ(ﾟ´Д`)ﾉﾟ｡

Hi, @skydoves.
It works! Thanks a lot!
I update my code and remove the suspend keyword
Service:
@POST("/login")
    fun postLogin(
            @Body body: RequestBody
    ): Call<User>

Repository:
   fun login(email: String, password: String) {
        val params: MutableMap<String, String> = mutableMapOf(
                "email" to email,
                "password" to password
        )
        router?.let {
            val request = it.postLogin(body = createRequestBody(params))
            request.callback(
                    onSuccess = { user ->
                        handleLoginResponse(user = user)
                    },
                    onError = {}
            )
        }
    }

  fun <T> Call<T>.callback(
    onSuccess: (T?) -> Unit,
    onError: (String) -> Unit
  ) {
    this.request { response ->
      response.onSuccess {
        onSuccess(data)
      }.onError {
        when (statusCode) {
          StatusCode.Forbidden -> {
            // do somting...
          }
          else -> {
            onError(message())
          }
        }
      }.onException {
        onError(message())
      }
    }
  }

I think I should review the coroutine again ｡ﾟヽ(ﾟ´Д`)ﾉﾟ｡


Rephrasing of error message when TERM not 256 color

- Literal command to be added is highlighted in blue
- Now beginners won't try to add an incorrect command to ~/.zshrc

The way it was phrased before, it seemed like I could just add TERM=xterm-256color to ~/.zshrc. however I found that you really need to put the export before it, and "" "" around the TERM variable.

Nice reporting improvement, @DanielGGordon! Thanks!


Change output of errors from cs submit from stdout to stderr

Changes proposed in this PR

Change output of errors from cs submit from stdout to stderr

Why are we making these changes?
If we have an error, we want it printed to stderr to maximize the changes it is seen by users instead of gobbled by a stdout redirection.

Merging based on previous green run (prior to comment typo fix).


Support for custom @tagName

With the move to Glimmer Components, the Ember Component tagName property/option does not apply. There is a Dynamic tag names RFC that has been accepted but not implemented yet. Additionally, I'd like to wait for the Add new basic helpers to Ember RFC to land so that we can keep <FroalaContent /> as a template-only component. Eg: {{#let (element (or @tagName "div") as |Tag|}}

Forgot to mention, the (or @tagName "div") could instead be (if @tagName @tagName "div"), inline if, so the basic helpers RFC isn't needed necessarily.

FWIW, could use ember-element-helper but blocked on an issue with modifiers.

So there has been zero movement on this from the Ember front. There are three options we can take with this addon;

Continue to wait for the built-in {{element}} helper and polyfill
Use the ember-element-helper addon and reduce backwards compat to 3.7.2+
Drop the idea of supporting @tagName since the <div> variant is probably the best option for ember.js

Taking votes or other ideas. 😄

At this point we'll go with option 3 of not supporting a custom @tagName since there still is no movement here on the ember front, and additionally the ember-element-helper addon outputs a custom Ember Component instead of a Glimmer Component (which negates any perf improvements). Will close for now but post here if you need support and we can discuss again. Thanks


Entities created by mikro's internals that also include private class fields throw an error

Describe the bug
I started recently using mikro-orm in my projects, and it works beautifully (❤), however I encountered an issue with an Entity that also uses private class fields (used to store variables that are unrelated to the data itself, but are needed for the structure). Thanks to @kyranet, we found the issue to be this line in EntityFactory
// creates new entity instance, bypassing constructor call as its already persisted entity
const entity = Object.create(meta.class.prototype);

This is fine for normal usage, and even for fields that are soft-privates (annotated with the private keyword in TS, but NOT using the # types of privates). I don't know if this is easy to solve, or if we should just not use private class fields with mikro-orm (something I don't directly mind, but would be a nice to have)
Stack trace
Encountered unexpected error: TypeError: Cannot write private member #client from an object whose class did not declare it
    at ScheduleEntity.setup (C:\Users\Vlad\Desktop\Development\TypeScript\TicketBot\dist\lib\schedule\ScheduleEntity.js:47:26)
    at ScheduleManager.init (C:\Users\Vlad\Desktop\Development\TypeScript\TicketBot\dist\lib\schedule\ScheduleManager.js:16:38)

To Reproduce
Steps to reproduce the behavior:

Create a simple entity with a private field

@Entity()
export class Example {
	@PrimaryKey()
	public id!: number;

	#myPrivateProp!: boolean;

	public setup(isAwesome: boolean) {
		this.#myPrivateProp = isAwesome;
	}
}

Attempt to construct it within your code, and persist it to the database

// This code sample will work just fine
const entry = new Example();
example.setup(true);

await em.persistAndFlush(entry);

Attempt to fetch an entity with a private class field, and try to read/write to the private properties

const fetchedEntry = await em.findOne({ id: 1 })!;

// This WILL throw, even though the `prototype` IS the "same"
fetchedEntry.setup(false);

Expected behavior
There should be no issues with creating such structures, however, due to the current way they're created (by bypassing the constructor), they become "shadow extensions" of the base class, and will throw.
Additional context
fetchedEntry instanceof Example -> true
fetchedEntry.__proto__ === Example -> fetchedEntry extends Example but isn't strictly an Example; this isn't Example, while this.__proto__ is
Versions

Dependency
Version

node
v14.15.3

typescript
4.1.3

mikro-orm
4.3.4

@mikro-orm/postgresql
4.3.4

If that line is the problem, I'd call it a won't fix right ahead. The ORM never uses entity ctor (with only exception being em.create()) - this invariant is esential to allow using ctors for new entities only.
We could have a toggle to use the ctor all the time, but disabled by default, as changing it would be a huge breaking change. This way you could choose what is more important to you, native private fields or entity ctors.

If there's no other way to fix it, is it possible per chance to get it as an option that is per entity? That way, you do your trade offs only where you want them, and not globally across all possible entities 👀😅

Sure, we can make the option both global and entity based (so it would be a boolean | Constructor<AnyEntity> | string basically).

Btw to verify I also asked on SO if this is possible to get around but apparently this is intended behaviour of native private fields:
https://stackoverflow.com/questions/65395454/object-create-and-native-private-fields
Looking at how TS compiles/downlevels native props I don't see a way around that othe than using the ctor.


[QUESTION] Is there any replacement for the jq binary command-line options?

You can affect how the jq binary reads and writes its input and output using command-line options. Let's assume I have started to work with the jq binary using its command-line options and I want to switch to JSON::JQ. How do I deal with the command-line options?

hi,
As you highlighted, the jq binary command-line options mostly fall into categories below:

input preprocess.
output postprocess.
jq control.
terminal control / formatting.

For 1 and 2, it is perfectly covered by perl itself. What you can pass as input is ordinary perl hash or array. It means you can use whatever modules / means available in perl to preprocess or make it. Perl is very good at text and formatting things. Similar concept holds for output postprocess, you can do what you plan once retrieving output data from the function call.
It is the true power of making it as a binding, it is not dealing with string only on input/output.
For 3 it is covered in some way, I made some option support.
For 4 it can be made easily as well in perl, check modules with 'term' or 'tk' keywords.


Direct users to Phenology tool

I'd like to add some kind of banner or something to the Identify page (possibly also the gall pages?) letting users know that the phenology tool exists and linking to it. Something like this for text?
"Explore the seasonal timing of gall development and emergence with our phenology tool"
and link here (I've combined them into a single tool so the other one is defunct):
https://megachile.shinyapps.io/doycalc/

In the long term it would ultimately still be ideal to integrate the pheno data into the site somehow but this is an adequate solution in the medium term.


Windows error - 1

Switching: to dedicated GPU
error code was : 1
incorrect function

See https://github.com/0xbb/gpu-switch/issues/14


Gws user settings

Coverage increased (+0.005%) to 83.23% when pulling 59e47d1714555c9ace28ce577ffd0ca42cdb2ea1 on tany:gws-settings into 097fd7d05a368979ab05cccb7b4ee9fcc5e0083f on shirasagi:master.

Coverage increased (+0.1%) to 83.366% when pulling a15f21b0a276878c80884cd4fd2bd2635a356d7b on tany:gws-settings into 097fd7d05a368979ab05cccb7b4ee9fcc5e0083f on shirasagi:master.


About attention map visualization

Hi, I am very interested in the way you visualize the attention maps? Is there any code or links to your visualization method? Thanks a lot

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

I suppose you are using the code from DINO


ios: simulator works, real device just opens youtube mobie site in place of expected video

My app is live in the android store however I've been struggling to get the videos working on iOS.
The simulator works fine however when I put on an actual iPhone using flutter release mode I just in place of the video I just get the Youtube mobile site with the spinner over it constantly refreshing the site below.
To do my builds I'm: Setting the scheme set to Release and running flutter build ios, switching to Xcode (via the Runner.xcworkspace file) - then I hit Run in Xcode with a physical phone connected.

I found the onPageFinished was getting called before the Ready message was being delivered. This is most likley due to the fact my iPhone is very slow and old (iPhone 5).
I've added a 5 second tollerance before the page is reloaded which fixes the issue. I've included this in my open PR:
https://github.com/sarbagyastha/youtube_player_flutter/pull/160

Does this issue exist in v7.0.0 ?


Do an analysis of volunteer applications in limbo for active and inactive clubs

Business Goal
We are suspicious that a high number of volunteers are applying to join a club but never being accepted. This analysis task is to see how much of this affects us.
Analysis Tasks

[ ] See how many volunteers have 1 or more pending application
[ ] See top countries
[ ] See if it's grouped by clubs (are there clubs with lots of pendings?)
[ ] See if it happens for clubs with and without events
[ ] Break down the above by active clubs and inactive clubs
[ ] Anything else interesting?

numbers of dojos with requests where the user is not part of the Dojo : 610

SELECT count(*), verified, deleted, stage FROM (SELECT dojoId, ud.id, d.verified, d.deleted, d.stage FROM (SELECT unnest(join_requests)->>'dojoId' as dojoId, id FROM sys_user u) as q LEFT JOIN cd_usersdojos ud ON q.id = ud.user_id AND ud.dojo_id = q.dojoId JOIN cd_dojos d ON q.dojoId = d.id WHERE ud.id IS NULL) as gq GROUP BY dojoId, verified, deleted, stage;

WIP:  https://docs.google.com/spreadsheets/d/1BLe5RqEXCtsgfPMBDqkdQrEVQPYAzvrE2QQLHsHA0_w/edit#gid=0

Report:
https://datastudio.google.com/open/1dUMpxkhLBLd3qpXmm7PpifAJYH0mO9__
More than 600 dojos with unsolved invitations for a total of 1400 unanswered requests
62% are for dojos in UK/GB/USA, and they represent ~33% of all Dojos.
Inactive Dojos counts for 1/3 of all Dojos.
Members generally do 1 requests (66%).
Dojos with events receives slightly more requests than those without.


Releases

Hi,
Is it possible to have releases of stable versions of the code? It makes life easier for packagers and it's simple as a tag on github :)
Thanks.

There is a PR to bring this functionality into matplotlib: https://github.com/matplotlib/matplotlib/pull/4821

Thank you so much for the update!


Spurious interrupts not handled in ARMv7-R code with GICv2.

Having needed NEON, tens of megabytes of RAM and a very powerful CPU, I have a port of Zephyr to ARMv7-A. The port, quite predictably, shares a lot of code with the ARMv7-R version. I do believe my issue is relevant to your code. Please disregard this report should I be wrong in this respect.
Code in arch/arm/core/aarch32/isr_wrapper.S is as follows, edited for clarity:
bl arm_gic_get_active
push {r0, r1}
lsl r0, r0, #3	/* table is 8-byte wide */
cpsie i
ldr r1, =_sw_isr_table
add r1, r1, r0	/* table entry: ISRs must have their MSB set to stay
			 * in thumb mode */

ldm r1!,{r0,r3}	/* arg in r0, ISR in r3 */
blx r3		/* call ISR */

This is a problem because GICv2 can return 0x3ff as an indicator of a spurious interrupt. This is not handled, causing a read of memory which is not part of _sw_isr_table. Performing the blx instruction with the results of such a read is calamitous.
The fix is a simple comparison of the interrupt number against 0x3ff and exiting without calling any handlers.
Reference: ARM IHI 0048B.b, pages 1-20 and 3-50.

@carlocaione  can you take a look?

This is not the first time someone reported this, see #29058 for AArch64 so I think this is a real problem. I'll resurrect the PR for the AArch64, for the fix on AArch32 I think @ioannisg is the right person

This is not the first time someone reported this, see #29058 for AArch64 so I think this is a real problem. I'll resurrect the PR for the AArch64, for the fix on AArch32 I think @ioannisg is the right person

@carlocaione did you manage to resurrect the PR you mentioned?

Yes, that was fixed with the merge in #29058 but only for AArch64

@stephanosio  could you take a quick look?

@stephanosio could you take a quick look?

@ioannisg will do.


fix: unref the timer

fix #185
According to node's documentation, calling unref on a timer won't keep the node process alive:
https://nodejs.org/docs/latest-v12.x/api/timers.html#timers_timeout_unref
Hm, slight concern here:

Calling timeout.unref() creates an internal timer that will wake the Node.js event loop. Creating too many of these can adversely impact performance of the Node.js application.

Comparing this to adding --exit to a mocha command, so it definitely exits after all tests have finished, the latter might be the lesser of two evils after all.

Another option that comes to mind is adding a parameter to timeoutSignal, e.g.:
/**
 * Creates a timeout signal which allows to specify
 * a timeout for a `fetch` call via the `signal` option.
 *
 * @param {number} ms timeout in milliseconds
 * @param {boolean} unref whether the timer created shouldn't prevent the node process from exiting
 */
const timeoutSignal = (ms, unref = false) => {

Another option that comes to mind is adding a parameter to timeoutSignal:

timeoutSignal is a pure convenience function, short for:
  const controller = new AbortController();
  setTimeout(() => controller.abort(), 1000);
  const { signal } = controller;

adding a parameter controlling low-level system behaviour seems counterintuitive.

After further consideration, going with --exit in my tests seems the better solution.


Provide paths to JDK and Android tools for automation

Is your feature request related to a problem? Please describe.
Trying to set this tool up in a Docker container. There doesn't appear to be a way to provide the paths to the JDK and android tools via command line. Also being able to change these paths if I got them wrong?
Describe the solution you'd like
Is there a flag for providing these values? I looked around issues and noticed --sdk_root but that generated an error ("cli ERROR "--sdk_root=/opt/java/openjdk/bin/" is not a valid command!")
In addition to providing the JDK tools, can the entire process be automated? Currently I have to enter some details in the tool ("? Domain being opened in the TWA:") while this could all be inferred from the provided URL.

bubblewrap will read the JDK and Android SDK path from ~/llama-pack/llama-pack-config.json if it is available. Example file:
{
    "jdkPath":"/usr/lib/jvm/java-11-openjdk-amd64",
    "androidSdkPath":"/home/peconn/Android/Sdk"
}

Does that work for you? (We still may want to see to this feature request.)
Also, @andreban we should probably update that path to ./bubblewrap/bubblewrap-config.json.

We're tracking changing the name in #159
An alternative would be using environment variables for the paths.
We already have BUBBLEWRAP_KEYSTORE_PASSWORD and BUBBLEWRAP_KEY_PASSWORD for the keystore passwords.

@PEConn I copied in that file and confirmed it is available (I'm running as root so it's /root/llama-pack/llama-pack-config.json)
My run command is bubblewrap init --manifest
It still prompts for the path to JDK

@kross-italk Let me know if you plan on publishing the docker container. That sounds quite interesting, and an idea would be making the setup available in this repo as well.

Duplicate of #222


Back up limitations for striped disk

I did not see any limitation of disk size for back ups, besides of the number of disk attached, but is there no limitation in size? (For Recovery Service I believe it was 4TB) What I want to ask is if I were to stripe two 4TiB disks and create on logical 8TiB disk (i.e. RAID0) will Azure Backup support this?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8d3447ce-fb16-f2ec-126e-91168af07bd1
Version Independent ID: 65048fd2-f450-2046-115d-3846a6f5be1a
Content: Azure Backup: Prepare to back up virtual machines
Content Source: articles/backup/backup-azure-arm-vms-prepare.md
Service: backup
GitHub Login: @markgalioto
Microsoft Alias: markgal

Thanks for the question! We are investigating and will update you shortly.

@v-maroge My apologies for the delay, I reached out to the internal PM a few days ago but did not get any response, I assigned it to the author so they can follow up.
Thanks,
Adam

@Adam-Smith-MSFT  Hi, please assign to me

@rayne-wiselman thank you!

@rayne-wiselman Hi, please let me know if any additional detail is needed to answer my question.

@v-maroge Hi Marika, I see you got an answer to this on an internal alias. thx
#please-close

@v-maroge We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.

What was the answer to the question?


URGENT: libs/libc/stdlib: remove BSD-4 clause code

Summary
The BSD-4 Clause may cause issues with comercial products and should be avoided

All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors.

More information
https://www.gnu.org/licenses/bsd.html.en
https://www.previti.it/en/lights-and-shadows-open-software-licensing-4-clause-bsd-license https://lists.apache.org/thread/1jbvs6g96x62yq2yj8okv0gd2v3t75n7
Alternative implentation
http://git.musl-libc.org/cgit/musl/tree/src/stdlib
Note: Please adhere to Contributing Guidelines.
Impact
LICENSE
Testing
CI

@jerpelea where do you identify the code is BSD-4, not BSD?
BTW, qsort/bsearh is used in many places, we need replace with alternate implementation, instead removing it.

Summary
The BSD-4 Clause may cause issues with comercial products and should be avoided
3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors.

iirc, the UCB has retroactively removed the clause.
cf. https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=22280
depending of the history of these files (i dunno. @gregory-nutt do you remember?)
we can probably just update the license as NetBSD and other BSD derivatives did.
at the worst case, we can re-fork from the recent versions of BSDs.

@jerpelea where do you identify the code is BSD-4, not BSD?

these files themselves have copies of the notice.

@yamt we can not remove the clause in our code. It is better to fork a newer copy or replace to avoid possible issues

@jerpelea where do you identify the code is BSD-4, not BSD?

these files themselves have copies of the notice.

unfortunately this is not enough

@yamt we can not remove the clause in our code. It is better to fork a newer copy or replace to avoid possible issues

even if the author (UCB) says ok? why not?

@jerpelea where do you identify the code is BSD-4, not BSD?

these files themselves have copies of the notice.

unfortunately this is not enough

i was just replying to @xiaoxiang781216 's question.

anyway, regardless of the licenses, it's probably a good idea to re-fork from the latest versions
because our qsort seems to lack a few important fixes done in BSDs.

anyway, regardless of the licenses, it's probably a good idea to re-fork from the latest versions because our qsort seems to lack a few important fixes done in BSDs.

can you take care of it ?

Hello world :-) Here is the FreeBSD src repo with the functions:
https://cgit.freebsd.org/src/tree/lib/libc/stdlib

bsearch:

NuttX: https://github.com/apache/nuttx/blob/master/libs/libc/stdlib/lib_bsearch.c.
FreeBSD: https://cgit.freebsd.org/src/tree/lib/libc/stdlib/bsearch.c.
FreeBSD manpage: https://man.freebsd.org/cgi/man.cgi?query=bsearch.
FreeBSD version has 3 clause BSD license (SPDX-License-Identifier: BSD-3-Clause), seems compatible, may need some minor tweak if we do not need block bsearch_b() variant and to use old param names + documentation, but these may come handy?

qsort:

NuttX: https://github.com/apache/nuttx/blob/master/libs/libc/stdlib/lib_qsort.c.
FreeBSD: https://cgit.freebsd.org/src/tree/lib/libc/stdlib/qsort.c
FreeBSD manpage: https://man.freebsd.org/cgi/man.cgi?query=qsort.
FreeBSD version has 3 clause BSD license (SPDX-License-Identifier: BSD-3-Clause), seems compatible, may need some minor tweak if we do not updated implementation / variants + documentation, but these may come handy?

anyway, regardless of the licenses, it's probably a good idea to re-fork from the latest versions because our qsort seems to lack a few important fixes done in BSDs.

can you take care of it ?

maybe.
but it's a "sooner or later" item for me.

[I posted this hours ago via email, but it didn't make it]
Wouldn't it make sense to add a BSD 4-clause selection to the configuratioin? It should include a warning that selection of the option will cause violation of newer GPL licenses and will require some advertising.
Yes, BSD 4-clause cannot be linked with current GPL.  That is GPL forbids linking with any other license that has additional requirements beyond GPL (such as the advertising clause).
[I thought UC Berkeley had waived that clause, but perhaps that is not the case.  We talked about this extensively when we became Apache and out mentor assured us that there was no issue.  Revisiting those old discussions of 2019-2020 would be worthwhile.

@cederom: Thank you @jerpelea :-) As CI testing reveals this change will break lots of things, we need to replace existing problematic functions with updated compatible and required license ones, I have provided examples from FreeBSD src that already have the SPDX License Identifiers set to BSD-3-Clause :-)

@yamt: talking about SPDX, there is a dedicated -UC one for the UCB license: https://spdx.org/licenses/preview/BSD-4-Clause-UC.html because it's effectively same as BSD-3-Clause. read the "Notes" section if you are interested.

Thanks @yamt but the 3rd advertising clause is still here and what I understand this is the main problem and concern not to enforce such advertising on end-users?

i don't see why you (@cederom and @jerpelea) think it a problem after the statement from UCB.

[I thought UC Berkeley had waived that clause,

it's my understanding.

If the BSD 4 -> 3 clause is legal then we could only rewrite the license header without touching the code and this is perfect situation.. we just need some official legal statement citation for instance this one: https://ipira.berkeley.edu/sites/default/files/amendment_of_4-clause_bsd_software_license.pdf :-)

anyway, regardless of the licenses, it's probably a good idea to re-fork from the latest versions because our qsort seems to lack a few important fixes done in BSDs.

can you take care of it ?

maybe. but it's a "sooner or later" item for me.

this is a blocker for the release

If the BSD 4 -> 3 clause is legal then we could only rewrite the license header without touching the code and this is perfect situation.. we just need some official legal statement citation for instance this one: https://ipira.berkeley.edu/sites/default/files/amendment_of_4-clause_bsd_software_license.pdf :-)

Do you have time to fork and adapt the new code?

anyway, regardless of the licenses, it's probably a good idea to re-fork from the latest versions because our qsort seems to lack a few important fixes done in BSDs.

can you take care of it ?

maybe. but it's a "sooner or later" item for me.

this is a blocker for the release

porting latest fixes (what my comment above was about)
and solving the license "issue" (which is not really an issue as far as understand)
are two separate topic i guess.
the release blocker is the latter, not former, right?

If the BSD 4 -> 3 clause is legal then we could only rewrite the license header without touching the code and this is perfect situation.. we just need some official legal statement citation for instance this one: https://ipira.berkeley.edu/sites/default/files/amendment_of_4-clause_bsd_software_license.pdf :-)

Do you have time to fork and adapt the new code?

why don't you just update the license?
it would be safer and thus more appropriate for a last-minute change for a release.

@cederom: If the BSD 4 -> 3 clause is legal then we could only rewrite the license header without touching the code and this is perfect situation.. we just need some official legal statement citation for instance this one: https://ipira.berkeley.edu/sites/default/files/amendment_of_4-clause_bsd_software_license.pdf :-)

@jerpelea: Do you have time to fork and adapt the new code?

I will update the license header to 3 clause.. in a minute it will be ready :-)
We may update the code after a release is made to have more time for testing ok? :-)

@cederom @yamt @patacongo  I replicated and documented the license change.
The license should be fine now
Thanks for doing the research and provide feedback.

@cederom: If the BSD 4 -> 3 clause is legal then we could only rewrite the license header without touching the code and this is perfect situation.. we just need some official legal statement citation for instance this one: https://ipira.berkeley.edu/sites/default/files/amendment_of_4-clause_bsd_software_license.pdf :-)

@jerpelea: Do you have time to fork and adapt the new code?

I will update the license header to 3 clause.. in a minute it will be ready :-)
We may update the code after a release is made to have more time for testing ok? :-)
Update: I can see @jerpelea already updated, thanks Alin! :-)

please unblock the review


Parser does not handle byte values

Describe the bug
In package.go, there is code for parsing constant values. This handles hexadecimal, octet and decimal values, but fails (which I believe gets recovered and printed out as a warning) on binary values like 0b00
 warning: failed to evaluate const MyConst at path/to/directory/main.go:3:7, strconv.ParseUint: parsing "b00": invalid syntax

To Reproduce

Create a main.go with the following code:

package main

const MyConst byte = 0b00

Run swag init

Expected behavior
No warning should be generated
Your swag version
1.8.10
Your go version
go1.19.4 darwin/amd64
Desktop (please complete the following information):
macOS Monterey 12.6
Additional context:
Happy to submit a PR for this

This seems to be a specific case of the issue observed in #1516, where parsing fails and warning messages get printed, but the spec generates successfully in the end

@zephyap I made a PR fixing this but got stucked making the unit_tests for that new code. If you can help we with that would be great
https://github.com/swaggo/swag/pull/1475/files


Superstream's thumbnails aren't loading

Source information
SuperStream 13.10
Source language
English
Steps to reproduce
Just access SuperStream through the app.
Expected behavior
For thumbnails to load
Actual behavior
Thumbnails don't load :(
Aniyomi version
App version: 0.14.6-6691 (standard, 5fd00d4a1, 105, 2023-11-02T23:11Z)
Android version
13
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Closing in favour of #3305


Roll Engine from de341faa4d51 to df30ffef4fc0 (8 revisions)

https://github.com/flutter/engine/compare/de341faa4d51...df30ffef4fc0
2020-12-08<EMAIL_ADDRESS>[web] Fix edge cases when force-breaking lines (flutter/engine#22910)
2020-12-08<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from 8cOXjqyWN... to 1LDC_Iu1_... (flutter/engine#22933)
2020-12-08<EMAIL_ADDRESS>Roll Skia from b87975c13381 to cdd6cced4520 (3 revisions) (flutter/engine#22932)
2020-12-08<EMAIL_ADDRESS>Move the WindowInsetsAnimation.Callback implementation to an inner class to avoid Android class loader warnings (flutter/engine#22916)
2020-12-08<EMAIL_ADDRESS>[canvaskit] fix TransformLayer.preroll (flutter/engine#22890)
2020-12-08<EMAIL_ADDRESS>Roll Dart SDK from baa92e08fee4 to d75741b19133 (7 revisions) (flutter/engine#22928)
2020-12-08<EMAIL_ADDRESS>Roll Skia from ff18ff6b295c to b87975c13381 (2 revisions) (flutter/engine#22927)
2020-12-08<EMAIL_ADDRESS>Stop potential lockup due to GHashTable being modified when cleared. (flutter/engine#22917)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from 8cOXjqyWNP4F to 1LDC_Iu1_Fyb
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


hydra-cli: init at 0.2.0

Adding hydra-cli

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[X] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Thanks for this PR :)
Why are you not using carnix?

Thanks for this PR :)
Why are you not using carnix?

Because it doesn't work reliably. hydra-cli doesn't even build anymore with updated dependencies. I think hydra-cli itself might have to switch away so i prefer to not use it for nixpkgs either.

@mmahut thanks a lot for your review. much appreciated :)

@gilligan thanks!

hm, it seems cargoSha256 was no longer correct when Hydra built it: https://hydra.nixos.org/build/102205464/nixlog/2
I don't really know how this possible. Did the rust community update in place a dependency?
Anyway, i'm submitting a PR with the correct hash.

Did anything in cargo vendor change? (IIRC that already happened several months ago when we had to fix all cargo hashes).

@Ma27 I don't think so.