encoding/json: remove fmt dependency?

Would there be interest in a PR that removes fmt as a dependency in encoding/json, if doing so didn't overly complicate the code?
I ask because fmt is a large dependency to pull in for what appears to be exclusively error formatting in decode.go.
Happy to contribute this.

Maybe? Got any before/after numbers?
/cc @crawshaw

None yet; you mean for binary size or performance-in-error?
Contributing to Go is something of a time investment so I didn't bother doing any work before checking if there was interest.

For whatever metric you cared enough about to file this bug.

Ha, OK: background then. I'm using GopherJS to transpile some projects to JS for a dashboard. While this is the sort of case where large JS files are OK, because it's a long-running browser App and load-times are OK, I noticed that the binaries were huge.
Two obvious culprits were net/http, which was pulling in transpilations of the entire TLS stack, and fmt, which has a reputation for being large.
So, while Go binaries being large is generally simply taken as a fact of life in go build land, over in gopherjs build land it's another story, because 3.5M JS libraries are essentially useless unless the comprise the whole core product.
..hence my recent crusade to try and reduce the use of fmt.Errorf when errors would suffice. I don't yet know that to be the case in encoding/json, because at least here the f part of Errorf appears to be leveraged, as is the de-interfacing powers of fmt.

encoding/json already depends on strconv which has https://golang.org/pkg/strconv/#Quote and is about the only interesting use of fmt in the json package.
So try it and see how much smaller the Javascript gets.

How many applications will benefit from this?
I imagine it'd be find an application that only uses encoding/json but not
fmt or any other packages that use fmt.

Is there not a mild intrinsic value in partitioning, anyway? And value also in using the appropriate tool, perhaps in this case errors for minor errors?
As I said, formatting of interface{}s may be important here when I dig in. In which case, fmt may be the best fit for purpose. If not, why keep it?
On 7 May 2016 00:23:24 IST, Minux Ma<EMAIL_ADDRESS>wrote:

How many applications will benefit from this?
I imagine it'd be find an application that only uses encoding/json but
not
fmt or any other packages that use fmt.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/golang/go/issues/15583#issuecomment-217585937

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

I removed the dependency on fmt from encoding/json by using strconv.Quote.
(quick and dirty patch at
https://gist.github.com/minux/f9b68a62be8c5983b70ffc756824142f)
Then compiling a simple test program that only json.Marshal a simple object:
Before: 2014143 bytes
After: 1832613 bytes
There are 9% reduction on binary size. But again, I don't think removing
the fmt dependency would benefit many real applications (not to mention
that removing fmt means making the code in encoding/json less readable.)

The other benefit to fewer dependencies is that the dependency graph is sparser, so more things can be compiled concurrently. This applies whether or not the code uses fmt somewhere else. The go command is not as good at taking advantage of this now as it could be, but I hope that that will improve next cycle.
I think the patch could be made nicer by introducing local functions errorf and errorf2 (naming improvements welcome), at which point the patch is basically s/fmt.Errorf/errorf/ or s/fmt.Errorf/errorf2 as appropriate.

@josharian: Interesting, I hadn't even considered that; still a lot of compiler-fu to learn. :)
@minux: I don't think that harms readability much, personally? Also, 9% is pretty significant in my book, and may work out even better for downstream hax like GopherJS. For clarity, a variadic local errorf as @josharian suggests would clean things up significantly.

@minux: I made some changes to some GopherJS code to avoid encoding/json, using my fmt-free fork of github.com/kurrik/json instead. It shaved about .5Mb from the resulting unminified JS (1.5Mb->961k), which was a bit over 33%. So, while the premium of 9% in pure-Go might seem mild, for GopherJS it's a huge difference.

The huge reduction probably suggests there is something
very inefficient about the fmt package. I'd suggest figure
out why GopherJS compiler generates so much Javascript
for the fmt package first.
The 9% reduction only applies to toy examples. Again, I
can't think of any real world Go application that only uses
encoding/json, but not (directly or indirectly) fmt.

Plenty of my packages use JSON but not fmt? Not all applications push out human-readable text output yunno. ;)
On 8 May 2016 20:55:52 IST, Minux Ma<EMAIL_ADDRESS>wrote:

The huge reduction probably suggests there is something
very inefficient about the fmt package. I'd suggest figure
out why GopherJS compiler generates so much Javascript
for the fmt package first.
The 9% reduction only applies to toy examples. Again, I
can't think of any real world Go application that only uses
encoding/json, but not (directly or indirectly) fmt.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/golang/go/issues/15583#issuecomment-217742437

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

fmt is not only about user output.
Of the 155 std packages, 83 of them uses fmt.
Pretty much all io related packages (net, net/http,
os/user, log) use fmt, so I will be very surprised
to learn some useful Go application that doesn't
use fmt at all.
Basically, the only way such a program can interact
with the outside world without fmt package is via
the syscall and os packages.

It's no surprise that text-heavy tools use fmt, but a lot of packages use it only for Errorf. If the argument is that fmt is unavoidable, and we should learn to love to bomb.. I don't buy it.
If they're all like encoding/json and a little effort could strip it, then why not incrementally decouple the stdlib and remove it?
I've just stripped encoding/xml, and it was harder. Formatting was used more often for quoting and interface conversions. But even then, the types and formats were all the same; string, int, and interface.Type. The full power of fmt was not warranted, merely a helper that would convert and concatenate variadic simply types.
On 8 May 2016 23:33:31 IST, Minux Ma<EMAIL_ADDRESS>wrote:

fmt is not only about user output.
Of the 155 std packages, 83 of them uses fmt.
Pretty much all io related packages (net, net/http,
os/user, log) use fmt, so I will be very surprised
to learn some useful Go application that doesn't
use fmt at all.
Basically, the only way such a program can interact
with the outside world without fmt package is via
the syscall and os packages.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/golang/go/issues/15583#issuecomment-217750266

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

@minux - I think you're right that it would be rare for fmt to be missing from a meaningful program that uses json... but that's not a reason to keep the dependency. Is there any reason that this mild bit of separation is harmful? While you're correct that the benefits are  small, it should be done anyway if there is no downside and the change is simple.

I agree with @minux that almost all real programs will bring in fmt anyway and you should first understand why fmt compiles to such large GopherJS output code first.
The other possibility is modify the GopherJS compiler to replace fmt.Errorf with a lighter work-alike. But that's kinda fixing the wrong problem.
I don't want to start making every package depending on fmt have its own fmt-like "minimal" versions. That would mean that in a real program we'd have both the actual fmt implementation as well as all the "minimal" fmt clones, making the size problem even worse.
I'd rather just see the linkers (Go and GopherJS's) fixed to do more dead code elimination, if that's the issue. (sometimes unnecessary generated init funcs pin things that might not otherwise be needed).
But if it turns out that a perfect linker couldn't dead-code eliminate something (perhaps because the code paths to take depend on the Errorf format string), perhaps only then could we change something to give the linker more information. But only if it helps significantly.

Personally I feel that, architecturally, fmt would probably have more logically been broken into the scan and formatting functions. When I import fmt, am I not also importing the entire Scan tooling? At least in GopherJS this appears to be the case?
As it happens, making "lite" versions for my GopherJS projects is exactly what I'm doing right now. I'm making a fmt clone for just the most common 99% of fmt usecases in the wild: fmt.Errorf for simple errors, and fmt.Println/fmt.Sprintf for simple datatypes and format strings. Most of the extra 'goodies' in fmt are unnecessary for these cases.
Perhaps the most valuable change would be to make errors just a little bit richer, to entice people away from fmt.Errorf for things that don't really call for it. If errors.New had been a variadic that accepts and default-formats inputs (a la "%v"), joining without spaces, then perhaps people wouldn't be using fmt.Errorf so much. :)

When I import fmt, am I not also importing the entire Scan tooling? At least in GopherJS this appears to be the case?

A good linker should discard things which are unused. I don't know whether GopherJS can do that.

None of the Scanf code is included in a binary if you use only the print functions in fmt.
(This was fixed in https://go-review.googlesource.com/c/17398/)
As Brad says, this may be an issue in the GopherJS linker, whatever "linker" means in that context.

I agree with @bradfitz that trying to remove a single dependency from a package in order to optimize performance is setting a bad precedent. The Go programming language and its compilers are meant to make our jobs, the humans, easier, and I want to continue to be be able to write natural and idiomatic Go code.

I'd rather just see the linkers (Go and GopherJS's) fixed to do more dead code elimination, if that's the issue. (sometimes unnecessary generated init funcs pin things that might not otherwise be needed).

This is where I'd like to see time and effort being spent, rather than trying to eliminate usages of packages in a few places, because that is likely to regress in the future, or cause pain to people trying to write idiomatic Go code because suddenly there are certain packages they shouldn't import.

A good linker should discard things which are unused. I don't know whether GopherJS can do that.

But if it turns out that a perfect linker couldn't dead-code eliminate something (perhaps because the code paths to take depend on the Errorf format string), perhaps only then could we change something to give the linker more information. But only if it helps significantly.

GopherJS is able to and currently performs high quality DCE, potentially better than generic JS minifiers can, because it has full access to the original source that's being built and it sees what is needed/used. However, it follows the constraint that it must always produce valid code that works as specified in Go spec; it can't take shortcuts that would go against Go spec.
However, its DCE efforts are significantly thwarted because of run-time reflection via reflect package. That ability means it's not possible to determine at compile type if some types, etc., are not used and eliminate them, because they may be accessed via reflection (which in 99% of cases they are not, but to generate correct programs, that 1% possibility cannot be discarded). /cc @neelance
There is an open issue https://github.com/gopherjs/gopherjs/issues/186 to implement optional "unsafe aggressive DCE" where if you promise not to use reflect to access things that aren't statically mentioned, GopherJS could eliminate them (and if you break your promise, behavior is undefined). However, it's not implemented yet.

The GopherJS compiler has access to the full source code, so it can tell if
a certain type has not been used at all (even with reflect, you still can't
use a type that has not been created statically somewhere in the program.)
Then it should be able to eliminate the scanner related types (and methods)
in the fmt package. See also recent @crawshaw's changes on linker DCE and
reflect.

even with reflect, you still can't use a type that has not been created statically somewhere in the program.

I think that's true for types, but I don't think it is for methods. Sorry, I should've been more precise in my post above (instead of saying "types, etc.").
See https://godoc.org/reflect#Value.MethodByName. An arbitrary program can get user input from keyboard or over network as a string and use MethodByName and Call a method that is not statically mentioned anywhere.
Not being able to eliminate methods causes a chain reaction, since those methods will mention other funcs, types and their methods, and usually pull in large parts of Go packages that are not statically used.

That's not what is happening here. The gc toolchain does eliminate all the
fmt scanning functions from a simple example program that uses
encoding/json.
Even if you can obtain a non-exported method by name, you still can't do
much on it, so an ideal linker could still remove the unreferenced method
body and only leave a placeholder. Again, similar schemes have been
implemented in gc, search crawshaw's recent changes for details.

No thanks. I think the expectation is that basically every Go program in the world is going to import fmt one way or the other.


Question on the number of clusters

First of all, thank you for your great work on object tracking with LiDAR.
I am studying on LiDAR data association with your work and it helps me a lot.
I got a question about the number of clusters that your code publish.
Until now, your code publish only 6 clusters.
In case that # of objects is over 6, modification must be needed.
In my case, I have my own code that process the data to clustering stage.
What is your suggestion about modification that could make the code publish the exact number of clusters matching to the number of clusters.(I came up with for loop that generate the KalmanFilter class, and not sure is it the best way.)
Thank you again for your work and advise in advance

Hi @jhyim5589 , I'm glad that this repository is useful for your study and work.
This line in the code limits the number of processed clusters to be the top 6 objects:
https://github.com/praveen-palanisamy/multiple-object-tracking-lidar/blob/8c828c1095b58e9af6d92ca17890ebd0bbf29331/src/main.cpp#L281
Instead of for (int i=0;i<6;i++) you can do something like for(int i=0, i< objID.size(); i++) and go from there to update the code to support more than 6 objects.
Note that, the computation time will increase as the number of objects increases.
Hope that helps. Feel free to submit a pull request with your modifications for review/integration.

@jhyim5589 , Closing this since the question was answered and there's no updates. Please re-open or create a new issue if needed.
Please consider submitting a pull request if you would like to integrate your work on extending to more than 6 objects.

Hi @praveen-palanisamy
Thank you for your kind reply on my first question.
I am still working on modifying # of kalman filters based on # of clusters.
I have met another problem here, and now ask for your advise.

Initiating kalman filter should be outside of the callback.
I need # of clusters to initiate exact # of kalman filters.
how can I initiate kalman filters in this case?

your advise will be great help.
thank you so much.

Hi @jhyim5589 ,
Good to see your continued interest.

That's right. The Kalman filter needs to be initialized outside the callback.
This is a standard question in multiple-object detection scenarios. It is rare to know beforehand how many objects will be in the LIDAR scans or in the scene. One way is to limit the maximum number of objects that can be detected and tracked (e.g. 6 as in the current code). The other way is to dynamically create a filter instance and start tracking when new object clusters are detected. For this, you could use a vector of Kalman filters (std::vector<KalmanFilter> KFs) and add (KFs.push_back(...)) new filters when a new, unassociated cluster is detected.

Hope that helps.

Thanks very much.
Actually I am working through python, I am not sure KFs class is offered in python opencv.
Still your advise is greatly helped.
Thank you so much.

It would be create if the number of clusters could expand based on new input clusters, with new KFs being initialised upon new cluster detection.
If anyone has made a fork with this please let me know or I will try implement it myself (in cpp)!


Is there any way to use this with a MySQL connection requiring a CA Cert?

Using on Amazon RDS, I need to make the mysql connection using a CA Cert file. (the specific file is publicly accessible https://s3.amazonaws.com/rds-downloads/rds-ca-2015-us-east-1.pem)
is there a way to specify to use this CA cert file when setting up?
On a slightly related note, I attempted to change my config vars (for DB_HOST, DB_NAME, DB_PASSWORD, etc) but I noticed that upon changing config vars and reloading the app, step "Database Setup" still just has blank information here (and a database server of <IP_ADDRESS>), it does not seem to pick up the DB settings as specified by the config vars.

I got this working by supplying Piwik with my root MySQL password, which does not require SSL by design. (It does not seem to work with any un/password combination that requires SSL)
However, 1 day later, my installation seemed to revert to its original state, and now when I load the application I am back at the application screen and my username/password settings appear to not have persisted.
Please note I have explicitly set my Heroku environment variables DB_HOST, DB_NAME, DB_PASSWORD, DB_PORT, DB_PREFIX, and DB_USERNAME, but they do not appear on Step 3 of the Setup

Unable to find a way to use SSL CA Cert in configuration. Closing


Cleanup PR (remove overly defensive extractEntityId)

Remove overly defensive extracyEntityId

Codecov Report

Merging #49 (1b8add3) into main (c16e582) will decrease coverage by 0.12%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##             main      #49      +/-   ##
==========================================
- Coverage   76.02%   75.89%   -0.13%
==========================================
  Files         165      165
  Lines        3011     3004       -7
  Branches       69       77       +8
==========================================
- Hits         2289     2280       -9
- Misses        722      724       +2

Impacted Files
Coverage Δ

...a/surge/kafka/KafkaPartitionShardRouterActor.scala
62.58% <50.00%> (-1.11%)
:arrow_down:

...health/windows/actor/HealthSignalWindowActor.scala
91.95% <0.00%> (-2.30%)
:arrow_down:

.../surge/internal/kafka/KafkaProducerActorImpl.scala
86.58% <0.00%> (-0.44%)
:arrow_down:

Continue to review full report at Codecov.

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


propose: Allow execute functions

Hello, in this commit: https://github.com/crhdev/cakephp-scheduler/commit/83b584123a7cd5412eb47060671180028aeb2278 , I was playing a little to be able to allow the execution of functions instead of cake command. In my application, I have some use cases where creating a command is unnecessary. Do you think it may be possible to integrate something like this?
    public function schedule(Scheduler &$scheduler): void
    {
        $scheduler->execute(function($a, $b, $c, ConsoleIo $io) {
            $io->info('Sum');
            return $a + $b + $c;
        }, [1,2,3])->everyXMinutes(1);
    }

So you don't test these kind of functions?
I don't really like breaking this kind of structure since commands are really easy to make via bin/cake bake command and thats it.
Especially since all that Command class needs to have is the execute method. You can just remove the buildOptionParser method if you don't need it.


Feature/interface

Submitting project for code review. This app was designed following the given instructions.

A user can enter a city and search for its weather conditions.
Error handling was applied.
A descriptive readme was added.
Basic styling added.

Thanks for the review @addod19. Required changes have been done.
Requesting for another code review.

HI @mikenath223, thanks for the review. The background of the page was already changing when submitting the city, please feel free to download and review the code again, maybe it was the live link that was not working properly. It was fun to add the toggle button, It was not on the requirement though. Submitting again for another code review.
Regards.

HI @mikenath223, thanks for the review. The background of the page was already changing when submitting the city, please feel free to download and review the code again, maybe it was the live link that was not working properly. It was fun to add the toggle button, It was not on the requirement though. Submitting again for another code review.
Regards.

Rest assured that your code was downloaded and run locally @epinczinger 🙂

Thanks Mike!!


Mfma matrix core timing

A lookup table is used with values taken from the mi200 and mi300 ISA
specifying how long a SIMD's matrix core unit will be consumed by MFMAs.
This time can be adjusted for all MFMAs using the --mfma-scale parameter.

Needs to be merged in after #1693

@mjkpolo Hello, thank you for your contribution! Could you give an update on the status of this PR? Also, if you are able to make the changes requested within the next day or so/by the end of this week, we may be able to get this PR into the staging branch.

@mjkpolo Hello, thank you for your contribution! Could you give an update on the status of this PR? Also, if you are able to make the changes requested within the next day or so/by the end of this week, we may be able to get this PR into the staging branch.

@mjkpolo is working towards an ISCA submission, so my guess is he won't be able to address these comments in the timeline you provided.

Should I just add a commit with the changes? It seems like we just want comments and an assert?

Should I just add a commit with the changes? It seems like we just want comments and an assert?

Thanks @abmerop ! I also fixed the print info.

Should I just add a commit with the changes? It seems like we just want comments and an assert?

Thanks @abmerop ! I also fixed the print info.

@abmerop since I pushed the print fix it won't let me approve ... can you?


refactor: duplicated package imported

Removing duplicated package imported.

@mergify backport v1.5.x v1.4.x


Question about world vocoder processing?

Hey guys,
First of all, thanks for putting all the effort to build Merlin. It's a GREAT resource. I have a question about the WORLD processing and I hope you could help me sort it out.
Can someone explain to me why do you do this in the WORLD processing?
$sptk/sopr -R -m 32768.0
As far as I understand, this is taking the root of the spectrum and then multiplying by 32768. However, I have no idea why you do that.
The file is here:
https://github.com/CSTR-Edinburgh/merlin/blob/master/misc/scripts/vocoder/world/extract_features_for_merlin.sh#L65
Thanks a lot!
Jose

I don't know the exact answer, but I think the computation of mel-cepstral coefficients (MCEPs) involves iteration based optimization. Thus to take care of numerical stability issues they multiplied the spectrum with some large number i.e. 32768(2^15)

WORLD's harmonic spectral envelope output is squared magnitude. In the script you linked SPTK's mcep is invoked with option -q 3 which is linear magnitude input format, hence the square root.
I'm guessing the multiplication factor is there for historical reasons similar to those bajibabu mentions, although the script uses -j 0 which disabled Newton-Raphson optimization. The scaling also affects the epsilon added to the periodogram prior to taking its log, but the used value of 1e-8 is probably already low enough to yield similar results with or without scaling.

Hey @wuaalb !
I saw your singing synthesis paper! It's SUPER nice :)
Actually, I'm kind of trying to replicate your setup for the WORLD vocoder. Although, I'm interesting in using it for speech synthesis from non-professional recordings. I'm using pysptk and the wrapper by Jeremy. I'm guessing (because of your contribution to the repos) you used those both, no?
It seems to me that the quality of the generated audio (in terms of noise and deformations) in your paper results is MUCH better than any configuration that I used previously. Do you have some advice on how to get there? Is it mostly because of quality of the original recordings? Is it because you kind of have manual f0?
Alsom thanks @bajibabu for your answer.
Cheers!
Jose

It probably has something to do with conversions between signed int and float. The value range in 16bit wav/raw files is -32,768 to 32,767, but often you'd expect audio to be float scaled between -1 and 1.
The comments in WORLD's wavread function state that it's "roughly implemented", so there might be some scaling operation missing in the source code (and later compensated in the data extraction script).
https://github.com/CSTR-Edinburgh/merlin/blob/master/tools/WORLD_v2/test/audioio.cpp


Request to defund the Fort Worth Police Department!

Template for Defund12, Fort Worth
To<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: [*** INSERT UNIQUE SUBJECT LINE***]
Message (Don't forget to replace the [x]'s with your information!)
Hello all,
My name is [NAME]. I am a resident of Fort Worth, Texas and I am emailing you today to demand a complete override on our Fort Worth Police Department in light of the Black Lives Matter protests being demonstrated across the US, but specifically our own community.
WE ARE JOINING TOGETHER TO DEMAND THAT YOU, MY LOCAL OFFICIALS, WILL vote NO on all police budget increase for the City of Fort Worth, vote YES to decrease police spending and budgets, and vote YES to increase spending on health care, education towards Fort Worth ISD as a whole, and community programs throughout the city of Fort Worth and Tarrant County.
The militarized tactics that our police have used against its citizens in response to peaceful protesting is not tolerated and unwarranted. To ensure your dedication to our city and citizens, I demand that you defund the Fort Worth Police Department by 75%, and start providing more support and funding towards our community efforts and organizations that serve our predominantly Latinx and Black communities, as these are the communities that are being targeted the most. By doing so, I believe this will prevent further police brutality and violence in the future. Our fellow Latinx and Black brothers and sisters living in these communities are living in persistent fear of being killed by state authorities like police, immigration agents or even white vigilantes, who are emboldened by state actors. According to some research I've done the Urban Institute mentions that in 1977 alone, state and local governments spent $60 billion on police and corrections. Despite continued profiling, harassment, terror and killing of Black communities, local and federal decision-makers continue to invest in the police, which leaves Black people vulnerable and our communities no more secure than it is at this moment.
Instead, that money could go towards building healthy communities, to the health of our elders and children, to neighborhood infrastructure, to education, to childcare, to support a vibrant Black future. The possibilities are endless.
We join in solidarity with the freedom fighters in Minneapolis, Louisville, and across the United States. And we call for the end to police terror.
Sincerely,
[NAME] [PHONE_NUMBER] [EMAIL] [ADDRESS]

Hi @austinzhuang, thank you for your submission! There is already an open request for Fort Worth, TX.
I am closing this issue in favor of the existing request just because it was filed earlier, not for merit or quality!
Please see #627 (https://github.com/defund12/defund12.org/issues/627) for more.


AzureRmWebAppDeployment@4 Output Variables Documentation

Could more documentation be provided for syntax/capturing the output variables?
Ex: I'd like to echo the hosted url.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 29c94df7-9de9-ea1a-8b77-d1e6023694dc
Version Independent ID: a525989e-2e0a-0399-556e-9011ee95da4e
Content: Azure App Service Deploy task - Azure Pipelines
Content Source: docs/pipelines/tasks/deploy/azure-rm-web-app-deployment.md
Product: devops
Technology: devops-cicd-tasks
GitHub Login: @RoopeshNair
Microsoft Alias: ronai

Thanks for letting us know. This issue is fixed in our new task reference, which is generated using the task source code and includes all task inputs, including any aliases here:
https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/azure-rm-web-app-deployment-v4?view=azure-pipelines#output-variables
Please check it out and let us know what you think. Thank you.


NO-REF updated readme to clarify publish steps

Project Reno Jira Ticket
ResearchNow Jira Ticket
This PR does the following:

Front End Review:

[ ] View the example in Storybook
[ ] Check against the Metronome documentation

please help me words.


[WIP] work without pyproject

using requirements.txt.in as input
Experimental, not sure I want to do this.

No I don't want to do this. Creating a pyproject.toml to declare top level dependencies and constrain them to VCS or editable urls with requirements.txt.in is easy enough.


Search  stuffs up buffers

Selecting a file to open using  in search mode (/) stuffs up the buffers for some reason, but opens fine normally without search. Similar behaviour can be seen by selecting other entries that appear in a search.
Open behaviour is fixed once the search prompt is gone (e.g. switching back to the menu).
https://user-images.githubusercontent.com/62098008/160389259-68b6786d-a1ea-4e6c-a7bd-989bbb1f5095.mp4

By "stuffs up the buffer", do you mean "does not reset the search?"
That behavior worked well for me because I always go back to it via a mapping which refreshes every time. The problem is that because the reset search refreshes, and that refresh is async, it will return with screen updates after the window has closed, which reactivates it. Leaving it alone when it goes into the background worked well for my usage but not for how you use it.
I'll need to update it to reset the search properly, in teh background, for the "current" position.

Hi sorry, I'm not too sure how to describe the buffer behaviour. I'm basically trying to describe the bufferline behaviour when opening a file after search ("inactive").


Fixing help text of "docker network --help" to be consistent

- What I did
changed networkUsage from hash table to multidimensional array because hash tables are not considered to be ordered (exact problem description in #21710 )
- How I did it
oriented on implementation of docker volume --help
- How to verify it
run docker network --help multiple times. output is now the same every time
Changed from hashmap to multidimensional array as in docker volume --help
closes #21710
Signed-off-by: Robin Naundorf<EMAIL_ADDRESS>

makes sense to me. I can't take the time to run it today. Code LGTM by eyeball.
Thanks @senk !

LGTM

LGTM 🐹


M3-1260 - Dashboard UI Tests

Adds a few simple tests to the dashboard
Adds a page object for future dashboard tests
Tagged elements with data attributes.

yarn && yarn start
yarn selenium
yarn e2e:modified

Coverage remained the same at 25.978% when pulling 99b4d6425fbe678e5c905eeeb0503115317bccd6 on patthiel:M3-1260 into 93cba31e8fca86473974c212bf85754efdd0a27a on linode:develop.


[proposal] Allow to bypass the Controller suffix convention

Hi,
This might sound like a detail, but I think that the "Controller" suffix convention should be removed, and any .js file in the api/controllers folder should be considered as a controller by Sails.
The current default behaviour with suffix is not consistent with the behaviour of api/models and api/policies folders that consider any files inside them as a model or a policy, whatever their name is.
Then, it is also redundant with the fact that controllers are in a folder already named controllers.
This way, one could name its controllers core.controller.js for example. Files that are used by controllers, but are not controllers or models themselves could be put into a api/helpers folder for example.
So far, I can't tell how to change configuration to have Sails to work this way. If Sails default behaviour can't be changed (and I guess that changing this convention would cost some efforts), at least adding a controller.js config file could help.

Howdy @eric-burel. Thank you for bringing this up! We've made a commitment not to change established conventions or default settings of Sails via the proposal process.  That said, a new configuration option like the one you mentioned could work.  What do you have in mind?

Yes of course I don't want to throw an ideological debate ^^
After investigating the code, I think it could be implemented simply by soft-coding the regexp that filters controller in the loadControllers function :
filter: new RegExp('(.+)Controller\\.(' + sails.config.moduleloader.sourceExt.join('|') + ')$'),
line 315 of the lib/hooks/moduleloader/index.js file.
Instead of controller it might be something like sails.config.controllers.suffix || 'Controller'

@eric-burel I like the idea of this (for example, I like to federate controllers sometimes, with separate actions in separate files).  I think that the first pass would be to implement a version of moduleloader hook that does it.  That keeps initial time investment to a minimum and let's folks start using this today in the current version of sails (i.e. by installing a separate package and overriding the core moduleloader hook).
If you wouldn't mind creating a repo with a standalone version of the moduleloader hook with your changes added, then it'll be easy for folks to start taking advantage of this patch today (and then meanwhile, we can get a good sense of how to approach module loading in the future).

Hi,
I might give try this next time I use Sails, but that could take some time ^^ Are there some unit tests for the module loader ?


Fix invalid TestADE example

The example TestADE dataset is invalid. This PR fixes the dataset.

Any objection to merging?


ADDED ANIMATION TO FLEX AND HOVER EFFECTS.

In this css file, i have added several animations and hovering effect which makes site look quite nice.

Thanks for your interest :)


[Question] How can I export keras model with SOK?

I ran following code in merlin-tensorflow:23.06 image:
import sparse_operation_kit as sok
import tensorflow as tf

class DemoModel(tf.keras.models.Model):
    def __init__(self,
                 max_vocabulary_size_per_gpu,
                 slot_num,
                 nnz_per_slot,
                 embedding_vector_size,
                 num_of_dense_layers,
                 **kwargs):
        super(DemoModel, self).__init__(**kwargs)

        self.max_vocabulary_size_per_gpu = max_vocabulary_size_per_gpu
        self.slot_num = slot_num            # the number of feature-fileds per sample
        self.nnz_per_slot = nnz_per_slot    # the number of valid keys per feature-filed
        self.embedding_vector_size = embedding_vector_size
        self.num_of_dense_layers = num_of_dense_layers

        # this embedding layer will concatenate each key's embedding vector
        self.embedding_layer = sok.All2AllDenseEmbedding(
                    max_vocabulary_size_per_gpu=self.max_vocabulary_size_per_gpu,
                    embedding_vec_size=self.embedding_vector_size,
                    slot_num=self.slot_num,
                    nnz_per_slot=self.nnz_per_slot)

        self.dense_layers = list()
        for _ in range(self.num_of_dense_layers):
            self.layer = tf.keras.layers.Dense(units=1024, activation="relu")
            self.dense_layers.append(self.layer)

        self.out_layer = tf.keras.layers.Dense(units=1, activation=None)

    def call(self, inputs, training=True):
        # its shape is [batchsize, slot_num, nnz_per_slot, embedding_vector_size]
        emb_vector = self.embedding_layer(inputs, training=training)

        # reshape this tensor, so that it can be processed by Dense layer
        emb_vector = tf.reshape(emb_vector, shape=[-1, self.slot_num * self.nnz_per_slot * self.embedding_vector_size])

        hidden = emb_vector
        for layer in self.dense_layers:
            hidden = layer(hidden)

        logit = self.out_layer(hidden)
        return logit

strategy = tf.distribute.MirroredStrategy()

global_batch_size = 1024
use_tf_opt = True

with strategy.scope():
    sok.Init(global_batch_size=global_batch_size)

    model = DemoModel(
        max_vocabulary_size_per_gpu=1024,
        slot_num=10,
        nnz_per_slot=5,
        embedding_vector_size=16,
        num_of_dense_layers=2)

    if not use_tf_opt:
        emb_opt = sok.optimizers.Adam(learning_rate=0.1)
    else:
        emb_opt = tf.keras.optimizers.Adam(learning_rate=0.1)

    dense_opt = tf.keras.optimizers.Adam(learning_rate=0.1)

loss_fn = tf.keras.losses.BinaryCrossentropy(from_logits=True, reduction=tf.keras.losses.Reduction.NONE)
def _replica_loss(labels, logits):
    loss = loss_fn(labels, logits)
    return tf.nn.compute_average_loss(loss, global_batch_size=global_batch_size)

@tf.function
def _train_step(inputs, labels):
    with tf.GradientTape() as tape:
        logits = model(inputs, training=True)
        loss = _replica_loss(labels, logits)
    emb_var, other_var = sok.split_embedding_variable_from_others(model.trainable_variables)
    grads, emb_grads = tape.gradient(loss, [other_var, emb_var])
    if use_tf_opt:
        with sok.OptimizerScope(emb_var):
            emb_opt.apply_gradients(zip(emb_grads, emb_var),
                                    experimental_aggregate_gradients=False)
    else:
        emb_opt.apply_gradients(zip(emb_grads, emb_var),
                                experimental_aggregate_gradients=False)
    dense_opt.apply_gradients(zip(grads, other_var))
    return loss

dataset = (
    tf.data.Dataset.from_tensor_slices(
        (
            tf.random.uniform([global_batch_size * 16, 10, 5], maxval=1024, dtype=tf.int64),
            tf.random.uniform([global_batch_size * 16, 1], maxval=2, dtype=tf.int64)
        )
    ).batch(global_batch_size)
)

for i, (inputs, labels) in enumerate(dataset):
    replica_loss = strategy.run(_train_step, args=(inputs, labels))
    total_loss = strategy.reduce(tf.distribute.ReduceOp.SUM, replica_loss, axis=None)
    print("[SOK INFO]: Iteration: {}, loss: {}".format(i, total_loss))

# Save model
model.export("./demo_model")

But when exporting model, an error occurred:
Traceback (most recent call last):
  File "demo.py", line 108, in <module>
    model.export("./demo_model")
  File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 3427, in export
    export_lib.export_model(self, filepath)
  File "/usr/local/lib/python3.8/dist-packages/keras/export/export_lib.py", line 365, in export_model
    export_archive.write_out(filepath)
  File "/usr/local/lib/python3.8/dist-packages/keras/export/export_lib.py", line 326, in write_out
    tf.saved_model.save(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/save.py", line 1240, in save
    save_and_return_nodes(obj, export_dir, signatures, options)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/save.py", line 1276, in save_and_return_nodes
    _build_meta_graph(obj, signatures, options, meta_graph_def))
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/save.py", line 1455, in _build_meta_graph
    return _build_meta_graph_impl(obj, signatures, options, meta_graph_def)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/save.py", line 1410, in _build_meta_graph_impl
    asset_info, exported_graph = _fill_meta_graph_def(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/save.py", line 803, in _fill_meta_graph_def
    signatures = _generate_signatures(signature_functions, object_map)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/saved_model/save.py", line 610, in _generate_signatures
    outputs = object_map[function](**{
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/polymorphic_function/saved_model_exported_concrete.py", line 40, in __call__
    export_captures = _map_captures_to_created_tensors(
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/polymorphic_function/saved_model_exported_concrete.py", line 69, in _map_captures_to_created_tensors
    _raise_untracked_capture_error(function.name, exterior, interior)
  File "/usr/local/lib/python3.8/dist-packages/tensorflow/python/eager/polymorphic_function/saved_model_exported_concrete.py", line 93, in _raise_untracked_capture_error
    raise AssertionError(msg)
AssertionError: Tried to export a function which references an 'untracked' resource. TensorFlow objects (e.g. tf.Variable) captured by functions must be 'tracked' by assigning them to an attribute of a tracked object or assigned to an attribute of the main object directly. See the information below:
        Function name = b'__inference_signature_wrapper_997'
        Captured Tensor = <?>
        Trackable Python objects referring to this tensor (from gc.get_referrers, limited to two hops) = [
                <sok.EmbeddingLayerHandle 'DenseEmbeddingLayerHandle' pointed to EmbeddingVariable:0>]
        Internal Tensor = Tensor("981:0", shape=(), dtype=variant)

What is the correct way to export model (or save model in SavedModel format)?

Hi @longern  SOK All2AllDenseEmbedding will be deprecated recently , please use SOK experiment API , here are some example:
1.lookup :https://github.com/NVIDIA-Merlin/HugeCTR/blob/main/sparse_operation_kit/sparse_operation_kit/experiment/test/function_test/tf2/lookup/lookup_sparse_distributed_dynamic_test.py
2.dump/load:https://github.com/NVIDIA-Merlin/HugeCTR/blob/main/sparse_operation_kit/sparse_operation_kit/experiment/test/function_test/tf2/dump_load/dump_load_distribute_static.py

@kanghui0204 Thanks for giving a h/u. I have a few questions regarding the deprecation of All2AllDenseEmbedding;

Will DistributedEmbedding be deprecated as well?
As SOK experiment API seems to require Horovod, will it be mandatory to use Horovod if we want to use SOK in the future?

@kanghui0204 Thanks for giving a h/u. I have a few questions regarding the deprecation of All2AllDenseEmbedding;
Will DistributedEmbedding be deprecated as well?
As SOK experiment API seems to require Horovod, will it be mandatory to use Horovod if we want to use SOK in the future?

Hi~ I have the same question about will DistributedEmbedding be deprecated as well?


Make Structure and MSBuildReferenceResolver public in FCS

Structure can be used by FCS clients, so let's open it.
Making MSBuildReferenceResolver accessible from another assemblies was needed in our case for it to be picked by ReSharper component container from a plugin at runtime.

@dotnet-bot test Windows_NT Release_ci_part2 Build please

@auduchinok
do you really ... really .... really need this to be public?  this is one of the components that makes desktop/cross platform compatibility almost impossible to achieve.  It is also the source of many of our "weird resolution bugs".
Kevin

@KevinRansom We're going to remove the use of MSBuildReferenceResolver and pass our own resolver instead in future, so it won't be needed then. It is required for us due to Rider works on custom bundled Mono on macOS and Linux and executes installed MSBuild using installed Mono/dotnet.
In the current time this type is published in FSharp.Compiler.Service.MSBuild.v12 package and FCS tries to locate it so it still can be used by other clients even now.
Reason it has to be public in our case is how ReSharper loads plugins in different environments (like tests) and doesn't make it part of a plugin if there's no explicit type references in some scenarios.

@auduchinok
Could you please add a deprecated to the public version of the API then ... promise to send a PR reversing this when you don't need it any more.  And add a comment saying that it is specifically for use by Rider and we will be removing it eventually.
The structure module can remain public though :-)

@dsyme this PR makes MSBuildReferenceResolver public for the FCS.  this is not an API we want to be public being as it is "msbuild" dependent.  It looks like rider want to move away from this in the medium term.  Are you satisfied with adding this as a public api to FCS?
Thanks
Kevin

@KevinRansom I've removed the change around MSBuildReferenceResolver. We'll continue to use it in the FCS build we ship for some time and I hope we'll remove it soon.

@KevinRansom IIRC MSBuildReferenceResolver is only in FSharp.Compiler.Service.MSBuild.v12.dll which you have to opt-in to deploying alongside FSharp.Compiler.Service.dll in order to activate the legacy behaviour. So making it public isn't particularly a big problem.
The Visual F# Tools  do include MSBuildReferenceResolver as part of FSharp.Compiler.Private.dll.  This is one of the differences between FSharp.Compiler.Service.dll and FSharp.Compiler.Private.dll.


Submit app to Fdroid

The app is not on Fdroid yet. Please submit it and add an Fdroid badge to the Readme.

https://gitlab.com/fdroid/fdroiddata/merge_requests/4894.

@adityastic I think it would be better if you can replace
AutoUpdateMode: None
UpdateCheckMode: Tags

part to something like
Auto Update Mode:Version v%v
Update Check Mode:Tags
Current Version:2.0.13
Current Version Code:14

So whenever we make a release with the correct labeling, it will deploy automatically.

@CloudyPadmal I tried, https://gitlab.com/adityastic/fdroiddata/commit/85fb5e045e79612cb873bd1fc188ca0549b1904b but it failed to pass the lint.
Here is the list of pipelines : https://gitlab.com/fdroid/fdroiddata/merge_requests/4894/pipelines.

AFAIK, it is passed. Plese change the config as pointed out by @CloudyPadmal

@iamareebjamal Sure

Please test it locally before pushing

@iamareebjamal it passes the lint test locally. That's the reason It took so many pipelines for finalizing the merge request


Updates setup.sh to remove argument

Removals

Argument on setup.sh doesn't appear to be in use anymore. This removes it.

Review

@kave
@kurtw

We will still need it there to install production settings when we get there.

:+1:


AddApplicationInsights is not working with Microsoft.Extensions.Logging.ApplicationInsights 2.20

I was searching why this code wouldn't compile :
builder.AddApplicationInsights(
    configureTelemetryConfiguration: (config) => config.ConnectionString = context.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"],
    configureApplicationInsightsLoggerOptions: (options) => { }
);

The method allowing to this has been made private and can't be accessed. I see that the documentation bases itself on the 2.19.0 instead of 2.20.0.
As I understood, using InstrumentalKey is deprecated and ConnectionString should be used instead.
Is there a solution ?
I am talking about the Capture logs within ASP.NET Core startup code section.

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

ID: b09a09da-72ae-d5c0-fe25-69274054d302
Version Independent ID: 6911ee60-7c91-f024-8788-94939567d477
Content: Application Insights logging with .NET - Azure Monitor
Content Source: articles/azure-monitor/app/ilogger.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @AaronMaxwell
Microsoft Alias: aaronmax

After still providing the InstrumentalKey, I get an exception :
at Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.set_InstrumentationKey(String value)
at Microsoft.Extensions.Logging.ApplicationInsightsLoggingBuilderExtensions.<>c__DisplayClass2_0.<AddApplicationInsights>b__0(TelemetryConfiguration telemetryConfiguration)
at Microsoft.Extensions.Options.ConfigureNamedOptions`1.Configure(String name, TOptions options)
at Microsoft.Extensions.Options.ConfigureNamedOptions`1.Configure(TOptions options)
at Microsoft.Extensions.DependencyInjection.TelemetryConfigurationOptions..ctor(IEnumerable`1 configureOptions, IOptions`1 applicationInsightsServiceOptions)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at MyApp.Program.<Main>d__0.MoveNext() in C:\Work\Projects\MyApp\Program.cs:line 37

Despite the fact that .AddApplicationInsightsTelemetry has been called in ConfigureServices.

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

@cijothomas Please take a look and let us know if the code sample provided needs an update or if this should be moved to a support request.

I stumbled over this as well, but going back to version 2.19.0 (which is reverenced in the docs, as @RamenTurismo stated) or 2.18.0 does not make the specific overload of AddApplicationInsights available.

@TimothyMothra Could you also take a look at this too please?

builder.AddApplicationInsights(
configureTelemetryConfiguration: (config) => config.ConnectionString = context.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"],
configureApplicationInsightsLoggerOptions: (options) => { }
);
^^ This method is only available in 2.21.0-beta2 (https://github.com/microsoft/ApplicationInsights-dotnet/blob/main/CHANGELOG.md#version-2210-beta2) or newer only. Previous versions did not have this API.

@cijothomas  - Thank you for providing your insights.
@ramenturismo - I hope @cijothomas has answered your question.
At this moment, Since there is no doc update required, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

@cijothomas Thanks!
@MonikaReddy-MSFT I would still specify on what version the code is being made to avoid confusion.

@cijothomas Thanks! @MonikaReddy-MSFT I would still specify on what version the code is being made to avoid confusion.

Agree, since the feature is only part of a beta version.


TST: Tests fail on big-endian systems

The s390 runner is big-endian, whereas everything else we are testing is little-endian.  Our WKB tests expect results in little-endian order, and fail on inequality (ref).
The simple solution may be to skip or xfail WKB tests on s390; otherwise we need to have a set of expected WKB output for each endianness.

We can also force byte order in the tests by putting to_wkb(..., byte_order=1) ?

There are also some doctest failures like this one:
063     Examples
064     --------
065     >>> from pygeos import normalize
066     >>> points = Geometry("MULTIPOINT (2 2, 4 2)")
067     >>> normalize(voronoi_polygons(points))
Expected:
    <pygeos.Geometry GEOMETRYCOLLECTION (POLYGON ((3 0, 3 4, 6 4, 6 0, 3 0)), PO...>
Got:
    <pygeos.Geometry GEOMETRYCOLLECTION EMPTY>

That might not be WKB related?

Correct - not all the failures on s390 are necessarily related to WKB; this particular one will require a bit more investigation.

The remainder can be divided into two categories:
Failures on big endian systems with voronoi_polygons:
voronoi_polygons (GEOSVoronoiDiagram_r) fails in all cases:
>>> voronoi_polygons(Geometry("MULTIPOINT (2 2, 4 2)"))
<pygeos.Geometry GEOMETRYCOLLECTION EMPTY>
>>> voronoi_polygons(Geometry("LINESTRING (0 0, 1 0, 1 1)"))
E pygeos.GEOSException: TopologyException: Input geom 1 is invalid: Self-intersection at or near point -2.2558952938275252e+307 -2.2558952938275252e+307 at -2.2558952938275252e+307 -2.2558952938275252e+307

etc. The large numbers in the error message point in the direction of an assumed endianness somewhere in GEOSVoronoiDiagram_r
Failures on big endian systems with predicates:
>>> disjoint(Geometry("LINESTRING(0 0, 1 1)"), Geometry("LINESTRING(0 2, 2 0)"))
True # expected False
>>> intersects(Geometry("LINESTRING(0 0, 1 1)"), Geometry("LINESTRING(0 2, 2 0)"))
False  # expected True

It seems that GEOSIntersects_r behaves differently when geometries only touch (like here) on big endian systems.
There is one more error, but I think it falls in this category too:
>>> tree = STRTree(pygeos.points(np.arange(10), np.arange(10)))
>>> tree.query(Geometry("LINESTRING (0 2, 2 0)"), predicate="contains_properly")
[]  # expected [1]

Underlying:
>> contains_properly(Geometry("LINESTRING (0 2, 2 0)"), Geometry("POINT (1 1)"))
False  # expected True

Does these two test failures ring any bells with you @pramsey?

What platform are you using for these tests? We've been labouring under a lack of access to big endian architectures for some time.

S390x is one of the architectures supported by Travis, see here for our config:
https://github.com/pygeos/pygeos/blob/1b89ff7ed148ebfc5f1aea1952904cc318adcf8a/.travis.yml#L3

I think we should close this issue with "should be fixed upstream". There is really nothing we can do about it in pygeos.
Question is: how do we deal with the CI here? Skip the S390x arch for now?

It seems OK to leave the s390arch test in place for now, but expect it to fail?  May help us catch other endianness-related bugs in the future.

I'll close this (#319 ) as it can only be fixed upstream


[feature addition] Docker and kubernetes support ?

Hello do you think you can add a docker image to this project ?

hello, here's a PR with for Docker https://github.com/developersdigest/llm-answer-engine/pull/15

#15 merged - thanks!


Fix some typos

Maybe we could slip this in if the 1.13 deadline isn't over? :-o
Should have done this earlier, sorry...

Yeah, I can fit this in - release is going to have to slip to tomorrow anyway as I'm going to get #199 in.


Add upper SDK constraint to 3.20.0

Temporarily set the upper constraint of the Flutter SDK version to 3.20.0. This is necessary because the current SDK used to analyze packages on pub.dev is 3.20.0-1.1.pre, which has a breaking change in the PageView class that is not compatible with the current version of this package. As a result, static analysis errors occur on pub.dev.

Won't publish this version because:

Package validation found the following potential issue:

The Flutter constraint should not have an upper bound.
In your pubspec.yaml the constraint is currently >=3.10.6 < 3.20.0.
You can replace that with just the lower bound: >=3.10.6.


[Internal] [Feature] Add more bakta parameters to standard_params.config

What is the Feature Related To? Please Provide a Description.
Add access to additional bakta parameters at runtime:
--complete
--compliant
--gram
--keep-contig-headers
--skip-gap
--skip-ori
--skip-plot
Place an :x: in a Box that Best Matches the Feature's Importance:

[] 1 - Most important (absolutely integral and will not use codebase at all without it)
[x] 2-4 - Moderate (still using codebase for other functions but is serving as a blocker for future use-cases)
[] 5 - Least important (would like to see but there are no stringent expectations nor urgency for current/future use-cases)

Any Additional Context or Information? Has There Been Any Progress Made So Far Towards this Request? Any Helpful Resources to Reference? Screenshots or Links?
Full-feature annotation of bacterial genomes may also require option for user to define --replicons for granular description of contigs and/or known plasmids in multi-fasta inputs. Implementation is a little more complex because requires separate file input for each fasta. Maybe this is simplified with some logic to check if a ${basename}.replicons.tsv matching the fasta is provided in the input directory?

Updated these as optional params.


[DO NOT MERGE] Implements changes for compatibility with Featuretools 1.0.0

Implements changes for compatibility with Featuretools 1.0.0
This PR should not be merged until Featuretools 1.0.0 is being released.

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

Note - the tests with Featuretools main and the tests with Featuretools latest release will continue to fail until Featuretools 1.0.0 is released. In order for the tests to pass in the meantime, Featuretools needs to be installed from the woodwork-integration branch.

Looks good to me! I assume tests are passing locally over the featuretools dev branch?

Yes, correct.

From @rwedge: Specifying the logical type for primitives we know will always return integers or floats would help avoid inference errors / reduce infer time (as opposed to only numeric tags for all numeric primitives)
(seems relevant here as well since a lot of the primitives are floating point scores or integer counts)


Add snapshot "Metadata" to views

... like project/title, project/description etc.

Done. {{ project.snapshot }}, {{ project.snapshot.title }}, ... works as well as {{ get_values 'project/snapshot/title }}.


Text layer support

Hi @coolwanglu ,
Is it possible to add a text layer over the <canvas> just like PDF.js does?
Since the built-in PDF viewer of Chrome supports text selection, I am wondering if PDFium.js also supports it.

:+1:


MOD: setting keepalive for an new connection

Connction leak occured when we deploy Fatcache in our large production cluster. We can see lots of socket fd in /proc//fd, in fact there is no connection from clients.
It ocurred because of the packages loss of four wave(the unstable network, lvs, firewall) when the client close the socket.
By the way, we checked the lastest Memcached and Redis source code, all of them had been set keepalive for the socket as default, and Twemproxy can be set by config file.

Thanks @luxuan. Do you guys use fatcache at weibo?

Hi, @manjuraj.  We are not use fatcache directly, but we have developed other cache serivce based on the network code of fatcache.
Thanks for your excellent work.


How to make ui-mask retain the invalid input when focus is lost?

Hey my friend!
Love the ui-mask, but I have this big problem.
Can you help me?

From the README:

You can customize several behaviors of ui-mask by taking advantage of the ui-options object. Declare ui-options as an additional attribute on the same element where you declare ui-mask.

Inside of ui-options, you can customize these three properties:

clearOnBlur - default: true

You want to set clearOnBlur to false

o rly? that's so easy and I spend hours seachirng on google LOL
thanks buddy.

@lucasjs not a problem :) . Could you please close this issue?

@NickTomlin sure! thnks


Fix some issues around keyword arguments

Codecov Report

Merging #114 (147d8e4) into main (fd19eef) will increase coverage by 0.19%.
Report is 2 commits behind head on main.
The diff coverage is 88.23%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
+ Coverage   78.74%   78.93%   +0.19%
==========================================
  Files          65       65
  Lines        3726     3713      -13
==========================================
- Hits         2934     2931       -3
+ Misses        792      782      -10

Files
Coverage Δ

src/abstractitensornetwork.jl
85.68% <100.00%> (ø)

src/gauging.jl
100.00% <100.00%> (ø)

src/treetensornetworks/solvers/contract.jl
91.30% <100.00%> (ø)

src/treetensornetworks/solvers/dmrg.jl
100.00% <100.00%> (ø)

src/treetensornetworks/solvers/dmrg_x.jl
100.00% <100.00%> (ø)

src/treetensornetworks/solvers/linsolve.jl
100.00% <ø> (+40.00%)
:arrow_up:

src/treetensornetworks/solvers/update_step.jl
82.85% <100.00%> (ø)

src/treetensornetworks/solvers/applyexp.jl
0.00% <0.00%> (ø)

src/treetensornetworks/solvers/tdvp.jl
72.41% <80.00%> (+4.15%)
:arrow_up:

@JoeyT1994 this fixes the test errors caused by stricter keyword argument handling introduced in https://github.com/ITensor/ITensors.jl/pull/1226.


keyboard nav to diacritic: two clicks to focus

If you try to use <tab> to move from the literal to the diacritic icon, you have to press it twice to focus on something where you can click "enter" to actually open the dialog.  You should only have to tab one time.

This is no longer the case.


Add missing tables for print fulfilments

Motivation and Context
Some missing tables.
What has changed
Ran the ground zero rebuild.
How to test?
Build a clean new env.
Links
Trello: https://trello.com/c/oW2OqNlP

 Oops forgot the DDL for Fulfiments


Problematic seek(0) in simpleion.load_python

The code below assumes the fp stream was at position 0 before reading the header:
https://github.com/amazon-ion/ion-python/blob/614a93fe4b15cf240356e9ff1b68ae49f3ffa37c/amazon/ion/simpleion.py#L361-L362
This behavior is quite unexpected and problematic as it forces the stream to rewind (may not be possible for network and custom streams) and also messes up any stream management logic performed by the caller.
A quick fix would be:
        pos = fp.tell()
        maybe_ivm = fp.read(4)
        fp.seek(pos)

Thanks for bring this to our attention. Are you interested in contributing a PR for this issue?

@popematt I opened a PR: https://github.com/amazon-ion/ion-python/pull/261

Fixed by #261


Spacing Errors on Pool Descriptions Using Mobile

A space is missing here in the pool description. Seems to be mobile only.

Desktop version for reference

Thank you!


Invalid Checksum

Good night, I'm getting the error below, and I couldn't identify what it would be, could you help me.
/var/www/clients/client310/web10/web/vendor/zulucrypto/stellar-api/src/AddressableKey.php|120
Invalid checksum

the same exception for address GD6BGC6CCDFL3G77GAPYXGZLUUQIL2CVOPKFVYT35FE23HVL6JAJ2FFA
$address = 'GD6BGC6CCDFL3G77GAPYXGZLUUQIL2CVOPKFVYT35FE23HVL6JAJ2FFA';
var_dump(Base32::encode(Base32::decode($address)) === $address); #=> bool(false)

my solution: change lib \ChristianRiesen\base32 to https://github.com/ademarre/binary-to-text-php


[Guide] Field

Create an article about Fields. The current version contains text from the docs currently published on the community site but it should be reviewed, restructured and complete with the missing pieces.

Is it open?


Add examples/gke/tgi-multi-gpu-deployment/ for multi-GPU TGI

Description
This PR adds an example on how to serve google/gemma-7b-it in Google Kubernetes Engine (GKE) using 4 x L4 GPUs, which better emulates a production environment, as well as explaining some concepts in order to have a production-ready deployment.

[!NOTE]
Since the TPU containers are still WIP and not released yet on Google Cloud, the examples are on hold until those are released; meaning that most likely the current example would need to be revisited before merging.


Issues with iframe's

BrowserGPT is unable to access elements within an iframe.

I've been looking into this. Playwright doesn't make it easy to connect the iframe content back to the dom.
The problem is with iframes with similar attributes, like an empty attribute iframe <iframe></iframe>. I can't guarantee the content will get assigned to the right iframe. Throw iframes embedding and creating more iframes into the mix then it gets quite unreliable.
I am still thinking of alternative approaches.

just thinking out loud, what if we do dom parsing via gpt-4?

@rushout09
Won't this lead to excessive token consumption?

I have created a util function to include only essential elements in the html_content of the page.
https://github.com/rushout09/automator

@rushout09 Unfortunately, the browser treats an iframe as a separate page. So when you try to save a webpage with an iframe, you will not get the iframe content along with it. This also applies to playwright. When I dump the dom to be parsed, the iframes are empty. Hence, I need some workaround to reattach the iframe pages to the correct iframe tags.
@pedrhenriqolv Yes, I prune most of the irrelevant parts of the dom before I pass the dom to GPT. For example, embedded svgs have really bloat the dom.

Here's what I have atm that works. I think I may need to help GPT on how to use the playwright's frames api.

I merged in my change. It should work on simple iframes. It does still struggles when the iframes are nested. ChatGPT doesn't seem to always understand the nesting.


Add VS marketplace badges to README

I saw these badges on the Powershell extension for VS Code and thought they were pretty cool. Let me know what you think. If you like them - I can add them to our other extensions as well

I dig that!

I did it, too!


Search results not supporting QName-based metadata extracts

In results XML, extract metadata defined with QName shows up as (for example) status element below:
    <search:metadata>
      <status date="2011-03-10">introduced</status>
      <search:constraint-meta name="title">Some title</search:constraint-meta>
    </search:metadata>

Currently not parsing these metadata elements (the ones that aren't constraint-meta) in SearchResult constructor.
The extract-metadata option is deprecated so probably just replace with extract-document-data:
http://docs.marklogic.com/guide/rest-dev/appendixb#id_94425

#22 fixed. Added getMetadataQName() to address. Still need to handle new extract-document-data option.


S3FlagTarget doesn't pass client to super constructor

If I use manually configured S3Client and create S3FlagTarget with this client I get
NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
This happens because in S3FlagTarget c'tor the call to super c'tor is not passing aforementioned client
super(S3FlagTarget, self).init(path)
and thus self.fs = client or S3Client() in S3Target c'tor tries to create S3Client from global configuration

Nice find! Please create a pull request. :)

what are prerequisites to run tests? I found how to run them, but probably due to missing packages I have many of those "error". Is there any such list?(I haven't changed anything yet...just tried to create "baseline")

Ah, you run tox -e pep8 and tox -e py27-nonhdfs basically

Closing b/c appears to be fixed


Explore translating latest to a digest, and possibly then other tags, to improve reproducibility

latest tags are practical but using them comes with a key compromise: you won't know what image version you ended up using. Maybe the latest tag at the time it was loaded the same as the tag 2024-02-07, but you wouldn't know.
If we could get a user server understand how to reference the image started via a image digest, we may be able to improve reproducibility.
Tech reading

Image digests

Using kubectl to get digest of a container
When a container is started, its possible to detect from the k8s Pod's containerStatuses what image is referenced and what image was in the end used via a image digest:
  # ...
  containerStatuses:
  - containerID: containerd://8c82914618e37233be782768182cb322877ea61a5f21c440467d1ff18ea3005e
    image: quay.io/jupyterhub/configurable-http-proxy:4.6.1
    imageID: quay.io/jupyterhub/configurable-http-proxy@sha256:fd916f75415f1e7e813c5a18b34a6042a601604938ff8777b044447efb3bd819
  # ...

Using k8s mutating webhooks
Its possible to register a "mutating webhook" that changes the specifications of for example a k8s Pod before its getting fully registered by the k8s api-server and thereafter scheduled to a node and started.
Such modification could look for containers with image tags like lookup-latest and try to convert them into a digest to reference instead. This is a hacky workaround and adds significant complexity as well, making it too complicated to flurish as a well documented solution adopted by ourselves and others, so I'd say its not worth persuing.
Complexities are:

An entire application needs to be developed, deployed, and registered as a mutating webhook against k8s api-server
Documentation specific on how to integrate with the webhook needs to be exposed to our communities, but its conditional on having this webhook deployed and functional
If you lookup a tag, it can have multiple digest depending on the CPU architecture it will run on, but maybe you won't know the CPU arch before the pod is scheduled.

Conclusion from exploration
I don't see a technical fix that is reasonable to go for, I'll go for a close on this issue.


Upgraded Adw.ViewSwitcherTitle to Adw.ViewSwitcher and used Adw.Break…

Solved Issue #42
Just have to use Run and then the code works.

Sorry for recreating the pull request .


Some segmentation masks are bad?

I found a few segmentation masks having less than four points (8 coordinates). For e.g.,
{'id': 625, 'image_id': 62, 'iscrowd': 0, 'category_id': 0, 'segmentation': [[607.2, 571.36, 606.24, 574.48]], 'bbox': [606.0, 571.0, 0.0, -24.0], 'area': 2.9952000000000965} in prescaled/coco_annotations.json.
For my experiment, I just removed them...
import json
import sys

src = sys.argv[1]
dst = src.replace(".json", "_fixed.json")

with open(src) as f:
    info = json.load(f)

anns = info["annotations"]
updated = []

for i in range(len(anns)):
    ann = anns[i]
    seg = ann["segmentation"]
    if seg is not None and len(seg[0]) < (4 * 2):
        print(f"Bad seg: {ann}")
        continue
    bbox = ann["bbox"]
    if bbox is not None and any(a < 0 for a in bbox):
        print(f"Bad box: {ann}")
        continue
    updated.append(ann)

info["annotations"] = updated

print("Writing to ", dst)
with open(dst, "w") as f:
    json.dump(info, f, indent=4)

You are right, resizing the images caused some masks to shrink smaller than 4 points. I believe that Detectron2 automatically filters them though. Thanks for the info!


[#156924350] healthcheck/es: Content-Type request header

What
This appears to be required for newer Elasticsearch versions provided by
Aiven (which we're spiking against):
{"error":"Content-Type header [] is not supported","status":406}

Adding it won't have any negative effect for older versions. Strictly
it may not be required for all requests, but it's correct for the
current set of requests and shouldn't cause harm in the future.
How to review
I haven't tested this against Compose, but I don't expect any problems. Code review should be sufficient. If you do want to test it in the pipeline then you'll need to un-pending the Compose custom acceptance tests.
Who can review
Anyone.

This will be included in https://www.pivotaltracker.com/n/projects/1275640/stories/157737884

This has been cherry-picked onto https://github.com/alphagov/paas-cf/pull/1451


App-level support for passive gesture touch listeners

Apps can set Polymer.passiveTouchGestures to true to force all touch listeners for gestures to use passive event handlers.
This may improve scrolling performance, at the cost of being unable to control scrolling with gestureEvent.preventDefault().
Instead, elements must use Polymer.Gestures.setTouchAction(node, 'direction')
This PR overrules #4724
Fixes #4667
Fixes #3787
Fixes #3604

Hmm, looks like closure linting is broken on travis now :(

This will ship as Polymer 2.1

This is labelled as being related to touch gestures, but will this also allow this.listen to support passive scroll event listeners? Since this closes #3604 it suggests this is the case, but is that true? This seems related to just toggling an app-wide default for gestures, and not supporting component-level listeners to individually set passive event listeners, correct?

Just to re-iterate, I think this incorrectly closes #3604 and #3604 should be re-opened.


Working on github actions

I have troubles making this work on github actions ? I have a github action that looks like :
---
name: "Release pdf"

on:
  push:
    branches:
      - "master"

jobs:
  release_cv:
    name: "Release CV"
    runs-on: ubuntu-latest
    steps:
    - name: Checkout master
      uses: actions/checkout@v1
    - name: Compile CV
      uses: xu-cheng/latex-action@master
      with:
        root_file: CV.tex
    - name: Check pdf file
      run: |
        file CV.pdf | grep -q ' PDF '
    - name: "Upload"
      uses: "marvinpinto/action-automatic-releases@latest"
      with:
        repo_token: "${{ secrets.GITHUB_TOKEN }}"
        automatic_release_tag: "latest"
        prerelease: true
        title: "Build"
        files: |
          CV.pdf

which is supposed to release my CV online. It works great, and since it runs on github actions Hooks are not possible.
Adding do './tex/gitinfo2.pm'; to my .latexmkrc only yields :
sh: git: not found
sh: git: not found
sh: git: not found

while running gitinfo2.pm. I suppose this is because standard git commands do not work in a github action context. Do you think there is still something we can do ?

Nevermind, I just installed perl and ran do './tex/gitinfo2.pm before running latexmk, writting things in gitHeadLocal.gin instead of .git/.... It worked like a charm.


Using with EmotionJS

@UsulPro sorry to pester but this seems like a real issue and being that I can't reproduce it in the actual repo I am not sure how to assist or proceed.
I have created a separate repo that demonstrates the issue.  This example repo was create with create-react-app and sb init.  I then added a button example using the same code as used in the addons demo code.
https://github.com/dptoot/react-theming-storybook-addon-test
npm run storybook will show the error occurring with<EMAIL_ADDRESS>when the button story is selected
RangeError
Maximum call stack size exceeded

Pinning the all storybook dependencies to v6.3.12 will show the addon to work as expected.
Hopefully this is helpful
Originally posted by @dptoot in https://github.com/react-theming/storybook-addon/issues/39#issuecomment-1007562535

For some reasons styled components wrapped into the ThemeProvider doesn't have access to a theme object while useTheme hook still works fine
import styled from '@emotion/styled';
import { jsx, ThemeProvider, useTheme } from '@emotion/react'
import React from 'react';

const Container = styled.div`
  background-color: ${({theme}) => console.log('theme is empty', theme) || theme.colorA};
  color: ${({ theme }) => theme.colorB};
  padding: 16px;
`;

const Panel = ({ amount = 0 }) => {
  const theme = useTheme();
  console.log("theme works fine", theme)
  return <Container>Panel {`amount=${amount}`}</Container>;
};

export default Panel;

This reproduced even without react-theming. using
export const decorators =[
  (Story) => (
    <ThemeProvider theme={theme2}>
      <Story />
    </ThemeProvider>
  ),
]

gives the same result

I can confirm we are facing the same issue

Please reopen . There is no path forward using emotion, react, and typescript


update: getNextMap to work with v8

[SquadServer][1] Failed to update layer information. TypeError: Cannot read properties of null (reading '1')
at SquadRcon.getNextMap (file:///home/container/squad-server/rcon.js:129:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async SquadServer.updateLayerInformation (file:///home/container/squad-server/index.js:452:23)

V8 Updates some RCON Commands it seems
async getNextMap() {
    const response = await this.execute('ShowNextMap');
    const match = response.match(/^Next level is (.*), layer is (.*)/);
    return {
      level: match[1] !== '' ? match[1] : null,
      layer: match[2] !== 'To be voted' ? match[2] : null
    };
  }

the new response from ShowNextMap is Next map is not defined
Therefore match ends up being null which broke the return values.
Updated to this seems to work for me so far:
  async getNextMap() {
    const response = await this.execute('ShowNextMap');
    const match = response.match(/^Next level is (.*), layer is (.*)/);
    return {
      level: match ? (match[1] !== '' ? match[1] : null) : null,
      layer: match ? (match[2] !== 'To be voted' ? match[2] : null) : null
    };
  }

@IgnisAlienus can you do another change here for me on this PR?

https://github.com/Team-Silver-Sphere/SquadJS/blob/de8219d2630fbfd07b355771e1b22853723edd8c/package.json#L3
Can you bump this to   "version": "4.1.0",


v2.1.0 Release

Compared to v2.0.0, the v2.1.0 release contains the following API Changes:

Add MQTT/AMQP address to the Discovery announcement.
Add trusted flag for gateways in metadata and status.

Furthermore it adds the following functionality:

Monitoring (NOC) of the Broker components
Support for the China 779-787 and Europe 433 bands
The Korea 920-923 channel plan

And as always, several bugs have been fixed.

Coverage decreased (-0.09%) to 75.172% when pulling 47c74df7cc9c560c88deb2b9fae00e03a26fb4dd on develop into e17566e0acee7631313882f5a64c5f8f37083857 on master.


[feat] http proxy for nsis bundler

Describe the problem
I want to build a windows app on macOS, I try to use the cross-compile methods to build.
After build, the build progress will download some files to "Verifying NSIS package".
But I can't download the files from github, because I need use http_proxy/https_proxy to visit github.
Describe the solution you'd like
I think need to read system proxy or rust http proxy config or environment.
https://github.com/tauri-apps/tauri/blob/713f84db2b5bf17e4217053a229f9c11cbb22c74/tooling/bundler/src/bundle/windows/util.rs#L28-L34
I'm not familiar with the rust and don't know how to modify it.
Alternatives considered
No response
Additional context
No response

Same problem when I compile nsis on windows device.

I can open a PR to fix this if needed.

I open #8008 to handle the issue.


[Enhancement] Update PR template to prompt for update to release notes

Is there an existing issue for this?

[X] I have searched the existing issues

Please describe the new behavior that that will improve Egeria
When Egeria 3.6 was ready to release, there was no content in the release notes.
We need to improve our process to capture potential release notes earlier in the process, and distributed across all contributors
Auto-generated release notes now include the list of PRs in a release, but there is no additional curated content
This proposal is to

Specifically add a section to the PR template to ask originator to either add release note content, or at a minimum, add a note to an issue in the egeria-docs repo
Link to list of PR tags which will categorize the auto generated release content (ie https://github.com/odpi/egeria/releases/tag/V3.6 )

Alternatives
No response
Any Further Information?
No response
Would you be prepared to be assigned this issue to work on?

[X] I can work on this

Discussed at TSC meeting - general feeling was that this would be useful


send_message event stopped working

It is still something to be confirmed, but I can see that both send_message and send_scheduled_message does not work anymore.
These hooks are now never triggered:
this.gmail.observe.before("send_message", (url: string, body: string, data: Mail) => {});
this.gmail.observe.before("send_scheduled_message", (url: string, _body: string, data: Mail) => {});

Browser differences

Works fine in Firefox
Does not work in Chrome (with the same Google account)

I can see there is different parameters passed in URL - Chrome v105

Firefox v104

I am trying to investigate if it is payload or something...

I can see the payloads send in Chrome vs Firefox are different

have same problem

This may be a duplicate of https://github.com/KartikTalwar/gmail.js/issues/721
Line format for XHR seems to have changed slightly.

I decoded payload of msg I think it looks different from #721, not sure?
interface RequestBodyMail {
  0: string; // messageId,
  1: PayloadAddress; // from
  2: PayloadAddress[]; // to
  3: PayloadAddress[]; // cc
  4: PayloadAddress[]; // bcc
  6: number; // timestamp
  7: string; // subject
  8?: {
    1?: {
      0: number;
      1: string; // body piece
    }[];
  }; // body structure
  10: string[]; // smart labels
}

@huksley : If you can create a PR for the event-stuff, I'll be happy to review that and create another release.
I must admit that when it comes to the events themselves, I don't feel that confident in the parsing code as the email-parser (which I pretty much wrote from scratch myself).

@huksley are you trying to solve the problem?

Fixed, but need to have both code paths tested - I can't because my Firefox also started working with new APIs

Not seeing this feedback, I've created a patch which I think fixes this issue. That is now published as v1.1.2 on npmjs.
If you still think there's more work which needs to be done, please do let me know :smile:

@josteink perfect, it work!

Some users reports that older algorithm is back and older version of my extension works fine...

@josteink I see you've made your own changes, btw these might now work:
        const sent_email_content_html = api.tools.parse_sent_message_html_payload(sent_email);
        const sent_attachments = api.tools.parse_sent_message_attachments(sent_email["11"]);

Because HTML payload format and attachments in a different format now.

Some users reports that older algorithm is back and older version of my extension works fine...

Google please make up your mind 😮

I think it is a rollout algorithm or something..

@josteink I see you've made your own changes, btw these might now work:
        const sent_email_content_html = api.tools.parse_sent_message_html_payload(sent_email);

        const sent_attachments = api.tools.parse_sent_message_attachments(sent_email["11"]);

Because HTML payload format and attachments in a different format now.

Do you mean may NOT work?
If so, PRs for getting them fixed are welcome 😉

https://github.com/KartikTalwar/gmail.js/issues/722

Released v1.1.3 with @huksley's fixes too.

Only for new formats.

I would think we need to support both versions for now.

Then we should probably introduce some parser class/interface to do the parsing to clean up the code somewhat.
Something like this?
canParse(json) => boolean;
parse(json) => array;

The code we have now is starting to have a somewhat desperate need for at least a minimal amount of architecture.
As for both versions… are you talking about the events only? Or also the data APIs?

I added the is_email_new() condition, and it triggers old and new parser as needed. But since older code also checks now for new email format, it probably will not work with older APIs...

Then we should probably introduce some parser class/interface to do the parsing to clean up the code somewhat.

I would think there should be a parsers (or handlers) for different functionality of Gmail, versioned.
And users can provide flags which enable (or disable specific handlers) - this will be perfect for MW3 and future versions.
interface GmailHandler {
   enable(gmail: GmailJS): void
}

// Parses properly when you press Send in compose window (new format of send payloads)
class GmailSendPayloadHandler20220913 extends GmailHandler {
}

enabled = ["GmailNewHandler"]
handlers = [new GmailNewHandler(), new GmailSendPayloadHandler20220913()].filter(h => enabled.includes(h.constructor.name)
handlers.forEach(handler => handler.enable(this))

Hello! It seems that parse_sent_message_payload is fixed as well now, and parse_sent_message_payload_new has incorrect subject field index (should be 7, but there is 8).
I believe that parse_sent_message_payload_new could be removed in favor of recently updated parse_sent_message_payload.


Add basic telemetry?

During the sidekick launch I noticed that we do not know how many people have the sidekick open at a time. It may be useful to add some basic telemetry logging so that we know when and how much sidekick is used, where outdated versions are used, and which features are used and unused.
I'd re-use the /.rum/ endpoint for logging and extend the RUM collector to write to a different data sink if the URL is /.rum/sidekick/.

:tada: This issue has been resolved in version 6.10.0 :tada:
The release is available on:

GitHub release
v6.10.0

Your semantic-release bot :package::rocket:


added option to use a (one-url-per-line) file as input

Hi @stjaco! Thanks for the PR.
I'm a little swamped with life right now, but I'll try to take a look at this in the coming week.

Thanks a ton @stjaco for the commits, and sorry for the delay. I made a couple of changes before I merged, the big one is --logtofile is now --log-to-file to match the other flags.
These changes are live in the 1.5.0 series!


Add example for BERT sequence classification

Hello! :heart:  the library, I'm using it right now to run inference on a BERT fine-tuned for sequence classification.
@mortont do you think it would be helpful to add an example on how to set up the pipeline for inference similar to the StableLM example? The main thing that I did not find documented anywhere (maybe I didn't looked hard enough) was getting the id2label mappings from the generated config.json. If you think it will add value, I'll prepare the PR.

Thanks for the feedback! Yes a PR would definitely be welcome, anything you found undocumented along the way could help others get started.


Release 0.3.9

Increase minimum support to DJ 1.8, DRF 3.3
Fix XSS vulnerability

I think swagger-ui.min.js also needs updating with the XSS fix, I can still repro after updating.


Fix double free, implement a handful more tests

I had an old branch lying around from October(?) last year with tests I used to check that the behaviour from a few bugs we found and fixed around that time were indeed gone. Some of the other tests (such as the whitespace test) are simply included for good measure.
I have also fixed a double free which I accidentally introduced way back in eb445d8 during my memory leak hunt.
Two misc documentation changes are included.

Sorry for the delay on getting back on this, been flat out.
Thanks again for the amazing work :)
Also super awesome to see more tests coming in, I haven't had the chance to go through all of them yet, but they all pass ;)

No problem about the delay at all. Good to see it merged


noise_percentage only get applied to nn and lstm in the predictor class? Not to poly and gb?

not true. :)


Input required and not supplied: ${name}

Hi I'm getting this error, but I've added all the tokens to the repo settings.

Do you still have problems?
Try again without name?

https://github.com/amondnet/vercel-action/runs/980730794?check_suite_focus=true

##[warning]Input 'zeit-token' has been deprecated with message: Zeit is now Vercel. Use "vercel-token" instead
##[warning]Input 'now-org-id' has been deprecated with message: Zeit is now Vercel. Use "vercel-org-id" instead.
##[warning]Input 'now-project-id' has been deprecated with message: Zeit is now Vercel. Use "vercel-project-id" instead.
##[warning]Unexpected input(s) 'name', valid inputs are ['vercel-token', 'vercel-args', 'github-comment', 'github-token', 'github-deployment', 'working-directory', 'vercel-project-id', 'vercel-org-id', 'vercel-project-name', 'scope', 'zeit-token', 'now-args', 'now-project-id', 'now-org-id', 'alias-domains']

@amondnet we are getting these errors in PRs created by dependabot, other PRs are deployed successfully.
/home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:2205
        throw new Error(`Input required and not supplied: ${name}`);
        ^

Error: Input required and not supplied: vercel-token
    at Object.getInput (/home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:2205:15)
    at Object.679 (/home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:24158:26)
    at __webpack_require__ (/home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:22:30)
    at startup (/home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:37:19)
    at /home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:41:18
    at Object.<anonymous> (/home/runner/work/_actions/amondnet/vercel-action/v20/dist/index.js:44:10)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)

Our deployment step is set up as follows:
      - uses: amondnet/vercel-action@v20
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }} # Required
          github-token: ${{ secrets.GITHUB_TOKEN }} #Optional
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID}} #Required
          scope: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID}} #Required
          vercel-args: "--confirm"
        id: "vercel_deploy"

@sk- Hi,
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/
I think you have two options.

pull_request_target
If your workflow needs to have a write token or access to secrets, you can use the pull_request_target event; however, please read
Keeping your GitHub Actions and workflows secure: Preventing pwn requests to better understand the risks.

Adding a repository secret for Dependabot
You can store sensitive information, like passwords and access tokens, as encrypted secrets and then reference these in the Dependabot configuration file.
https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-encrypted-secrets-for-dependabot#adding-a-repository-secret-for-dependabot

Thanks amond for the pointers. That clarifies the issue.
On Sun, Jun 27, 2021, 11:56 PM amond @.***> wrote:

@sk- https://github.com/sk- Hi,
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/
I think you have two options.

pull_request_target
If your workflow needs to have a write token or access to secrets, you
can use the pull_request_target
https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request_target
event; however, please read
Keeping your GitHub Actions and workflows secure: Preventing pwn
requests to better understand the risks
https://securitylab.github.com/research/github-actions-preventing-pwn-requests
.
2.
Adding a repository secret for Dependabot
You can store sensitive information, like passwords and access tokens,
as encrypted secrets and then reference these in the Dependabot
configuration file.
https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-encrypted-secrets-for-dependabot#adding-a-repository-secret-for-dependabot
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/amondnet/vercel-action/issues/26#issuecomment-869332514,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG6TGHXEYVUSSQGFJX5IBTTU7XFXANCNFSM4PVHNXHA
.