cmd/compile: per-phase compiler benchmarking

Right now we can use compilebench to measure the compiler's overall run time, and we can use -cpuprofile to measure fine-grained per-function/instruction profiles.  But with the interest in continuing to evolve/rewrite individual phases of the compiler, I think it would be nice to track the compiler's performance on a per-phase granularity.
Rough proposal sketch:

Add a flag to cmd/compile like -phasebench=prefix:outfile.
Add instrumentation to cmd/compile/internal/gc/main.go so that when phasebench is enabled, it will append benchmark data formatted entries to outfile of the form "prefix-parse", "prefix-typecheck", etc.
compilebench can then optionally make use of this new flag, and we can start tracking the more detailed information.

Yes please! I assume you can pass multiple phase:outfile pairs?
How about just -phasebench=prefix and benchmark all phases, with a phase-specific suffix? I worry that while optimizing one phase decisions might get made that impact other phases without getting noticed. In particular, frontend/backend interactions can be like this. As a concrete example, I have a CL waiting for 1.8 that removes some empty goto-label pairs that were introduced as a frontend convenience, the removal of which cuts overall compiler allocation by 1%.

To be clear, my intention was -phasebench=prefix:outfile would measure all phases, writing the benchmarks to outfile, each prefixed by the string prefix.  The idea being so compilebench could use -phasebench=BenchmarkGoTypes:/tmp/benchmark.txt, -phasebench=BenchmarkUnicode:/tmp/benchmark.txt, etc. and the outputs would be lines labeled BenchmarkGoTypes-parse, BenchmarkGoType-typecheck, BenchmarkUnicode-parse, BenchmarkUnicode-typecheck, etc.

Yes. Funny coincidence, I spent this morning experimenting with adding structured statistics code to the front-end. This is an item on my TODOs.
My thinking at the moment:

There's the notion of a Measurement (an interface, abstracts over a time/duration, count, or other measure).
There are Groups, which collect multiple Measurements. Depending on what it is, it may accumulate/average the data.
There are individual Measurements, such as timings, counts. etc.

The hierarchy permits collecting a lot of data in a structured (and labeled) way. The code augmentation is typically a single extra line per start/stop event.
A single "print" at the end of the compile dumps the output in a structured form.
I'm thinking that there should be a JSON variant for dumping the data to a file so that I can be processed later (i.e., so we can collect the data across many runs/times/versions and then produce graphs).

PS: Standard-benchmark data format should also be easily possible, but I think that format might be generated after the individual measurements (e.g., a single compile produces just one data set). It's also not clear to me how one would organize more structured data in that format.

Certainly not opposed to a structured API.  My immediate idea was to start simple with instrumentation like m := benchmarker() and then calls to m.mark("parse"), m.mark("typecheck"), etc. appropriately scattered around.  If you have anything more thought out I'm all ears. :)
As for format, one of my takeaways from @aclements' presentation about github.com/aclements/go-gg was that the benchmark format may be sufficient as long as we adequately structure the benchmark names.  E.g., see the examples with names like BenchmarkDecode/text:digits/level:speed/size:1e4/gomaxprocs:8.
/cc @aclements for thoughts on data format

One thing to plan for: some phases may be less clear or overlap in a more heavily concurrent compiler. Also, ssa phases already happen in a cycle, once per function.

With "structured API" I didn't mean large framework. At the moment it's about 75 lines of code, with minimal code (one-liners) at measuring points in the front-end. The grouping mostly removes the need to think much about label names: Basically, introducing a new subgroup is a local operation; no need to rename other labels. For instance:
var stats = NewGroup("compilation of ...") // initialize compiler stats, a group of measurements
...
parse := stats.AddTiming("parse") // create a start a new time measurement
// parser invocations
parse.Stop()
...
phase1 := stats.AddTiming("phase1")
...
phase1.Stop()

etc. A bit more code than you suggest.

That is, each time measurement gets its own Timing object which may track more than just the time. It may carry the number of bytes processed, or a count (iterations), or other things. Slightly more than just a benchmark map that tracks labels and times. But not a while lot more.

@josharian  Agreed. That's why I was thinking of using names like "typecheck" instead of "phase1" or "phase2", so that the name could remain meaningful long-term even if we end up reorganizing how the specific phase boundaries.
@griesemer Okay, yeah, that's a little more code (explicitly marking begin/end of each phase rather than making it implicit by just marking transitions), but sounds roughly isomorphic to what I was thinking.

@mdempsky Maybe it's overkill to mark each start/end and it's good enough to just track boundaries. But  it seems to me that it might be more difficult to track a specific time (say escape analysis) if some of the other phases move around. Also, it would seem more difficult to attach bytes (to compute things like source bytes parsed/time unit, etc.).
On the other hand, simpler is often better. Maybe it is good enough to just track transition times. Still exploring.

The ssa phases can all be timed.  For example
go build -gcflags -d=ssa/all/time step_hide.go
# command-line-arguments
./step_hide.go:13: 	early phielim	TIME(ns)	9458	foo
./step_hide.go:13: 	early copyelim	TIME(ns)	3365	foo
./step_hide.go:13: 	early deadcode	TIME(ns)	288821	foo
./step_hide.go:13: 	short circuit	TIME(ns)	293607	foo
./step_hide.go:13: 	decompose user	TIME(ns)	303039	foo
./step_hide.go:13: 	opt	TIME(ns)	2593795	foo

I think the format needs work; that seems to not conform to what I recall Austin telling me was the desired form for the benchmarking commands we already have.  Right now the function name comes last because sometimes those have exciting syntax in them.

@mdempsky, @josharian Please have a look at https://go-review.googlesource.com/24462 . After considering the feedback above I decided to abandon the structured data idea (seemed overkill) and go with a pretty simple approach, essentially along the lines of @mdempsky's proposal. I expect this to morp h a bit over time but it's a starting point.

As for format, one of my takeaways from @aclements' presentation about github.com/aclements/go-gg was that the benchmark format may be sufficient as long as we adequately structure the benchmark names. E.g., see the examples with names like BenchmarkDecode/text:digits/level:speed/size:1e4/gomaxprocs:8.
/cc @aclements for thoughts on data format

I don't know exactly what data you want to represent, but the "extended" benchmark format is pretty flexible. It's not great at hierarchical things, but it's not clear you really want that. And, of course, you'll be able to use all of the tools that know how to speak it (which isn't much yet, but the format is young). You could have a benchmark line for each (file, phase) where the phase is a property, and results for time, allocations, etc. You might just want to name each benchmark after each phase. Something like
BenchmarkPhielem/file:step_hide.go/gomaxprocs:4 1   9458 ns/op   100 bytes-allocated    2 allocations

Maybe you want the function in there. That may be too detailed, but it would be easy to write a tool that aggregated it in various ways after the fact, e.g., using https://godoc.org/github.com/aclements/go-misc/bench.

The pending CL now enables writing to a file and is using the benchmark data format.

This seems to be done.


Adding KVM support for PCI Passthrough

Only PCI direct attach support
Added PCI assignment part to unit-test
No IRQ assignments yet
No I/O port(COM) assignments yet

Signed-off-by: Hariharasubramanian C S<EMAIL_ADDRESS>

Hey @cshari-zededa -- I merged it in to start testing ASAP, but I'm wondering if we also need to add:
[machine]
  kernel-irqchip = "split"
....
[device]
  driver = "intel-iommu"
  intremap = "on"
  caching-mode = "on"

as per: https://wiki.qemu.org/Features/VT-d#Command_Line_Example
and in addition to that review whether we should be using IOMMU for virtio backend devices as per: https://wiki.qemu.org/Features/VT-d#With_Virtio_Devices
Can you please look into those ASAP

Hey @cshari-zededa -- I merged it in to start testing ASAP, but I'm wondering if we also need to add:
[machine]
  kernel-irqchip = "split"
....
[device]
  driver = "intel-iommu"
  intremap = "on"
  caching-mode = "on"

as per: https://wiki.qemu.org/Features/VT-d#Command_Line_Example
and in addition to that review whether we should be using IOMMU for virtio backend devices as per: https://wiki.qemu.org/Features/VT-d#With_Virtio_Devices
Can you please look into those ASAP

Hi @rvs,
I checked the pointers, they are for nested-virtualization e.g. you want to emulate VT-d feature itself in a guest, and that guest in turn spawns other VMs using the vIOMMU support, and does PCI assignment.


response body cannot have a array

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"orderId": {
"type": "integer"
}
}
}
}
ramses not supporting these type of schemas

there is a chapter in the doc about list fieds that might be helpful: https://ramses.readthedocs.io/en/stable/fields.html#list-fields

you can try different "item_type" like in the example below:
(...)
"_db_settings": {
        "type": "list",
        "item_type": "dict"
    }
(...)


[QSRlib] expose to public and make static __merge_world_qsr_traces

Argh forgot to do one last change I wanted, but nvm for now... just a reminder for me.
Expose to public and make @staticmethod the QSRlib.__merge_world_qsr_traces method.

PS: Reason being that this methods can be used for other things to, e.g.
world_qsr_trace_qtcb_o1o2
world_qsr_trace_qtcb_o1o3
world_qsr_trace_qtcb_o1o2o3 = qsrlib.merge_world_qsr_traces((world_qsr_trace_qtcb_o1o2, world_qsr_trace_qtcb_o1o3))


Handle start process errors in reaper

Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1027   +/-   ##
=======================================
  Coverage   59.28%   59.28%
=======================================
  Files           5        5
  Lines         781      781
=======================================
  Hits          463      463
  Misses        204      204
  Partials      114      114

Continue to review full report at Codecov.

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

LGTM


[Relay] Replace compile engine with TE compiler in the VM

This is WIP following the RFC in https://discuss.tvm.apache.org/t/rfc-relay-tecompiler-rewrite-existing-compile-engine-to-match-updated-compiler-flow/9233.
It replaces the Compile_engine with TE_compiler.
@jroesch @YuchenJin

@jroesch  can this merged?

As a side note, this PR just naively replaces the old CompileEngine in the VM compiler with the lowering functions in the new TECompiler. This is the first step. Ultimately, we want to invoke the LowerTE pass once in TECompiler and hide those lowering functions.

Hey @mikepapadim @YuchenJin what's the status of this PR? Shall we move forward?

Hey @mikepapadim @YuchenJin what's the status of this PR? Shall we move forward?

Hey @junrushao1994, thanks for taking a look! @Mousius asked a good question and I think we can probably improve the code a little bit. Let's wait @Mousius for his reply. :)

Thank you guys for the effort!


moves clog into clues

Transferring Clog into Clues as a subpackage will solve:

multi-package updates (clues -> clog -> something with both clog and clues)
better preparation for OTEL support integration into clues and clog.
sets up future extensions like metrics tracking via clues.

sets up future extensions like metrics tracking via clues.

Overall, I think we need to be careful about scope creep. It's nice to have one thing that does everything and the kitchen sink, but the thing needs to work really well for that to really be a good situation. The larger the scope, the more likely it is for some areas or others to not be as high quality as we'd like
With a package like this, there's also the chance that we end up hooking together things in such a way that we're getting too much data back. Having too much data can be just as crippling as not having enough. If we really want to add metrics, we need to be very careful about doing so

If we really want to add metrics, we need to be very careful about doing so

Ah, metrics is intended to be a sort of isolated sub-package.  I don't plan on a coupled implementatio with clues or clog as it stands.  Expectation is for it to be loosely coupled in the way those two packages are.  The primary connection being that the metrics subpackage would extract otel information from a clues context, the same way clog does in the next PR on this branch.  Otherwise the goal is for it to feel separate and optional.


MWPW-148327: Additional updates to interactive marquee

Resolves: MWPW-148327

Figma file

Test URLs
Before:  https://main--dc--adobecom.hlx.page/drafts/rivero/MWPW-140704/interactive-marquee?martech=off
After: https://mwpw-148327--dc--adobecom.hlx.page/drafts/rivero/MWPW-148327/interactive-marquee?martech=off

Codecov Report
Attention: Patch coverage is 94.44444% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 97.99%. Comparing base (35caed4) to head (ae1c0dc).

Files
Patch %
Lines

.../blocks/interactive-marquee/interactive-marquee.js
94.44%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##            stage     #662      +/-   ##
==========================================
- Coverage   98.01%   97.99%   -0.02%
==========================================
  Files          34       34
  Lines        4135     4148      +13
==========================================
+ Hits         4053     4065      +12
- Misses         82       83       +1

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


Re-factor package structure and add tasks dependency extra

Ref #378

Can we make the extra fractal-tasks? In that way, we can include a consistent fractal-tasks extra for our package and external packages

Can we make the extra fractal-tasks? In that way, we can include a consistent fractal-tasks extra for our package and external packages

Sure. We can have a tasks folder and a fractal_tasks_core[fractal_tasks] extra.


[NO]: Update older lessons

Changing the terminology for how maps are written in Norwegian. Also updating older lessons.

@robinsjdotcom is on a roll!  Thank you again.
@Devalo one more for you 😀

@robinsjdotcom there appears to be a conflict with this file now that the others have been merged in.  If you could fix that up I'd be happy to merge this 👍


Proposal: osdev-gh web site

I am going to suggest that we build a web site for the project and that we have list of all members, what they have worked on and a copy of all documents we have created. Nonetheless, image galleries and that kind of stuff as well as logs from all our meetings, whether physical or virtual.
There are a few reasons for why I am proposing this but the primary is that, if we are able to do something cool with our team, you would be able to have a reference on the website what you have done for the team. You can put the URL on your CV/resume and hopefully that should be able to kick of a career or two.
If we agree that this is a good idea, then we ask @Prince-linux to create osdev-gh-www as a project for the team and we can then discuss exactly what goes into the site, what framework to use and all other issues relating to this project in its own issue tracker.

@Prince-linux could you please label this with "proposal" or something like that?

I would also like to contribute  to the web site project
@Prince-linux kindly assign me to this project

@Prince-linux if we get enough interest in this, kindly set up osdev-gh-www to be the repository for the osdev-gh official web site. Then we move further discussion regarding the website to that projects issue tracker

@Prince-linux I am interested in this. Kindly sign me up as well

Ok, we are getting some interest here. Cool. @Prince-linux what do you say, can we set up the repository for the project?

Yes pls we can
Cos I am also interested

OK, let's take a vote then. Who thinks we need a team web site and should set up the osdev-gh-www project?

Here is my +1

+1 yeah, I agree, I have some different ideas on this but open for discussion on its respective issue tracker

@laudb yes, if we agree then lets get the project started. Those who will be involved can then discuss exactly what goes on the site and how to develop it.

@CollinsLord , @rexfordnyrk please add your +1s so that we know that you have voted for. We have two +1s now, I think a few more and we have agreed.

+1. I do agree, let's do this!

+1

+1

ok @Prince-linux I think that's enough. Please set up osdev-gh-www repository. @laudb it's coming your way, would you like to get involved?

Am in

+1

Good, the project has been set up, so please let's go to that issue tracker and continue any discussion there.
@Prince-linux I propose we close this issue. What are your thoughts?

very true

Do we have more than majority of the people on this platform to go ahead and close this issue? If so, then I second it fully.

@kelvinklufio I don't even think have agreed on how many members are required to vote on something. I see six votes and I think that should be fine.

So what is the next move

@CollinsLord now go to the issue tracker for osdev-gh-www and start looking at issues there or add your own issues.


Add Internal flag for AQL functions.

Scope & Purpose
Add Internal flag for AQL functions.
Functions flagged Internal cannot be invoked by end users in queries, but they can be inserted by AQL-internal optimizations and transformations. That way we can add specialized internal functions for various purposes without having to provide API stability for them.
Internal functions are (intentionally) not listed in the documentation nor are they returned by any of the AQL functions inspection APIs.

[ ] :hankey: Bugfix (requires CHANGELOG entry)
[x] :pizza: New feature (requires CHANGELOG entry, feature documentation and release notes)
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification
[x] :book: CHANGELOG entry made

Backports:

[x] No backports required

Testing & Verification

[x] The behavior in this PR was manually tested
[x] This PR adds tests that were used to verify all changes:

[x] Added new integration tests (e.g. shell_server_aql)

Link to Jenkins PR run:
http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/13833/

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/13834/


Bump dependencies for Apple Silicon compatibility

Bump dependencies and simplify app setup by using Next's native support for setting environment variables.
Why are these changes needed?
The current version does not work with recent Node versions, and older Node versions do not work with Apple Silicon (M1) machines.
What changed?
Bumped a bunch of dependencies:

Node 12 -> 16
npm 6 -> 8
Next 8 -> 12
React 16 -> 17
and some other dependencies (mostly dev dependencies).

Also ran npm run lint:fix which caused some minor formatting changes.
How are these changes tested?
Manually tested the app with both Node 16 (current LTS) and 17. AFAICT everything still works.

cc @andrew1uphealth


slickAdd with addBefore set to true results in the user position not being maintained.

If I add an new slide to the end, then all is fine as the currentSlide remains unchanged, and the user can happily continue to scroll along.
However, when prepending items, as the currentSlide does not adjust, once the slick object has run through reinit, the carousel moves to the item that now has the index to match the previous currentSlide. This can be unexpected behaviour from a user's perspective.
Example: https://jsfiddle.net/niccih/q8x6pw4k/2/
In the above example, a new slide is added, with addBefore 'true', the new slide effectively becomes the currentSlide, so the user now sees 'Slide0' instead of 'Slide1'.  Calling 'slickGoTo'  does revert the user to the 'correct' slide, but there is that momentary flash of animation which is undesired. I would like to see  'Slide1' remain as the currentSlide, and the prev arrow then become enabled, allowing the user to choose whether to scroll to the left or not.
If the prepend behaviour is by design, in that the currentSlide index remains unchanged, are there any plans to accomodate an argument , to the slickAdd function, that can then adjust the currentSlide value before reinit is called, to ensure the user appears to stay where they are, or is there already a preferred way to achieve the same without the brief movement noticed by calling 'slickGoTo'?

We've run into the same problem and fixed hacked it like this:
In the afterChange handler, add this block before inserting the slide:
element.on('afterChange', function(ev, instance, current) {
    // other stuff
    if (inserting) {
        // a tiny hack makes the earth spin again
        // hint: without this, Slick will advance backwards to newly inserted slide.
        instance.currentSlide = current + 1;
    }
    instance.slickAdd(html, current, inserting);
}

We're in production with this right now and haven't had a problem, so I guess I can suggest this fix as a (temporary) solution to your problem.

@teamaton I've been looking for a solution for this issue for way too long. Thanks a lot!
Also, instead of:
current + 1
I had to go with:
current + slickInstance.options.slidesToScroll
as I'm sliding 3 slides at a time.
Thanks again!

@klapec Well, I have to admit that I also spend way too much time on this problem :-D But I'm glad our findings were of any help!
Pozdrawiam ;-)


Move to Nextcloud organization

This is a nice project that can ease app development. However, I like to see it to be an official repository by Nextcloud, i.e. this repository should be moved to https://github.com/nextcloud/

Fine by me :)

@rullzer can you help with that? I could transfer it to you and you pass it on. I do not have permission to move it directly.

We could do that if you think it is ready @ChristophWurst

provided that you'll make me repo admin I'm fine with moving ;)

provided that you'll make me repo admin I'm fine with moving ;)

done and moved


Connection Error

Connection error when trying to download index file. I've added our proxy, but still get the same error. I've tried TLS fix from this forum, but just get a new CA error instead.
2019-06-26 11:00:46,693 INFO LogsDownloader initializing is done
2019-06-26 11:00:46,695 INFO No last downloaded file is found - downloading index file and starting to download all the log files in it
2019-06-26 11:00:46,697 INFO Downloading logs index file...
2019-06-26 11:01:06,734 ERROR An error has occur while making a open connection to https://logs1.incapsula.com//logs.index. Traceback (most recent call last):
File "LogsDownloader.py", line 567, in request_file_content
response = urllib2.urlopen(request, timeout=timeout, context=ctx)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 429, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 447, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1241, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
raise URLError(err)
URLError:
2019-06-26 11:01:06,741 ERROR Failed to downloading index file and starting to download all the log files in it - Connection error, Traceback (most recent call last):
File "LogsDownloader.py", line 128, in get_log_files
self.logs_file_index.download()
File "LogsDownloader.py", line 457, in download
file_content = self.file_downloader.request_file_content(self.config.BASE_URL + "logs.index")
File "LogsDownloader.py", line 597, in request_file_content
raise Exception("Connection error")
Exception: Connection error
2019-06-26 11:01:06,744 INFO Sleeping for 30 seconds before trying to fetch logs again...

Hi ,
please share your BASEURL content
BASEURL=https://logs1.incapsula.com......
On Wed, Jun 26, 2019 at 4:06 AM iammist<EMAIL_ADDRESS>wrote:

Connection error when trying to download index file. I've added our proxy,
but still get the same error. I've tried TLS fix from this forum, but just
get a new CA error instead.
2019-06-26 11:00:46,693 INFO LogsDownloader initializing is done
2019-06-26 11:00:46,695 INFO No last downloaded file is found -
downloading index file and starting to download all the log files in it
2019-06-26 11:00:46,697 INFO Downloading logs index file...
2019-06-26 11:01:06,734 ERROR An error has occur while making a open
connection to https://logs1.incapsula.com//logs.index. Traceback (most
recent call last):
File "LogsDownloader.py", line 567, in request_file_content
response = urllib2.urlopen(request, timeout=timeout, context=ctx)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 429, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 447, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1241, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
raise URLError(err)
URLError:
2019-06-26 11:01:06,741 ERROR Failed to downloading index file and
starting to download all the log files in it - Connection error, Traceback
(most recent call last):
File "LogsDownloader.py", line 128, in get_log_files
self.logs_file_index.download()
File "LogsDownloader.py", line 457, in download
file_content =
self.file_downloader.request_file_content(self.config.BASE_URL +
"logs.index")
File "LogsDownloader.py", line 597, in request_file_content
raise Exception("Connection error")
Exception: Connection error
2019-06-26 11:01:06,744 INFO Sleeping for 30 seconds before trying to
fetch logs again...
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Incapsula/logs-downloader/issues/29?email_source=notifications&email_token=AG2INIVL7TOPZZRBDR42EBLP4K6HVA5CNFSM4H3NPS4KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G3V4WGA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG2INIW7VUYOMBHZYMUTQO3P4K6HVANCNFSM4H3NPS4A
.

--
bv

Apologies for the delay @benyvo , I've been on leave.
/2754_1160105/
Cheers,

@benyvo Hi Ben, any update you can provide here please?

Hi All,
Found what was wrong, hopefully this helps others.
I added the line below, which fixed the issue. I'm going to remove the link to our context above.
ssl._create_default_https_context = ssl._create_unverified_context

@iammist - where did you place that line in your LogDownloader.py?

Hello @woodnsec , @iammist  can you tell me where did you place that line?

Hello please elaborate what is the issue?
thank you
Beny
On Mon, 5 Aug 2019, 08:42 iammist<EMAIL_ADDRESS>wrote:

@benyvo https://github.com/benyvo Hi Ben, any update you can provide
here please?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Incapsula/logs-downloader/issues/29?email_source=notifications&email_token=AG2INIUQZX74J4G4OIWPGX3QC64VPA5CNFSM4H3NPS4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3QXVDI#issuecomment-518093453,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG2INIQEEF6EP3IAEVHMQ4DQC64VPANCNFSM4H3NPS4A
.

Hello @benyvo These are the logs I'm receiving.
2020-05-11 11:52:08,621 INFO LogsDownloader initializing is done
2020-05-11 11:52:12,564 WARNING Could not find file https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code is 404
2020-05-11 11:52:12,565 INFO Sleeping for 5 seconds until next file download retry number 1 out of 3
2020-05-11 11:52:21,573 WARNING Could not find file https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code is 404
2020-05-11 11:52:21,573 INFO Sleeping for 5 seconds until next file download retry number 2 out of 3
2020-05-11 11:52:31,492 WARNING Could not find file https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code is 404
2020-05-11 11:52:31,493 INFO Sleeping for 5 seconds until next file download retry number 3 out of 3
2020-05-11 11:52:40,600 WARNING Could not find file https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code is 404
2020-05-11 11:52:40,600 INFO Could not get log file 3733_224787.log. It could be that the log file does not exist yet.

hello,
if you have 404 it usually means you are trying to download the expired
file.(we store files 48h/500mega)
you need to:
stop script
remove LastKnownDownloadedFileId.txt
start the script.
What will be done behind the scenes is the script will check what is the
oldest file and will start downloading from it.
thank you
Beny
On Mon, May 11, 2020 at 6:57 PM Zyanyalira<EMAIL_ADDRESS>wrote:

Hello @benyvo https://github.com/benyvo These are the logs I'm
receiving.
2020-05-11 11:52:08,621 INFO LogsDownloader initializing is done
2020-05-11 11:52:12,564 WARNING Could not find file
https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code
is 404
2020-05-11 11:52:12,565 INFO Sleeping for 5 seconds until next file
download retry number 1 out of 3
2020-05-11 11:52:21,573 WARNING Could not find file
https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code
is 404
2020-05-11 11:52:21,573 INFO Sleeping for 5 seconds until next file
download retry number 2 out of 3
2020-05-11 11:52:31,492 WARNING Could not find file
https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code
is 404
2020-05-11 11:52:31,493 INFO Sleeping for 5 seconds until next file
download retry number 3 out of 3
2020-05-11 11:52:40,600 WARNING Could not find file
https://logs1.incapsula.com/3733_1294030/3733_224787.log. Response code
is 404
2020-05-11 11:52:40,600 INFO Could not get log file 3733_224787.log. It
could be that the log file does not exist yet.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Incapsula/logs-downloader/issues/29#issuecomment-626792109,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG2INIUIX46EGZ2DCOCQV6LRRAN6TANCNFSM4H3NPS4A
.

--
bv

Thanks @benyvo it work, but I'm downloading some files and when it arrive to 3733_224787 always get stuck

Hello
The file you mentioned not exists on the platform.
Also, it looks like several scripts running together, while only one
should run.
You should stop/del all running scripts, you can find all running scripts
with ps -ef command.
The first downloaded file number should be higher than 224787.
Also, verify that you are using the latest script version.
Beny
On Mon, May 11, 2020 at 9:57 PM Zyanyalira<EMAIL_ADDRESS>wrote:

Thanks @benyvo https://github.com/benyvo it work, but I'm downloading
some files and when it arrive to 3733_224787 always get stuck
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Incapsula/logs-downloader/issues/29#issuecomment-626892774,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG2INIRZ5VI7T7R7DHGIWBLRRBDDLANCNFSM4H3NPS4A
.

--
bv


Update DAOToken.sol: 'immutable' for keccak256 variables

It's always advisable to use immutable for keccak256 variables rather than constants, also it's gas efficient.
Refer this -> https://gist.github.com/grGred/9bab8b9bad0cd42fc23d4e31e7347144#change-constant-to-immutable-for-keccak-variables
Also, one more change is made: uint lower = 0; to uint lower;, as there's no need to initialize any unsigned integer with 0, cuz the default value of every unsigned integers used to be 0 as usual
This PR also accounts for some typo fixes within the comments

Reviewed.


no fidget progress for pylsp

Version confirmation

[X] Confirm

Following prerequisites

[X] Confirm

Neovim version
NVIM v0.10.0-dev-546+g3bf887f6e0
Operating system/version
Arch
Terminal name/version
alacritty
$TERM environment variable
No response
Branch info
main (Default/Latest)
Fetch Preferences
HTTPS (use_ssh = false)
Affected language servers
pylsp
How to reproduce the issue
open any python file
Actual behavior
no progress
Expected behavior
No response
Support info
Language client log: /home/rok/.local/state/nvim/lsp.log
Detected filetype:   python
1 client(s) attached to this buffer:
Client: pylsp (id: 1, bufnr: [1])
filetypes:       python
autostart:       true
root directory:  /home/rok/Nutstore Files/codes/tlem
cmd:             /home/rok/.local/share/nvim/mason/bin/pylsp
Configured servers list: html, jsonls, pylsp, lua_ls, clangd, bashls
Installed
󰄳  bash-language-server bashls
󰄳  clang-format
󰄳  clangd
󰄳  html-lsp html
󰄳  json-lsp jsonls
󰄳  lua-language-server lua_ls
󰄳  prettier
󰄳  python-lsp-server pylsp
󰄳  rustfmt
󰄳  shfmt
󰄳  stylua
󰄳  vint
Logs
No response
Additional information
No response

IMO It's not a bug. pylsp loads too fast to show fidget progress because we have disabled lots of time-cost plugins like flake8 and pyflakes.

Hmm that's right, I can see progress after enable other plugins. But how to distinguish whether it's because black and ruff are too fast or they don't support progress?

@fecet Check lsp.log as I mentioned above. If workDoneProgress sent by neovim receives a response, then this server indeed supports progress.

I can see strings like "window/workDoneProgress/create" if enable flake8. Otherwise, workDoneProgress  only have two matches and the context are
[TRACE][2023-06-24 01:42:18] .../lua/vim/lsp.lua:1428	"LSP[pylsp]"	"initialize_params"	{  capabilities = {    general = {      positionEncodings = { "utf-16" }    },    textDocument = {      callHierarchy = {        dynamicRegistration = false      },      codeAction = {        codeActionLiteralSupport = {          codeActionKind = {            valueSet = { "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }          }        },        dataSupport = true,        dynamicRegistration = true,        isPreferredSupport = true,        resolveSupport = {          properties = { "edit" }        }      },      completion = {        completionItem = {          commitCharactersSupport = true,          deprecatedSupport = true,          documentationFormat = { "markdown", "plaintext" },          insertReplaceSupport = true,          insertTextModeSupport = {            valueSet = { 1, 2 }          },          labelDetailsSupport = true,          preselectSupport = true,          resolveSupport = {            properties = { "documentation", "detail", "additionalTextEdits" }          },          snippetSupport = true,          tagSupport = {            valueSet = { 1 }          }        },        completionItemKind = {          valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }        },        completionList = {          itemDefaults = { "commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data" }        },        contextSupport = true,        dynamicRegistration = false,        insertTextMode = 1      },      declaration = {        linkSupport = true      },      definition = {        dynamicRegistration = true,        linkSupport = true      },      documentHighlight = {        dynamicRegistration = false      },      documentSymbol = {        dynamicRegistration = false,        hierarchicalDocumentSymbolSupport = true,        symbolKind = {          valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }        }      },      formatting = {        dynamicRegistration = true      },      hover = {        contentFormat = { "markdown", "plaintext" },        dynamicRegistration = true      },      implementation = {        linkSupport = true      },      inlayHint = {        dynamicRegistration = false,        resolveSupport = {          properties = {}        }      },      publishDiagnostics = {        relatedInformation = true,        tagSupport = {          valueSet = { 1, 2 }        }      },      rangeFormatting = {        dynamicRegistration = true      },      references = {        dynamicRegistration = false      },      rename = {        dynamicRegistration = true,        prepareSupport = true      },      semanticTokens = {        augmentsSyntaxTokens = true,        dynamicRegistration = false,        formats = { "relative" },        multilineTokenSupport = false,        overlappingTokenSupport = true,        requests = {          full = {            delta = true          },          range = false        },        serverCancelSupport = false,        tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },        tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }      },      signatureHelp = {        dynamicRegistration = false,        signatureInformation = {          activeParameterSupport = true,          documentationFormat = { "markdown", "plaintext" },          parameterInformation = {            labelOffsetSupport = true          }        }      },      synchronization = {        didSave = true,        dynamicRegistration = false,        willSave = true,        willSaveWaitUntil = true      },      typeDefinition = {        linkSupport = true      }    },    window = {      showDocument = {        support = true      },      showMessage = {        messageActionItem = {          additionalPropertiesSupport = false        }      },      workDoneProgress = true    },    workspace = {      applyEdit = true,      configuration = true,      didChangeWatchedFiles = {        dynamicRegistration = true,        relativePatternSupport = true      },      inlayHint = {        refreshSupport = true      },      semanticTokens = {        refreshSupport = true      },      symbol = {        dynamicRegistration = false,        hierarchicalWorkspaceSymbolSupport = true,        symbolKind = {          valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }        }      },      workspaceEdit = {        resourceOperations = { "rename", "create", "delete" }      },      workspaceFolders = true    }  },  clientInfo = {    name = "Neovim",    version = "0.10.0"  },  initializationOptions = vim.empty_dict(),  processId = 1672930,  rootPath = "/home/rok/Nutstore Files/codes/tlem",  rootUri = "file:///home/rok/Nutstore%20Files/codes/tlem",  trace = "off",  workspaceFolders = { {      name = "/home/rok/Nutstore Files/codes/tlem",      uri = "file:///home/rok/Nutstore%20Files/codes/tlem"    } }}

so I guss that's indicate that ruff and black doesn't support progress?

To streamline the message:
.../lua/vim/lsp.lua:1428	"LSP[pylsp]"	"initialize_params"	{ ... workDoneProgress = true ... },

So ys pylsp does support progress, but b/c pylsp doesn't need too much time to complete the work, it is not reflected in the information stack owned by fidget.

so I guss that's indicate that ruff and black doesn't support progress?

Not really, this is actually b/c we have blocked messages emitted by null-ls:
https://github.com/ayamir/nvimdots/blob/f1125a96acc769a21a7443ae1812dfdfe81812de/lua/modules/configs/ui/fidget.lua#L4-L6
We made this decision b/c null-ls would continuously (and uncontrollably) generate a large amount of irrelevant messages (e.g., starting document diagnosis, publishing document diagnosis, finished, etc.).

we don't use null-ls in python, ruff and black are integrated in pylsp as plugins

we don't use null-ls in python, ruff and black are integrated in pylsp as plugins

Oh sorry about this - I forgot ruff and black have already been integrated into pylsp..
So how pylsp manages its plugins totally depends on its implementation. Plugins don't have unique client IDs that belong to them.

@fecet is it gd to close this issue now?

https://github.com/python-lsp/python-lsp-server/issues/374


append to body

@abea  I pushed a commit to fall back to body only when necessary. How’s that look?


[mpmcqueue] Update version to 2021-12-01

Describe the pull request

What does your PR fix?

Update the mpmcqueue package to a newer version (commit from 2021-12-01).

Which triplets are supported/not supported? Have you updated the CI baseline?

I have not updated anything related to CI

Does your PR follow the maintainer guide?

I hope so.

I am still working on this PR

Still need to update the sha512

And is there any way access the content in "D:\buildtrees\mpmcqueue\build-x86-windows-dbg-out.log"

@anders-wind Thank you for submitting the pull request, the first submission of pull request requires you to sign the CLA

@anders-wind Thank you for submitting the pull request, the first submission of pull request requires you to sign the CLA And can you please correct the Version field in the CONTROL file? You can get more information from maintainer-guide.md.

Hi - I have signed the CLA. What is the CONTROL file? The vcpkg.json?

@anders-wind Yes, it is vcpkg.json, please refer to maintainer-guide.md.

file(COPY
    ${SOURCE_PATH}/include/rigtorp/MPMCQueue.h
    DESTINATION ${CURRENT_PACKAGES_DIR}/include/rigtorp
)

Why delete it？ This file contains a disclaimer. https://github.com/rigtorp/MPMCQueue/blob/master/include/rigtorp/MPMCQueue.h

Im just using the cmake setup instead of just copying over the file.

@anders-wind Sorry, we just need to keep a main copyright and it's fine. :)

Oh well - it looks like their cmake setup is not fully functional - or atleast compatible with vcpk. Unless I am missing something

Is there a common solution to this type of cmake config errors?

Thanks for the update!

@FrankXie05 Thanks for the feedback and help - hopefully next PR will require less guiding :)


[Bug]: Fix documentation before new version release

What happened?
A major version upgrade is in progress, because the core of the project is changing quite a bit.
The readme file including the documentation is not up to date with the 2.0.0 upgrade.
Version
1.0.0 (Default)
Relevant log output
No response
Contributing

[X] #17

Fixed in: https://github.com/QuickDevelopment/wp-js/pull/19


Hello I want image path when file select and show it in controller.js.

I want to get image path. How it is possible.????

Browser doesn't give you the local file path because of security reasons.


get_block_root handling of exception case

In the get_block_root method:
get_block_root
def get_block_root(state: BeaconState,
                   slot: int) -> Hash32:
    """
    Returns the block root at a recent ``slot``.
    """
    assert state.slot <= slot + LATEST_BLOCK_ROOTS_LENGTH
    assert slot < state.slot
    return state.latest_block_roots[slot % LATEST_BLOCK_ROOTS_LENGTH]

If the two assertion fails is this an exception case?

asserts need to be handled as you see fit in your codebase.
In most of the helpers, the asserts are putting the bounds on what data can be retrieved from state at the current state.
If processing a block caused an assert to fail, then the block would be seen as invalid because the state transition can not be processed due to some exceptional data being present. In this case, I might throw something like a ValidationError or ValueError that would be caught by an outer block processor that then discards the block as invalid.


WIP: Rework

Fixes #7
Fixes #10
Fixes #11
Fixes #13
Fixes #14

[x] Move from glide to dep
[x] Move to versioned client-go.
[x] Ensure dep ensure runs and there's no need for versioning vendored code.
[x] Make sure Docker container image is built successfully.
[ ] Replace official image with one that extends it but includes route_checker.

Is this ready for rebase?

@pires I believe it is, but please note the latest commit's message:

Also temporarily commenting 'TestNatsUpgrade' as there are no compatible versions of 'quay.io/pires/docker-nats' below 1.0.2.

If this is not a major issue, then please go straight ahead.


cli app should warn when upgrades are available

we need to motivate our users to upgrade when upgrades to the cli are available. if a user is using version 1.9.6 and version 1.9.7 becomes available, we should issue them a warning when they init that reads something to the effect of:
Warning: A new version of the kubefirst cli is available. It is highly recommended that new cluster provisions leverage the latest version of the kubefirst cli. To upgrade your cli run:
brew upgrade kubefirst\tools\kubefirst

Please consider upgrading, then running kubefirst clean, then rerunning your kubefirst init on the latest version.

this should be implemented on the creation of mgmt stacks only

This has since been implemented.


OpenGL applications run faster with larger window sizes, and slower with smaller window sizes

Windows Build Number
Microsoft Windows [Version 10.0.22000.71]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Ubuntu 20.04
Other Software
I was running a program I wrote.
I was working on a WIP game engine
Repro Steps
Compile the program with make
Run the generated a.out file
Observe the speed of the demo with varying window sizes
Expected Behavior
The program shows a window with a raymarching demo. Resizing the window should not affect the speed. For reference, this is the demo in its original format.
Actual Behavior
The program shows a window with a raymarching demo. Depending on the size of the window, the demo will change speed drastically. Smaller window sizes make the demo slower, and larger window sizes speed the demo up.
Diagnostic Logs
No response

This could be due to display scaling. Weston can't resize your display, so it instead rescales applications to fill the screen. This takes a little time, so if you run it at your display's natural resolution where it doesn't need to scale it you might get a performance boost. (This is just the first thing that popped into my head, so it might not be the sole or even primary reason, but it probably contributes.)

Well, my code uses the function clock() every frame to get the number of microseconds since the program was launched. This means that no matter the framerate, it should always run at the same speed.

I see. I thought you meant it was slow in rendering, but you meant that the simulation speed was slow. It's possible that the OpenGL driver is causing a lot of context switches into the hypervisor to run the display driver code, but it doesn't make sense that larger display areas would cause it to run faster (unless for some reason it can do more work per context switch with the larger drawing surface).

I limited the framerate to 60fps and this doesn't happen anymore. The simulation speed was also never correct before this even on real hardware. Usually it would always run slower because real hardware is much faster*. The speed variance was only that drastic on WSL anyways.
*The reason smaller window sizes ran slower was because more frames were able to be rendered, and they were all being drawn one at a time.


Association named 'product_category' was not found

I am following the tutorial and I have an issue building the product catalog. My Product Controller is as follows:
class ProductsController < ApplicationController

  def index
    @products = Shoppe::Product.root.ordered.includes(:product_category, :variants)
    @products = @products.group_by(&:product_category)
  end

  def show
    @product = Shoppe::Product.find_by_permalink(params[:permalink])
  end

end

The error thrown is:
ActiveRecord::AssociationNotFoundError in ProductsController#index

Association named 'product_category' was not found on Shoppe::Product; perhaps you misspelled it?

Any idea why?

This is due to the introduction of multiple categories in 1.0.6. Change your index method to the following:
def index
  @products = Shoppe::Product.root.ordered.includes(:product_categories, :variants)
  @products = @products.group_by(&:product_category)
end

Yup apologies. I'll see if I can get the documentation updated tonight or tomorrow!

Great. It worked. Thanks so much guys!

The documentation on the Shoppe site has been updated - http://tryshoppe.com/docs/tutorials/products


Generate test-case from class-under-test

Closing as this feature can be a separate package. It can be reopened if people feel this package should have this feature.


Test failures on macOS

I get the following test failures on macOS.
These two because of a bad URL, and should fail on all platforms.  They rely on http://www.nina.jp/server/slackware/webapp/tomcat_charset.html , but this no longer exists.  I believe this should be replaced by a local server.
  1) character encoding
       Given content-type: "text/html; charset=EUC-JP"
         with decode = false
           does not decode:
     Uncaught TypeError: Cannot read properties of undefined (reading 'body')
      at /Users/alcatrazqa/joey/shaka-player/node_modules/needle/test/decoder_spec.js:24:16
      at done (lib/needle.js:501:14)
      at ClientRequest.had_error (lib/needle.js:516:5)
      at ClientRequest.emit (node:events:526:28)
      at Socket.socketErrorListener (node:_http_client:442:9)
      at Socket.emit (node:events:526:28)
      at emitErrorNT (node:internal/streams/destroy:164:8)
      at emitErrorCloseNT (node:internal/streams/destroy:129:3)
      at processTicksAndRejections (node:internal/process/task_queues:83:21)

  2) character encoding
       Given content-type: "text/html; charset=EUC-JP"
         with decode = true
           decodes:
     Uncaught TypeError: Cannot read properties of undefined (reading 'body')
      at /Users/alcatrazqa/joey/shaka-player/node_modules/needle/test/decoder_spec.js:39:16
      at done (lib/needle.js:501:14)
      at ClientRequest.had_error (lib/needle.js:516:5)
      at ClientRequest.emit (node:events:526:28)
      at Socket.socketErrorListener (node:_http_client:442:9)
      at Socket.emit (node:events:526:28)
      at emitErrorNT (node:internal/streams/destroy:164:8)
      at emitErrorCloseNT (node:internal/streams/destroy:129:3)
      at processTicksAndRejections (node:internal/process/task_queues:83:21)

These fail if run on macOS because they only exclude Windows, and /proc/self/fd isn't available on Mac, either.  I believe that these should only run on Linux.
  3) with output option
       and a 200 response
         for an empty response
           closes the file descriptor:
     Error: ENOENT: no such file or directory, scandir '/proc/self/fd'
      at Object.readdirSync (node:fs:1392:3)
      at get_open_file_descriptors (test/output_spec.js:27:19)
      at Context.<anonymous> (test/output_spec.js:114:34)
      at processImmediate (node:internal/timers:466:21)

  4) with output option
       and a 200 response
         for a JSON response
           closes the file descriptor:
     Error: ENOENT: no such file or directory, scandir '/proc/self/fd'
      at Object.readdirSync (node:fs:1392:3)
      at get_open_file_descriptors (test/output_spec.js:27:19)
      at Context.<anonymous> (test/output_spec.js:171:32)
      at processImmediate (node:internal/timers:466:21)

  5) with output option
       and a 200 response
         for a binary file
           closes the file descriptor:
     Error: ENOENT: no such file or directory, scandir '/proc/self/fd'
      at Object.readdirSync (node:fs:1392:3)
      at get_open_file_descriptors (test/output_spec.js:27:19)
      at Context.<anonymous> (test/output_spec.js:241:34)
      at processImmediate (node:internal/timers:466:21)

These tests seem to be testing some behavior of node's HTTP server, not the client.  The client doesn't control if the server returns 400 (expected on node >= 10), or ECONNRESET (expected on other versions), and therefore fails if the server behaves differently than expected (returns 200 for me).  Since the only expectations are set on a component outside this project, I believe this is just a bad test that should be deleted.
  6) request stream length
       no stream_length set
         returns 400 if Transfer-Encoding is set to a blank string:

      Uncaught AssertionError: expected 200 to equal 400
      + expected - actual

      -200
      +400

      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at /Users/alcatrazqa/joey/shaka-player/node_modules/needle/test/request_stream_spec.js:66:34
      at done (lib/needle.js:501:14)
      at PassThrough.<anonymous> (lib/needle.js:764:9)
      at PassThrough.emit (node:events:538:35)
      at endReadableNT (node:internal/streams/readable:1342:12)
      at processTicksAndRejections (node:internal/process/task_queues:83:21)

  7) request stream length
       stream_length set to invalid value
         returns 400 if Transfer-Encoding is set to a blank string:

      Uncaught AssertionError: expected 200 to equal 400
      + expected - actual

      -200
      +400

      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at /Users/alcatrazqa/joey/shaka-player/node_modules/needle/test/request_stream_spec.js:96:34
      at done (lib/needle.js:501:14)
      at PassThrough.<anonymous> (lib/needle.js:764:9)
      at PassThrough.emit (node:events:538:35)
      at endReadableNT (node:internal/streams/readable:1342:12)
      at processTicksAndRejections (node:internal/process/task_queues:83:21)

  8) request stream length
       stream_length set to invalid value
         returns 400 if Transfer-Encoding is not set:

      Uncaught AssertionError: expected 200 to equal 400
      + expected - actual

      -200
      +400

      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at /Users/alcatrazqa/joey/shaka-player/node_modules/needle/test/request_stream_spec.js:104:34
      at done (lib/needle.js:501:14)
      at PassThrough.<anonymous> (lib/needle.js:764:9)
      at PassThrough.emit (node:events:538:35)
      at endReadableNT (node:internal/streams/readable:1342:12)
      at processTicksAndRejections (node:internal/process/task_queues:83:21)

  9) request stream length
       stream_length set to 0
         stream without path
           returns 400 if Transfer-Encoding is set to a blank string:

      Uncaught AssertionError: expected 200 to equal 400
      + expected - actual

      -200
      +400

      at Assertion.fail (node_modules/should/cjs/should.js:275:17)
      at Assertion.value (node_modules/should/cjs/should.js:356:19)
      at /Users/alcatrazqa/joey/shaka-player/node_modules/needle/test/request_stream_spec.js:213:36
      at done (lib/needle.js:501:14)
      at PassThrough.<anonymous> (lib/needle.js:764:9)
      at PassThrough.emit (node:events:538:35)
      at endReadableNT (node:internal/streams/readable:1342:12)
      at processTicksAndRejections (node:internal/process/task_queues:83:21)

I should have mentioned, these failures were all on node v17.


feat(neo-tree): add mapping "O" to open with system default

This adds the "O" mapping to Neo-tree to open the file in the system default app. I found this really useful for opening things like directories in the default file explorer, or images/pdfs since the terminal can't render those. There is an open issue in neo-tree but it's been labelled as wontfix so I think adding this to something like LazyVim is a good idea.
Let me know if you need me to add anything.

Can you change it to use vim.ui.open?

Can you change it to use vim.ui.open?

Wasn't vim.ui.open introduced in 0.10?

I'd rather not have that open code in there and just rely on vim.ui.open.
When vim.ui.open is not available, either just show a message with LazyVim.error(...), or don't include the keymap.

When vim.ui.open is not available, either just show a message with LazyVim.error(...), or don't include the keymap.

I'm not really sure how to not include the keymap based on a condition. Do you know if that's possible with neo-tree?
For now I just made it throw an error if vim.ui.open isn't available, but not having the keymap at all would be better

I tried several things to find a solution about a conditional keymap with no avail at the start and then thought of this
      if vim.ui.open then
        opts.window.mappings["O"] = {
          command = function(state)
            local filepath = state.tree:get_node().path
            vim.ui.open(filepath)
          end,
          desc = "open_with_system_default",
        }
      else
        opts.window.mappings["O"] = "none"
      end

and put it in the config function of neotree just before require("neo-tree").setup(opts). Otherwise the whole opts could be refactored to a function and put this piece of code there, but haven't tried that, so not sure if it will work correctly.

The following change with refactored opts as a function also seems to work
    opts = function(_, opts)
      opts.sources = { "filesystem", "buffers", "git_status", "document_symbols" }
      opts.open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" }
      opts.filesystem = {
        bind_to_cwd = false,
        follow_current_file = { enabled = true },
        use_libuv_file_watcher = true,
      }
      opts.window = {
        mappings = {
          ["<space>"] = "none",
          ["Y"] = {
            function(state)
              local node = state.tree:get_node()
              local path = node:get_id()
              vim.fn.setreg("+", path, "c")
            end,
            desc = "copy path to clipboard",
          },
        },
      }
      opts.default_component_configs = {
        indent = {
          with_expanders = true, -- if nil and file nesting is enabled, will enable expanders
          expander_collapsed = "",
          expander_expanded = "",
          expander_highlight = "NeoTreeExpander",
        },
      }
      if vim.ui.open then
        opts.window.mappings["O"] = {
          command = function(state)
            local filepath = state.tree:get_node().path
            vim.ui.open(filepath)
          end,
          desc = "open_with_system_default",
        }
      else
        opts.window.mappings["O"] = "none"
      end
    end,

Personally, I would prefer this over polluting the config function.

Is changing all this worth it just to leave the mapping out? We could also just show the error message like it's doing now and that wouldn't be too bad.
I'll wait on @folke for his opinion

That depends on if further conditional keymaps might be added in the future and whether the maintainer wants to go forward this way. Personally, I think making opts a function is a small cost and provides more flexibility for stuff like that. It's being done in other LazyVim specs as well (lualine, telescope etc).
Of course we could just throw an error and be done with it and I definitely agree about waiting on Folke's opinion on this. I just tried what I tried because I saw that there was a proposition about setting the key conditionally and that's what I tried to solve. By no means am I saying this is the best solution (it's just one of probably others as well that just works for this case). And maybe neotree does provide some way of setting conditional keys, but from the little that I searched on their repo I wasn't able to find anything relevant.

You can just do something like the below:
          ["O"] = vim.ui.open and {
            function(state)
              local path = state.tree:get_node().path
              local ret = vim.ui.open(path)
              if ret and ret.code ~= 0 then
                LazyVim.error("Failed to open file: " .. ret.stderr .. "\n .. " .. ret.stdout)
              end
            end,
            desc = "open with system default application",
          } or nil,

BUT: I tested with vim.ui.open and tbh, the way it's implemented in core makes zero sense to me.
They start the process detached (which is good), but then wait till it finished.
This makes no sense, since Neovim will literally be unresponsive until you close the app you just opened.

Neovim will literally be unresponsive until you close the app you just opened.

I just tested it on my Mac and that isn't the case for me. I can open the app and continue using neovim at the same time

Based on my testing this works well for me

Might be just on Linux then, however the wait is in the code, so that really has to go:
https://github.com/neovim/neovim/blob/849d82b80b8584fe7918bffc6480f0ec0fda9b9b/runtime/lua/vim/ui.lua#L155

I'm on Linux Mint 21.3 (base Ubuntu 22.04), awesome WM, kitty terminal and the lock up is there when the system app is open. Main Neovim instance is unresponsive until the system app closes indeed.

lazy also has an open function, that I just changed a bit to allow forcing the ssytem app:
https://github.com/folke/lazy.nvim/commit/66466a2594ab0c446193772a68c236c7e4e02ade
Updated the PR to use lazy's implementation.

Oh that looks even better, I like that. Eventually if the code gets fixed in core we can always just change lazy's implementation to start using that

Merged. Thanks!


FR: Add option to automatically curtail MPD playlist to a certain maximum length

Hi there,
I use ashuffle in an automated, unsupervised environment. What typically happens is that I will forget about it for several months, and MPD will eventually crash when its playlist grows large enough, leading the automation to stop working and require MPD and ashuffle to be manually restarted. I cannot seem to find any information on the internet about a built-in configuration option for MPD that would allow it to remove old tracks from the playlist automatically. It would be great if ashuffle could contain this functionality, though I understand if it might be a bit too niche for what you're doing. Either way, thank you so much for all your hard work! It's been completely indispensable to me.

Nevermind me. I finally figured out "consume". Which I probably had figured out years ago, which is why I spent so much time looking for the information on it only to come up with nothing because I wasn't looking for the right term.


TTS流式输出，异步报错

当使用流式输出的api时，如果此时多个同时调用，就会报错 ，请问如何解决
ERROR:    Exception in ASGI application

Exception Group Traceback (most recent call last):
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
|     result = await app(  # type: ignore[func-returns-value]
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in call
|     return await self.app(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/fastapi/applications.py", line 1054, in call
|     await super().call(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/applications.py", line 113, in call
|     await self.middleware_stack(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/middleware/errors.py", line 187, in call
|     raise exc
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/middleware/errors.py", line 165, in call
|     await self.app(scope, receive, _send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/middleware/cors.py", line 85, in call
|     await self.app(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/middleware/exceptions.py", line 62, in call
|     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
|     raise exc
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
|     await app(scope, receive, sender)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/routing.py", line 715, in call
|     await self.middleware_stack(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/routing.py", line 735, in app
|     await route.handle(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/routing.py", line 288, in handle
|     await self.app(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/routing.py", line 76, in app
|     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
|     raise exc
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
|     await app(scope, receive, sender)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/routing.py", line 74, in app
|     await response(scope, receive, send)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/responses.py", line 257, in call
|     await wrap(partial(self.listen_for_disconnect, receive))
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 736, in aexit
|     raise BaseExceptionGroup(
| exceptiongroup.ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
|   File "/home/user/workspace/GPT-SoVITS-Inference/GPT_SoVITS/TTS_infer_pack/TTS.py", line 787, in run
|     pred_semantic_list, idx_list = self.t2s_model.model.infer_panel(
|   File "/home/user/workspace/GPT-SoVITS-Inference/GPT_SoVITS/AR/models/t2s_model.py", line 633, in infer_panel_batch_infer_with_flash_attn
|     if (self.EOS in samples[:, 0]) or
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/_tensor.py", line 1112, in contains
|     return (element == self).any().item()  # type: ignore[union-attr]
| RuntimeError: CUDA error: device-side assert triggered
| CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
| For debugging consider passing CUDA_LAUNCH_BLOCKING=1
| Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.
|
|
| During handling of the above exception, another exception occurred:
|
| Traceback (most recent call last):
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/responses.py", line 253, in wrap
|     await func()
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/responses.py", line 242, in stream_response
|     async for chunk in self.body_iterator:
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/concurrency.py", line 62, in iterate_in_threadpool
|     yield await anyio.to_thread.run_sync(_next, as_iterator)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/anyio/to_thread.py", line 56, in run_sync
|     return await get_async_backend().run_sync_in_worker_thread(
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 2405, in run_sync_in_worker_thread
|     return await future
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 914, in run
|     result = context.run(func, *args)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/starlette/concurrency.py", line 51, in _next
|     return next(iterator)
|   File "/home/user/workspace/GPT-SoVITS-Inference/Synthesizers/gsv_fast/GSV_Synthesizer.py", line 92, in get_streaming_tts_wav
|     for chunk in chunks:
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/utils/_contextlib.py", line 57, in generator_context
|     response = gen.send(request)
|   File "/home/user/workspace/GPT-SoVITS-Inference/GPT_SoVITS/TTS_infer_pack/TTS.py", line 887, in run
|     self.init_t2s_weights(self.configs.t2s_weights_path)
|   File "/home/user/workspace/GPT-SoVITS-Inference/GPT_SoVITS/TTS_infer_pack/TTS.py", line 296, in init_t2s_weights
|     dict_s1 = torch.load(weights_path, map_location=self.configs.device)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 1097, in load
|     return _load(
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 1525, in _load
|     result = unpickler.load()
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 1492, in persistent_load
|     typed_storage = load_tensor(dtype, nbytes, key, _maybe_decode_ascii(location))
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 1466, in load_tensor
|     wrap_storage=restore_location(storage, location),
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 1389, in restore_location
|     return default_restore_location(storage, map_location)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 414, in default_restore_location
|     result = fn(storage, location)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/serialization.py", line 392, in _deserialize
|     return obj.to(device=device)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/storage.py", line 187, in to
|     return _to(self, device, non_blocking)
|   File "/home/user/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/torch/_utils.py", line 90, in to
|     untyped_storage.copy(self, non_blocking)
| RuntimeError: CUDA error: device-side assert triggered
| CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
| For debugging consider passing CUDA_LAUNCH_BLOCKING=1
| Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.
|
+------------------------------------

多少个出现的，是否涉及模型切换？显存情况如何

多少个出现的，是否涉及模型切换？显存情况如何

1.显存是够的；
2.如果多个请求同时进来，那么流式输出就会混乱或者报错，一般很快就报错。
3.混乱就是比如说AB两段长文本分别同时请求，A生成语音混杂着B的一些内容,B生成的语音混杂A的内容。

版本问题，最新代码不出现这个错误


autologout never triggers

followup to #308
now since #388  there's no auto logout since the periodic refresh always revive the session. We need to distinguish periodic background polling from user actions and log out when there is no user activity

duplicate of #955, closing since that one has more details


v3.1.0 prep

Problem
Prep v3.1.0 release

Coverage: 100.0%. Remained the same when pulling fec41a862a9517a9c953f7e7331074b424658639 on matthewhegarty:rel-310 into c6eb440019b534b13aebdcca3486adc8040e7efb on django-import-export:main.


Do not output to terminal, if 'bg'

It'd be nice that, if the process is put into background (ctrl-z, bg), it stopped printing numbers on stdout, unless it is fg again.
There are posix function calls that allow this, or signals. I don't remember. scp does this, if I remember correctly.

This is a relatively obscure feature to have, but thanks for the report anyway.


fix(transformer): reduce memory consumption

New Pull Request Checklist

[x] I have read the Documentation
[x] I have searched for a similar pull request in the project and found none
[x] I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)
[ ] I have added the required tests to prove the fix/feature I am adding
[ ] I have updated the documentation (if necessary)
[ ] I have run the tests and they pass

This merge request fixes / refers to the following issues:
Fixes #578
Pull Request Description
Instead of using a large List<int>, I keep references to the data chunks and at the very end create a Uint8List and fill it with the chunks. This seems to reduce memory allocation considerably.

Could someone please take a look at this? I'd love to tick the remaining checkboxes, but I don't even know how to run the tests for this project.
We use this fix in production and it seems stable. Would be great if this could be merged...


How to create .lrc files from iFLYTAB dataset

I am trying to train a model by running the train.py script.
I downloaded the iFLYTAB dataset from the link given  here .
Can you please let me know how to generate the .lrc files used in training script using the above mentioned dataset.

@Chunchunwumu
Please let us know about .lrc file preparation.


[Bug]: Driver Session not working

Bug report requirements

[X] I have confirmed that this is a bug and not a configuration/user error.
[X] I have searched for existing issues and confirmed that my issue has not been reported before.

IconCaptcha version
4.0.3
PHP version
8.0
Browsers affected
Google Chrome
Expectation
When we click on an image, the backend should not retrieve an error 500.
Actual behaviour
The backend crashes on a division by zero after a click on an image. I suppose count($this->session->icons) should never be 0.
Implementation was done using tutorial steps, except that the domain of the backend is different from the frontend.
Here is the trace :
Array
(
[0] => Array
(
[file] => vendor/fabianwennink/iconcaptcha/src/Challenge/Challenge.php
[line] => 232
[function] => determineClickedIcon
[class] => IconCaptcha\Challenge\Challenge
[type] => ->
)
[1] => Array
    (
        [file] => vendor/fabianwennink/iconcaptcha/src/Request.php
        [line] => 119
        [function] => makeSelection
        [class] => IconCaptcha\Challenge\Challenge
        [type] => ->
    )

Relevant log information
It appears that the session id returned in the first captcha load response header is not used for the verification request; so the session is simply not working.
The problem is that the first php session id is only returned through the first call via XHR.
Thus the browser does not use it as main session cookies for the next XHR.
A very good solution would be a hook to retrieve the php session id from the load call, and an option to set the session id to use for the next calls.
Additional information
No response

Hi @Quetlo! Thanks for the report! I will look into this, as well as your other issue report, as soon as possible.

It seems like we are running into the same issue on our production environment.
It would also help in the meanwhile if it was a catchable exception and not a fatal error, so we can at least handle the error gracefully.
Best regards


Ruby 2.4 compatibility (Fixnum => Integer)

Ruby 2.4 deprecates Fixnum and Bignum in favor of a single Integer class. Using Integer avoids a deprecation warning.

r? @nelhage-stripe (ruby 2.4 upgrade stuff)

:+1:


Invalid frame header

I executed npm install && node server.js. When opening new room this error throws:
websocket.js:54 WebSocket connection to 'ws://<IP_ADDRESS>:3000/socket.io/?EIO=4&transport=websocket' failed: Invalid frame header
I tried changing socket-io versions, node versions and other stuff

This error we can ignore.
But for me, video call was not working because of this
const myPeer = new Peer(undefined, {
path: "/peerjs",
host: "/",
port: "3000",
});
After comment this port it worked for me :)

different isp not working . how can i fix it


Issues with libinput/dconf/sddm

Describe the bug
I want setxkbmap -option ctrl:swapcaps to work (i.e. exchange my left CTRL and caps lock keys), I want to be able to configure some touchpad options (using libinput ideally) and I also want to be able to use the virtual keyboard when logging in SDDM. Unfortunately, it seems like I can’t find any configuration where this work. For instance, if I enable libinput, then setxkbmap -option ctrl:swapcaps does not work as intended (both keys are turned into caps lock). This is fixed if I use programs.dconf.enable = true; (seems very magic) but then in SDDM I cannot enable the virtual keyboard anymore.
Steps To Reproduce
Steps to reproduce the behavior:
Add in the configuration:
  programs.dconf.enable = true;
  services.xserver.displayManager.sddm.enable = true;
  services.xserver.desktopManager.plasma5.enable = true;
  services.xserver.xkb.layout = "us";
  services.xserver.xkb.variant = "intl";
  services.xserver.libinput = {
    enable = true;
    touchpad = {
      # Very annoying dragLock: when you untouch the device, for a few ms you can still
      # continue the locking...
      tappingDragLock = false;
      disableWhileTyping = true;
      accelSpeed = "0.3";
    };
    mouse = {
      middleEmulation = true;
    };
  };

and try to enable the virtual keyboard in sddm. Disable dconf:  setxkbmap -option ctrl:swapcaps  stops working as expected (same if you configure it from KDE’s settings; but it seems like sometimes this one fails while setxkbmap works).
Expected behavior
I would expect swapcaps and virtual keyboard to work irrespective of the setting I use. So maybe enable dconf by default and understand why the virtual keyboard stops working? See also the bug I filled in SDDM https://github.com/sddm/sddm/issues/1880 and https://github.com/sddm/sddm/issues/1879
Btw, shouldn’t dconf be automatically enabled by default in KDE since it seems needed for stuff like ctrl:swapcaps?
Notify maintainers
@K900 sorry, you are the last editor of the libinput file and you also modified sddm.
Metadata
Running NixOs 23.11, 79baff8812a0d68e24a836df0a364c678089e2c7

Add a :+1: reaction to issues you find important.

We do enable dconf by default in Plasma setups on unstable. How are you running setxkbmap?

Oh really, weird that I see changes depending on whether I enable it or not… I just run it from Konsole like:
$ setxkbmap fr bepo
$ setxkbmap -option ctrl:swapcaps

See also the bug I filled in SDDM https://github.com/sddm/sddm/issues/1880

But how do you expect that to affect SDDM, which runs a completely separate compositor/X server?

Ok, sorry, so I did a bit more checks and tests, and:

dconf is enabled on unstable but not on 23.11
Indeed, you are right, SDDM is in fact a completely unrelated bug. In fact, it depends on which field you click. If you click directly on password, then it is fine, you have access to the virtual keyboard (actually, I discovered another bug: I don’t know why but I cannot directly click on it, I need first to go to TTY 1 and come back to TTY 2 to be able to do any click… no idea if this is a hardware bug on my side, or on SDDM or NixOs, but I can reproduce this quite accurately. Dell touchpads are really bad in my experience, this one keeps clicking mechanically for no reason so it might be a hardware bug, just confused why it is solved when switching to TTY…)
The bug with setxkbmap is in fact not really with setxkbmap, but rather with KDE itself. To be more precise, if I type:

$ setxkbmap fr bepo
$ setxkbmap -option ctrl:swapcaps

then everything works as expected (even the bug with shortcuts that I describe below is solved). If I type only:
$ setxkbmap -option ctrl:swapcaps

then, this command seems to do nothing at all, and keeps KDE’s setting (that’s why I was confused when I first filled this bug). But KDE’s settings are as follows:

So I would expect ctrl and swap to be exchanged… but it is not the case as both are caps lock. So this bug in fact can be drammatically cleanned up as: KDE’s ctrl swap with caps lock is not applied correctly. It might be simpler to close this bug and start a new one…

Ok, so I actually filled a bug upstream in https://bugs.kde.org/show_bug.cgi?id=482397 , as I guess it is unrelated to NixOs. Feel free to reopen if you think NixOs can do something here.


Fail incident creation if artefacts are not created

Is your feature request related to a problem? Please describe.
Sometimes when incident is created some artefacts are not created, but there is no notification or errors if this happens, so there is no way to say for sure wether or not we need to create new one on the spot. If it is possible to automatically fail incident creation in case of errors dring incident creation we could be certain that incident is created properly
Describe the solution you'd like
Configure Dispatch so it fails incident creation if there are any errors during arteffact creation

I agree we can do better here. Ideally, resource creation wouldn't fail. But that's not always the case. I have some ideas around how we might improve this by looking for failures in the event timeline.


Check wireguard interface status using the Rest API

Hello,
I'm trying to figure out a way to check if a wireguard interface is Up or Down using the rest api. The only thing I've found so far is using the UpdatedAt field of the interface. It would be nice if in the interface we could see whether the interfaces are up or down.

Hi, currently this is not possible. I will add this in the new version.


Identify the game music files

We should determine names for the main game music files (ACT1.WAV–ACT4.WAV, AMBIENT1.WAV–AMBIENT4.WAV) according to the bonus content archive from the Internet Archive (which contains eight MP3 music files).
Also, we should determine when they're playing in the game (at random, sequentially or what).

[ ] While doing this, please also clean up any remaining TODOs related to #3 left in the code and the documentation.

I'm pretty sure I did that in 2018 but I failed to see if I wrote stuff down somewhere.
Start gets played when the game is started
Intro.avi is when the players starts/watch the intro ? (it's voiced after 2.5 minutes)
Losend is when the players looses (it's voiced)
Winner is when the players wins (it's voiced)
Leviatan music plays instantly as you go on the last planet.
I believe the MYSTICS/PROTECT/SEEKERS/LIFEGIV music are themed for each tribe. I don't remember if it's a requirement or if it gets played when you first go on that planet.


secondary IP address needed for application - virtual server listener

The base orchestration does NOT allocate at least one secondary IP to the external NIC. This is needed for VIP traffic in most common scenarios. Yes, users can target a self IP for the virtual server listener, but this is not always recommended.
Suggesting to add a secondary IP configuration to the external NIC of each F5. This is similar to what happens in the ARM templates in which the external nic gets assigned a primary IP (self IP) as well as one additional secondary IP (virtual listener, SNAT, whatever).
If this is not done during terraform apply, then it will be up to the user to manually create a new IP object in the cloud provider, then bind it to the newly deployed VM.

Thanks, tracking with TER-452

This is fixed now


Even without an Operator class being generated, the enclosing directory should be generated

Feature Request
Describe the problem you need a feature to resolve.
#31 removed the generation of the main class because the latest versions of the Quarkus extension don't require it. However, in the process of testing I found an issue with Quarkus: https://github.com/quarkusio/quarkus/issues/19655. An easy fix would be to still create an empty src/main/java directory.
Describe the solution you'd like.
operator-sdk init should generate an empty src/main/java directory. Not sure how to do it with the plugin.

Here's what it looks like immediately after init.
[jesusr@transam java-op]$ operator-sdk init --plugins quarkus  --domain zeusville.com --project-name java-op
[jesusr@transam java-op]$ tree
.
├── Makefile
├── pom.xml
├── PROJECT
└── src
    └── main
        ├── java
        └── resources
            └── application.properties

4 directories, 4 files

So where does a user START with this project now? Feels like I need to direct them a bit more now that there's no "main" :)

Just create an API… without a controller, nothing happens anyway.

@metacosm @laxmikantbpandhare I added some instructions to the post scaffold similar to what we do in the ansible plugin. This will help guide folks to add the api. Thanks for the clarification.

Thank you!


Incorrect package.json generated

Hello 👍
You have closed these two issues but I think the issue remains unchanged:
https://github.com/rustwasm/wasm-pack/issues/854
https://github.com/rustwasm/wasm-pack/issues/837
Describe the Bug
I believe the package.json generated is missing a file in files when the target is browser.
Expected Behavior
I expect to have a filecoin_signer_wasm_bg.js
"files": [
"filecoin_signer_wasm_bg.wasm",
"filecoin_signer_wasm.js",
"filecoin_signer_wasm_bg.js"
],
Actual Behavior
What I actually have
"files": [
"filecoin_signer_wasm_bg.wasm",
"filecoin_signer_wasm.js"
],
Additional Context
Then when publising to npm I am missing this file.

@lalberge IIRC the issue is fixed but there isn't a published version with the fix.

@pachi Thanks for the answer :) Have you any idea of an ETA for the next release?

As a temporary workaround, I added a build.sh script that does the following:
#!/bin/bash
set -e

wasm-pack build
node <<EOF
const fs = require('fs');

const pkg = require('./pkg/package.json');
pkg.files = fs.readdirSync('./pkg/');
fs.writeFileSync('./pkg/package.json', JSON.stringify(pkg, null, 2));
EOF

This (sloppily) updates the package.json:files key to include everything in the pkg/ directory.

this will be fixed when the next version is released which i am hoping to do by the end of the year


Can't See Profile Video

Firefox on Linux.
I can't see the video of this profile.

I didn't have an issue with other profiles.

Firefox does not support MKV. That's why. Nothing to do about this.


Binder env not working for local COG

The binder env works well when rending a remote COG. However, it does not seem to work for a local COG (a file in the repo). The tile layer won't show up.
!wget https://github.com/giswqs/data/raw/main/raster/srtm90.tif

from localtileserver import get_leaflet_tile_layer, TileClient
from ipyleaflet import Map

# First, create a tile server from local raster file
tile_client = TileClient('srtm90.tif')

# Create ipyleaflet tile layer from that server
t = get_leaflet_tile_layer(tile_client)

# Create ipyleaflet map, add tile layer, and display
m = Map(center=tile_client.center())
m.add_layer(t)
m

This is known/expected because of https://github.com/banesullivan/localtileserver/issues/29
I do not know of a way to expose a server from the binder env that is accessible in the user's browser

TileClient will not work in this sort of environment, only RemoteTileClient which is connecting to a production server I have running (not very performant)

I was exploring the following repo this morning. It can run a streamlit web app on Binder. Not sure if it would be useful in your case.
https://github.com/chekos/testing-streamlit-mybinder
https://mybinder.org/v2/gh/chekos/testing-streamlit-mybinder/master?urlpath=proxy/8501/

Ah, that demo is just what I needed to see! I will see if I can do something similar with localtileserver

This is now working using ``. Please note the line at the top of example.ipynb that enables this to work:
# Set host forwarding for MyBinder
import os
# Make sure `notebooks.gesis.org/binder/jupyter/user/` matches your URL address
os.environ['LOCALTILESERVER_CLIENT_HOST'] = f"notebooks.gesis.org/binder/jupyter/user/{os.environ['JUPYTERHUB_USER']}"

That HOST URL might change on different mybinder or jupyterhub deployments

I just tested it on binder with the latest localtilesever. It does not seem to work.
https://gishub.org/leafmap-binder

Make sure to use the --pre flag for pip as I only released a dev version for this 0.4.0.dev0
I want to double check things before doing an actual release

Also, you'll need to install https://jupyter-server-proxy.readthedocs.io/en/latest/ and make sure it's extensions are enabled

Ignore the --pre flag comment. Just noticed you're installing from git

This is what I tried with my leafmap binder. Still not working. Not sure what I did wrong.
https://gishub.org/leafmap-binder
!pip install git+https://github.com/banesullivan/localtileserver.git
!pip install jupyter-server-proxy
!jupyter serverextension enable --sys-prefix jupyter_server_proxy

Your gesis binder works fine. So the issue is probably related to how the binder env is set up. Your uses docker, mine uses environment.yml

I think you'll have to relaunch Jupyter after enabling the server extension
Also make sure that code block at the top setting LOCALTILESERVER_CLIENT_HOST is uncommented and that car is set

Yes, i did restart the kernel several times. Also uncommented that line. Still not working. Will look into it tomorrow. Thanks

After uncommenting that line, make sure that value matches the URL in your browser

Is this correct?
if os.environ.get('JUPYTERHUB_USER'):
    os.environ['LOCALTILESERVER_CLIENT_HOST'] = f"hub.gke2.mybinder.org/user/{os.environ['JUPYTERHUB_USER']}"
else:
    os.environ['LOCALTILESERVER_CLIENT_PORT'] = '8888'
    os.environ['LOCALTILESERVER_CLIENT_HOST'] = "<IP_ADDRESS>"
    os.environ['LOCALTILESERVER_CLIENT_PREFIX'] = 'proxy/{port}'

You need to set os.environ['LOCALTILESERVER_CLIENT_PREFIX'] = 'proxy/{port}' in both cases
note that MyBinder's host can change anytime you launch, so hub.gke2.mybinder.org/user/ will not always be correct

Is there a way to retrieve the host URL programmatically?

There's always a way! ....but I couldn't figure it out... 😞
The host is not listed in os.environ but it could be somewhere...
I tried:
from notebook import notebookapp
servers = list(notebookapp.list_running_servers())
print(servers)

... 'hostname': '<IP_ADDRESS>' ...
But there's another webserver on top that manages the traffic.
I bet we could make a super hacky way of getting this through a custom ipython widget where the widget accesses window.location.href in the browser and then sends that data back to Python. However, this would be quite hacky and would require the user to display the widget.
This question might be something https://discourse.jupyter.org/c/binder/12 could help address

ACTUALLY! I just found a much, much simpler way to do this.

I will follow up in a PR in localtileserver

See https://github.com/banesullivan/localtileserver/pull/67
After that, the following should be sufficient:
# Set host forwarding for MyBinder
import os
os.environ['LOCALTILESERVER_CLIENT_PREFIX'] = f"{os.environ['JUPYTERHUB_SERVICE_PREFIX']}/proxy/{{port}}"

Fantastic! I can confirm that v0.4.3 works like a charm with Binder. How to make it work with other remote environments not using JupyterHub (e.g., streamlit)?
# Set host forwarding for MyBinder
import os
os.environ['LOCALTILESERVER_CLIENT_PREFIX'] = f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].lstrip('/')}/proxy/{{port}}"

How to make it work with other remote environments not using JupyterHub (e.g., streamlit)?

Let's open a new issue in localtileserver to address this
It should be a simple configuration with the settings I added for JupyterHub

how to display raster image in remote environments, especially for streamlit?

@wzp8023391 Unfortunately, localtileserver does not support streamlit. It is a streamlit problem rather than localtileserver.


Black screen on macOS

When opening the nightly build or attempting to build from source, I am greeted with a black screen and nothing further happens. If I try to open developer tools nothing happens. This is on macOS 12.3.1 and with the nightly build as of 16th April 2022.

Same issue when running build from git. The nightly build only shows its own resource directory, any other does not open.
The empty tab is the gameBase project, e.g.
Screenshot

No errors in the debugger or anywhere else.
Macbook Pro 2017
macOS Monterey version 12.0.1

Oh now there's an error like this
Uncaught Error: EROFS: read-only file system, open '/private/var/folders/3d/rz59yd510f525zrsx15_xd1h0000gn/T/AppTranslocation/B8E1C137-40B4-407E-A8ED-B7713A867AA5/d/nwjs.app/Contents/Resources/app.nw//props.json'

Works great on Sierra version 10.12.6. Didn't check above. And I still want it to work in Monterey 🙃.

Same problem on Big Sur. I don't have enough experience in Haxe yet. So I would be grateful for any help in solving this problem.

Black screen on Apple M1 ...

.

I also encountered this problem. Is there any new progress?

just ran into this problem downloading the nightly
macos monterey 12.5

The problem remains

use nwjs v0.60.0 help me open project, everything looks good.

"When I manually modify 'currentProject' in '/bin', I get the correct result. However, when I continue to modify the folder, I am unable to switch to the new folder. This feature should be updated on macOS."

modifying 'currentProject' in 'bin/props.json' can help you switch project.


Guardrails support

Is your feature request related to a problem? Please describe.
It would be great if langchain4j supported some kind of guardrails functionality. See Guardrails AI for example (https://shreyar.github.io/guardrails/).

Hi @radosdesign, could you please provide more details? Guardrails has a lot of features, which one(s) are you interested in? Thanks

@radosdesign closing this issue because no response. Feel free to reopen.


Specifying dependencies for intermediary packages

Consider the following page:
<!doctype html>

    <meta charset="utf-8">
    <meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap">

It fails with:

Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:

You might have mismatching versions of React and the renderer (such as React DOM)
You might be breaking the Rules of Hooks
You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.

On one hand:
https://esm.sh/react@17.0.0?dev
<EMAIL_ADDRESS>On the other:
https://esm.sh/@material-ui/core@4.12.3/TextField?deps=react<EMAIL_ADDRESS>https://cdn.esm.sh/v55/<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>The same with @mui/material:
<!doctype html>

    <meta charset="utf-8">
    <meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap">

As a result we get multiple versions of React on the page and it fails. Doesn't it make sense to propagate the deps parameter? Or provide a way to specify resolutions for intermediary dependencies?

Additionally it may fail for another reason, let's say we're importing again react and mui:
import React from 'https://esm.sh/react?dev';
import TextField from 'https://esm.sh/@mui/material/TextField?dev';

But react resolves to:
<EMAIL_ADDRESS>And mui:
https://cdn.esm.sh/v55/<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

fyi, i believe this is also reported in #165