nightly version : error: local variable is never mutated

Need to fix it?

Are you on the latest version of http.zig? I believe I fixed all of these shortly after Zig made the change. Also, everything seems fine on 0.12.0-dev.1861+412999621

@karlseguin Maybe I'm not using the latest version. I'll update the dependencies and see if it works.

@karlseguin When I updated to the latest version, the previously normal interface would quit the program with an error the second time I accessed it. How should I handle this?
steps [5/9] zig build-exe xiusin-zig-examples Debug native...
[INFO] Listening on http://localhost:8090/
[API][/api/v5/account/positions-history]use time: 871ms
[API][/api/v5/account/positions-history]use time: 2932ms
Segmentation fault at address 0x10b647000
/Users/xiusin/.cache/zig/p/1220523a844e6855b85a69e63bc3ea9f79d7b9202ebee9410ad26aa46ed62ffb5432/src/response.zig:177:42: 0x10ac9d6a5 in writeByte (xiusin-zig-examples)
            self.state.body_buffer.?.data[pos] = b;
                                         ^
???:?:?: 0x10af735ff in ??? (???)
Unwind information for `???:0x10af735ff` was not available, trace may be incomplete

???:?:?: 0x10af65097 in ??? (???)
run xiusin-zig-examples: error: the following command terminated unexpectedly:
/Users/xiusin/projects/xiusin-zig-examples/zig-out/bin/xiusin-zig-examples
Build Summary: 7/9 steps succeeded; 1 failed (disable with --summary none)
run transitive failure
└─ run xiusin-zig-examples failure
error: the following build command failed with exit code 1:
/Users/xiusin/projects/xiusin-zig-examples/zig-cache/o/c8d04dabfd67b67ae54b646bb7428f9b/build /opt/zig/zig /Users/xiusin/projects/xiusin-zig-examples /Users/xiusin/projects/xiusin-zig-examples/zig-cache /Users/xiusin/.cache/zig --seed 0xfa813bd3 run

I just pushed a commit that solves a double free related to that code. I'm not 100% sure that's your issue, but please give it a try.
If it's still happening, it might be helpful to have more information. I assume this is happening when you're using res.writer() or res.json(...) ?  Are you using the default response.body_buffer_size config or a custom one?

@karlseguin I am using the default case without adding new configurations. I will update later to see if it works. Thank you.

@karlseguin the following errors occur in the latest version, causing the program to exit
hread 10433181 panic: index out of bounds: index 16, len 16
/Users/xiusin/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/buffer.zig:105:29: 0x10ed54f3d in release (xiusin-zig-examples)
                self.buffers[available] = buffer;
                            ^
/Users/xiusin/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/response.zig:327:37: 0x10ef839b5 in reset (xiusin-zig-examples)
            self.buffer_pool.release(buf);
                                    ^
/Users/xiusin/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/worker.zig:466:29: 0x10f00286d in reset (xiusin-zig-examples)
        self.res_state.reset();
                            ^
/Users/xiusin/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/worker.zig:726:19: 0x10ef841d6 in release (xiusin-zig-examples)
        conn.reset();
                  ^
/Users/xiusin/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/worker.zig:597:31: 0x10eefc902 in close (xiusin-zig-examples)
        self.conn_pool.release(conn);
                              ^
/Users/xiusin/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/worker.zig:125:48: 0x10ee0585c in run (xiusin-zig-examples)
                        .close => manager.close(conn),
                                               ^
/opt/zig/lib/std/Thread.zig:411:13: 0x10edb4ec3 in callFn__anon_11445 (xiusin-zig-examples)
            @call(.auto, f, args);
            ^
/opt/zig/lib/std/Thread.zig:684:30: 0x10ed55db2 in entryFn (xiusin-zig-examples)
                return callFn(f, args_ptr.*);

An exception will be reported under the system centos

thread 24067 panic: index out of bounds: index<PHONE_NUMBER>3709551578, len 64
/home/codespace/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/worker.zig:973:33: 0x49b664 in wait (xiusin-zig-examples)
/home/codespace/.cache/zig/p/12206e54343fea853b8fe789bca0e7ac81b3109fc142100814bad90bba05798c2c92/src/worker.zig:96:40: 0x3b3232 in run (xiusin-zig-examples)
/opt/zig/lib/std/Thread.zig:411:13: 0x36e526 in callFn__anon_11624 (xiusin-zig-examples)
            @call(.auto, f, args);
            ^
/opt/zig/lib/std/Thread.zig:1209:30: 0x30899c in entryFn (xiusin-zig-examples)
                return callFn(f, self.fn_args);
                             ^
/opt/zig/lib/c.zig:239:13: 0x7429c0 in clone (c)
            asm volatile (
            ^
???:?:?: 0xfff in ??? (???)
Unwind information for `???:0xfff` was not available, trace may be incomplete

The first index out of bound (16/16 on buffer release) has been fixed by https://github.com/karlseguin/http.zig/commit/7e5f19b8d896dfc2f5396dde910f11ad106078dd  I'm pretty confident in this fix..and added a test that always reproduced the issue and is now passing.
The second index out of bound<PHONE_NUMBER>3709551578/64) might be fixed by https://github.com/karlseguin/http.zig/commit/b73ef2eba22be8cfa6b3decc1b00d676cdc1834a.  Clearly the epoll_wait2 is failing. I've added handling for INTR and the other possible errors are now unreachable, which is what the std lib does with epoll_wait.

@karlseguin is ok!


Investigate the ability to detect and eject an iterator subscription that is blocking publishing

Summary
When consuming events via the asynchronous iterator, more than one caller can subscribe resulting in multiple active subscriptions.  In order to ensure that the client library does not consume resources unbounded, the publishing channel for event iterators is based on a fixed-size channel, which will block when full until events are consumed from it and room within that limit becomes available.
Because our goal was to allow subscribers to access the same set of events, each has their own dedicated channel.  To ensure that we send each event received to every subscriber, the events are sent to each channel at the same time.  Because the channels will block if there is no room, this means that a subscriber that is slow to process events, it will impact all other subscribers.
This is not ideal but was considered the best trade-off at the time.  Other considerations:

Do not constrain resource use; allow events to be queued in subscriber channels until consumed, even if that results in consuming all available memory.

If a subscription is full, do not add events to it but continue adding to the other subscriptions; this would result in the blocked subscription missing events, since we cannot queue them without resource use.

If a subscription is full, remove pending events from the front of the channel to allow for adding new events; this would result in the blocked subscription missing events, since they were removed before they could be processed.

In order to improve this experience, we should investigate whether there is a reasonable approach to detect these very slow or blocked subscribers and cancel their subscriptions.
Scope of Work

Investigate whether there is a reasonable approach to detect these very slow or blocked subscribers and cancel their subscriptions.  The goal is that canceled subscriptions would be surfaced to callers, likely via exception, with guidance that they should consider moving the slower processing to a new EventHubConsumer to avoid impacting faster processing.

If deemed feasible, propose a design for how the detection would occur, including how we could reliably measure the speed of subscribers and understand which are potentially a problem.  We should prioritize false negatives over false positives, only canceling subscriptions where we have a high degree of confidence.

Create any needed documentation and work items for understanding and executing on the design.

Out of Scope

Implementation of the design; this scope covers only the investigation, analysis, and design aspects.

Success Criteria

A determination has been made as to whether it is feasible to detect slow subscribers without large-scale refactoring.

If feasible, the basic tenants of a design have been created and documented such that there can be discussion and the details refined.

Work items to execute on the design should be created, even if they're subject to being refined based on pending design discussions.

Resources

Event Hub Consumer - StartBackgroundChannelPublishingAsync

This is no longer necessary with the new client hierarchy; iterators are now fully isolated and no longer work collaboratively.


Colors don't look right

Describe the bug
Colors don't look right. I'm on Linux.
To Reproduce
Steps to reproduce the behavior:

msgcat --color=test
Compare output with xfce4-terminal or other common terminal.

Expected behavior
Fairly smooth flow of colors in hue/saturation section.
Screenshots

Environment (please complete the following information):

OS + Version: Debian GNU/Linux 10 (buster)
Go Version: 1.14.1
Shell: bash

Additional context
My computer is several years old and doesn't have a good graphics card, but it runs fine. I can't do high intensive graphics, though the colors usually look fine.

Closed due to complete rewrite as part of bringing the project back to life, please create a new issue if still relevant. Thank you!


Improve rendering of Readme on github

Sorry for this triviality... ;)

I'll do a major revamp, no worries.


Adjust WEFAX Allocations -1.9KHz to Match Carriers

This will be on its own commit, separate from the other issues.

Fixed with Public Safety/ WEFAX update.


New GUI Version not opening giving error

Hi @sinedie Thank you for creating the GUI version for all of us. I am getting error when trying to run the new GUI version of the translator but its not working. I am getting the below error.
Traceback (most recent call last):   File "\app\srtranslatorGUI\__main__.py", line 1, in <module>     from srtranslatorGUI.app import main   File "\app\srtranslatorGUI\app.py", line 3, in <module>     import toga ModuleNotFoundError: No module named 'toga'

Windows user? let me check

Last release .msi updated. Close if issue solved

Still not working giving the same error. Does this program require something to be preinstalled in order to work.

The build process on windows is failing when adding app requirements. Right now I don't have the time to fix it, while I manage to fix it, try this steps to generate your own .msi file.

Hi @sinedie, I tried to do what you said but I don't have much knowledge about phyton so cant get anywhere. If you get time to fix this I will be really grateful Thank you.

Hi @sinedie. I don't know too. I am patiently waiting for you to hopefully solve it.

Hi @sinedie. I love your work. It would be awesome if you had the time to fix this. Best wishes to you, and keep up the good work! :)

Hello @merida77 @arlovibre @h4rdkor1
I tried to add "toga" to the windows requires can you give it a try, I cannot try it myself because I don't have a windows.
master-windows-2022.msi.zip

There is an error again, the same one.

Hello @merida77 @arlovibre @h4rdkor1
I tried to add "toga" to the windows requires can you give it a try, I cannot try it myself because I don't have a windows.
master-windows-2022.msi.zip

Hi @k-aito , Thank you for trying to fix the issue but I am still getting the same error as before.

Hi @k-aito , Thank you for trying to fix the issue but I am still getting the same error as before.

same:(

I don't have any idea...
Each I tried to add the requirement in the windows section, but normally by default they each get another GUI dependence, and it would normally bring back toga with him.
Without having windows to build or test, it's very hard.
The best would that someone with Windows and python knowledge try to follow https://github.com/sinedie/SRTranslator?tab=readme-ov-file#usage-from-gui like suggested @sinedie

Hello @merida77 @arlovibre @h4rdkor1
I dig a bit more and I noticed an issue https://github.com/beeware/briefcase/issues/977
It looks like the linked commit is in toga 4.2 so I rebuild the 2 msi with toga 0.4.1 and toga 0.4.2 (you can see it in the zip name).
It looks like 0.4.2 has an issue with linux so I hope that 0.4.1 would be enough but we will see.
fix-import-toga-error-windows-2022-0.4.1.msi.zip
fix-import-toga-error-windows-2022-0.4.2.msi.zip

Hi @k-aito, I tried both versions and both gave me the same toga error.

Hello @merida77 @arlovibre @h4rdkor1
I dig a bit more and I noticed an issue beeware/briefcase#977
It looks like the linked commit is in toga 4.2 so I rebuild the 2 msi with toga 0.4.1 and toga 0.4.2 (you can see it in the zip name).
It looks like 0.4.2 has an issue with linux so I hope that 0.4.1 would be enough but we will see.
fix-import-toga-error-windows-2022-0.4.1.msi.zip
fix-import-toga-error-windows-2022-0.4.2.msi.zip

Hello @k-aito. Thank you for trying again, I tried both versions and got the same "toga" error again.

Hello @merida77 @arlovibre @h4rdkor1
Sorry pinging everyone again, I tried one more time this time by using the workaround of the issue.
Using the version defined in the original file but adding toga-core in each section.
Let's hope it's the right one
fix-import-toga-error-windows-2022.msi.zip

Thank you for trying again @k-aito, but again, the same error.

I have no more ideas for now sadly. It would be interesting to see if the normal briefcase process is working properly on Windows.
It would let us test it is related to briefcase directly or the packaging of briefcase but there is a need of a Windows computer for trying that sadly.

I think I have something @sinedie
It's not very clear but if you read the CI build for windows it fails in when it install the requirements because of UnicodeEncodeError: 'charmap' codec can't encode character '\u2502' in position 2: character maps to <undefined>
I can remove the message when I'm not installing togax-xml-layout-plugin as requirement (in the pyproject file). You can maybe check if there si not a weird character somewhere that could make it fail ?

Наконец-то появилось время для этого...@k-aito, спасибо, что нашел это. Проблема заключалась в требованиях к макету togax-xml. У него была зависимость только для Linux (pygobject).
Итак, теперь MSI обновлен до последней версии. (Также здесь: master-windows-2022.msi.zip )
Закройте, если проблема решена.

I'm getting this error with this update
Traceback (most recent call last):
  File "\app_packages\togax_xml_layout\xml_parser.py", line 146, in parse_element
    instance = element_to_class(element.tag, attributes)
  File "\app_packages\togax_xml_layout\xml_parser.py", line 106, in element_to_class
    instance = klass(**init_args)
  File "\app_packages\toga\widgets\activityindicator.py", line 25, in __init__
    self._impl = self.factory.ActivityIndicator(interface=self)
  File "\app_packages\toga_winforms\factory.py", line 76, in __getattr__
    raise NotImplementedError(f"Toga's Winforms backend doesn't implement {name}")
NotImplementedError: Toga's Winforms backend doesn't implement ActivityIndicator

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "\app\srtranslatorGUI\__main__.py", line 4, in <module>
    main().main_loop()
  File "\app_packages\toga\app.py", line 749, in main_loop
    self._impl.main_loop()
  File "\app_packages\toga_winforms\app.py", line 284, in main_loop
    raise self._exception
  File "\app_packages\toga_winforms\app.py", line 257, in run_app
    self.create()
  File "\app_packages\toga_winforms\app.py", line 113, in create
    self.interface._startup()
  File "\app_packages\toga\app.py", line 710, in _startup
    self.startup()
  File "\app\srtranslatorGUI\app.py", line 50, in startup
    self.main_window = parse_layout(self, f.read())
  File "\app_packages\togax_xml_layout\xml_parser.py", line 158, in parse_layout
    return parse_element(app, tree)
  File "\app_packages\togax_xml_layout\xml_parser.py", line 131, in parse_element
    children.append(parse_element(app, child))
  File "\app_packages\togax_xml_layout\xml_parser.py", line 131, in parse_element
    children.append(parse_element(app, child))
  File "\app_packages\togax_xml_layout\xml_parser.py", line 131, in parse_element
    children.append(parse_element(app, child))
  [Previous line repeated 1 more time]
  File "\app_packages\togax_xml_layout\xml_parser.py", line 151, in parse_element
    instance = element_to_class(element.tag, attributes)
  File "\app_packages\togax_xml_layout\xml_parser.py", line 106, in element_to_class
    instance = klass(**init_args)
  File "\app_packages\toga\widgets\activityindicator.py", line 25, in __init__
    self._impl = self.factory.ActivityIndicator(interface=self)
  File "\app_packages\toga_winforms\factory.py", line 76, in __getattr__
    raise NotImplementedError(f"Toga's Winforms backend doesn't implement {name}")
NotImplementedError: Toga's Winforms backend doesn't implement ActivityIndicator

Finally got time for this... @k-aito , ty for finding that. The issue was on togax-xml-layout requirements. It had a linux-only dependency (pygobject).
So, now the msi is updated on last relase. (Also here: master-windows-2022.msi.zip)
Close if issue is solved.

Perfect, I had tried some random stuff when forking but I got nowhere close ^^

Наконец-то появилось время для этого...@k-aito, спасибо, что нашел это. Проблема заключалась в требованиях к макету togax-xml. У него была зависимость только для Linux (pygobject).
Итак, теперь MSI обновлен до последней версии. (Также здесь: master-windows-2022.msi.zip )
Закройте, если проблема решена.

I have this error with your update
Traceback (most recent call last):
  File "\app_packages\togax_xml_layout\xml_parser.py", line 146, in parse_element
    instance = element_to_class(element.tag, attributes)
  File "\app_packages\togax_xml_layout\xml_parser.py", line 106, in element_to_class
    instance = klass(**init_args)
  File "\app_packages\toga\widgets\activityindicator.py", line 25, in __init__
    self._impl = self.factory.ActivityIndicator(interface=self)
  File "\app_packages\toga_winforms\factory.py", line 76, in __getattr__
    raise NotImplementedError(f"Toga's Winforms backend doesn't implement {name}")
NotImplementedError: Toga's Winforms backend doesn't implement ActivityIndicator

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "\app\srtranslatorGUI\__main__.py", line 4, in <module>
    main().main_loop()
  File "\app_packages\toga\app.py", line 749, in main_loop
    self._impl.main_loop()
  File "\app_packages\toga_winforms\app.py", line 284, in main_loop
    raise self._exception
  File "\app_packages\toga_winforms\app.py", line 257, in run_app
    self.create()
  File "\app_packages\toga_winforms\app.py", line 113, in create
    self.interface._startup()
  File "\app_packages\toga\app.py", line 710, in _startup
    self.startup()
  File "\app\srtranslatorGUI\app.py", line 50, in startup
    self.main_window = parse_layout(self, f.read())
  File "\app_packages\togax_xml_layout\xml_parser.py", line 158, in parse_layout
    return parse_element(app, tree)
  File "\app_packages\togax_xml_layout\xml_parser.py", line 131, in parse_element
    children.append(parse_element(app, child))
  File "\app_packages\togax_xml_layout\xml_parser.py", line 131, in parse_element
    children.append(parse_element(app, child))
  File "\app_packages\togax_xml_layout\xml_parser.py", line 131, in parse_element
    children.append(parse_element(app, child))
  [Previous line repeated 1 more time]
  File "\app_packages\togax_xml_layout\xml_parser.py", line 151, in parse_element
    instance = element_to_class(element.tag, attributes)
  File "\app_packages\togax_xml_layout\xml_parser.py", line 106, in element_to_class
    instance = klass(**init_args)
  File "\app_packages\toga\widgets\activityindicator.py", line 25, in __init__
    self._impl = self.factory.ActivityIndicator(interface=self)
  File "\app_packages\toga_winforms\factory.py", line 76, in __getattr__
    raise NotImplementedError(f"Toga's Winforms backend doesn't implement {name}")
NotImplementedError: Toga's Winforms backend doesn't implement ActivityIndicator

That looks like an error for @sinedie because Toga doesn't implement something for Windows. Good luck @sinedie  ^^

@m1nuzz  New release here got the updated msi.

@sinedie @k-aito , Now the application opens but it freezes when try to translate subs.

@sinedie @k-aito , Now the application opens but it freezes when try to translate subs.

same

@sinedie @k-aito , Now the application opens but it freezes when try to translate subs.

Same

Hello  @h4rdkor1 @m1nuzz @dante3732
I give a try with 1 SRT (using choose file) and pydeeplx, and it works for me on Linux. Can one of you give it a try with something else than DeepL scraper?

Hello @h4rdkor1 @m1nuzz @dante3732
I give a try with 1 SRT (using choose file) and pydeeplx, and it works for me on Linux. Can one of you give it a try with something else than DeepL scraper?

It happened on any translator with WIN 11.

Hello @dante3732
There is no debug information in the terminal?  Just to be sure that it is really blocking and not just missing to display the progression.

it's possible that you give a try with a very small SRT, like 1 sentence. Just to be sure that it is really blocking and not just missing to display the progression.

Immediately after clicking translate, the program stops responding. I tried SRT with a single line.

Hello @dante3732
There is no debug information in the terminal? Maybe launching the exe from the terminal would display something as logs.

I do not know how to do this through the terminal.

Same stops responding.

@dante3732 for launching the file from the terminal you can open a command prompt and then drag and drop the executable, maybe there will be some information.
You can start a command prompt by doing  execute and typing cmd if I recall correctly.

for launching the file from the terminal you can open a command prompt and then drag and drop the executable, maybe there will be some information.

When running this way, no debugging appears on the command line.

no big change, I just removed the display of the progression, can you try again the 1 line SRT to see if it can finish?

Same stop respond.

k-aito-patch-1-windows-2022.msi.zip
@dante3732 no big change, I just removed the display of the progression, can you try again the 1 line SRT to see if it can finish?
The idea is to try to find what part of the application is freezing windows.

It freezes again unfortunately. Have you had any chance to look into it again?

Hello @arlovibre
On my side without a Windows it's very difficult. For me, the command line version is working, and I don't see any reason it would hang with the GUI code that works on Linux.
Until someone that can try to build and run the briefcase version and maybe have some debug info, I think it will be difficult to fix.

Hello @arlovibre @dante3732 @m1nuzz
I read the code again and the only thing that for me must be an issue is the async function.
So I added prints and I hope that when it freezes it will show the last that worked to be certain that the error is from there.
k-aito-patch-1-windows-2022.msi(2).zip

Hello @arlovibre @dante3732 @m1nuzz
I read the code again and the only thing that for me must be an issue is the async function. So I added prints and I hope that when it freezes it will show the last that worked to be certain that the error is from there.
k-aito-patch-1-windows-2022.msi(2).zip

It freezes as before.

Hello @dante3732 there are no numbers at all that are displayed at the right of the screen?

Hello @dante3732 there are no numbers at all that are displayed at the right of the screen?

It means that the function is not even launched... Maybe it's related to the toga xml layout. I will try to see if I find something about it.
@sinedie if you have an idea what could prevent windows to launch the function don't hesitate

Not having windows to debug is the main problem for me.
I don't think it is related with toma-xml-layout as if it didn't work app wouldn't open in first place.
Most probably it is an AsyncIO issue, maybe it is blocking the main Toga thread. Idk.
Gonna check if can get a virtual windows machine or anything and try to fix it. Dont have too many spare time lately, but will fix this for sure.

@k-aito I can confirm the issue is with AsynIO blocking the main event loop of Toga. The issue happened to me when, inside translate function, I use any other subrutine, even with only a print statement. Still researching but right now Im lost on how to solve it.
Im seriusly thinking in switch to another GUI framework. Even with another tech stack like Tauri or NeutralinoJs

Hello @sinedie
Only on Windows or on Linux also? I didn't let it completely translate something on Linux, but I didn't notice it was blocking.
I don't know Tauri or Nautralinojs at all but could still be fun to look at it.

@k-aito in windows, linux works fine

It would not work to just launch the translation in a thread instead of using an async function?
I even think the issue is more windows related than asyncio on his own. Because it works on Linux I guess it's a process issue that is only on Windows but that sounds really difficult to debug...

Any updates on the freeze problem?

@jaum20, I'll be back to this issue this week. I took too many time. I think I'll use another framework for the GUI as briefcase didn't work as planned

Finally I manage to work in this. I decided to start over with another python/flutter framework called Flet. It is functional in both linux and windows. There is a new version 0.3.9 to support something in the new UI. You can find it in the master branch.
Currently I'm working in a github action to generate the executables but if you wanna test it you could go to the folder GUI, install the requirements and run flet app:
cd ./GUI
pip install -r ./requirements.txt
flet run main.py

And if you want to pack it yourself, run flet pack main.py or flet build main.py. (Check the flet documentation it is pretty simple)
There will be issues as it is work in progress but it is better than the other GUI. App size is one of them but I think there is no workaround for that. Also, by now you can queue multiple srt files at the same time but it will only translate one at the time
Ty for waiting and using this, hope you like it. Also, I'm open to recieve feedback.

Windows test
Opens some weird terminals for background process -will see if I can avoid that later-

Linux test
The artifact should work. I got an issue but it was a conflict with my version of a dependency, right now I don't wanna mess my system, so will check later. Works if you package yourself. Just go to GUI, and run flet pack main.py

Artifacts will be in the github actions tab. You can find them here too:
Windows build: https://github.com/sinedie/SRTranslator/actions/runs/11395632789/artifacts/2071991302
Linux build: https://github.com/sinedie/SRTranslator/actions/runs/11395632805/artifacts/2071985687


Bower installs a different, older, version of touch-dnd

New version on the left, older on the right
http://cl.ly/image/393z2T3r1B2X

Oops! Should be fixed. Maybe a bower cache clean is required. Thanks for reporting!

Thanks @rkusa!


Add entities when exporting schematics

Is it possible to do it with the original Python API? No, because the entities managed are only the players:
 entityIds = mc.getPlayerEntityIds()
With the extended API:

getEntities - get all currently loaded entities list by optional entity type id
entity.getEntities - get currently loaded entities list near specified entity by optional entity type id
player.getEntities - get currently loaded entities list near specified player entity id by optional entity type id

which are supported in mcpi 1.2:
getEntities
entity.getEntities
And for storing the entities in the NBT file, this is easy because there are fields for them

To avoid adding to mcthings the extended API, I would create a new SceneWithEntities and SchematicWithEntities to add read and write support for entities in schematics. So if you want to save the entities in a schematic, you need to work with SceneWithEntities. And if you want to load and spawn entities, you need SchematicWithEntities. ll of this stuff will be in mcthings_extra.

But the first thing is to play a bit with the API to understand how it works.

It is going to be pretty funny. So next steps:

Store the entities in the Schematic file
Check if WorldEdit load them
We can easily load them :) In McThings

Suppoting import/export of entities is not trivial. In WorldEdit they had issues like this one. So let's do incrementally. First step, just entities easy that are just spawned.

Entities in NBT seems to have a lot of data:
https://minecraft.gamepedia.com/Schematic_file_format
https://minecraft.gamepedia.com/Chunk_format#Entity_format

So after thinking about it, let's create the entities from Python code and let's revisit this decision in the future. Entities are only available in the extended API so it is not core on the current ROADMAP. But they are cool for adding live to the scenes. So probably we will return over them in the near future.


OpenShift integration tests.

Fixed artifactId in dependencies of tests module due to shortening artifactId in name/greeting-service poms.

@alesj can you please merge it (I tested this branch in Boosters CI), the tests module build fails for missing artifacts (I had both old/new in my local repo...)


Can't transfer echantment to book (possible modpack conflict)

Hello, sorry for bringing a modpack issue here, but i dont know where else to go.
The problem is: When i place, lets say, an enchanted chestplate in the anvil and then a book, the enchanted book appears at the exit slot for a split second but then turn to nothing with the red X.
My modpack mod list is this one, im using resource packs too. This list is all the mods from client and server side.

welp my bad, the mod wasnt on the server side

Good to know there's nothing wrong with the mod, thank you so much for providing the reason so that others with similar behavior have a way of fixing it. Sorry I couldn't get around to this earlier, it's currently finals week! Thanks again for documenting.


Reopening: issue with eslint-plugin-cypess

Reopening issue #1061
I have two React apps that use the same versions of eslint, cypress, and eslint-plugin-cypress. The only difference is that one app was bootstrapped using create-react-app and the other was not.
Unfortunately, I can't publish that PR publicly anywhere, it's a private project.
The problem
Every time VSCode tries to run ESLint it shows me an error:

[Error - 2:59:42 PM] ESLint stack trace:
[Error - 2:59:42 PM] Error: saf-ops/.eslintrc.json:
	Environment key "cypress/globals" is unknown

That error does not happen if I run eslint manually.
I don't have anything related to Cypress or ESLint installed globally:
$ npm list -g
/Users/willian/.asdf/installs/nodejs/10.19.0/.npm/lib
└─┬<EMAIL_ADDRESS>  ├──<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ ├─┬<EMAIL_ADDRESS>  │ │ └─┬<EMAIL_ADDRESS>  │ │   └──<EMAIL_ADDRESS>  │ └─┬<EMAIL_ADDRESS>  │   └──<EMAIL_ADDRESS>  ├──<EMAIL_ADDRESS>  ├──<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    ├──<EMAIL_ADDRESS>    ├──<EMAIL_ADDRESS>    └─┬<EMAIL_ADDRESS>      └──<EMAIL_ADDRESS>

The issue does not happen on NeoVim:

Same file with same linter error on VSCode:

Both react apps and another backend app that uses Rails are in the same monorepo. I realized that the problem I am having only happens if I open the entire monorepo in VSCode. But, if I open only the directory of that saf-ops app, the linter works just fine.
So, I am assuming that, for some reason, the extension could be using the wrong executable when running eslint, and it causes the configuration error.

Okay, I found the fix for the issue. I added the following to my settings.json and everything is working now:
  "eslint.workingDirectories": [{ "pattern": "./*/" }],


Add Lawrence Narh-Lawson to Contributors list

@lawlawson, I'm quite elated about your PR. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a PR and learned that I merged it?

@Roshanjossey No problem at all! Happy to share the resource as it's genuinely valuable. Generally I found the tutorial straightforward but I made two errors initially that made the process a bit long for me. The first error I made was that I forgot to 'fork' the repository, that obviously caused problems when it came to pushing my code, as Git couldn't find the correct repository. I was able to solve this by Googling my problem and came across a solution which showed me how to change the remote url to match my repository. Once I did this, I was able to push my code upstream. Making the pull request was probably the easiest part because of the clear instructions given. I received email notifications first about your comment to delete the submodule and then about the merge being accepted. The whole process wasn't too bad at all.

@lawlawson, I'm quite elated about your PR. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a PR and learned that I merged it?

Hi @Roshanjossey hope my message above answered your question? Thanks, Lawrence


#225 Error while editing

Prevents direct access to dictionaries inside scopes and adds locking to all indirect access.
Adds locking to reference collections.
Not sure yet exactly what the perf impact will be, but there doesn't seem to be a cheaper way to avoid the race conditions we currently suffer from - suggestions welcome.
Test to follow (lots of cross-module analysis running on separate threads for a while and seeing whether we crash)

For NTVS I solved this w/ a thread-safe AnalysisDictionary class which you could re-use for these dictionaries.  At the very least it would be worth comparing the perf of the 2 and going with whichever one is better.

I think in this case AnalysisDictionary would perform better, but still suffer from some of the race conditions because it doesn't handle multiple writers. I could be misremembering some of the crashes caused by this, but fairly sure at least one was a case where we had multiple analysis threads somehow.

We shouldn't ever have multiple analysis threads working on the same analysis though...  If that's happening we should track down and fix that bug.  But we can easily end up with multiple analysis threads if we have multiple projects, or 1 project and some loose Python files.

You're right. I ported over the dictionary and hashset and it cleared most things up, then I added some fairly tight locks to handle the rest.

LGTM


iOS build failed

Hi,
i've got iOS build succeed on Unity but failed on Xcode.
How can I solve this issue? Thanks!!

Hi @mazotav ,
Which version are you using? Update ChatdollKit to the latest version. Or, delete ChatGPT*.cs in Scripts/Dialog.


Update FullCalender to v2.3.1

This would interfere with the current style of the fullcalendar that is used with AdminLTE. I will look into this further at a later time. Thanks.


Pacman WebGL shaders don't link anymore

Weird, the Pacman sample stopped working in browsers, because the shader code contains illegal characters:
"Failed to link program '0' -> 'CRT'"
Error: WebGL: shaderSource: String contains the illegal character '36' Paclone.js:1:102216
Error: WebGL: attachShader: shader: null object passed as argument Paclone.js:1:96837
Error: WebGL: linkProgram: Must have an compiled fragment shader attached.

Not sure when this started, noticed it first after the vertex attribute rewrite.
Also did an emscripten update today, probably worth it checking on the emscripten master branch.

Reason was a leftover '$' in an inactive #if/#endif block, the Khronos references compiler accepts this, while the WebGL shader validation rejects it.


No config files found

I am experiencing the this issue
input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/xgearobd"
        jdbc_user => "user"
        jdbc_password => ""
        schedule => "* * * * *"
        jdbc_validate_connection => true
        jdbc_driver_library => "C:/Users/User/Downloads/Compressed/mysql-connector-java-8.0.11/mysql-connector-java-8.0.11.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        statement => "SELECT * from tbl_users"
    }

output {
    elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}

this is my config file.....
and when i run "bin/logstash -f logstash.config"
it gives me this
Sending Logstash's logs to C:/Users/User/Downloads/Compressed/logstash-6.3.0/logs which is now configured via log4j2.properties
[2018-06-20T17:06:34,336][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-06-20T17:06:34,905][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"6.3.0"}
[2018-06-20T17:06:34,999][INFO ][logstash.config.source.local.configpathloader] No config files found in path {:path=>"C:/Users/User/Downloads/Compressed/logstash-6.3.0/logstash.config"}
[2018-06-20T17:06:35,012][ERROR][logstash.config.sourceloader] No configuration found in the configured sources.
[2018-06-20T17:06:35,588][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

You're running your container on a machine where C:/Users/User/Downloads/Compressed/logstash-6.3.0/logstash.config does not exist, so you must COPY this file inside the image for it to work.

This is a general misunderstanding of Docker, so I'm kindly redirecting you to https://forums.docker.com/

ref #134


Disable touch outside in MultiSelectDialogField

Is there anyway to disable touchoutside in MultiSelectDialogField

Need this...when touch outside dialog the windows is closed and itens checked show and checked

what we really is ->  barrierDismissible: false
Could you please add a barrierDismissible property just like barrierColor that already exists?


Tensorflow runs matmul, bincount and other "heavy" funcions only on cpu

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux virgo-wn100.roma1.infn.it 3.10.0-514.el7.x86_64 #1 SMP Thu Nov 3 15:10:49 CDT 2016 x86_64 x86_64 x86_64 GNU/Linux
VERSION="7.3 (Nitrogen)"
VERSION_ID="7.3"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.3
REDHAT_SUPPORT_PRODUCT_VERSION="7.3"
TensorFlow installed from (source or binary): from pip3
TensorFlow version (use command below): v1.2.0-5-g435cdfc 1.2.1
Python version: Python 3.5.2
CUDA/cuDNN version: CUDA: 8.0, cuDNN : 5
GPU model and memory: Tesla K20m, memory 4742MiB

Describe the problem
Everytime i run a code with simple operations and heavy computation functions, the simple ones, like add or reshape, run on the gpu, while the heavy ones, like matmul, bincount, tensordot run always on cpu. This is very strange, because tensorflow sees the gpu but uses it only for simple functions, while i expect the inverse behavior.
I noticed it when i used Timeline to profile my codes.
Source code / logs
A simple example of the code i use:
import numpy
import tensorflow as tf
from tensorflow.python.client import timeline

matrix1 = tf.zeros([5000,5000], dtype = tf.int32)
matrix2 = tf.ones([5000,5000], dtype = tf.int32)
matrix1 = tf.add(matrix1,2)
product = tf.matmul(matrix1,matrix2)

session = tf.Session(config=tf.ConfigProto(log_device_placement=True))

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()

image = session.run(product, options=run_options, run_metadata=run_metadata)

    # Create the Timeline object, and write it to a json
tl = timeline.Timeline(run_metadata.step_stats)
ctf = tl.generate_chrome_trace_format()
with open('timelineDB.json', 'w') as f:
	f.write(ctf)

and here the logs:
2017-07-14 12:33:41.431036: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-14 12:33:41.431080: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-14 12:33:41.431089: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-07-14 12:33:41.431096: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-14 12:33:41.431104: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2017-07-14 12:33:42.860681: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties:
name: Tesla K20m
major: 3 minor: 5 memoryClockRate (GHz) 0.7055
pciBusID 0000:02:00.0
Total memory: 4.63GiB
Free memory: 4.57GiB
2017-07-14 12:33:42.860741: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0
2017-07-14 12:33:42.860778: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   Y
2017-07-14 12:33:42.860791: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K20m, pci bus id: 0000:02:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K20m, pci bus id: 0000:02:00.0
2017-07-14 12:33:42.901828: I tensorflow/core/common_runtime/direct_session.cc:265] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K20m, pci bus id: 0000:02:00.0

Add: (Add): /job:localhost/replica:0/task:0/gpu:0
2017-07-14 12:33:42.902645: I tensorflow/core/common_runtime/simple_placer.cc:847] Add: (Add)/job:localhost/replica:0/task:0/gpu:0
MatMul: (MatMul): /job:localhost/replica:0/task:0/cpu:0
2017-07-14 12:33:42.902669: I tensorflow/core/common_runtime/simple_placer.cc:847] MatMul: (MatMul)/job:localhost/replica:0/task:0/cpu:0
Add/y: (Const): /job:localhost/replica:0/task:0/gpu:0
2017-07-14 12:33:42.902714: I tensorflow/core/common_runtime/simple_placer.cc:847] Add/y: (Const)/job:localhost/replica:0/task:0/gpu:0
ones: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-07-14 12:33:42.902736: I tensorflow/core/common_runtime/simple_placer.cc:847] ones: (Const)/job:localhost/replica:0/task:0/cpu:0
zeros: (Const): /job:localhost/replica:0/task:0/gpu:0
2017-07-14 12:33:42.902756: I tensorflow/core/common_runtime/simple_placer.cc:847] zeros: (Const)/job:localhost/replica:0/task:0/gpu:0
2017-07-14 12:33:43.110880: I tensorflow/stream_executor/dso_loader.cc:139] successfully opened CUDA library libcupti.so.8.0 locally

I attach the .json generated (change .txt to .json and open it with chrome://tracing/)
timeline.txt

This because tf.matmul does not have a GPU kernel for integer matrix multiplication. If you change those to float32 it should be placed on the GPU.
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/matmul_op.cc#L377

So for the same reason, tf.bincount, that has argument arr as 'An int32 tensor of non-negative values.', can't work on GPU, right?

Integer arguments alone don't mean that there is not a GPU kernel, but there tend to be far more GPU kernels for float types than integer types.
Bincount seems to not have any GPU support -- only CPU. Unfortunately there's no good way to know this from the documentation. The best bet is to looking in the source code.
If you look in this directory and search for the op you're using:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/kernels
You can read the source. Scroll all the way to the bottom to find the "registration" macros. If you don't see a line that looks like "REGISTER_BLAH_GPU(float32)" or "TF_CALL_float32(REGISTER_GPU)" ... basically some line mentioning the type you care about and the word "GPU" then it probably means there's no GPU registration for that type/kernel combination.

Ok, thank you so much. It could be useful or interesting for someone to open a feature request about bincount on GPU?

Yes! Feel free to file an issue requesting GPU support for tf.bincount. If it's not a priority for the TF team, maybe some external contributor will take it up.

Closing this out since it seems that the original question has been addressed.


From email is not valid

Currently on line 263 of src/Route.php or $headers[] = 'From: ezXSS'; the From email is defined as ezXSS.
This however is not a valid email syntax and can cause emails to bounce or goto spam.
As a fix I suggest we implement the option to define the from email in the settings.
Alternatively we can set this as the same email the user provided earlier as done in c0af956 or even set it as ezxss@{domain}. Let me know which solution you think is best, if it's the first one I will let you implement that. If either of these alternatives seem suitable I can create a PR with this change.

postfix 3.3.2-4 on Ubuntu doesn't seem to mind. our /var/log/mail.err is empty and all mails are being delivered to protonmail with no problem from<EMAIL_ADDRESS>I'd rather not see the From address change unless I can configure it to stay as-is. Having it set to my own email address would be unhelpful from multiple perspectives.

@geeknik That makes sense. I think either making it user configurable or changing it to something like 'From: ezxss@' . $setting['payload-domain']; would be ideal as not all configurations will auto-append the domain.

As @geeknik points out; normally it autofills the domain.
Will look if I can make this configurable.

Fixed this in https://github.com/ssl/ezXSS/releases/tag/3.6

@ssl It appears the Email sends from field does not save on the new version. After saving and refreshing the page, the field returns to blank.


Mistakes in Trid function

Two mistakes

the latex formula should read r"f(\mathbf{x})=\sum_{i=1}^{d}(x_i-1)^2-\sum_{i=2}^{d}(x_ix_{i-1})"
the evaluation formula should be np.sum((X - 1) ** 2) - np.sum(X[1:] * X[:-1])

Hello,
Thank you for the issues
I have note so much time now so if you want you can make a Pull Request and I'll review it ☺

Hi,
Of course ! I'm still in the process of validating all functions, as I am using them for research purposes (thank you for this repository btw). Once I think I am through with all the issues, I will make a PR that corrects them all at once :)

Thank you very much for the review
There are so many functions that I might have made a lot of mistakes so it is a great help !

And what research purpose if it is not secret ? ☺

You can read about it here, if you're interested about the use case of your implementation: https://github.com/gbelouze/forward-gradient (it also links to the associated paper)


[Help Wanted] Is that possible for App Component have access to ctx.state

Hello, everyone!
I am currently working on a project using Fresh (love it so for),  and I am wondering "Is that possible for App Component has access to ctx.state"
export default function App({ Component }: AppProps) {
 // somehow get data from ctx.state
  const { user } = ctx.state
  return (
   <div class={tw`h-screen bg-white dark:bg-black`}>
     <Head>
       <title></title>
       <style>
       {// I want to set some custom css variables based on user}
       {`:root { --color-who: '#fff'}`}
      </style>
     </Head>
     <Component />
   </div>
 )
}

You need to define a handler that call ctx.render(the_data_you_want_to_pass_as_props) . see example of ctx.render at https://fresh.deno.dev/docs/getting-started/fetching-data

@sylc
for normal page component like index.tsx, I can add a handler like you showed, but for _app.tsx, I don't think it's a normal page component and can not add a handler

I want to remove _app.{j|t}s{x}? soon, replacing it with a more generic _layout system. I'll make sure to take into account middleware props in this system.

@lucacasonato
Cool!!,  Looking forward to this. I have  to create a folder called layouts to store my custom layout component and import it on every page component in my current project for now, made me a little envy about how easy layout system was in SvelteKit

I would like to chip in and say I can help implement layouts if we already have a direction.

Any updates?

at least does anyone know how we could pass an object to the _app.tsx file ? because we could construct the object in index.tsx from ctx.state and just pass it on to _app.tsx but I couldn't managed to do that either.


Iterate over additional secret keys, making all available

Two bugs are fixed here.
First, the buildah --secret arg expects a file, not a directory, so every key/value pair in the kubernetes secrets mounted in needs to be supplied as a separate argument to buildah.
Second, buildah won't accept symlinks and all of the individual files in the mounted directory are symlinks. The -L option to cp addresses that by de-referencing them.

Related PR: https://github.com/containers/ai-lab-recipes/pull/656


Incorrect PHPStan Error for Method Return Type Declaration

Hi All,
I encountered an issue where PHPStan threw an incorrect error regarding method return type declaration. Here's the scenario:
Problem:
I have a method getData() in my codebase which fetches data from the database and returns an array of associative arrays. The return type declaration of this method is specified accurately. However, PHPStan still throws this error suggesting that the return type is incorrect.
 Method

         App\Repository\FakeRepository::getData()

         should return array<array{key1: string, key2: string, key3: string,
         key4: int, key5: int}> but returns array.

/**
 * @return array<array{
 *     "key1": string,
 *     "key2": string,
 *     "key3": string,
 *     "key4": int,
 *     "key5": int
 * }>
 */
public function getData(): array
{
    $result = $this->createQueryBuilder('a')
        ->select(.....)
        ->where('a.status = :validated')
        ->groupBy(.....)
        ->setParameter('validated', Status::VALIDATED);

    return $result
        ->getQuery()
        ->getArrayResult();
}

Additional Information:
"php": ">=8.3",
"phpstan/extension-installer": "^1.3.1",
"phpstan/phpstan": "^1.10.47",
"phpstan/phpstan-deprecation-rules": "^1.1.4",
"phpstan/phpstan-doctrine": "^1.3.53",
"phpstan/phpstan-phpunit": "^1.3.15",
"phpstan/phpstan-symfony": "^1.3.5",
Thank you for your attention to this matter. Please let me know if you need any further information or clarification.

Please make sure you have the latest versions of PHPStan and phpstan-doctrine installed. And please make sure you have configured objectManagerLoader. See the README here.

I think this is because getArrayResult is not supported yet.
You may avoid the issue with getResult() until https://github.com/phpstan/phpstan-doctrine/pull/520 is merged.

#520 is now merged, but I'm still seeing this issue.
In short:
/**
 * @return array<int, array{'id': int}>
 */
public function foo(): array
{
    $queryBuilder = $this->createQueryBuilder('e')
    $queryBuilder->select('e.id');
    return $queryBuilder->getQuery()->getArrayResult();
}

PHPStan is reporting:

Method ... should return array<int, array{id: int}> but returns array.

OK, so the relevant PR is now https://github.com/phpstan/phpstan-doctrine/pull/593 ?

Currently you can resolve your issue by using getResult
/**
 * @return array<int, array{'id': int}>
 */
public function foo(): array
{
    $queryBuilder = $this->createQueryBuilder('e')
    $queryBuilder->select('e.id');
    return $queryBuilder->getQuery()->getResult();
}


Apply 'Force SSL' and 'Enable Websockets' to full host definition

The template options for these two options have been moved out of the root location block, and into the server block, in order for them to apply to custom locations set up via the proxy manager. This matches up with default expectations of how these toggle options work (as they are defined in the frontend host definition rather than the location).
If override behaviour is desired, these options can still be overridden by the existing "custom options" support offered.

Docker Image for build 1 is available on DockerHub as jc21/nginx-proxy-manager:github-pr-1017

Docker Image for build 3 is available on DockerHub as jc21/nginx-proxy-manager:github-pr-1017


#convert_fields's sym/string break isn't clarified in #initialize's docs

If iterating thru multiple converters, if any single converter results in a symbol, subsequent converters are skipped. As seen in the #convert_field docs below:
#
  # Processes +fields+ with <tt>@converters</tt>, or <tt>@header_converters</tt>
  # if +headers+ is passed as +true+, returning the converted field set.  Any
  # converter that changes the field into something other than a String halts
  # the pipeline of conversion for that field.  This is primarily an efficiency
  # shortcut.
  #
  def convert_fields(fields, headers = false)
    # see if we are converting headers or fields
    converters = headers ? @header_converters : @converters

    fields.map.with_index do |field, index|
      converters.each do |converter|
        break if field.nil?
        field = if converter.arity == 1  # straight field converter
          converter[field]
        else                             # FieldInfo converter
          header = @use_headers && !headers ? @headers[index] : nil
          converter[field, FieldInfo.new(index, lineno, header)]
        end
        break unless field.is_a? String  # short-circuit pipeline for speed
      end
      field  # final state of each field, converted or original
    end
  end

However the docs for the #initialize options don't relay that same requirement about converter arrays:
# <b><tt>:converters</tt></b>::         An Array of names from the Converters
  #                                       Hash and/or lambdas that handle custom
  #                                       conversion.  A single converter
  #                                       doesn't have to be in an Array.  All
  #                                       built-in converters try to transcode
  #                                       fields to UTF-8 before converting.
  #                                       The conversion will fail if the data
  #                                       cannot be transcoded, leaving the
  #                                       field unchanged.

This leads a reader to believe that you can pass converters like so:
:header_converters => [:symbol, lambda { |h| h.do_some_stuff }]

But this will result in lambda { |h| h.do_some_stuff } never executing.
I could reverse the order of my converters, as shown below, and now both will execute, but the intended result is dependent on the correct order.
:header_converters => [lambda { |h| h.do_some_stuff }, :symbol]

My workaround:
Because I didn't want to duplicate your :symbol lambda (and risk falling out of sync with subsequent changes), I had to write a custom lambda, that as a part of its definition invokes the default symbol lambda:
  def self.symbol_and_squeezed_lambda
    lambda do |header|
      native_symbol_lambda = CSV::HeaderConverters[:symbol]
      first_conversion = native_symbol_lambda.call(header)
      first_conversion.to_s.squeeze('_').to_sym
    end
  end
  ...

:header_converters => symbol_and_squeezed_lambda
All of this could only be found by putting debuggers inside csv.rb and tracing my way down to and through the convert_field method before I realized why me second/custom converter wasn't being executed.
Possible changes:

Document this symbol/order requirement of converted in the docs/comments for #initialize
Remove the break in the #convert_fields

Even if change 1 is implemented, it would only help clarity, and would still require the use of workaround as I showed above.

Can you show a runnable Ruby script that reproduces this case?

@kou
raw_csv_data = "col_header_1, col_header_2\nval_1, val_2\n"

# This should raise and break execution flow if it is called
custom_converter = lambda { |header_val| raise 'break'}

broken_converters = [:symbol, custom_converter]
working_converters = [custom_converter, :symbol]

# custom_converter not called (as seen via lack of raise)
# symbol converter happens first, and short-circuits subsequent converters
CSV.parse(raw_csv_data, :headers => true, :header_converters => broken_converters)
# custom_converter called (as seen via raise)
CSV.parse(raw_csv_data, :headers => true, :header_converters => working_converters)

@troycroz  - Can you check the CSV::VERSION you're working with? I was unable to reproduce on the master branch.
irb(main):001:0> load "./lib/csv.rb"
=> true
irb(main):002:0> CSV::VERSION
=> "1.0.2"
irb(main):003:0> raw_csv_data = "col_header_1, col_header_2\nval_1, val_2\n"
=> "col_header_1, col_header_2\nval_1, val_2\n"
irb(main):004:0>
irb(main):005:0> # This should raise and break execution flow if it is called
=> nil
irb(main):006:0> custom_converter = lambda { |header_val| raise 'break'}
=> #<Proc:0x00007fbd55141cb0@(irb):6 (lambda)>
irb(main):007:0>
irb(main):008:0> broken_converters = [:symbol, custom_converter]
=> [:symbol, #<Proc:0x00007fbd55141cb0@(irb):6 (lambda)>]
irb(main):009:0> working_converters = [custom_converter, :symbol]
=> [#<Proc:0x00007fbd55141cb0@(irb):6 (lambda)>, :symbol]
irb(main):010:0>
irb(main):011:0> # custom_converter not called (as seen via lack of raise)
=> nil
irb(main):012:0> # symbol converter happens first, and short-circuits subsequent converters
=> nil
irb(main):013:0> CSV.parse(raw_csv_data, :headers => true, :header_converters => broken_converters)
=> #<CSV::Table mode:col_or_row row_count:2>
irb(main):014:0> # custom_converter called (as seen via raise)
=> nil
irb(main):015:0> CSV.parse(raw_csv_data, :headers => true, :header_converters => working_converters)
Traceback (most recent call last):
       16: from (irb):15
       15: from /Users/steven/code/ruby/csv/lib/csv.rb:697:in `parse'
       14: from /Users/steven/code/ruby/csv/lib/csv.rb:1149:in `read'
       13: from /Users/steven/code/ruby/csv/lib/csv.rb:1149:in `to_a'
       12: from /Users/steven/code/ruby/csv/lib/csv.rb:1135:in `each'
       11: from /Users/steven/code/ruby/csv/lib/csv.rb:1193:in `shift'
       10: from /Users/steven/code/ruby/csv/lib/csv.rb:1193:in `loop'
        9: from /Users/steven/code/ruby/csv/lib/csv.rb:1323:in `block in shift'
        8: from /Users/steven/code/ruby/csv/lib/csv.rb:1661:in `parse_headers'
        7: from /Users/steven/code/ruby/csv/lib/csv.rb:1619:in `convert_fields'
        6: from /Users/steven/code/ruby/csv/lib/csv.rb:1619:in `with_index'
        5: from /Users/steven/code/ruby/csv/lib/csv.rb:1619:in `map'
        4: from /Users/steven/code/ruby/csv/lib/csv.rb:1620:in `block in convert_fields'
        3: from /Users/steven/code/ruby/csv/lib/csv.rb:1620:in `each'
        2: from /Users/steven/code/ruby/csv/lib/csv.rb:1623:in `block (2 levels) in convert_fields'
        1: from (irb):6:in `block in irb_binding'
RuntimeError (break)

Thanks.
In your use case (symbol -> squeeze("_") -> symbol), you should use :headers_converters =>[squeeze_converter, :symbol]. Because you can't call squeeze for Symbol. You can't put the squeeze converter after symbol converter.
:headers_converters => [:symbol, squeeze_converter] is a your application bug.
The current behavior is reasonable for this use case.
Do you have any use case?

@kou regardless of what my converter does, if its after the :symbol converted, it would never execute.
The docs for the CSV initializer method don't state this, and it seems unreasonable that a dev should have to dig way deep into the source code to discover that the header_converter loop early-exits after anything returns a symbol.
It seems like that early-exit is a bug, or, at the very least, needs to be better documented in the initializer docs.

Can you try sending a pull request to improve the current document?


Bug report: Cannot install Onyx, Maintanence, or Skype

Remember to follow the pre bug report guide beforehand. Failure to do so might get your issue closed.
Description of issue
If I attempt to install Onyx, Maintanence, or Skype. It fails. Even after reboot.
Output of `brew cask install onyx maintenance skype --verbose`
==> Satisfying dependencies
complete
Error: Download failed: /Users/Alex/Library/Caches/Homebrew/Cask/onyx--latest.dmg is in use by another process
Follow the instructions here:
  https://github.com/caskroom/homebrew-cask/blob/master/doc/reporting_bugs/pre_bug_report.md

If this doesn’t fix the problem, please report this bug:
  https://github.com/caskroom/homebrew-cask#reporting-bugs

/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:87:in `block in clear_cache'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:85:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:85:in `clear_cache'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download.rb:36:in `clear_cache'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download.rb:14:in `perform'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:101:in `download'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:62:in `fetch'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:85:in `install'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:25:in `block in install_casks'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:19:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:19:in `install_casks'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:10:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:111:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:150:in `process'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/brew-cask.rb:8:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/local/Homebrew/Library/Homebrew/brew.rb:24:in `require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'
Error: Kernel.exit

Output of `brew doctor`
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
  /usr/local/lib/libcrypto.1.1.dylib
  /usr/local/lib/libssl.1.1.dylib

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected .pc files:
  /usr/local/lib/pkgconfig/libcrypto.pc
  /usr/local/lib/pkgconfig/libssl.pc
  /usr/local/lib/pkgconfig/openssl.pc

Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected static libraries:
  /usr/local/lib/libcrypto.a
  /usr/local/lib/libssl.a

Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
  echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

Output of `brew cask doctor`
==> macOS Release:
10.12.3
==> Hardware Architecture:
intel-64
==> Ruby Version:
2.0.0-p648
==> Ruby Path:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
==> Homebrew Version:
Homebrew 1.1.8-42-g1f97e31
Homebrew/homebrew-core (git revision 6684; last commit 2017-01-25)
==> Homebrew Executable Path:
/usr/local/bin/brew
==> Homebrew Cellar Path:
/usr/local/Cellar
==> Homebrew Repository Path:
/usr/local/Homebrew
==> Homebrew Origin:
https://github.com/Homebrew/brew
==> Homebrew-Cask Version:
Homebrew-Cask 1.1.8-42-g1f97e31
caskroom/homebrew-cask (git revision ee905; last commit 2017-01-26)
==> Homebrew-Cask Install Location:
<NONE>
==> Homebrew-Cask Staging Location:
/usr/local/Caskroom
==> Homebrew-Cask Cached Downloads:
/Users/Alex/Library/Caches/Homebrew/Cask
3 files, 88.3M (warning: run "brew cask cleanup")
==> Homebrew-Cask Default Tap Path:
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask
==> Homebrew-Cask Alternate Cask Taps:
/usr/local/Homebrew/Library/Taps/caskroom/homebrew-versions
==> Homebrew-Cask Default Tap Cask Count:
3539
==> Contents of $LOAD_PATH:
/usr/local/Homebrew/Library/Homebrew/cask/lib
/usr/local/Homebrew/Library/Homebrew
/Library/Ruby/Site/2.0.0
/Library/Ruby/Site/2.0.0/x86_64-darwin16
/Library/Ruby/Site/2.0.0/universal-darwin16
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/universal-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/x86_64-darwin16
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin16
==> Contents of $RUBYLIB Environment Variable:
<NONE>
==> Contents of $RUBYOPT Environment Variable:
<NONE>
==> Contents of $RUBYPATH Environment Variable:
<NONE>
==> Contents of $RBENV_VERSION Environment Variable:
<NONE>
==> Contents of $CHRUBY_VERSION Environment Variable:
<NONE>
==> Contents of $GEM_HOME Environment Variable:
<NONE>
==> Contents of $GEM_PATH Environment Variable:
<NONE>
==> Contents of $BUNDLE_PATH Environment Variable:
<NONE>
==> Contents of $PATH Environment Variable:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/share/dotnet:/usr/local/MacGPG2/bin:/usr/local/Homebrew/Library/Homebrew/cask/cmd:/usr/local/Homebrew/Library/Homebrew/shims/scm"
==> Contents of $SHELL Environment Variable:
SHELL="/bin/bash"
==> Contents of Locale Environment Variables:
LANG="en_US.UTF-8"```
</details>

Clear the cache and try again: rm -rf "$(brew --cache)".

That worked for two of them (but had no output).
When running brew cask install skype onyx maintenance again Onyx and Maintenance installed properly, but Skype did not. This was my optput:
==> Downloading https://www.skype.com/go/getskype-macosx.dmg ######################################################################## 100.0% ==> No checksum defined for Cask skype, skipping verification Error: Failed to eject /private/tmp/dmg.Q4BNE2 ==> Satisfying dependencies complete ==> Downloading http://joel.barriere.pagesperso-orange.fr/download/1012/OnyX.dmg ######################################################################## 100.0% ==> No checksum defined for Cask onyx, skipping verification ==> Moving App 'OnyX.app' to '/Applications/OnyX.app' 🍺  onyx was successfully installed! ==> Satisfying dependencies complete ==> Downloading http://joel.barriere.pagesperso-orange.fr/download/1012/Maintenance.dmg ######################################################################## 100.0% ==> No checksum defined for Cask maintenance, skipping verification ==> Moving App 'Maintenance.app' to '/Applications/Maintenance.app' 🍺  maintenance was successfully installed! Error: install incomplete
Then if I try to run just brew cask install skype I get
`Error: Download failed: /Users/Alex/Library/Caches/Homebrew/Cask/skype--latest.dmg is in use by another process
Follow the instructions here:
https://github.com/caskroom/homebrew-cask/blob/master/doc/reporting_bugs/pre_bug_report.md
If this doesn’t fix the problem, please report this bug:
https://github.com/caskroom/homebrew-cask#reporting-bugs
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:87:in block in clear_cache' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:85:in each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:85:in clear_cache' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download.rb:36:in clear_cache'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download.rb:14:in perform' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:101:in download'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:62:in fetch' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:85:in install'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:25:in block in install_casks' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:19:in each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:19:in install_casks' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:10:in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:111:in run_command' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:150:in process'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/brew-cask.rb:8:in <top (required)>' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require' /usr/local/Homebrew/Library/Homebrew/brew.rb:24:in require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in <main>'
If I run rm -rf "$(brew --cache)" and try brew cask install skype again I still get the output:
`Error: Download failed: /Users/Alex/Library/Caches/Homebrew/Cask/skype--latest.dmg is in use by another process
Follow the instructions here:
https://github.com/caskroom/homebrew-cask/blob/master/doc/reporting_bugs/pre_bug_report.md
If this doesn’t fix the problem, please report this bug:
https://github.com/caskroom/homebrew-cask#reporting-bugs
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:87:in block in clear_cache' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:85:in each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download_strategy.rb:85:in clear_cache' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download.rb:36:in clear_cache'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/download.rb:14:in perform' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:101:in download'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:62:in fetch' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:85:in install'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:25:in block in install_casks' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:19:in each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:19:in install_casks' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:10:in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:111:in run_command' /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:150:in process'
/usr/local/Homebrew/Library/Homebrew/cask/cmd/brew-cask.rb:8:in <top (required)>' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require' /usr/local/Homebrew/Library/Homebrew/brew.rb:24:in require?'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in <main>' Alexs-MBP-3:~ Alex$ rm -rf "$(brew --cache)" Alexs-MBP-3:~ Alex$ brew cask install skype ==> Downloading https://www.skype.com/go/getskype-macosx.dmg ######################################################################## 100.0% ==> No checksum defined for Cask skype, skipping verification Error: Failed to eject /private/tmp/dmg.nb5CH7 Error: nothing to install

Reboot and try again (clear the cache first).

I'm still getting this error after clearing the cache and rebooting.
Alexs-MBP-3:~ Alex$ rm -rf "$(brew --cache)" Alexs-MBP-3:~ Alex$    [Restored Jan 26, 2017, 3:24:34 PM] Last login: Thu Jan 26 15:24:19 on console Restored session: Thu Jan 26 15:22:26 EST 2017 Alexs-MacBook-Pro-3:~ Alex$ brew cask install skype ==> Downloading https://www.skype.com/go/getskype-macosx.dmg ######################################################################## 100.0% ==> No checksum defined for Cask skype, skipping verification Error: Failed to eject /private/tmp/dmg.vkJjhC Error: nothing to install Alexs-MacBook-Pro-3:~ Alex$
By the way thankyou for all the help!

Please use fenced code blocks when posting. Otherwise it’s hard to read.
Try adding the --force flag. If that does not work, you’ll have to find a way to eject that /private/tmp/dmg.vkJjhC. I cannot reproduce your issue, this looks like something on your machine that is acting up.

@alexozwald can you please post the output of the command diskutil list?

@miccal For diskutil list I am dual-booted with linux mint:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            195.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:                 Linux Swap                         4.1 GB     disk0s4
   5:           Linux Filesystem                         30.0 GB    disk0s5
   6:           Linux Filesystem                         21.0 GB    disk0s6

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            Macintosh HD           +194.6 GB   disk1
                                 Logical Volume on disk0s2
                                 B088A525-4292-4735-B577-690BEA959447
                                 Unlocked Encrypted

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +200.0 MB   disk2
   1:                  Apple_HFS Skype                   200.0 MB   disk2s1

@alexozwald this is the problem:
/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +200.0 MB   disk2
   1:                  Apple_HFS Skype                   200.0 MB   disk2s1

Can you please run the command diskutil unmountDisk /dev/disk2, which should output Unmount of all volumes on disk2 was successful, then try installing again via brew cask install skype.

Issue resolved! I attempted to install it again before your response, and then tried diskutil list again, and it showed me /dev/disk2 for skype, but also a /dev/disk3 also for skype. I then tried unmounting them each and trying again to no avail. But then tried just ejecting the second copy of the mounted skype disk (/dev/disk3), but it still didn't work. So I then ejected the remaining /dev/disk2 for Skype and tried again, and it successfully got to this point:
==> Downloading https://www.skype.com/go/getskype-macosx.dmg
######################################################################## 100.0%
==> No checksum defined for Cask skype, skipping verification

Except then gave me an error, regarding my file under: /volumes/Linux which I had there because I had been using osxfuse (coupled with ext4fuse) — which enables me to read my linux partitions in macos. I then realized this was probably causing the conflict so I uninstalled it and also reinstalled a new Linux OS (which I had been meaning to do for a while) to make sure that the mount point created by ext4fuse was no longer there. Having restarted my computer a few times in the process, I just tried again and it successfully installed! Thankyou so much for all the help @miccal @vitorgalvao !


Feat: Plugins

Feat: PWA
Make valid
Use portrait-primary for orientation
Fix(PWA): Caching and orientation
"Roarer 2" → "Roarer"
Feat: Plugins!

whar

All the commits on the main branch, which was the branch with the PWA stuff are here too lol

Putting everything in the global scope feels kind of hacky.
(I'm trying to make plugins be a thing done in the roarer slice as well, but it's acting a bit weird)

I feel like there's probably a better solution than putting everything in the global scope?

I mean I could do
Roarer.
    plugins.
         loadPlugin
         flipPlugin
         data: RoarerData
    RoarerPlugin

made a ts template for plugins
https://github.com/showierdata9978/roarer-plugin

so many merge commits


serialize_bytes serializes as base64 instead of %-escaped string

Serializing a byte sequence should really yield a %-escaped string and not a base64 encoded string. This is really surprising and unintuitive.
For example the value b" " should become "%20" but instead gets serialized to "IA==".

Hey @faulesocke.
Thanks for opening an issue. You're right, that's not correct behaviour, and doesn't match the deserialization logic either. Will push a fix!

Out of interest. What are you using in order to hit the serialize_bytes code path? Are you using something like serde_bytes?

Fixed in v0.8.1

Thanks again for reporting!


Launch the server successfully, but the client cannot reach the server port

I launch the server following by official docs (scripts/prepare_env.sh) successfully.
But in the other host which install client environment cannot connect to the server port.
How do I find server port.
In server host I use " kind get kubeconfig" , I can hold the ip and port.
where am I wrong?
Environment (please complete the following information):

GraphScope version: v0.4.1
OS: Red hat
Version 7
Kubernetes Version latest

seems is not an issue, move to discussion.


add docker-compose example

This PR address #301 and provides a simple development setup for Docker. It uses docker-compose to start Postgres, dex-overlord, dex-worker and the example app. This should make it easier to understand how components work together.

I've added the overlord admin secret to the compose example. Anything else that you see, we should cover?

Nope, seems OK.
Are you planning to make a production-like template for docker-compose?

@janekolszak Not at the moment, since I would go with kubernetes then. But for a local dev/trail setup it's easier

Anything required to get this merged?

Sorry a few of us have been pretty busy with CoreOS fest over the last few days. I'll try to review tomorrow.

@ericchiang oh forgot that, unfortunately I couldn't attend. I hope you guys had fun, read some good things about it in German media

I think this is a good start but there are a couple of things I would like to see change/improve:

I think the goal should be a single step docker-compose up to get things running. There's no technical reason there needs to be several setup steps to build the binary first and then load it into a container (at least for trying things out locally - there are good reasons to do that otherwise for go programs)
We should make an attempt to remove the sleeps from the startup. A common solution for this is to have the dependent services retry themselves until they connect. We may also be able to get rid of some of the waiting overhead by loading configuration directly on startup instead of going through dexctl. I do like showing using dex with postgres, but using an in-memory db might speed things up as well (something to think about).

@ecordell I like your comments

Currently, we only need to build something because the example app is not part of the dex container (and I like that approach). Did I got you right, that you are proposing to put a container on quay that includes the example app?
sleep is more a limitation of the docker-compose. We would need to catch a case like: database is not available, where you would expect an app to fail immediately during startup, maybe not during runtime. I would love to get rid of sleep and I am very happy for proposals. We could customize the containers to achieve this, but I am against bringing a complexity from the runtime to the application.
We need to discuss a the purpose, for me this was mainly illustrating all components required to setup a proper production environment. Maybe we should have a simple docker-compose and pg docker-compose?

I've left some comments inline.
This is a bit hard to judge because none of the dex maintainers use docker-compose so I'm afraid of this example getting outdated.

@ericchiang please be honest. I understand if you do not want to merge it, because nobody of the core maintainers is using docker-compose. The goal was to setup a demo environment with a one-liner to see  the awesomeness of dex.

I'm afraid that it'll go the way of "contrib/standup-db.sh" which has gotten out of date a lot as the project develops.
I'm okay with adding this, but I hesitant and just want to make sure you understand our position.


Check bundle file exists for release builds

Motivation: While testing the RC, the bundle step failed (because the reset-cache true flag was still present) for an Archive build causing an app to be distributed without the JS bundle. This was obviously not great because the app just crashed on startup.
This fix just checks that the bundle file is present and if not fails the build, as you would expect it to.

By analyzing the blame information on this pull request, we identified @nathanajah and @frantic to be potential reviewers.

Does the packager not give an exit code of 1 if it failed? I think if it's not doing that we should fix that, which will fix a more generic scenario.
cc @Kureev

@alexanderjarvis updated the pull request.

@satya164 yeah I thought about that. But with the previous problem it didn't fail with an exit zero because the arguments were wrong so it just logged the help screen.

I like it, this type of error is very scary, basic validation seems helpful. Few nits before I can merge this in.

@frantic done! Let me know if it needs further work.

@alexanderjarvis updated the pull request - view changes

@alexanderjarvis updated the pull request - view changes

I see everything is fixed, so seems we can push it forward

@facebook-github-bot shipit

Thanks for importing.If you are an FB employee go to Phabricator to review internal test results.


Superheros Example

List of superheros with live search and details.

Thanks but we don't want Redux examples on this page.

@gaearon removed redux from the project and raised the PR again #2897


FGI helatcheck script for gpu nodes

the gpu node needs the FGI helatcheck script for gpu nodes. it should automatically drain+reboot when there is a new nvidia driver

Is this a duplicate of https://github.com/CSC-IT-Center-for-Science/ansible-role-nhc/issues/5 ?


add benchmark code for smt_chip

add a benchmark API for performance measure. and fix some warning of "cargo fmt".

please  review.


biicode block should only publish and publish only once when a tag/release

currently every successfull build of cmakepp publishes the biicode block 3 times (for every configuration) and I only want it to do that once not and only when a release is created.

currentky disabled bii publish until this issue is resolved


Added ::= configure CHANGELOG maintenance utilities

This PR fixes #11.
It is drafted in order to explain and discuss certain details which are important to understand before activating the automation.

Very thanks for this PR. I think it would be awesome once it's finished
I took a quick look on the points and wrote some answers. I'll come back to the other points later

Okay, just to make sure that I got all important points for the adjustments:

we will use : as delimiter.
we will evaluate the commit message bodies.
if the message does not fit the Keep a Changelog categories or does not contain the delimiter, we assign Changed as default category.
the workflow shall be run push to main.
if the commit message contains the prefixes of the fragment collection / CHANGELOG assembly PRs, the workflow will be skipped.

Aeruginous now allows for RON CHANGELOGs, I named them RONLOGs.  As this particular sort of CHANGELOG uses the Rusty Object Notation (RON), it is especially interesting for Rust projects.  Would you like to continue with the reStructured Text setup or shall I change it to RONLOG?  With future releases, I plan to allow for creating the former from the latter, i.e. exporting a RONLOG to a reStructured Text CHANGELOG, so this could be changed rather easily, later on, whereas the conversion from a reStructured Text CHANGELOG to a RONLOG would require much more effort, I guess.

if the commit message contains the prefixes of the fragment collection / CHANGELOG assembly PRs, the workflow will be skipped.
I would like to add two keywords for skipping

Chore: We can use it for updating dependencies commit or fixing typos etc...
Docs: For updating the documentation

I think we can use the new RONLOGs from the start here. (RON) is one of the point where I too want to get more familiar with.

Okay, I applied all discussed changes and marked this PR ready for review.

This looks great I'll merge now and I'll be awaiting to see their magic happening on the next push :tada:
Very Thanks for the great work :star:

Configuring CI pipelines isn't the best experience because of the lack of testing possibilities. A linter would be a great help not only for this PR but also for the general configuring of GitHub actions :+1:


[test] attempt to fix CI test

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Add Q2 benchmark specification and sample files

Fixes #8
Added Q2 benchmark specification and sample input and output files. Parts related to PAS mapping between RNAseq and orthogonal dataset copied from GH-66 README file.
Checklist

[x] I have performed a self-review of my own code
[x] My code follows the templates/style guidelines of the repository
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have tested my code

@ninsch3000 @mrgazzara @lschaerfen I propose we move this forward as is. (still needs another approval)
If there are additional unresolved aspects, we could add them as issues.


riemann_tools.make_plot_function for primitive variables

@ketch I am trying to use riemann_tools.make_plot_function to plot the primitive variables for the Euler Tammann, but it does not scale the ranges properly since it does the scaling for the conserved variables.
In the example I am showing, the primitive variables are much more relevant than the conserved ones. It would be nice if we can add this functionality or at least some added parameter to force which plotting range is used. I have a couple of ideas on how to do this but thought to check with you in case I am missing something that is already there. Maybe forcing the plotting range could be a better choice, so we can also zoom in into very small waves.

I wanted this for the Euler notebooks anyway, so I went ahead and added it.  Changing the plotting ranges can also be done; it's just going to be a little messy since there are several plots, so you need to specify both which plot and what bounds you want to set.

Great! I will give it a try. Thanks

I'm closing this since I think it was resolved in #56.


chore: checkout repos from openedx insted of edx in analyze depedents workflow

Description
Updates most of the repos in the analyze dependents workflow to checkout from openedx/ instead of edx/
Verified via a workflow run on my fork https://github.com/brian-smith-tcril/paragon/actions/runs/9486407270/job/26140657441
Merge Checklist

[ ] If your update includes visual changes, have they been reviewed by a designer? Send them a link to the Netlify deploy preview, if applicable.
[ ] Does your change adhere to the documented style conventions?
[ ] Do any prop types have missing descriptions in the Props API tables in the documentation site (check deploy preview)?
[ ] Were your changes tested using all available themes (see theme switcher in the header of the deploy preview, under the "Settings" icon)?
[ ] Were your changes tested in the example app?
[ ] Is there adequate test coverage for your changes?
[ ] Consider whether this change needs to reviewed/QA'ed for accessibility (a11y). If so, please request an a11y review for the PR in the #wg-paragon Open edX Slack channel.

Post-merge Checklist

[ ] Verify your changes were released to NPM at the expected version.
[ ] If you'd like, share your contribution in #show-and-tell.
[ ] 🎉 🙌 Celebrate! Thanks for your contribution.

Hopefully having prospectus in here won't cause it to break. It's also still questionable whether prospectus really should be in here at all given it's technically a private repo for 2U, and may cause an error to occur if the workflow doesn't have the correct permissions to clone it.

Yeah, I commented it out for the workflow run on my fork since I don't have the SEMANTIC_RELEASE_GITHUB_TOKEN there, I figure we can merge this as is and try running it - if prospectus ends up still being problematic I'll make a new PR removing it.


[Angboo] add LogWidgets

Submit a new Plugin to Marketplace
Plugin Github repo URL:
Github releases checklist

[x] a legal package.json file.
[x] a valid CI workflow build action for Github releases. (Optional for theme plugin only).
[x] a release which includes a release zip pkg from a successful build.
[x] a clear README file, ideally with an image or gif showcase. (For more friendly to users, it is recommended to have English version description).
[x] a license in the LICENSE file.

Thanks for the PR. Looks good and it should show up in the marketplace soon.


Refactor to Remove Data Store

This is a huge refactor of the existing component (and will be a major version bump).  Before, the filter UI kept a copy of all the filter category and option states, and also sent events back up so the HM filter could update its copy as well.  This led to a lot of duplicate logic and an inconsistent public API compared to our other UI components.
After this refactor, the filter UI does not keep this data and the component is built up by the client, similar to how dropdowns and menu works.  It sends events back to the client when something has changed, and its up to the client to adjust its data (or make another HM call) as needed.  Updating its data structure will trigger a change to the UI automatically.
Notes:

The client is now completely in charge of making sure the counts are correct and passed in to be displayed correctly.  Having these components watch their children and update the selected counts was decided would be pretty fragile.
Because this component has been simplified, there's a lot of deletion in the components and tests.  A lot of that will naturally move to the HM component, or was already there anyways.
Originally, the plan was also to make a d2l-filter-dropdown-option component instead of just using d2l-menu-item-checkbox, but it ended up being an exact copy of d2l-menu-item-checkbox.  I tried wrapping that component, but that threw off a lot of menu code from working, and the wrapper added nothing extra except the component name change.  Thoughts?

Still To Do:

[x] Add info to the README (currently nothing is there)

I don't think this repo has ever run tests in IE11, I can look into the failures with the sort dropdown component tomorrow

Originally, the plan was also to make a d2l-filter-dropdown-option component instead of just using d2l-menu-item-checkbox, but it ended up being an exact copy of d2l-menu-item-checkbox. I tried wrapping that component, but that threw off a lot of menu code from working, and the wrapper added nothing extra except the component name change. Thoughts?

Yeah, the d2l-menu code expects direct children to be of type role="menuitem" in order to:

locating the first focusable for when dropdown-menu is opened
manage focus (alphanumeric keys, arrow keys)
styling of the menu and items
consideration of hidden menu-items for focus and styling

If the role="menuitem" is buried deeper, or in a shadow-DOM, these things become quite messy.  To enable different visual layouts, and also different menu-items roles (normal, checkbox, radio), the menu-item code was factored into a behavior.  While it would be possible to create an implementation (using that behavior) merely for the purpose of having a certain tag-name, that wasn't the original intention.  I don't have a super strong position on whether we should/shouldn't do that, but the menu-item should be a direct child.

While it would be possible to create an implementation (using that behavior) merely for the purpose of having a certain tag-name, that wasn't the original intention. I don't have a super strong position on whether we should/shouldn't do that, but the menu-item should be a direct child.

Yeah exactly, because of the behaviour I could easily make a new type of menu-item, but for now it'd be basically a copy.  Maybe this would be good to do, if we thought we'd change the design for filter components in the future, or if we don't want all changes to d2l-menu-item-checkbox to automatically be picked up by everyone using a filter component.  If we don't expect those to be a problem, seem a bit like overkill for just the name change. Hmm... 🤔

Originally, the plan was also to make a d2l-filter-dropdown-option component instead of just using d2l-menu-item-checkbox, but it ended up being an exact copy of d2l-menu-item-checkbox.  I tried wrapping that component, but that threw off a lot of menu code from working, and the wrapper added nothing extra except the component name change.  Thoughts?

I'm fine with the current state, especially if the wrapper is causing more problems than it solves.

Sorry for the delay, been heads don in my-courses defects.  Addressed code review comments and added some README comments and images

Any more thoughts here?

@AlexBedley This will be a major bump and I don't think anyone else in BSI is using this repo, so the update to d2l-hm-filter doesn't have to be immediate and if there are any issues we can come back here and adjust.


Rc 1.2 fix

Issue link
This Pull Request is linked to issue (2502): [REPLACE ME]
Checklist
Before submitting the PR make sure the following are checked:

[v] This Pull Request is related to one issue.
[v] Commit message has a detailed description of what changed and why.
[v] Tests are added or updated.
[v] CHANGELOG.md and documentation files are updated.
[v] Destination branch is correct - main or release
[v] Commits will be squashed upon merging.

Do you want to add these changes into #2500?

When it will be working ill cherry-pick


Spike: Context-aware caching

Expected outcome
Originally, the CachedDeliveryClient had stored data in memory cache for a fixed period of time. As the boilerplate now purges cache entries via web hook push notifications, the timeout defined in settings is no longer important. The CacheTimeoutSeconds appsettings.json value is therefore set to a generous value of 24 hours. Still, the situation is not ideal. The app may appear in a memory pressure condition where the MemoryCache logic may start an uncontrolled cache eviction process.
Find ways of setting the level of importance of various sorts of data in cache. This value should then be used by the framework code to prioritize the cache entries for the purpose of eviction.
Also, identify factors that most often affect the levels of importance. If such factors stem from the state of the app and could be computed, design an implementation (in a high-level fashion).
Reference

https://github.com/Kentico/cloud-boilerplate-net/blob/master/src/content/CloudBoilerplateNet/Services/ReactiveCacheManager.cs
https://github.com/Kentico/cloud-boilerplate-net/blob/master/src/content/CloudBoilerplateNet/appsettings.json
https://docs.microsoft.com/en-us/dotnet/api/system.web.caching.cacheitempriority

MemoryCache now works with the concept of arbitrary sizing units. Seems to be the preferred way of pruning the cache (together with fixed or sliding expiration, which has been available for some time). Since ASP.NET Core runtime does not limit cache size based on memory pressure, it is up to us to bring measures of cache pruning (i.e. not just expiration and webhooks but also setting SizeLimit and Size respectively).
Ref: https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-3.1#use-setsize-size-and-sizelimit-to-limit-cache-size

Interesting! But it makes stuff a bit more complex:

If the cache size limit is set, all entries must specify size.


Add DPG: project-kick-out-covid-19-infotech

Automatic addition of a new digital public good submitted through the online form available at https://digitalpublicgoods.net/submission

@lacabra closing this PR as nominee is missing open license.