Add brotli compression

Describe the feature
Add brotli compression to Javalin.
Additional context
We should probably also rename the current configuration (.disableDynamicGzip()) to something along the lines of
dynamicCompression: true

Last time I checked brotli was not suited for dynamic compression. There is a pretty recent comment on the jetty tracker about it: https://github.com/eclipse/jetty.project/issues/2553.
I don't think this is worth the implementation effort and additional dependency.

Might be too heavy as you say, but would be nice to experiment with it and see if it's worth it. It's not big gains,

14% smaller than gzip for JavaScript
21% smaller than gzip for HTML
17% smaller than gzip for CSS

but if we could stay "ahead of the curve" (or at least offer the ability to do so easily) it could serve some value :)

The link (https://blogs.akamai.com/2016/02/understanding-brotlis-potential.html) in the issue you mentioned actually talks a lot about the performance and some tweaking behind it. Still don't know if it's worth it though

https://github.com/MeteoGroup/jbrotli

https://cran.r-project.org/web/packages/brotli/vignettes/brotli-2015-09-22.pdf

We could do something like dynamicCompression = setOf(BROTLI, GZIP) then.

Does it really make sense to not choose gzip if you're choosing brotli tho?

What about the brotli purists?

Haha I guess they're out there as well ^^

Hi there,
is this still open for consideration? I feel implementing it is within my capabilities.
If yes, are there any requirements in addition to implementation/testing? (such as further research)

It should be quite straight forward, we only need to make sure it's easily configurable and backwards compatible :)

@nixxcode Yeah. I guess the implementation will have to be something like config.dynamicBrotli = true, then check for this boolean before writing the response. You'll have to add an optional dependency on some brotli library, unless it's a very small dependency (in which you can add it directly).
As @pkkummermo just mentioned, you'll have to maintain backwards compatibility, so gzip will be the default (and fallback).

@tipsy Ok, great! I would like to implement this.
I understand Gzip is to be the default, but how should I handle a situation where both Brotli and Gzip booleans have been set true by the user? Do we warn the user and disable one (probably Brotli), or do you have a better suggestion?
Thank you.

You don't have to warn the user. Even if the Server allows both compression types, it also depends on what the Client accepts. When both are enabled on the Server:

If the Client accepts Brotli and Gzip, use Brotli
If the Client accepts Brotli, use Brotli
If the Client accepts Gzip, use Gzip
If the Client accepts neither, use neither

Okay, thank you.
That's all I need to get started :)

Okay, just wanted to chime in to let you know I'm still working on this! I've just run into more problems than I expected. (Like always :D)
JBrotli was a no go, since development has pretty much stopped and it's using a really old (and buggy) version of Brotli (0.5.0 as opposed to the current 1.0.7)
I got dynamic compression working through https://github.com/dominikhlbg/BrotliHaxe , but the Java code is auto-generated and is very inefficient.
I am getting response times that average ~20ms for the 10000 SillyObject test via Google Chrome on Localhost, in comparison to Gzip's 2-3ms average. Although the response size is cut down to to 2232 bytes compared to Gzip's 7740.
Memory use on repeated calls is where I feel the big problem lies. On the same 10k SillyObject test, using Gzip and rapidly refreshing the page 50+ times, Javalin memory usage stays under 200mB. If doing the same with Brotli on identical test set, memory usage climbs to 600mB, which is quite hefty.
Right now it's impossible for me to tell how much of this is caused Brotli versus the inefficient Haxe code, although I do highly suspect the latter is the problem seeing as it literally creates a new array object for every single byte  written.
So, I would like to try and use the Haxe output as a pseudo-code base and write my own library to utilize Brotli. I can't find any other existing Brotli libs, so it seems like the best way to go?
Also, could I have an upper limit as to how much memory usage and response time is still considered within tolerable limits? Just as a guideline for optimizing the code.
Thanks :)

@nixxcode Which level do you do the compression on? 11 is super slow, but gives amazing gains in terms of compression. I think the paper linked in https://github.com/tipsy/javalin/issues/520#issuecomment-476320966 found out that 9 is the best general level as it balances compression and perf, but I believe you'd need to experiment a bit on what works best :)

@pkkummermo I was running level 4 as per suggestion by the following article: https://blogs.akamai.com/2016/02/understanding-brotlis-potential.html
Playing around a little more has yielded some odd results. I tried level 9 as you suggested, but the response size actually increased from 2234 to 2321 bytes? A higher compression level should always have a lower output size if the compressor is working correctly.
This is very strange, and happens with both the String and ByteArray methods of the BrotliHaxe compressor. Not sure if this means problems with the implementation or something else. Would need more testing to be certain.
That said, level 9 spiked the memory usage of the Javalin process to an outlandish 1.5gb while keeping average response times roughly the same as level 4.
Level 0 behaved as expected, yielding a larger output size, but not by much (2697 bytes compared to 2234 at level 4), but kept memory usage the same as level 4 (around 600mB max) and cut average response time from 20ms to 10ms.
These are some strange, strange results, specifically level 9 yielding a larger compressed result than level 4.

It's also important to note for the above results, that Google Chrome does correctly recognize the content as Brotli and decompresses it without errors.
That means the compression result yielded by the library is correct, yet the outlandish memory usage and result size anomalies suggest that I really should try implementing my own version of a Java based Brotli lib.

Very nice work @nixxcode ! The results you're reporting are far worse than I had hoped though. It would be a cool feature to have, but I guess there's a reason why Jetty is holding off on implementing it.

The outlandish memory usage and result size anomalies suggest that I really should try implementing my own version of a Java based Brotli lib.

I have no idea how much work that would be, but if you're up for the task it would be great. I guess you'd publish it a separate dependency and have Javalin pull it in?

I have no idea how much work that would be, but if you're up for the task it would be great. I guess you'd publish it a separate dependency and have Javalin pull it in?

@tipsy Yes, exactly. If I can make it work and perform decently, it would make sense to publish it and make it available to others who may need it as well. :)

Honestly, I have no idea if I am in over my head, but there's only one way to find out! I will give it a go.

Great! I'm not sure I can help much with the implementation, but feel free to use this issue for moral support 😄

@tipsy @pkkummermo  After scrapping BrotliHaxe due to the horrendous memory issues, I went back to JBrotli, but this time I forked it and started playing around in the source, rather than just including it in Javalin and following usage examples. I made some interesting discoveries.
The original bug I had problems with, that was crashing the JVM? It's only an issue when using the BrotliStreamCompressor object from JBrotli. I've found that by converting our resultStream to a byte array and feeding that to the regular BrotliCompressor (non-stream version) object in a single chunk, everything works perfectly fine!
I am pretty confident this has fully resolved the problem, since I found the cause of the JVM crash here: https://github.com/google/brotli/issues/346
It is caused by a bug in the old version of Brotli (0.5.0), where a faulty boolean flag makes the Brotli data writer believe that it has reached the end of the data stream after being called twice. Since the non-stream version of JBrotli's object compresses the entire byte array in a single pass rather than using a stream, it gets around the problem entirely.
So, I now have a functioning Brotli compressor built into Javalin, here: https://github.com/nixxcode/javalin/tree/nixx-520-jbrotli-testing
Performance wise, it matches up to what I read in this article: https://blogs.akamai.com/2016/02/understanding-brotlis-potential.html
I have been testing with level 4 compression, result size on the 10k SillyObject test is 2235 bytes as opposed to Gzip's 7740, so roughly a 9.2% improvement when compared against the uncompressed length of 59679 bytes.
Response times and memory usage are identical to those of Gzip, so performance is no longer an issue.
There are still some considerations, however:

JBrotli's compression is not a pure Java implementation. It uses JNI bindings to execute the compression code via native libraries and is thus platform dependent. That means it may not work on every possible platform, though I don't think this is a huge issue, since we can still offer Gzip as a fallback.
While being functional and having excellent performance, JBrotli is still using a Brotli library version that is 3 years out of date. Since everything seems to work great, I don't necessarily think this is a problem, but I still wanted to mention it.

If you want to have a play with it, the branch I linked to earlier should build and run without any errors when cloned. I have created a test class named TestServer.kt with a runnable main() function, which keeps the Javalin server running until manually stopped. I use this to play around and test via web browser requests. Additionally, all the original/updated tests within TestCompression.kt are passing.
If you are happy to move forward with this, I will open a pull request. Alternatively, please let me know what else needs to be done. :)
Thanks!

Having an initial brotli implementation (even though it's reliant on JNI bindings and is using a 3yo library) is a huge win as I see it, especially as it sounds it's now stable enough. It can be iterated upon and improved over time, and having it in the API of Javalin is a great start :) We could mark it as experimental in the first upcoming minor to ensure that people understand it's a WIP.
Only input is that we should perhaps allow for setting the brotli compression level as a part of the API, with sane defaults (4)?

@pkkummermo Absolutely. What I linked to is still a testing playground. Before the actual PR happens, I will do more tests to figure out sensible compression levels (in terms of time/memory usage), so it can be documented.
And yes, I am happy to change the wrapper so it allows adjustment of compression level, if desired! The only reason I haven't already done that, was to keep it in line with Jetty's Gzip (which also doesn't allow for level changes without a workaround)

@nixxcode Great stuff! We could look into having a level setting exposed for gzip as well (non-breaking of course), with sane defaults. Right now I'm guessing it's at 6 as it is Jettys default.

I still want to look into updating the available Brotli offerings for Java

Sounds like a plan! Poke us if you want any input and again thanks for contributing :)

@tipsy just poked me and said Javalin is using the JDK implementation, but I see we can expose a level by extending GZIPOutputStream ourself. Seems straightforward enough:
https://stackoverflow.com/questions/19138179/gzipoutputstream-increase-compression-level

Very nice work @nixxcode !

JBrotli's compression is not a pure Java implementation. It uses JNI bindings to execute the compression code via native libraries and is thus platform dependent. That means it may not work on every possible platform, though I don't think this is a huge issue, since we can still offer Gzip as a fallback.

I don't see that as an issue either.

While being functional and having excellent performance, JBrotli is still using a Brotli library version that is 3 years out of date. Since everything seems to work great, I don't necessarily think this is a problem, but I still wanted to mention it.

Is there a newer version? I'm looking at https://github.com/MeteoGroup/jbrotli, and it seems to be dependency free. Also, how big is this dependency? I'm a bit tempted to pull it in as a non-optional dependency, as I think there's virtually 0 chance of anyone having conflicts with it.

Before the actual PR happens, I will do more tests to figure out sensible compression levels (in terms of time/memory usage), so it can be documented.

I think what you're doing here is really interesting. Do you have a blog where you could do a write up of the process/results? If not, I'd be happy to host an article on javalin.io (if you want to write one)

And yes, I am happy to change the wrapper so it allows adjustment of compression level, if desired! The only reason I haven't already done that, was to keep it in line with Jetty's Gzip (which also doesn't allow for level changes without a workaround)

As @pkkummermo mentioned already, Javalin doesn't use Jetty for GZIP. The core HTTP part of Javalin (the JavalinServlet) can be run on other servers by calling Javalin#createStandalone and calling app.servlet().service(req, res), so I thought GZIP should be separate.
I guess we'll need something like a CompressionStrategy now, which can take a GzipConfig(compressionLevel) and/or a BrotliConfig(compressionLevel).
Javalin.create { config ->
    config.dynamicCompressionStrategy = CompressionStrategy(Brotli(lvl), Gzip(lvl)) // default is (null, Gzip(lvl))
    config.disableDynamicGzip // CompressionStrategy(null, null)

I also suspect we should refactor GZIP and Brotli out of JavalinServlet, and into it's own class or object.
As @pkkummermo mentioned earlier, we should probably mark this as experimental, since there are a lot of unknowns.

If you are happy to move forward with this, I will open a pull request. Alternatively, please let me know what else needs to be done. :)

Please do! Thanks again for all the work you're putting into this :)

@tipsy

Is there a newer version? I'm looking at https://github.com/MeteoGroup/jbrotli, and it seems to be dependency free.

Yes, the only "dependency" i am able to see is the very first folder in the repository is named "brotli @ 66c1451", From what I can tell, it's a direct import/copy of the source at https://github.com/google/brotli/tree/66c14517cf8afcc1a1649a7833ac789366eb0b51, which is an old branch of Brotli. But I imagine you are probably referring to dependencies in the form of libraries auto-included via plugins such as maven or gradle? If so, then you are correct, it has none of those, so there should be zero chance of conflict :)
JBrotli itself does use maven to download a native Brotli library depending on the platform the project is running on, but these native libs are pre-compiled and simply fetched from a maven repo as needed. They do not need to be built locally. JBrotli itself handles everything in the background once included via maven.

Also, how big is this dependency?

On Windows 64bit, the native Brotli lib it pulled is 321 KB, the JBrotli lib itself is 27 KB, so about 350 KB total. (I imagine size variance for other native libs will be negligible.)

I think what you're doing here is really interesting. Do you have a blog where you could do a write up of the process/results? If not, I'd be happy to host an article on javalin.io (if you want to write one)

Sure, I would love to. I do need to come up with a better testing strategy to get useful results out of it, though. So far, I have only been running the same "SillyObject" test over and over to eliminate memory/speed issues. Will need much more variety and ideally, real web content in order to get some useful comparison (and troubleshooting!) results.
Do you happen to know of any interesting web test suites that do a good job mimicking real-world HTTP data, rather than just generating random junk?
If not, would it make sense to just set up Javalin as a "middleman", having it request live web pages and forwarding the results to client? It would take some interesting workarounds, such as decoding existing compression, then re-encoding it ourselves and forwarding to client, but it should provide organic results as long as these workarounds are excluded from the benchmarks. Really, I am not sure if this is reaching too far, it's just an idea to get results from live web data. I am completely open to alternative suggestions!

I guess we'll need something like a CompressionStrategy now, which can take a GzipConfig(compressionLevel) and/or a BrotliConfig(compressionLevel).

I also suspect we should refactor GZIP and Brotli out of JavalinServlet, and into it's own class or object.

Agreed on both counts. I will get this done!

As @pkkummermo mentioned earlier, we should probably mark this as experimental, since there are a lot of unknowns.

Please do exactly that. Outside of the first contribution tutorial repo, this is literally my first Github contribution. Furthermore, my experience with version control and maintaining backwards compatibility is very limited. Because of this, it makes me a lot more comfortable having my code marked experimental, even if the situation hadn't strictly called for it.
Also, thank you for the kind comments and encouragement. It really means a lot to an open source newbie like me. :)

Also, in regards to the pull request. Should I do this right now, with my code as it is?
I understand they are meant to be used for discussion, revisions and collaboration before code merging actually happens, but I am completely new to Github, so I have no idea how to use them "properly". (specifically, what is easiest for you as the project owner)
So far, I have just been committing to my own fork of Javalin and writing commit comments, but I am not sure if this is the appropriate workflow.
I would be very grateful for some guidance here! :D

Also, in regards to the pull request. Should I do this right now, with my code as it is?
I understand they are meant to be used for discussion, revisions and collaboration before code merging actually happens, but I am completely new to Github, so I have no idea how to use them "properly". (specifically, what is easiest for you as the project owner)
So far, I have just been committing to my own fork of Javalin and writing commit comments, but I am not sure if this is the appropriate workflow.
I would be very grateful for some guidance here! :D

The earlier the better. A PR is a lot more visible than keeping your own fork, so it gives other members of the community a chance to get involved in the change. For me as a project owner it's easier too, since I can easily look through the changes against master.

Please do exactly that. Outside of the first contribution tutorial repo, this is literally my first Github contribution. Furthermore, my experience with version control and maintaining backwards compatibility is very limited. Because of this, it makes me a lot more comfortable having my code marked experimental, even if the situation hadn't strictly called for it.

You can add a normal deprecation: @Deprecated("Experimental API - May change soon") (or similar). Then we remove the deprecation when the API is stable.

Do you happen to know of any interesting web test suites th ... I am completely open to alternative suggestions!

Maybe you could manually download a few websites and API responses and save them as files, then read them and serve them from memory?
val smallWebsite = readFile("/smallWebsite.html")
val mediumWebsite = readFile("/mediumWebsite.html")
val largeWebsite = readFile("/largeWebsite.html")
val smallJsonResponse = readFile("/smallJsonResponse.json")
val mediumJsonResponse = readFile("/mediumJsonResponse.json")
val largeJsonResponse = readFile("/largeJsonResponse.json")

I guess more is better, but be considerate of your own time. JSON is more interesting than HTML.

On Windows 64bit, the native Brotli lib it pulled is 321 KB, the JBrotli lib itself is 27 KB, so about 350 KB total. (I imagine size variance for other native libs will be negligible.)

That sound acceptable as a direct dependency. Any opinion @pkkummermo ?

EDIT: Sorry, forgot you asked if there was a newer version. Did you mean of the original Brotli lib, or JBrotli? There are much newer versions of Brotli,

I meant Brotl itselfi. Would be interesting to see how much better the current version is.

Also, thank you for the kind comments and encouragement. It really means a lot to an open source newbie like me. :)

You're welcome. I've been running this and few other projects for years, and it's rare to get contributions of this quality.

350 kb is negligible in terms of "bundle size", so I'd say go ahead on a direct dependency :) As @tipsy said; the earlier the PR the better due to it being visible to people looking at the repo and them being able to give input.

PR has been opened! I apologize for the commit flood. Most of the early ones are part of my early experiments with the libraries and can be ignored, as I've already reversed them throughout later commits.
Thank you for the feedback, I will open a PR much sooner next time. My thinking was that I didn't want to bother anyone with PRs until I had a decent code contribution going, but I see now why that line of thinking was flawed. :)

You can add a normal deprecation: @Deprecated("Experimental API - May change soon") (or similar). Then we remove the deprecation when the API is stable.

Good idea! I will do this once I have all the desired API changes implemented.

Maybe you could manually download a few websites and API responses and save them as files, then read them and serve them from memory?

Sure, I will give that a try.

I meant Brotl itselfi. Would be interesting to see how much better the current version is.

I plan on trying to make JBrotli use the newest Brotli version, but this will involve updating the c++ source code for the native libraries.
I am not saying no! I want to do it, but it's something that may take me a bit of time to figure out :)

You're welcome. I've been running this and few other projects for years, and it's rare to get contributions of this quality.

I am happy to know you think highly of my contributions! I feel it is only fair I give my best once I decide to get on board with an interesting project.
I am also thankful for the opportunity to contribute. Javalin ticks a lot of boxes in terms of skills I wish to develop. :+1:

I'll close this one now, and open a new one for static files.


Self-collision in cloth simulation

Hello,
I have been experimenting with some simple cloth simulations. I wish to enable self-collision during a simulation but cannot seem to find any information related to the subject. So I wanted to ask:

Does Warp support self-collision for cloth?
If so, how can I enable/disable it?

Hi @kkaracam, the solvers shipped with Warp currently don't implement self-collision for cloth, apologies. This feature will likely make its way in the future but this is not a priority at the moment. Some have rolled their own solvers in Warp to implement the features they needed, so maybe that's something you could experiment with if you'd like to?

Hi @christophercrouzet, thank you for your response. I'll consider my options accordingly.


If option and string variables

Hello Ben,
The "if" option does not seem to work with string variables. Would it be possible to fix it please?
Thanks,
Aram

This is fixed in 542d9615e3bdbe2bd4330a67c5f9016369dc405e


test(spanner): add integration tests to g/c/spanner/admin

Add integration tests to the generated Spanner admin API tree. Note,
however, that these are currently only direct copies of the existing
tests for the hand-written APIs from g/c/spanner, and will be updated
separately to actually use the generated APIs.

This change is

BTW, only 40% of the test code runs with the emulator? That is an indictment on the emulator feature coverage.

A combination of !emulator and !daily methinks.  But it is certainly an issue.


Local release workflow

Currently, the release workflow is used to publish the package to typst/packages.
I propose changing it to be named publish and add a new workflow called release which actually handles the release on the repo itself.
This new workflow should either:

on push of a tag matching v*: create a new draft release, or
on creation of a release, upload release artifacts to a release page.

In either case, such an action should do a few things:

Generate a default changelog from either a CHANGELOG.md file or the main git commit history

Although GitHub can do the latter for you, so this might not be too important.

Compile and package supplementary material for a release, like manuals and other assets.

There's no hard rule on how documentation is done for Typst packages yet, most people simply compile a manual, some others like cetz host their own GitHub Pages, we could look at popular packages and adapt some of their practices.

I agree that splitting publishing and releasing into separate commands would be beneficial - too many times have I botched a release and needed to manually clean up branches and tags, when it could have been averted by splitting the process


[BEAM-1492] Upgrade bytebuddy to 1.6.8 to jump past asm 5.0

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

There is a suspected bug in asm 5.0 that is considered the likely root cause of a bug sbt/sbt-assembly#205 (see this comment) that carried over to Gearpump. This commit upgrades us to depend on bytebuddy 1.6.8 that uses asm 5.2 in which those derivative bugs have cleared up.
I have not found a direct reference to what the issue is, precisely, but the dependency effect is nil because bytebuddy is fully shaded (no deps) so we might as well jump past any problematic version eagerly.

Coverage decreased (-0.01%) to 69.903% when pulling 3e4c05c3449064e7f032a48b98551a73d71a5bbb on kennknowles:bytebuddy-asm into 00ea3f7d7ffbca398f8deeb1feefc1e1d635ef2a on apache:master.

R: @davorbonaci

LGTM on the basis that this is never exposed to users.
Also, R: @peihe, because he has some experience with this and may potentially have additional insight.

LGTM


Use correct terminology for a NonSend run condition panic

Objective
There is a panic that occurs when creating a run condition that accesses NonSend resources, but it refers to them as 'thread-local' resources instead.
Solution
Correct the terminology.

bors r+


feat: add beacon block header type

Description
This PR implements the Beacon Block Header type.
Closes #53

The "Lint" check is failing. Please run mix format and push the changes

@MegaRedHand Formatted and pushed changes!

Hi @h3lio5 , we merged https://github.com/lambdaclass/lambda_ethereum_consensus/pull/97 which was a big refactor. Please sync with main and adapt your changes to the new format. Thanks!!


Implement removeCollection

The same way addCollection exists, it should be possible to removeCollection, dropping all the data, indexed, views, etc...

@alexandernst https://github.com/techfort/LokiJS/blob/master/src/lokijs.js#L753 - this what you're looking for?

Yes, exactly. Not sure how I missed it :)
Let me make a PR for the docs (it's missing there)

Done. https://github.com/techfort/lokijs.org/pull/11


a crash occurs on the contributor screen when clicks 'UP' button

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to the contributor screen
Click UP button
Crash occurs

Expected behavior
A clear and concise description of what you expected to happen.
1⃣ Navigate to previous screen. (without crash)
or
2⃣ Hide UP button.
Screenshots
If applicable, add screenshots to help explain your problem.

According to Figma design, the Contributor should not be placed in Bottom Navigation should it transition from the Abort screen?
Or should it transition from both the Abort screen and Bottom Navigation?

You are correct. The reason we are currently displaying the contributor in the bottom navigation is that it's vital to collaborate with the contributor during this early phase of development. We plan to remove it from the bottom navigation in the future.

So maybe this is intended behavior. Let me close this 🙇


[LocationLayer] Mapbox freeze when smartphone come back standby

I have a app with this plugin. The 0.2.0-SNAPSHOT works fine, but if i try version 0.3.0-SNAPSHOT the mapbox freeze when come back from standby. in other words, if i press power button and back again the map is freezed (blocked).
Please help.
Thank you.

Hey @radaresdeportugal, thanks for reporting, I tried reproducing on master but didn't see any issues following the steps you provided. Can you provide the device information you are using to test this on?

Please see: https://youtu.be/0LR67XP-9do
Thank you!

sorted out. I had an error in mapView.onStop (); thank you!


Use jsmin PHP extension at http://www.ypass.net/software/php_jsmin/

Hi,
Just to know if you have take a look at this php extension:
http://www.ypass.net/software/php_jsmin/

i've tried it in a project, and have integrated it into minify just with that:

class Minify_ExtJsmin {
    public static function minify($code, $options = array())
    {
        return jsmin($code);
    }
}

For big groups of js files, the generation time passed from 2s to 30ms...
awesome.

Maybe you could integrate this in minify sources ?

Cheers

Xavier

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 17 Dec 2009 at 1:22

I'll give it a link, but
1. I want Minify to stay as portable as possible for shared hosting users.
2. Unless you're changing your JS files every few seconds, our server-side
caching
makes the minification a small one-time cost.
3. It's unknown if this extension has fixed Issue 74
4. If rumors are true, Minify may have to abandon all use of JSMin due to
Google Code
licensing restrictions. The relatively new JSMin+ is likely my second choice
(if we
don't move the project).

Original comment by<EMAIL_ADDRESS>on 17 Dec 2009 at 2:16

Changed title: Use jsmin PHP extension at http://www.ypass.net/software/php_jsmin/
Changed state: WontFix
Added labels: Type-Enhancement
Removed labels: Type-Defect


There are some deficiencies in automatic completion

fileA.py
import astropy.units as u

class A:
    def __init__(a: int = 1, b: u.Quantity[u.yr] = 0*u.yr) -> None:
        pass

fileB.py
import astropy.units as u

from fileA import A

class B(A):

If I type init and use autocomplete. Pylance will give me the following code:
    def __init__(a: int = 1, b: u.Quantity[u.yr] = ...) -> None:
        super().__init__(b)

However, I want autocomplete can recognize 0*u.yr in A instead of ...

Thanks for the bug report. This will be fixed in an upcoming version of pylance.

This issue has been fixed in prerelease version 2022.9.31, which we've just released. You can find the changelog here: CHANGELOG.md


Add a "in progress" status when a Central sync is not yet available on Central but already released

And add a note in the announcement that "It will be available as soon as Maven Central is updated with the new release"

This will indicate in the new info page


Use instead ddc-source-omni

ddc.vim is providing omnifunc source.

I'm not a ddc.vim user, but I believe that omnifunc is sync, while this implementation here is async.
What are the advantages of omnifunc over this?


Backend UI

Maybe we could contribute a simple UI to show all events in the database. With filter options etc.

here we go: https://github.com/patchlevel/event-sourcing-admin-bundle


Auto rename image

Just a suggestion, if possible, if an image output already exist, it will be renamed to output1, output2. Thanks again.

I use a shell script to do it, for me besides the output image saving the prompt is also important. I often run prompts multiple times as a batch task.
you can see my script here
https://gist.github.com/senthilnayagam/6a247081b4d541057d2b7c7354609a46


Create test.yml

Creates a github action that should test the action.
Requires the setup of two secrets: DISCORD_BOT_TOKEN and CHANNEL_ID. Channel id doesn't need to be a secret, but that way it's a variable, idk.
Yes this will spam that channel every time there is a commit, an approved PR run (or if you click the dispatch button).
Not tested btw.

Actually, this probably requires something to build the source files into dist right?

I think it automatically chooses the dist directory. So nothing to worry about

I meant that the action should have something to fist build the changes in src before running, else it's a bit pointless if it just runs what's already there.


Add driver for the Logitech G300/G300s

Supports the common functionality exposed by libratbag:

selecting profile 1-3 (profiles cannot be disabled)
selecting resolution 1-4 (can also not be disabled)
report frequency
default resolution per profile
button actions: mouse button numbers or key+modifier
(modifiers are just a bit field and can easly be set
in the driver, but not included as libratbag does not
support it yet)
LEDs are not yet hooked up but are just a table of 7
different predifined colors.
Seting active profile and resolution are both implemented
but only profile activation is in use. The resolution
activation code is commented until supported from libratbag
itself.

The G300 has an unusual way of numbering buttons:
Left:1, Right:2, Middle: 3
The purpose of report type 0xF2 is not known.

Note that the driver is added to the autodetection for logitech mice that support neither HID++ 1 or 2. Specifically it will be used for any mouse with a report ID 0xF1. This might make it useful for e.g. the G600 and other non-HID++ mice. However, it does specifically not work for the G400s that I have. That was the reason I did not give the driver a generic name. Let me know if I should rename the driver.
I will see what I can do about getting a G600 to test - and perhaps extend the driver to support if relevant.

I pushed a commit that deals with most comments. I am still thinking about a good name for the driver. It is only relevant for the G300 and G600. I have a few other unsupported logitech mice but they will not be supported by this driver as they do not even use HID :(. What about logitech-hid as a name for this one?
The code to get the current profile now uses the LED color code. This is not ideal as two profiles can use the same color. I don't see any other way to get it though.

I pushed a commit that deals with most comments. I am still thinking about a good name for the driver. It is only relevant for the G300 and G600. I have a few other unsupported logitech mice but they will not be supported by this driver as they do not even use HID :(. What about logitech-hid as a name for this one?

Nah. logitech-hid would also match HID++ which uses HID too. Just keep g300, we'll add support for g600 in it, and see how it goes for other devices if there is a need. People just need to know that G600 and G300 are somewhat equivalent.

The code to get the current profile now uses the LED color code. This is not ideal as two profiles can use the same color. I don't see any other way to get it though.

I think it's a hardware limitation you can't defeat. IIRC, if you set 2 profiles with the same color in LGS, you are screwed too and you can't access the second profile ;)
Please squash the update in the initial commit and we'll take this one directly.

Thanks. I have squashed the two commits.


Improve SA1215

Improvement from feedback provided in #1112.

Saves on allocations, and work is done in one pass over the collection. @Maxwe11 would you mind assisting in the explanation?

@NikolayIT see an outdated diff


ML (week 3) : Outlier Detection Using Autoencoders (D)

Description
I want to contribute in this topic.
The documentation will have proper explanation as well as code on the same.
Under :
[x] GWOC21
[x]Hacktober
[x]ML
Domain
Machine Learning
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Ritika Chand
Batch 1
@geeythree  @abhisheks008  Please assign it to me ^-^


Us12311

add store to product type

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: nhan-mission-plus:x: Tranngocvan99You have signed the CLA already but the status is still pending? Let us recheck it.


Add format selection to GameSelection

https://github.com/sopra-fs23-group-39/sopra-client/commit/77f0a4a8596e478491060dc34ca541c450c5a57d


add Kubereq.can_i?/3

Pull Request Test Coverage Report for Build 3430d1906d8701c89899ad7d49bca9acdaef063f-PR-48
Details

6 of 9 (66.67%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 75.413%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/kubereq.ex
6
9
66.67%

Totals

Change from base Build ecf7820b371768a110b3e4687af297259a7ad944:
-0.1%

Covered Lines:
411

Relevant Lines:
545

💛  - Coveralls


[feature] Add context manager for disabling auto_now updates [OSF-8222]

Purpose

Adds a context manager to prevent auto_now fields from being updated during migrations and scripts.

Changes

Adds disable_auto_now_fields context manager and test in test_utils.py.

Side Effects

None expected.

Ticket

OSF-8222

👍 Documented in the scratchpad


Refactor/plancard

Change plancard component to receive icon as object and function
<PlanCard.ListItem icon={Smartphone} text="24 wellness app" />
<PlanCard.ListItem icon={<Icon as={Star} height="small" width="small" stroke="medium" />} />

I believe that it's a new feature/addition rather than a refactor. What do you folks think? If so, I'd suggest to rebase this commit history to update its names
cc/ @allyssonsantos @evilamaior @ggdaltoso


Check for node_modules in start.js then run gulp - with logging

this fixes #300
the kit now works the same way it did with Grunt - start.js checks for node_modules, then runs gulp. The only difference is we have to add logging to gulp. In gulp this is done by the command line app. I've copied and pasted the code they use.
It'd be really useful if the logging was made available by gulp so it can be used programmatically in exactly the same way as from the command line.

closing in favour of #303 as that doesn't require copying and pasting code from gulp


How to make powerlevel theme work in root mode?

Like in topic :)

Can anybody help?

your root shell should be ZSH and has same config as normal user

Hi, try using 'sudo -sE' instead of 'su' - The -s will run a shell as root and the -E will preserve your environment. The caveat here is that you won't get root's environment, so you'll need to set root environment things that you want up for your normal user if not already there(things like sbin in path, etc)

Thx, for help. I don't want to struggle with that and change root shell.

@PrzemekSkw try the sudo -sD command, it doesn't require changing your root shell at all, it just executes a shell as root and maintains your current environment(shell and all it's settings).

@PrzemekSkw - The fundamental thing happening, here, is that you configured your shell for you as a user, but not for root. You can either configure root's shell as you have your own, or use some of the suggestions from folks in this thread.


Zebra Label Print Invalid characters.

Is your feature request related to a problem? Please describe.
We are using CUPS server for printing and Zebra printers. We are seeing invalid characters from time to time.
ZPL print starts with ^XA and ends with ^XZ and it prints successfully in Zebra printers, but few times on a daily basis we are seeing invalid characters ^xa^xa END at the end, which is showing in the Zebra print logs and didn't print the label.  Print request transferred from CUPS to Zebra, invalid characters shows up in the Zebra print logs. From the application to CUPS, we are seeing the correct print characters. When we check the print logs in the CUPS, we are seeing the labels with correct ZPL characters.
Describe the solution you'd like
In the CUPS server when we check the print log it is showing correct print commands starts with ^XA and ends with ^XZ. We are expecting this behavior all the time.
Describe alternatives you've considered
After trying reprints few time(s) the label gets printed in the zebra printer.
Additional context
We wanted to know if there was any prior issue like this, is there any bug reported for this issue.

What version of CUPS are you using?
What OS/Linux distribution?
What printer model(s)?
What driver are you using?

Thank you for the email. It has been a while we logged this issue.It was the network issue and they resolved it
On Tuesday, August 13, 2024 at 09:22:26 PM PDT, Michael R Sweet @.***> wrote:
What version of CUPS are you using?
What OS/Linux distribution?
What printer model(s)?
What driver are you using?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Loosen restrictions on email validation

This changes the email validation to be less restrictive. The rules are:
For each part (includeing the local and domain parts)...

Disallow a dot at the start (NO<EMAIL_ADDRESS>Disallow a dot at the end (NO<EMAIL_ADDRESS>Disallow double "dots" anywhere (NO<EMAIL_ADDRESS>Require an @
Ensure there is one or more non-whitepace character before and after the @

This is open sourced.  So theoretically other people could be using it.  Seems like we would either want to cut a new version for this.  Or instead make this a different method.

@paetling planning to cut a new version.

An alternative would be upgrading the regex we're stealing from Django to the 1.9 version, which admits the longer TLDs:
https://docs.djangoproject.com/en/1.9/_modules/django/core/validators/#EmailValidator

also see ben's tech suggestion.

+1 continuing to borrow from Django

The new Django regex still follows the "restrict-first" approach. That means it has to be 100% for every possible email, which has been shown to be impossible [1][2][3]. Looking at it there are a few things Django is excluding which are valid:

Unicode (which it could be adapted to allow)
Backslash ('') inside the local or domain parts
At ('@') inside the local or domain parts

The local part is actually only supposed to be interpreted by the domain. The RFC warns against it:

Consequently, and due to a
long history of problems when intermediate hosts have attempted to
optimize transport by modifying them, the local-part MUST be
interpreted and assigned semantics only by the host specified in the
domain part of the address.

There may be other reasons using a specific regex breaks down, there are many things to account, but that is the reason to loosen the restrictions, there are too many things to account for.

I think permit-first makes sense. If a restrict-first validator is preferred for a specific use case then maybe it could be added separately, but false positives in email validation cause major headaches. You should still add test cases for the emails you are and are not purporting to support.


it it possible get a hold of the injector used to inject resolves into controllers?

Can you tell me if the injector used by ui-router to inject resolves into controllers is exposed somewhere? I would like to use it in a few other places that have access to scopes of the routes/controllers, but I have no idea how to do it.
thank you

AFAIK resolves aren't exposed anywhere currently. We plan to address this in 1.0.

not even in some hacky undocmented object?
can you atleast point me in the source where the injector is created/invoked? I looked for it but could never find it

The hacky undocumented please don't do this way might be to grab resolved data off $state.$current.locals.globals. The injector isn't something exposed anywhere.

@nateabele or @christopherthielen, has this already been addressed in 1.0?

I would be interested too ... i'd like to access some resolved data into some inner component without overriding a very generic controller =)

@rinogo yes, see https://ui-router.github.io/docs/latest/classes/transition.transition-1.html#injector

Thank you, @christopherthielen ! :)


Expose multiple rancher environments

Hi,
I am using rancher and Prometheus and it's working great to see metrics from rancher environment where Prometheus is running.
I cannot see metrics from other rancher environments.
How can I add them to Prometheus monitoring?

Hey @jean-francois-labbe this can be done multiple ways. One way, is to run an exporter per environment you monitor, the results could then be separated by the static_configs labelling in Prometheus. The other way... You could potentially make use of a user based API key, instead of the current environment level API key. This should allow you to see everything your user can see.
I don't believe such a key could be automatically provisioned as we do so now, but i think you could create one and set it manually on the container using environment variables.

Thank you, I'll try this.
I just have to wait for rancher 1.2 support

@jean-francois-labbe 1.2 should be supported with the latest version (07) tag on github.


key changes

https://github.com/zumper/zumper_code/issues/17743

Nit and LGTM

lgtm

@akshaych is this PR dead?


Functional: Compiled backends integration unstructured

Support for using unstructured backends directly from Python. Uses https://github.com/GridTools/gridtools/pull/1730.
Superseeds: #875

Can you try enable the tests in test_toy_connectivity and potentially others

As discussed offline the iterator tests will be enabled in a seperate PR after #1130 is merged. Until then only one test was enabled.


How do I run piston in Ubuntu?

~/.local/bin/piston --help
if you don't want to use the path, you need to add ~/.local/bin to your PATH environmental variable .. there's docs in the ubuntu wiki on how to do that .. I guess

~/.local/bin/piston --help
Hi xeroc. Tks for the tip.
I ran this command and the message i get is
bash: /home/julio/.local/bin/piston: No such file or directory
According to
https://steemit.com/piston/@xeroc/piston ,
piston should have been installed in this location when I ran
pip3 install --user steem-piston
Any suggestions?
 The upcoming API changes to steemd may break compatiblity :-/


Allow constant arithmetic expressions?

I have an enum that looks like:
#[repr(u16)]
#[derive(Clone, Copy, int_enum::IntEnum)]
enum Controls {
    DpadUp     = 1<<0,
    DpadDown   = 1<<1,
    DpadLeft   = 1<<2,
    DpadRight  = 1<<3,
    FaceA      = 1<<4,
    FaceB      = 1<<5,
    ...[snip]
}

1 entry for each bit of a u16. IntEnum chokes:
error: expected one of `...`, `..=`, `..`, `=>`, `if`, or `|`, found `<<`
  --> src/main.rs:35:19
   |
35 |     DpadUp     = 1<<0,
   |                   ^^ expected one of `...`, `..=`, `..`, `=>`, `if`, or `|`

error: proc-macro derive produced unparsable tokens
  --> src/main.rs:33:23
   |
33 | #[derive(Clone, Copy, int_enum::IntEnum)]
   |

The normal enum syntax does support the bitshift expressions here. Would it be possible for int_enum to support simple arithmetic in the assignment position?

I'm currently working on a rewrite that supports this.


Minor FR: Add link to orignal Obsidian API file

I think it might be useful if every auto-generated page could also include a direct link to the respective section of the Obsidian API? Makes it a bit easier to look some things up there.

Good idea!


multilanguage: compile QM in scons

Compiled QM files are no longer checked into openpilot. This makes it nicer for contributors with varying Qt packages causing the files to be slightly different and failing tests

this commit build test scons build ok..!!
Updating 'selfdrive/ui/translations/main_ja.qm'...
    Generated 231 translation(s) (231 finished and 0 unfinished)
    Ignored 4 untranslated source text(s)
Updating 'selfdrive/ui/translations/main_ko.qm'...
    Generated 250 translation(s) (250 finished and 0 unfinished)
Updating 'selfdrive/ui/translations/main_zh-CHS.qm'...
    Generated 229 translation(s) (229 finished and 0 unfinished)
    Ignored 5 untranslated source text(s)
Updating 'selfdrive/ui/translations/main_zh-CHT.qm'...
    Generated 229 translation(s) (229 finished and 0 unfinished)
    Ignored 5 untranslated source text(s)


Refinements frequently used?

https://flow.org/en/docs/lang/refinements/ starts out "Refinements are a frequently used aspect of any type system."  My understanding is that many (most?) type systems don't have refinements, in the sense used here.  Reporting so that it can be fixed or I can learn something.

I am pretty new to this whole thing, but consider a variant in Ocaml:
type basic_color =
| Black | Red | Green | Yellow | Blue | Magenta | Cyan | White

We would use pattern matching on some value with the type of basic_color. Seems quite similar.

I'm not sure where the theory falls but I can certainly see the similarity.
But the question isn't whether there are other type systems with refinements, but rather whether there are type systems without.  I contend that there are major, well known type systems without anything equivalent (probably most clearly C).
Replace "any type system" with "some type systems" and it's a claim I might've made.  Replace it with "most type systems" and I'd be a little surprised but not bother correcting.  But "any type system" seems far enough off that I stumbled, going through the docs.

Maybe any strong type system? C is weakly typed

I think strong/weak is mostly orthogonal.  A restricted C that had strong typing would still not have refinements.

There needs to be a new tag "bikeshedding" so that it can be used for this discussion.

@ll000111 this isn't just chatting, it is about misleading documentation

@goodmind Sure - the same great importance as the discussion about how many angels can dance on the head of a pin". Very valuable!

@dlthomas— feel free to PR "any" to "many" and tag me for the merge. There are certainly typesystems without refinements (: Thanks for the catch.


When I use the command pip install -e python in the triton-cpu folder I get an error

I successfully installed using the command pip install ninja cmake wheel. However, when I used the command pip install -e python in the triton-cpu folder, an error occurred.
triton-cpu/third_party/amd/backend/include']' returned non-zero exit status 1.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building editable for triton
Failed to build triton
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (triton)

Please carefully follow the install process one more time, described in https://github.com/triton-lang/triton
And, try to give -vv option to see where it actually fails.
pip install -e python -vv

@minjang Hello, I used the pip install -e python -vv command, but unfortunately an error occurred. The error message is as follows:
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '/home/y/triton-cpu', '-G', 'Ninja', '-DCMAKE_MAKE_PROGRAM=/tmp/pip-build-env-ud89ri4t/overlay/bin/ninja', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DLLVM_ENABLE_WERROR=ON', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/y/triton-cpu/python/triton/_C', '-DTRITON_BUILD_TUTORIALS=OFF', '-DTRITON_BUILD_PYTHON_MODULE=ON', '-DPython3_EXECUTABLE:FILEPATH=/home/y/miniconda3/envs/triton310_env/bin/python', '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON', '-DPYTHON_INCLUDE_DIRS=/home/y/miniconda3/envs/triton310_env/include/python3.10', '-DTRITON_CODEGEN_BACKENDS=nvidia;amd;cpu', '-DTRITON_PLUGIN_DIRS=', '-DPYBIND11_INCLUDE_DIR=/home/y/.triton/pybind11/pybind11-2.13.1/include', '-DLLVM_INCLUDE_DIRS=/home/y/.triton/llvm/llvm-ce80c80d-ubuntu-x64/include', '-DLLVM_LIBRARY_DIR=/home/y/.triton/llvm/llvm-ce80c80d-ubuntu-x64/lib', '-DCMAKE_BUILD_TYPE=TritonRelBuildWithAsserts', '-DJSON_INCLUDE_DIR=/home/y/.triton/json//include', '-DPYBIND11_INCLUDE_DIR=/home/y/.triton/pybind11/pybind11-2.13.1/include', '-DCUPTI_INCLUDE_DIR=/home/y/triton-cpu/third_party/nvidia/backend/include', '-DROCTRACER_INCLUDE_DIR=/home/y/triton-cpu/third_party/amd/backend/include']' returned non-zero exit status 1.
error: subprocess-exited-with-error
× Building editable for triton (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /home/y/miniconda3/envs/triton310_env/bin/python /home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_editable /tmp/tmp1tjmjdcq
cwd: /home/y/triton-cpu/python
Building editable for triton (pyproject.toml) ... error
ERROR: Failed building editable for triton
Failed to build triton
Remote version of pip: 24.2
Local version of pip:  24.2
Was pip installed by pip? False
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (triton)
Exception information:
Traceback (most recent call last):
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper
status = _inner_run()
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run
return self.run(options, args)
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
return func(self, options, args)
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 434, in run
raise InstallationError(
pip._internal.exceptions.InstallationError: ERROR: Failed to build installable wheels for some pyproject.toml based projects (triton)
Removed build tracker: '/tmp/pip-build-tracker-u6odjd_3'

@minjang  Hello, I used the pip install -e python -vv command, but unfortunately an error occurred. The error message is as follows:
Traceback (most recent call last):
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in
main()
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 273, in build_editable
return hook(wheel_directory, config_settings, metadata_directory)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 459, in build_editable
return self._build_with_temp_dir(
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 403, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 503, in run_setup
super().run_setup(setup_script=setup_script)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 318, in run_setup
exec(code, locals())
File "", line 614, in
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/init.py", line 117, in setup
return distutils.core.setup(**attrs)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 184, in setup
return run_commands(dist)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 954, in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 950, in run_command
super().run_command(command)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 973, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 138, in run
self._create_wheel_file(bdist_wheel)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 341, in _create_wheel_file
files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 264, in _run_build_commands
self._run_build_subcommands()
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 291, in _run_build_subcommands
self.run_command(name)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 950, in run_command
super().run_command(command)
File "/tmp/pip-build-env-f852rlp8/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 973, in run_command
cmd_obj.run()
File "", line 366, in run
File "", line 463, in build_extension
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '/home/y/triton-cpu', '-G', 'Ninja', '-DCMAKE_MAKE_PROGRAM=/tmp/pip-build-env-f852rlp8/overlay/bin/ninja', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DLLVM_ENABLE_WERROR=ON', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/y/triton-cpu/python/triton/_C', '-DTRITON_BUILD_TUTORIALS=OFF', '-DTRITON_BUILD_PYTHON_MODULE=ON', '-DPython3_EXECUTABLE:FILEPATH=/home/y/miniconda3/envs/triton310_env/bin/python', '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON', '-DPYTHON_INCLUDE_DIRS=/home/y/miniconda3/envs/triton310_env/include/python3.10', '-DTRITON_CODEGEN_BACKENDS=nvidia;amd;cpu', '-DTRITON_PLUGIN_DIRS=', '-DPYBIND11_INCLUDE_DIR=/home/y/.triton/pybind11/pybind11-2.13.1/include', '-DLLVM_INCLUDE_DIRS=/home/y/.triton/llvm/llvm-ce80c80d-ubuntu-x64/include', '-DLLVM_LIBRARY_DIR=/home/y/.triton/llvm/llvm-ce80c80d-ubuntu-x64/lib', '-DCMAKE_BUILD_TYPE=TritonRelBuildWithAsserts', '-DJSON_INCLUDE_DIR=/home/y/.triton/json//include', '-DPYBIND11_INCLUDE_DIR=/home/y/.triton/pybind11/pybind11-2.13.1/include', '-DCUPTI_INCLUDE_DIR=/home/y/triton-cpu/third_party/nvidia/backend/include', '-DROCTRACER_INCLUDE_DIR=/home/y/triton-cpu/third_party/amd/backend/include']' returned non-zero exit status 1.
error: subprocess-exited-with-error
× Building editable for triton (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /home/y/miniconda3/envs/triton310_env/bin/python /home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_editable /tmp/tmpiky1jj44
cwd: /home/y/triton-cpu/python
Building editable for triton (pyproject.toml) ... error
ERROR: Failed building editable for triton
Failed to build triton
Remote version of pip: 24.2
Local version of pip:  24.2
Was pip installed by pip? False
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (triton)
Exception information:
Traceback (most recent call last):
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper
status = _inner_run()
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run
return self.run(options, args)
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
return func(self, options, args)
File "/home/y/miniconda3/envs/triton310_env/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 434, in run
raise InstallationError(
pip._internal.exceptions.InstallationError: ERROR: Failed to build installable wheels for some pyproject.toml based projects (triton)
Removed build tracker: '/tmp/pip-build-tracker-k3_fdhkz'

I would suggest running the cmake command printed in the stack trace above; that should get you a more useful error message. But as mentioned on the other task, please open these issues against the main repo.


Potential security issue: paycoin.conf plaintext keys

Currently Prime Controller keys are activated by adding them to the paycoin.conf file. While the wallet itself can be locked and encrypted, the .conf file is plaintext. If a user employs a backup system like Dropbox that has any security holes, their PC key is also at risk.
At a minimum, new PC owners should be advised of the vulnerability and encouraged to exclude the file from backups, and to securely store a copy the key elsewhere (perhaps in a system like LastPass or 1Password). The new PC owner should also be advised that the device (laptop, desktop, rPi) containing the files should also be password secured and/or physically secured.
Eventually this vulnerability will be solved when Prime Controllers are structured more like micro-primes. So this is probably just a temporary security management issue, not necessarily in need of a solution, but in need of clear articulation of best practices.
I don't know if there's anything else to be done. Is it possible, for instance, to extend wallet encryption to include encryption of the paycoin.conf file?

Good points. Would it be able to place the key in paycoin.conf on first startup, then automatically move it to encrypted wallet.dat and delete it from paycoin.conf? Making it so it's saved and not necessary to place in paycoin.conf on next startup.

Nice comment. I think the best focus would be to make the prime controllers more like the proposed micro-prime controllers.
I don't really see encrypting the .conf file as a good alternative.  The .conf should be an easy to use file with basic configuration options not for a serious private key type situation. It's there for data directory, testnet etc. stuff that doesn't need to be secret.

Yeah definitely won't be encrypting the conf file though to be fair it should only be readable by the user that created it...
The problem with adding it to the wallet.dat is there's no current way to remove it from the wallet.dat at a later time (even temporarily). I agree with @mitchellcash the best option IMHO is to leave it as is for now (until primes can be converted to address based).


Getting Tdlib Java new master branch compiled ?

Hi,
can someone please send me new Compiled Tdlib for java android ?
the new master branch and not the 1.60 version ?.
Thanks.

You need to build it yourself as described in https://github.com/tdlib/td/issues/77#issuecomment-640719893.

I have a repository in which I build automatically TDLib for java.
This is the latest release with tdlib binaries compiled today:
https://github.com/tdlight-team/tdlight-java/releases/tag/v3.168.3-tdlib

Hi,
Thank you very much
But I was unable to add this to my project I am getting unable to resolve ?
I added the repository to the gradle app build script.
And the implementation to the project gradle file.
What am I doing wrong ??
From: Andrea Cavalli<EMAIL_ADDRESS>Sent: Thursday, August 20, 2020 11:52 PM
To: tdlib/td<EMAIL_ADDRESS>Cc: comm-amir-david<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [tdlib/td] Getting Tdlib Java new master branch compiled ? (#1172)
I have a repository in which I build automatically TDLib for java.
This is the latest release with tdlib binaries compiled today:
https://github.com/tdlight-team/tdlight-java/releases/tag/v3.168.3-tdlib
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/tdlib/td/issues/1172#issuecomment-677897613 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDSUDQXEHZRHRIGH4XWHW3SBWEHFANCNFSM4QBUPTRA .

@comm-amir-david I can't understand what you did. You need to compile the latest TDLib first before you can use it.

Prebuilt TDLib for Android was updated to 1.7.0: https://core.telegram.org/tdlib/tdlib.zip.


🚀 Feature: CREATE CUSTOM ISSUE TEMPLATE

🔖 Feature description
Creating a custom issue template for the project will streamline the process of issue reporting and tracking. This template includes specific fields that guide users to provide relevant details, making it easier for maintainers to understand, prioritize, and resolve issues effectively. This addition is expected to improve the overall quality of reported issues and enhance team productivity.
🎤 Why is this feature needed ?
Consistency: It ensures that all issues reported follow a uniform structure. This makes it easier for contributors and maintainers to understand and prioritize issues.
Clarity: A well-defined template helps users articulate their issues clearly, providing all necessary information upfront. This minimizes back-and-forth communication for clarification.
Efficiency: By guiding users through the reporting process, you can reduce the time spent on reviewing and responding to issues. This streamlines the workflow for both reporters and maintainers.
Prioritization: It helps assess the severity and urgency of issues based on the information provided in the template.
Documentation: Templates serve as documentation that can educate users about what is considered an acceptable issue report.
Encouragement: By making it easy to report issues, you encourage more contributions and engagement from the community.
✌ How do you aim to achieve this?

🔄 Additional Information
N/A
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

Are you willing to submit PR?
Yes I am willing to submit a PR!

@kom-senapati assign me the task under "GSSOC-EXT"

Issue templates are already there


WIll be there support for audio driven lips animation?

As the title says, will be there support for audio driven lips animation?

Duplicate of #9.


Keyboard shortcuts doesn't allow numbers/special char

Keyboard shortcuts doesn't allow numbers such as Ctrl+(1-9) and special char such as Ctrl+/-+*

This isn't up to me. This is Google Chrome:
Supported keys: A-Z, 0-9, Comma, Period, Home, End, PageUp, PageDown, Space, Insert, Delete, Arrow keys (Up, Down, Left, Right) and the Media Keys (MediaNextTrack, MediaPlayPause, MediaPrevTrack, MediaStop).
https://developer.chrome.com/extensions/commands


Fixes #2205. Reduce fragility of clipboard related unit tests

Fixes #2205

Windows tests, before:

Windows tests, after:

So not significantly faster (was hoping that as a side benefit).

@BDisp - Man, I feel your pain. The Clipboard on WSL and Linux is a mysterious beast!
I think I made solid progress in making the unit tests more robust with this PR. Please review.
@tznind, @BDisp (or anyone else) - please pull this down locally on a Mac AND real Linux install and test it please. I don't have either.

Can confirm that running Ubuntu laptop things work as expected.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal

I was able to copy/paste when xclip was installed.  When it was not installed I was unable to copy and when I try to paste I get the text 'Clipboard Not Supported'.

I wonder if its worth having an event for clipboard read failure so users can handle it in an app specific way (e.g. show popup or revert to 'internal only clipboard')

@BDisp - Man, I feel your pain. The Clipboard on WSL and Linux is a mysterious beast!

I know :-) you learned the hard way that even you could install xclip in WSL it doesn't work at all and only pwsh works.
@tig this is broken on WSL on copy/paste:

I wonder if its worth having an event for clipboard read failure so users can handle it in an app specific way (e.g. show popup or revert to 'internal only clipboard')

I agree. In the develop branch if the clipboard isn't supported it fall to uses the internal clipboard. So the Clipboard.Contents is always set even the clipboard isn't supported.

On Mac (on VirtualBox) all tests passes:

I wonder if its worth having an event for clipboard read failure so users can handle it in an app specific way (e.g. show popup or revert to 'internal only clipboard')

I agree. In the develop branch if the clipboard isn't supported it fall to uses the internal clipboard. So the Clipboard.Contents is always set even the clipboard isn't supported.

I wonder if its worth having an event for clipboard read failure so users can handle it in an app specific way (e.g. show popup or revert to 'internal only clipboard')

I agree. In the develop branch if the clipboard isn't supported it fall to uses the internal clipboard. So the Clipboard.Contents is always set even the clipboard isn't supported.

To be clear, @tznind did you experience this not working, or are you speculating? I believe this is working properly (and have written additional unit tests to prove it). Thanks!

To be clear, @tznind did you experience this not working, or are you speculating? I believe this is working properly (and have written additional unit tests to prove it). Thanks!

So when I clicked 'Paste' when xclip was not installed the text "Clipboard is not available" was pasted in.  This was a bit unexpected to me.  Its not bad behaviour but it doesn't help me as a user understand what I need to do to fix the clipboard.
As a developer it would be nice if it were easy to tailor the libraries behaviour under such circumstances e.g. instead of outputting "Clipboard not available" it could:

Output nothing at all
Copy/Paste from an internal 'memory only' clipboard class
Display a modal dialog telling my users to install xclip (if on linux)

All three of these behaviours could be more user friendly depending on the target audience of the application being developed.
Its possible this is no longer the behaviour on this PR, I haven't re-tested it since my last post.

Alright, I think I have everything fixed except the Curses reset issue @BDisp noted.
Still trying to figure that one out...

As a developer it would be nice if it were easy to tailor the libraries behaviour under such circumstances e.g. instead of outputting "Clipboard not available" it could:

Output nothing at all
Copy/Paste from an internal 'memory only' clipboard class
Display a modal dialog telling my users to install xclip (if on linux)

This is the correct behavior, IMO, and I just fixed a stupid mistake that makes it work this way (which is how it worked before):

Copy/Paste from an internal 'memory only' clipboard class

Alright, I think I have everything fixed except the Curses reset issue @BDisp noted.
Still trying to figure that one out...

One that is occur to me is any exception when is thrown deviates the execution of the reset.

Alright, I think I have everything fixed except the Curses reset issue @BDisp noted.
Still trying to figure that one out...

It seems to be fixed now. Perhaps some Windows 11 update, don't know.

Curses is still acting weird, but at least I got my VS2022/Windows Terminal config working again. The WT team got me a private build with a fix and I'm now unblocked.

@BDisp - I cannot get breakpoints to hit when debugging in WSL on two different machines.
I have searched high and low and cannot find out what I'm doing wrong or have mis-configured.
Do you have any suggestions on what I can try?
I can't finish this PR until I fix the bug I caused in the TextView/Editor scenario where copy/paste operations corrupt curses. And I can't figure out what's going on without being able to debug!
Gracias for any help you can provide!

Oh, and a clue to why VS WSL debugging isn't working is this, shown after I end a WSL debug session:
The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
The program '[2440] wsl.exe' has exited with code 0 (0x0).

The easiest way to debug CursesDriver in the Visual Studio 2022 is run with WSL2 selector and attach it to process. Place the breakpoints where you want and voila.

@tig this issue is already in the current develop branch. Will another PR caused this?

@BDisp & @tznind if you struggle with this too, please upvote this
https://developercommunity.visualstudio.com/myfeedback?port=1026&fsid=2f6ef04b-209f-4843-a386-43b80ca9c3c6

@tig this issue is already in the current develop branch. Will another PR caused this or some Windows update?

I see other oddities in develop when using the clipboard in the Editor scenario under WSL, but not screen corruption.
What, specifically, is the issue you see?

@BDisp & @tznind if you struggle with this too, please upvote this https://developercommunity.visualstudio.com/t/Debugging-dotnet-console-apps-in-VS2022/10242732?port=1025&fsid=11a4c115-97a0-4e4e-b986-b9a89b2838d7&ref=native&refTime=1672699586507&refUserId=5a90c5f2-d9f6-6a3a-8715-c058b3fda1aa

The correct link for others users is only https://developercommunity.visualstudio.com/t/Debugging-dotnet-console-apps-in-VS2022/10242732, otherwise we receive this warning:

Based on the fact I can no longer reproduce the Editor issue where curses gets corrupted with this PR, I'm going to merge it. The benefits of all the work I did far outweigh an issue that is so hard to repo on WSL.
If it repos again, we'll just open another issue for it.


We likely do not need AffectsSavedGames = 1

Pointed out by infixo on the Steam msgs - as this is a UI mod, we should allow folks to turn it on and off.  Fix for this is just changing  to 0 in the .modinfo file.

is there some state like build queue info, maybe trade sort info (last selected) , etc, that would be saved by the mod to disk?

here is the commit message where the author set this flag to 1:

Added back AffectsSavedGames to save the settings  - The only uses for AffectsSavedGames is to save the user settings, so that you don't have when you load the game, to check back everything - You can disable the AffectsSavedGames is you want easily in the mod info file, it'll not break anything

Hmm... that seems a reasonable reason to have it, I wonder if it can be made configurable - isn’t there some sort of mod data cache?  (I remember in civ 5 there was a cache you had to clear when updating mods and the like...

I would definitely prefer to have mod settings saved separately from the game itself. if those are settings are dropped / lost, the mod would just create a new default settings file without any consequence to the game save file.
a UI mod should be optional and should not affect saved games, if at all possible.


Create chat interface

interface wip for the chat; will put in vercel once this pr is approved :)

check-cla

check-cla

@cla-bot check-cla

@lsdake this code looks pretty close. Were you planning to add another commit on top to address the review comments? The CONTRIBUTING guide in our repo explains the iterative development model we use.


LiteStorage.Upload takes 3 arguments when using a stream, but Wiki only shows 2

The FileStorage.Upload takes 3 arguments when using a stream to upload. But in the Wiki/Documentation it only shows 2.
Upload(string id, string filename, Stream stream) vs. Upload(string id, Stream stream)

Hi @OrellBuehler, I update this method in last version and forgot to update wiki... Thanks

@mbdavid great work 👍


Extension needed

[x] Ensure play of several source start at same sample, with playSimultaneous (?)
[x] A way to fully decode a source to buffer (so that it always has a length)
[x] Way to get length of a source in seconds and samples, and original sample rate
[x] A way to play from a given position in seconds in playOptions
[x] TODO removes the races

All in v1.0.1


[IDEA] Add Option to "Chat with Document(s)"

Perhaps it's beyond the intended scope of the FreeChatGPT project or better considered later down the road, but my proposal is to enable users to upload a document (such as PDF, TXT, DOCX, EPUB. PDF likely being the most common) in the chat thread within FreeChatGPT. This would allow them to discuss and interact with the document during their chat. Examples of similar features can be found on websites like ChatPDF.com and Humata.ai.
If the cost of additional tokens is too high to implement this feature in the free public API, it could be limited to private and shared APIs.
In Discord, I shared a few tutorials on how to use text embedding to search and interact with lengthy documents. As I am not a programmer, I am unsure which approach would be more flexible for FreeChatGPT. Perhaps, there are more advanced approaches since the #1 tutorial came out, making the #2 tutorial more pertinent?

ChatGPT With Your Docs | Full Tutorial WITH Code Examples
https://www.youtube.com/watch?v=kM3DPWO7YV4
Chat with Document(s) using OpenAI ChatGPT API and Text Embedding
https://blog.devgenius.io/chat-with-document-s-using-openai-chatgpt-api-and-text-embedding-6a0ce3dc8bc8

I believe that it may be out of scope for the current focus of the project, which is to provide an easy-to-use chat platform with AI-powered capabilities that do not require technical expertise.
Your proposed feature of allowing users to upload documents into chat threads involves technical skills and a vector database, which would increase the complexity and cost of the project. While the use of text embedding to search and interact with lengthy documents is an interesting concept, it may require a more advanced approach that is beyond the current scope of the project.
As a platform that is geared toward front-end development and easy deployment on different hosting providers, the web app aims to make AI technology accessible to everyone without requiring specialized technical knowledge.
I would like to suggest that you utilize the GitHub search feature to look for open source repositories that may provide a solution to your proposed feature request. There are many repositories on GitHub related to chatbots and conversational AI, and it is possible that some of them have implemented similar document upload features.
By searching GitHub, you can explore existing projects and potentially find a solution that fits your needs. You can also contribute to existing projects by opening issues or pull requests, or even building on top of them to create new features.

Good point about keeping the project easy to deploy on different hosting providers, without having to have a lot of technical expertise.

I wonder if Open AI's open-source retrieval plugin could be implemented into Free ChatGPT.
See https://github.com/openai/chatgpt-retrieval-plugin


Add PTRACE_INTERRUPT call as ptrace::interrupt(pid)

I've based the test on fn test_ptrace_cont. Removed some parts, but not 100% sure what's the proper way of testing in nix context.
From ptrace-man page:
       PTRACE_INTERRUPT (since Linux 3.4)
              Stop a tracee.  If the tracee is running or sleeping in
              kernel space and PTRACE_SYSCALL is in effect, the system
              call is interrupted and syscall-exit-stop is reported.
              (The interrupted system call is restarted when the tracee
              is restarted.)  If the tracee was already stopped by a
              signal and PTRACE_LISTEN was sent to it, the tracee stops
              with PTRACE_EVENT_STOP and WSTOPSIG(status) returns the
              stop signal.  If any other ptrace-stop is generated at the
              same time (for example, if a signal is sent to the
              tracee), this ptrace-stop happens.  If none of the above
              applies (for example, if the tracee is running in user
              space), it stops with PTRACE_EVENT_STOP with
              WSTOPSIG(status) == SIGTRAP.  PTRACE_INTERRUPT only works
              on tracees attached by PTRACE_SEIZE.

@blaind could you please fix the compile failures?

@blaind could you please fix the compile failures?

I had a look, the builds are failing now because of missing variables on various platforms. On android, libc::{PTRACE_SEIZE, PTRACE_INTERRUPT}; are missing, and on *BSD (mips?) a lot more failures.
I guess one way to fix is to go back with feature gate (#[cfg(all(target_os = "linux", not(any(target_arch = "mips", target_arch = "mips64"))))]). Any other ideas?

It's failing on non-Linux platforms because stuff like PTRACE_SEIZE is Linux-specific.  That's why they were feature gated to begin with.  I only asked about removing the mips restriction, not the OS restriction.

It's failing on non-Linux platforms because stuff like PTRACE_SEIZE is Linux-specific. That's why they were feature gated to begin with. I only asked about removing the mips restriction, not the OS restriction.

I mistakenly took architecture to mean OS as well. Anyway, just pushed a new commit that might fix it. Testing is semiwhat slow, as I can not test locally.

Note, this is a duplicate of #1279 (which omits tests). Whichever PR gets merged, the other should be closed.

Could you please rebase onto master to fix the conflicts?

Done


Make virtual memory a normal resource

Currently it's handled as cpus originally where, as a global switch. Instead it should go in the per task resource object. Note that will change the task def and therefore task names again, unless we can fiddle with pack to serialize it in a backward-compatible way.

Actually the last idea -- a pack annotation to drop the attribute completely if None -- would conflict with the idea of using tuples to serialize dataclasses since the fields are fixed. Suddenly, leaving the keys and ignoring unknown keys make quite more sense. It's technically also possible with tuples but more involved -- the new droppable keys need to be at the end and you need to drop everything until the last set key.
Probably a simpler way is to manually customize the task types namer, maybe pack shouldn't be there at all.


[Event Modification] table 121 "Purch. Rcpt. Line" - OnBeforeInsertInvLineFromRcptLine()

Could you please amend the insert() of the invoice line in InsertInvLineFromRcptLine() so it matches the pattern used in:
table 6661 "Return Receipt Line" InsertInvLineFromRetRcptLine()
table 6651 "Return Shipment Line" InsertInvLineFromRetShptLine()?
    procedure InsertInvLineFromRcptLine(var PurchLine: Record "Purchase Line")
    begin
            if "Sales Order No." = '' then
                PurchLine."Drop Shipment" := false
            else
                PurchLine."Drop Shipment" := true;

            // New IsHandled-Patter ...
            IsHandled := false;
            OnBeforeInsertInvLineFromRcptLine(Rec, PurchLine, PurchOrderLine, IsHandled);
            if not IsHandled then
                PurchLine.Insert();
            // ... New IsHandled-Patter
            OnAfterInsertInvLineFromRcptLine(PurchLine, PurchOrderLine, NextLineNo, Rec);

            ItemTrackingMgt.CopyHandledItemTrkgToInvLine(PurchOrderLine, PurchLine);

            NextLineNo := NextLineNo + 10000;
            if "Attached to Line No." = 0 then
                SetRange("Attached to Line No.", "Line No.");
        until (Next = 0) or ("Attached to Line No." = 0);
    end;

Publisher:
[IntegrationEvent(false, false)]
local procedure OnBeforeInsertInvLineFromRcptLine(var PurchRcptLine: Record "Purch. Rcpt. Line"; var PurchLine: Record "Purchase Line"; PurchOrderLine: Record "Purchase Line"; var IsHandled: Boolean)
begin
    // added param IsHandled
end;

This has also been requested for OnBeforeInsertInvLineFromShptLine(): https://github.com/microsoft/ALAppExtensions/issues/7181
thank you

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Avoid use mutable CIMultiDict kw param in make_mocked_request

What do these changes do?
Avoid use mutable CIMultiDict kw param in make_mocked_request
Even though is hard to get an issue, there is still chances to get
unwished behaviors as a side effect because of that.
Checklist

[x] I think the code is well written
[x] Unit tests for the changes exist
[ ] Documentation reflects the changes

Coverage decreased (-2.2%) to 95.785% when pulling 19c80d6811336d226a260f955dabf330c3814b22 on pfreixes:fix_mutable_kw_make_mocked_request into 9b06e818c50945f6bd3121c39b3091e84c0e369f on KeepSafe:master.

Good catch!


Typescript support

I am using eris with typescript.
But this library doesn't support typescript.
So I request to add typescript typing files!

https://www.npmjs.com/package/@types/eris-sharder


[JSDoc] Add missing documentation for botbuilder-dialogs-adaptive Actions folder 2/3

Addresses # 2602
Description
This PR adds all the missing JSDoc documentation for botbuilder-dialogs-adaptive based on the errors thrown. Some documentation is ported and adapted from botbuilder-dotnet.
Specific Changes

Ported documentation from botbuilder-dotnet
Added @private for private methods.
Added JSDoc comments in 13 files
Fixes missing semicolon warnings.

Testing
In the following image there is a sneak peek about the ESLint Report with no JSDoc errors.

Solved, @ceciliaavila. Thanks!

@iscaltritti-sw Please solve the conflicts and verify that the build passes so we can promote it

Conflicts solved, build passes. All ready to go, @denscollo

promoted


Login issue with Toggl Button

OS version: Linux x86_64
Browser version: Firefox 70.0b2
Extension version: don't have that info but considering that they don't have a single time entry created via the Toggl Button before I think we can make a fairly accurate assumption that they just got the extension and are not able to try it because of this issue, so latest version for FF most likely.

🐛 Describe the bug

I cannot login to the toggl button in the firefox 70.0b2. After pressing a Google login button i see an error as presented in the attached screenshot.

User ID: 1601679
Workspace ID: 860221
Bugsnag link: 🔗
Case link: 🔗

related https://github.com/toggl/webapp/issues/11317

from this intercom conversation and the one in toggl/webapp#11317 it seems it is related to logging in with google
unfortunately i couldn't reproduce the problem, even by installing ublock origin as this user suggested
@VeljkoTN can you please ask the user if they're willing to help us to investigate this by using the network tab and exporting the request data? (i can give you further help with this)

a little more information on this: the attached screenshot is from toggl button itself, not from the public web: https://github.com/toggl/toggl-button/blob/cb43023e4d2f23c47d315f19eec5e452da90d277/src/scripts/components/LoginPage.tsx#L67

I have another user with the same issue: link
For the initial case, turning off a blocker called "uBlock Origin" got rid of the 403 error but the user is still not able to log into TB, for this second case removing a blocker called "privacy badger" did not help with the 403 and the login issue is also there.
@dooart do you mean "export HAR" from the network tab? If it's something else best show me on slack I guess 😄

@VeljkoTN yeah but they need to tick this checkbox in the network tab before typing the credentials

User report

Hi @nunofmn - another user with a HAR file in this message.

Hey guys, just a friendly followup here - anything new?  :)

We are currently working on improving login. It should fix this problem 👍

Another user reached out: case link 🔗

@nunofmn what's up? :) are close to deploying?

@VeljkoTN We have unfortunately hit various cans of worms. I hope to have some kind of plan for what we're going to do this week.

I also have a problem logging in to the toggl button:
OS version: Linux x86_64 (Debian)
Browser version: Firefox 68.2.0esr (64-bit)
Extension Version: 1.45.0

Restarting the browser does not help.

User report

@tcrammond
Pushed an update to the store today let's wait for some numbers on the bug tracker
Should we track login success as well to compare the failure %?
One of the workarounds would be to put an a login-form on the error page as a fallback if the primary mechanism fails.

another user reached out about login issues with the FF extension.

Hey @malfter, sorry you're experiencing this problem and thanks for your patience. We're narrowing down the specific scenario in which this occurs. Would you mind checking some of your Firefox settings for me?
First, in about:preferences#privacy, does your History setting look like this?

Second, do you have enhanced tracking protection enabled, possibly with one of the stricter cookie options enabled?

Hi @tcrammond, here my firefox settings:
to your first point, my history will be saved: "Firefox will Remember History"

to your second point, third party cookies are blocked.

I have disabled all blockers for the toggl login site, but the problem still exists.

User report

User report

User report

Case reference

User report

Case reference

Case reference

Case reference

Latest release (fix landed in #1624)
Contains a fallback-login option that will trigger if the regular web-based-login fails
Users can login using their credentials using that form

Closing this for now

a user confirmed that they can login now 💪

We might have to reopen this. Seems we closed this by having people use the email/password login option, if Google Login failed?
We got a new report on this, and I could repro.

It's a new issue; same symptom. Closing.


add summarize implementations to actions

I'm submitting a

[ ] bug fix
[x] feature
[ ] documentation addition

What is the current behaviour?
Actions don't implement a summarize.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
What is the expected behavior?
Provide a summarize summary for actions
What is the motivation / use case for changing the behavior?
Please tell us about your environment:
Version (comtrya --version): v0.8.9
Operating system: macOS 14.6.1

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 0% with 23 lines in your changes missing coverage. Please review.

Project coverage is 26.48%. Comparing base (b574682) to head (9ebbde8).
Report is 43 commits behind head on main.

Files with missing lines
Patch %
Lines

lib/src/actions/file/link.rs
0.00%
4 Missing :warning:

lib/src/actions/command/run.rs
0.00%
2 Missing :warning:

lib/src/actions/directory/copy.rs
0.00%
2 Missing :warning:

lib/src/actions/directory/create.rs
0.00%
2 Missing :warning:

lib/src/actions/directory/remove.rs
0.00%
2 Missing :warning:

lib/src/actions/file/download.rs
0.00%
2 Missing :warning:

lib/src/actions/file/remove.rs
0.00%
2 Missing :warning:

lib/src/actions/group/add.rs
0.00%
2 Missing :warning:

lib/src/actions/package/install.rs
0.00%
2 Missing :warning:

lib/src/actions/package/repository.rs
0.00%
2 Missing :warning:

... and 1 more

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #462      +/-   ##
==========================================
- Coverage   28.59%   26.48%   -2.12%
==========================================
  Files          85       83       -2
  Lines        2301     2307       +6
==========================================
- Hits          658      611      -47
- Misses       1643     1696      +53

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


Improve options message

Im working on improving the options messages to have descriptions.
Here is an example of before and after as it is currently. Do you think this looks good or should there be other changes?
Before

After

Looks very presentable to me.

Damn good! Keep it up! :D

Released updated options menu
https://github.com/dgibbs64/linuxgsm/commit/c254db950a126d8170c4044fb33b6dffc43bcf54


[add] Term "hard label classifier"

:heavy_plus_sign: :heavy_plus_sign: :heavy_plus_sign:
:warning: Please provide specific & actionable issue titles!
Chapter name: Supervised Classification
Description
We do not seem to mention the term "hard-label classifier" on the slides. We should do that. The h(x) is already there, so minor fix needed
Additional sources

now under basic definitions


Broken link in readme files

The readme for barchart points to the color utility file using this link:
https://github.com/visa/visa-chart-components/blob/master/packages/utils/src/colors.ts
It should point either to this location in the util's readme:
https://github.com/visa/visa-chart-components/tree/master/packages/utils#colors
Or it should point to the file it intended to (one level deeper):
https://github.com/visa/visa-chart-components/blob/master/packages/utils/src/utils/colors.ts

Since many of the readmes have the same template as bar chart, I will assume that every readme needs this fix too.

Thanks for the heads up on this. We will do our best to address these broken links in an upcoming release.

Another bug in the links: when in the Utils, I click "calculateRelativeLuminance()" and the link is broken. The target element has the correct name, but the URL in the table of contents is missing an "e" at the end of it:
https://github.com/visa/visa-chart-components/tree/master/packages/utils#calculate-relative-luminanc
It should be:
https://github.com/visa/visa-chart-components/tree/master/packages/utils#calculate-relative-luminance

@frankelavsky thanks for bringing this to our attention, we have addressed these items and will be including the fixes in our next release. This issue will stay open until that is pushed & merged though.


docker: include v1.9 suffix in cilium-builder tag

Note that this does not influence which image is used as long as the SHA
is correct. This just helps humans to understand which tag is used.
Fixes: cf199a03f5ef ("Update Go to 1.15.4")
Reported-by: André Martins<EMAIL_ADDRESS>

It's not necessary to re-run the CI since the SHA is the same and a tag is ignored when the SHA is available.


Turkanime tv

Source name
Turkanimetv
Source link
https://www.turkanime.co/
Language
Turkish
Other details
plzz
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a title with source name.
[X] I have checked that the extension does not already exist on the website extensions list or the app.
[X] I have checked that the extension does not already exist by searching the GitHub repository and verified it does not appear in the code base.
[X] I will fill out all of the requested information in this form.

there isn't any Turkish extension please add 🥺🥺🥺🥺🥺🥺

fe53f7a8c1068739728d15a5c9d0b51b2b7c3353


feat: Added PWA capability

What has changed

Modified manifest.json
Added package.json to manage workbox
Added Service worker to give the PWA feature
Added a directory called images in root to hold manifest images of different sizes

Feature

App can be installed and have like native application

Bro... Amazing 💪🏾


Templates keyboard shortcut doesn't work anymore in code blocks (between $$)

Description
When writing a function in Postgres, I'm often using keyboard shortcuts (ctrl+alt+space) to trigger templates, but it doesn't work anymore.
DBeaver Version
Community Edition 24.2.0
Operating System
Windoze 11
Database and driver
Postgres 14.10
Steps to reproduce
create a template, eg name = tst, pattern = this is a test
in the SQL editor, type
$$
$$

position the cursor after the first '$$' and insert a new line with tst:
$$
   tst
$$

keep the cursor just after the 'tst' and press shortcut ctrl+alt+space and ... nothing happens
if you remove the last $$, it works
Additional context
No response

Thank you for bug report.


Rename ElementChecker#present? to #has_element?

Rename ElementChecker#present? to #has_element? in order to not shadow ActiveSupport #present?

@Systho Can I ask as well whether you plan on upgrading to 3.0? As currently the master branch is tracking 3.0.beta
I'm happy to backport this fix to a 2.x release (As I'm committed to supporting it for a while), but just thought I would make you aware this won't hit a 2.x release by default

@luke-hill  I plan to upgrading to 3.0 as soon as it is stable and released on rubygems. SO I won't need the backport immediately :)


Utility: conversion between source byte offset to line/column

We should have a utility that converts byte offsets in the source file to line/column. This requires the actual source file, or at least the positions of newlines. Optimizations could be done so that we do a single preprocessing step on the source code and only supply the preprocessing output to the converter routine.

pr #95