Upgraded specs2 to 3.0

This PR is for reference only because specs2 3.0 is not out yet.

Time to close this outdated PR now :-)


Cannot edit empty fields in editor

When a field is edited and the contents removed in the editor, then it becomes impossible to 're-select' the element in order to edit it further. Placeholder text may help here (though the placeholder must not be interpreted as a valid value).

react-easy-edit should already provide this functionality, and does indeed appear in sandbox.

Removing the value field restores the Click to edit message on startup, but it remains 'uneditable' when emptied and saved by the user (unlike in the sandbox).
This is not due to css settings (in root.css) as the behaviour persists when this file is emptied.
If value="" is forced, then the Click to edit message does not appear
If value=null is forced, then the Click to edit message does appears (on startup)

However, entering and deleting text reverts the input to a blank (uneditable) box.

Setting all callbacks to empty funtions does not revert the behaviour

Interestingly, entering text into a blank field (this is initially possible) throws a warning that may instead relate to an issue reverting from controlled to uncontrolled react state, see here. Briefly, a component is considered uncontrolled if its value != null, and controlled otherwise. Components should not transition from uncontrolled to controlled, or vice versa. This is especially problematic in our case since we consider null as distinct from the empty string. However, this should also apply to the sandbox?


Whats the Trigger for the 'Moving' of Tasks?

Describe the bug
I installed this plugin this morning and am hopeful for it to work with the new APIs. I did have one question (not sure if it's considered a bug). Does this only 'trigger' at the start of the day?
I create a daily note for 'tomorrow' at the end of the day and would like to be able to 'trigger' the roll over to happen when I create 'tomorrow' note.
Is this something this can do?
Iris Version
1.0.1 (installed from zip)
Expected behavior

Assume today is Monday Jan 04, 2021
Create a daily note for Tuesday Jan 05, 2021 (ie 'tomorrow')
Do something to trigger the roll-over of 'tasks'
See uncompleted tasks in Tuesday Jan 05, 2021 (ie 'tomorrow') note while the actual day is still Monday Jan 04, 2021

Iris will roll over notes from the nearest day with incomplete notes whenever you create a new daily note. The notes will be taken from one previous Daily Note, no matter how many days ago the first note was created.
If you have a note on Sunday and create one for Monday, Sunday's tasks will roll over to Monday. Alternatively, if you create a note for Sunday, then create a new one for Tuesday only and not Monday, Iris will  roll over tasks from Sunday into Tuesday. So Iris will import the most recent set of incomplete to do tasks, regardless of how many days there are between the last note and the new note. Only the most recent daily note will be used.
You can create new notes at any time of the day. I could create a note today, then generate the Daily Note for tomorrow. This will not change what gets imported.
If you create a note, but update the todo list of the original note who's To Do tasks you rolled over, these changes will not be reflected in the new note. You will have to either regenerate the new note, or manually update it in the new note.
So, in summary:
Iris will be triggered on the creation of a new daily note if there is a previous daily note with incomplete tasks in it. These to do items will be imported from the nearest daily note created with a timestamp before the new note. The note does not have to be created on a specific time, it just needs to have a timestamp which has a specific day in it.
Let me know if this answers your question.

Iris will roll over notes from the nearest day with incomplete notes whenever you create a new daily note. The notes will be taken from one previous Daily Note, no matter how many days ago the first note was created.
If you have a note on Sunday and create one for Monday, Sunday's tasks will roll over to Monday. Alternatively, if you create a note for Sunday, then create a new one for Tuesday only and not Monday, Iris will  roll over tasks from Sunday into Tuesday. So Iris will import the most recent set of incomplete to do tasks, regardless of how many days there are between the last note and the new note. Only the most recent daily note will be used.
You can create new notes at any time of the day. I could create a note today, then generate the Daily Note for tomorrow. This will not change what gets imported.
If you create a note, but update the todo list of the original note who's To Do tasks you rolled over, these changes will not be reflected in the new note. You will have to either regenerate the new note, or manually update it in the new note.
So, in summary:
Iris will be triggered on the creation of a new daily note if there is a previous daily note with incomplete tasks in it. These to do items will be imported from the nearest daily note created with a timestamp before the new note. The note does not have to be created on a specific time, it just needs to have a timestamp which has a specific day in it.
Let me know if this answers your question.

OK, thanks for this information. Perhaps I am not doing something in the correct order then.
See below for my process:

I have a note for Monday Jan 03, 2021 already in place with open todos

I create a new note (right-click on Daily Journal folder and select new note
I apply the daily_template
I change the filename to Tuesday Jan 04, 2021

This is the point where I thought the roll-over would happen, but it does not.

Settings screenshot just in case I am over looking something:

OK, thanks for this information. Perhaps I am not doing something in the correct order then.
See below for my process:

I have a note for Monday Jan 03, 2021 already in place with open todos

I create a new note (right-click on Daily Journal folder and select new note
I apply the daily_template
I change the filename to Tuesday Jan 04, 2021

This is the point where I thought the roll-over would happen, but it does not.

Settings screenshot just in case I am over looking something:

Looks like you have mixed filename formats. You'll want to follow the formatting tips in the readme to make sure the plugin can recognize all the new notes in the daily notes folder. If your folder has mixed titles, the plugin won't be able to assign proper dates to each document. Hope this helps.

Looks like you have mixed filename formats. You'll want to follow the formatting tips in the readme to make sure the plugin can recognize all the new notes in the daily notes folder. If your folder has mixed titles, the plugin won't be able to assign proper dates to each document. Hope this helps.

Oh ok, I just changed the date format this morning to the one you mentioned. Ill try and change them all and test again.
On a side note I can't stand the date format for TS. I have been looking into alerting that in your source to try and help out with different formats.

Oh ok, I just changed the date format this morning to the one you mentioned. Ill try and change them all and test again.
On a side note I can't stand the date format for TS. I have been looking into alerting that in your source to try and help out with different formats.

I have been looking into alerting that in your source to try and help out with different formats.

I do want to alter the way the date stamps work in this, that would be great. Feel free to fork and send back pull requests. I'll review and test, if they work well I will include into full release and credit you as a contributor.

I have been looking into alerting that in your source to try and help out with different formats.

I do want to alter the way the date stamps work in this, that would be great. Feel free to fork and send back pull requests. I'll review and test, if they work well I will include into full release and credit you as a contributor.

OK, I have adjusted the dates (and restarted Obsidian and the plugin) and it still does not appear to be working from what I can tell.
Here is a screen capture to see if this helps more:
https://user-images.githubusercontent.com/7501413/103554999-69e9c400-4e75-11eb-9a5d-913ef543c646.mov

OK, I have adjusted the dates (and restarted Obsidian and the plugin) and it still does not appear to be working from what I can tell.
Here is a screen capture to see if this helps more:
https://user-images.githubusercontent.com/7501413/103554999-69e9c400-4e75-11eb-9a5d-913ef543c646.mov

Thanks for adding the screen capture. Looks like you're not using 'Create Daily Note'  feature in your sidebar. For this to work, you'll want to add that. This was not clear from the documentation, so I have added it to the readme.

Thanks for adding the screen capture. Looks like you're not using 'Create Daily Note'  feature in your sidebar. For this to work, you'll want to add that. This was not clear from the documentation, so I have added it to the readme.

OK, I tested it again with the Create Daily Note button and it doesnt generate the tasks either.
I deleted everything and re-installed the App and plugin just in case it was a cache thing, but I'm still not seeing it.
I am wondering if its another plugin that is causing the issue.
Vid cap:
https://user-images.githubusercontent.com/7501413/103566662-01581280-4e88-11eb-8070-4869f402e65d.mov

OK, I tested it again with the Create Daily Note button and it doesnt generate the tasks either.
I deleted everything and re-installed the App and plugin just in case it was a cache thing, but I'm still not seeing it.
I am wondering if its another plugin that is causing the issue.
Vid cap:
https://user-images.githubusercontent.com/7501413/103566662-01581280-4e88-11eb-8070-4869f402e65d.mov

This is interesting. I found that if I have a journal entry open and I click Create Daily Note it creates the note, but it copies everything from the open note into the new Daily Note AND it adds to the task list as expected.
I turned off Iris and restarted Obsidian and tested again and the results were expected. It opened a new note with a blank template.
Not sure if this helps or not.
BTW, I appreciate you responsiveness with this issue and plugin. It is something I passionately want for my workflow.
Vid capture:
https://user-images.githubusercontent.com/7501413/103567528-9c052100-4e89-11eb-8efe-249b58956f40.mov

This is interesting. I found that if I have a journal entry open and I click Create Daily Note it creates the note, but it copies everything from the open note into the new Daily Note AND it adds to the task list as expected.
I turned off Iris and restarted Obsidian and tested again and the results were expected. It opened a new note with a blank template.
Not sure if this helps or not.
BTW, I appreciate you responsiveness with this issue and plugin. It is something I passionately want for my workflow.
Vid capture:
https://user-images.githubusercontent.com/7501413/103567528-9c052100-4e89-11eb-8efe-249b58956f40.mov

You could be right that it is another plugin that is conflicting. To rule this out, try just enabling Iris, then rerun your workflow.
A quick diagnostic that would be useful for me to have is if you can open the Obsidian Developer Tools panel, and show me what the console output is. If something is not being processed properly, or something else is conflicting, is is possible that errors will show there.  You can do this by pressing Option + Command + I and clicking on Console. If anything shows up in there, a screen capture would help me resolve it.

BTW, I appreciate you responsiveness with this issue and plugin. It is something I passionately want for my workflow.

User feedback is important! Thanks for helping improve this plugin for everyone!

You could be right that it is another plugin that is conflicting. To rule this out, try just enabling Iris, then rerun your workflow.
A quick diagnostic that would be useful for me to have is if you can open the Obsidian Developer Tools panel, and show me what the console output is. If something is not being processed properly, or something else is conflicting, is is possible that errors will show there.  You can do this by pressing Option + Command + I and clicking on Console. If anything shows up in there, a screen capture would help me resolve it.

BTW, I appreciate you responsiveness with this issue and plugin. It is something I passionately want for my workflow.

User feedback is important! Thanks for helping improve this plugin for everyone!

If you could try installing Calendar by Liam Cain from the plugin browser, and try creating the notes from that. That is how I was doing this during development. I was able to reproduce your error just using the go to daily note. Using the calendar instead to generate the daily notes does not produce this bug. If this works out for you, I'll add to the readme that this needs that specific plugin to work.

If you could try installing Calendar by Liam Cain from the plugin browser, and try creating the notes from that. That is how I was doing this during development. I was able to reproduce your error just using the go to daily note. Using the calendar instead to generate the daily notes does not produce this bug. If this works out for you, I'll add to the readme that this needs that specific plugin to work.

OK, so I can confirm that the calendar plugin works as intended just as you mentioned.
Also when it is not working (ie: using the Create daily button) there is no output in the Console window.
I also removed all plugins except Iris and Daily Notes and it still has the same issue.
So all in all it looks like I will need to use the Calendar plugin with this.
Lastly, reading through the calendar plugin source code it looks like you can use any date format that you want for this using the calendar plugin (from what I can tell). See vid capture below:
https://user-images.githubusercontent.com/7501413/103608139-4019b700-4ee0-11eb-95f2-8a4ac8731b41.mov

OK, so I can confirm that the calendar plugin works as intended just as you mentioned.
Also when it is not working (ie: using the Create daily button) there is no output in the Console window.
I also removed all plugins except Iris and Daily Notes and it still has the same issue.
So all in all it looks like I will need to use the Calendar plugin with this.
Lastly, reading through the calendar plugin source code it looks like you can use any date format that you want for this using the calendar plugin (from what I can tell). See vid capture below:
https://user-images.githubusercontent.com/7501413/103608139-4019b700-4ee0-11eb-95f2-8a4ac8731b41.mov

Lastly, reading through the calendar plugin source code it looks like you can use any date format that you want for this using the calendar plugin.

Can you link me to the spot in the source code you said? I'd like to see how they did implement it. Mostly want to know if they are parsing the filenames to datetime objects, or accessing some other info.
The plugin's current version is constrained like this because it uses the built in date parsing in TypeScript. I am looking to migrate to this in the next short while, which should give higher date resolution. It is also able to be installed on local folder, not through node.

Lastly, reading through the calendar plugin source code it looks like you can use any date format that you want for this using the calendar plugin.

Can you link me to the spot in the source code you said? I'd like to see how they did implement it. Mostly want to know if they are parsing the filenames to datetime objects, or accessing some other info.
The plugin's current version is constrained like this because it uses the built in date parsing in TypeScript. I am looking to migrate to this in the next short while, which should give higher date resolution. It is also able to be installed on local folder, not through node.

I'm going to mark this issue closed, and update the Readme. Feel free to continue to comment here!

I'm going to mark this issue closed, and update the Readme. Feel free to continue to comment here!

It wasn't anywhere specific on in their code. I was searching through this when I saw they were using moment from MomentJS.
It got me thinking about your code. Your code just gets the numeric date from the filename (new Date(name.replace(".md","")).getTime()). It doesnt care what format it's in since the Date() function will automatically convert it to a date object.
So my theory was as long as the Daily Notes format was a correct date format the Calendar plugin will keep it consistent with your code. Unfortunately, I am not quite sure where in their plugin it actually happens.
You should be able to try it out with your plugin as is. You can see it worked for my previous video capture.
Hopefully that's not to confusing since I am still quite new to all of this.

It wasn't anywhere specific on in their code. I was searching through this when I saw they were using moment from MomentJS.
It got me thinking about your code. Your code just gets the numeric date from the filename (new Date(name.replace(".md","")).getTime()). It doesnt care what format it's in since the Date() function will automatically convert it to a date object.
So my theory was as long as the Daily Notes format was a correct date format the Calendar plugin will keep it consistent with your code. Unfortunately, I am not quite sure where in their plugin it actually happens.
You should be able to try it out with your plugin as is. You can see it worked for my previous video capture.
Hopefully that's not to confusing since I am still quite new to all of this.

Ah I think I found it. If you look at their code [here] (https://www.github.com/liamcain/obsidian-calendar-plugin/tree/master/src%2Fio%2FdailyNotes.ts). On line 21 they are pulling the date format from the daily-notes-interface settings.
This is why it doesn't matter what the format is if you use their plug in.

Ah I think I found it. If you look at their code [here] (https://www.github.com/liamcain/obsidian-calendar-plugin/tree/master/src%2Fio%2FdailyNotes.ts). On line 21 they are pulling the date format from the daily-notes-interface settings.
This is why it doesn't matter what the format is if you use their plug in.


Segmentation Fault (again)

Describe the bug*
I think the segfault from issue 49 happens on line 162 of main.cpp. Commenting that out results in a bad_alloc on line 134 of main.cpp. That's as far as I could get with my limited knowledge of C++.
Raspberry Pi OS Lite (64bit) - Debian Bullseye on a Raspberry Pi 4B (2GB) (I switched in the 64bit NDI modules as I mentioned in my other issue.
My original device (CM4 4GB/32GB) is still working flawlessly, I have not installed any updates or patches, and will not until this starts working...

I've solved the issue in my fork by updating the libcamera headers to 1.0.2. I've tested using the 64-bit libndi 5 on a Raspberry Pi 4B (2GB) with Bullseye Lite.


add a new feature as  default Value

#2864

[ ] I've read and followed the contributing guide on how to create great pull requests.
[ ] I've updated the relevant documentation for any new or updated feature.
[ ] I've linked relevant GitHub issue with "Closes #".
[ ] I've added a visual demonstration in the form of a screenshot or video.

@Janpot
do you have any suggestion for this place ?

@Janpot I done this one.


Edge cannot be installed on Windows Server 2016

I don't think the instructions in the README.md can be completed.
In Create an Azure Virtual Machine:
2. Click Create a resource then search for and select Windows Server 2016 VM

Later, in Create a Custom Vision Model:
1. Using Microsoft Edge, open the following URL in a browser and login using your MSA https://customvision.ai/
[!ALERT] Custom Vision doesn't support Internet Explorer.

But the VM only has IE installed. And, as far as I can tell, Edge cannot be installed on Windows Server 2016.
Thanks.

The new Chromium based Edge browser should work https://www.microsoftedgeinsider.com/en-us/


update deno.json to top level exclude

Very weird that it's pulling in the wrong version.

yeah weird can't reproduce locally, with setup-deno it finds the correct version

My only guess is that maybe the ci has some old cached version of https://deno.com/versions.json

We figured it out. It was pinned to v1.0.0

oh xD I thought I checked that


Need another example of how to Prevent double-escaped JSON in FOR JSON output

Hi,
I have a small problem in my case because in my case a column can contain array or text both So How can i prevent double-escaped JSON in FOR JSON output. I think i am doing something wrong here. Please check my example -
Create table #jsonTest(NameList varchar(max))
insert into #jsonTest(NameList)
select '["John","Smith"]'

Now if i want its output it will give correct output from this (Without Escape Character)-
select JSON_QUERY(NameList) NameList from #jsonTest for json auto
Output -
[{"NameList":["John","Smith"]}]
Simple Text example -
truncate table #jsonTest
insert into #jsonTest(NameList)
Select 'John'

Now for this i have to change my select query for the correct output because JSON_QUERY, As mentioned, it only returns objects and arrays. So i have changed it to this -
select case when ISJSON(NameList) = 1 then JSON_QUERY(NameList) else NameList end NameList from #jsonTest for json auto
Output-
[{"NameList":"John"}]
Now It will give correct output for now but if i insert previous data again and try upper select query
truncate table #jsonTest
insert into #jsonTest(NameList)
select '["John","Smith"]'

select case when ISJSON(NameList) = 1 then JSON_QUERY(NameList) else NameList end NameList from #jsonTest for json auto

Output-
[{"NameList":"[\"John\",\"Smith\"]"}]
then it is giving escape characters in output. Please help me @jovanpop-msft @WilliamAntonRohm  What is wrong in the code

@ErVishalM -- Vishal, thank you for your thorough feedback.  Are you reading a particular docs.microsoft.com article?  This repo is solely for documentation issues.
You may find answers here:

DBA Stack Exchange
Stack Overflow

@WilliamAntonRohm yes! i was studying this

@ErVishalM -- Vishal, thank you for clarifying.
@jovanpop-msft -- Jovan, please look into this issue #4346.

#assign:julieMSFT

@ErVishalM Hello, I see you received an answer to your JSON question on Stack Overflow. Please let me know if you feel any updates are needed to the documentation.

Hi @julieMSFT , now it is resolved. Well thanks for asking though.

@ErVishalM Hi Vishal, I am glad it is resolved. We hope to hear from you again.


Crash on Alpine Linux

Repro:

Install Alpine Linux, X11 and Go
Clone Ebiten
Run: go run examples/rotate/main.go
All works fine, until you press a key (any key will do). Then:

panic: runtime error: index out of range [65317] with length 512

goroutine 1 [running, locked to thread]:
github.com/hajimehoshi/ebiten/v2/internal/gamepad.(*nativeGamepad).update(0xc0000b4028, 0x41bf90)
        /home/rpolzer/src/ebiten/internal/gamepad/gamepad_linux.go:331 +0x21f
github.com/hajimehoshi/ebiten/v2/internal/gamepad.(*Gamepad).update(0x8afe48, 0x0)
        /home/rpolzer/src/ebiten/internal/gamepad/gamepad.go:166 +0x9b
github.com/hajimehoshi/ebiten/v2/internal/gamepad.(*gamepads).update(0x8afe20)
        /home/rpolzer/src/ebiten/internal/gamepad/gamepad.go:94 +0x152
github.com/hajimehoshi/ebiten/v2/internal/gamepad.Update(...)
        /home/rpolzer/src/ebiten/internal/gamepad/gamepad.go:55
github.com/hajimehoshi/ebiten/v2/internal/ui.(*Input).update(0x8b06b0, 0xc0004e2010, 0x0)
        /home/rpolzer/src/ebiten/internal/ui/input_glfw.go:206 +0x3cc
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).update(0x8b0580)
        /home/rpolzer/src/ebiten/internal/ui/ui_glfw.go:981 +0x170
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).loop.func1()
        /home/rpolzer/src/ebiten/internal/ui/ui_glfw.go:1023 +0x4a
github.com/hajimehoshi/ebiten/v2/internal/thread.(*OSThread).Loop.func1(0xc000445e10, 0xc000445e00)
        /home/rpolzer/src/ebiten/internal/thread/thread.go:54 +0x53
github.com/hajimehoshi/ebiten/v2/internal/thread.(*OSThread).Loop(0xc0004e4030)
        /home/rpolzer/src/ebiten/internal/thread/thread.go:55 +0x2e
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).Run(0x8b0580, {0x6bd878, 0xc0004f6040})
        /home/rpolzer/src/ebiten/internal/ui/run_notsinglethread.go:53 +0x21f
github.com/hajimehoshi/ebiten/v2.RunGame({0x6be418, 0xc0004e60f0})
        /home/rpolzer/src/ebiten/run.go:175 +0x145
main.main()
        /home/rpolzer/src/ebiten/examples/rotate/main.go:85 +0x149
exit status 2

Have not investigated yet, though.

Crashing line is:
idx := g.keyMap[e.code-_BTN_MISC]

_BTN_MISC is 0x100. e.code thus was 0x10025. Don't yet know which "gamepad" this is from, as I don't even have one connected.

go run examples/moire/moire.go crashes differently:
panic: runtime error: index out of range [32] with length 32

goroutine 34 [running]:
github.com/hajimehoshi/ebiten/v2/inpututil.(*inputState).update(0x8a2a80)
        /home/rpolzer/src/ebiten/inpututil/inpututil.go:148 +0xd35
github.com/hajimehoshi/ebiten/v2/inpututil.init.0.func1()
        /home/rpolzer/src/ebiten/inpututil/inpututil.go:75 +0x25
github.com/hajimehoshi/ebiten/v2/internal/hooks.RunBeforeUpdateHooks()
        /home/rpolzer/src/ebiten/internal/hooks/hooks.go:38 +0xc7
github.com/hajimehoshi/ebiten/v2/internal/ui.(*contextImpl).updateFrameImpl(0xc000432100, {0x6bf318, 0x8a2b60}, 0x1, 0x4084000000000000, 0x407e000000000000, 0xc000254670)
        /home/rpolzer/src/ebiten/internal/ui/context.go:98 +0x185
github.com/hajimehoshi/ebiten/v2/internal/ui.(*contextImpl).updateFrame(0xc00000e108, {0x6bf318, 0x8a2b60}, 0x3, 0x10000c000254720, 0x0)
        /home/rpolzer/src/ebiten/internal/ui/context.go:60 +0x8e
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).loop(0x8a2f20)
        /home/rpolzer/src/ebiten/internal/ui/ui_glfw.go:1029 +0x25f
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).Run.func1()
        /home/rpolzer/src/ebiten/internal/ui/run_notsinglethread.go:46 +0x13d
created by github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).Run
        /home/rpolzer/src/ebiten/internal/ui/run_notsinglethread.go:33 +0x1fd
exit status 2

Code in question is also gamepad button related, apparently ebiten.GamepadButtonNum(id) is greater than ebiten.GamepadButtonMax for some device here that Ebiten thinks might be a gamepad.

ebiten.GamepadName for the gamepad that crashes in inpututil is "ITE Tec", which sadly isn't very helpful as ALL my input devices start with that. I suspect that Ebiten decided to open my keyboard and assume it's a gamepad device.

Going by strace, it seems like Ebiten has had open a fd to /dev/input/event0, which is indeed my keyboard. It had not kept any other event node open.
And TBH in internal/gamepad/gamepad_linux.go I see nothing that looks like it's trying to exclude keyboards...

Cannot reproduce on other systems - issue might be specific to this laptop and/or Alpine Linux.
Fixing this by adding the necessary bounds checks (either at runtime, or maybe just reject gamepads with too many buttons at connect time) should do.

Thanks. I think this happens with the latest Ebiten, but does this happen with Ebiten v2.2.5?

I'll cherry-pick the inpututil issue

Sadly not fixed yet; I am going to send a PR to fix the crashes, although it seems like the real solution would be to skip the entire devices.
Including a screenshot of the gamepad demo to show better what's going on: keyboard and touchpad are appearing as "gamepads".

With these two changes it's crashfree on that laptop.


MINOR: Logging fix in StreamsPartitionAssignor

Seeing 'Assigning stateful tasks: [0_0] and stateless tasks: java.util.stream.ReferencePipeline$2@4b0f4416 (org.apache.kafka.streams.processor.internals.StreamsPartitionAssignor:640)' in the logs.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@lucasbru you set up your apache account already, right? I'm leaving it to you to merge but just let me know if you need me to do so

@lucasbru you set up your apache account already, right? I'm leaving it to you to merge but just let me know if you need me to do so

Yes, done and backported


Create icortex CLI

Create a standalone script icortex with the following spec:

icortex without any argument launches the REPL.
icortex init starts an interactive project initialization script that will let the user configure API keys and other options.
...

Done


[DOC] Searchable Snapshot Feature

What do you want to do?

[ ] Request a change to existing documentation
[x] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request.
We would like to develop the documentation for the initial experimental release of the searchable snapshot feature in OpenSearch 2.4. The feature design proposal is here: https://github.com/opensearch-project/OpenSearch/issues/3895
What other resources are available?
The searchable snapshot feature consists primarily of two API changes:

A new parameter is added to the snapshot restore API indicating the snapshot should be restored as a "searchable snapshot" as opposed to downloading all index data at restore time
A new node role is added to indicate that a node is capable of hosting a searchable snapshot index and serving queries.

I've included some thoughts on the documentation about these two areas below:
Snapshot Restore API
A new parameter will be introduced in the snapshot restore API: storage_type.

Setting
Description

storage_type
Must be one of local or remote_snapshot. local is the default if not specified, and indicates that all snapshot metadata and index data will be downloaded to local instance storage. remote_snapshot indicates that snapshot metadata will be downloaded to the cluster but the remote repository will remain the authoritative store of the index data. Data will be downloaded on-demand as necessary to service queries. At least one node in the cluster must be configured for the search role in order to restore a snapshot of type remote_snapshot.

Node Role
This feature adds a new search role to the list of possible node roles. I can't seem to find existing documentation about all the existing build-in roles (data, cluster_manager, ingest, and remote_cluster_client), but here is a example documentation on a dynamic role added by a plugin.

Closing with PR https://github.com/opensearch-project/documentation-website/pull/1749

Left a comment on the PR right as it was being merged, but I think we'll want to model this documentation similar to segment replication. Specifically this should be a stand-alone page with all the experimental-feature caveats. We should probably wait until the feature is fully ready in a subsequent release before updating the main "restore snapshot" documentation with the new parameter.

We'll work on breaking this off into it's own section

@ariamarble Here's a rough draft of the content I had in mind. I don't have a strong opinion as to exactly how it should be structured or what page it should be on.
Searchable snapshots
Searchable snapshots is an experimental feature with OpenSearch 2.4.
Therefore, we do not recommend the use of this feature in a production
environment. For updates on progress or if you want leave feedback that
could help improve the feature, see the [searchable snapshot GitHub issue](https://github.com/opensearch-project/OpenSearch/issues/2919).
{: .warning}

As an experimental feature, searchable snapshots will be behind a feature
flag and must be enabled on **each node** of a cluster.
{: .note }

(All the feature flag text can be copied from https://opensearch.org/docs/latest/opensearch/segment-replication/configuration/#enabling-the-feature-flag
just need to substitute in the following text for the actual flag value)

opensearch.experimental.feature.searchable_snapshot.enabled

A searchable snapshot index is an index where data is read from a snapshot repository on-demand at search time, rather than downloading all index data to cluster storage at restore time. Because the index data remains in the snapshot format in the repository, searchable snapshot indexes are inherently read-only. Any attempt to write to a searchable snapshot index will result in an error.
Create an index
Creating a searchable snapshot index is done by specifying the remote_snapshot storage type in the restore API:

Request fields
Description

storage_type
local indicates that all snapshot metadata and index data will be downloaded to local storage. remote_snapshot indicates that snapshot metadata will be downloaded to the cluster, but the remote repository will remain the authoritative store of the index data. Data will be downloaded and cached as necessary to service queries. At least one node in the cluster must be configured with the search role in order to restore a snapshot using the type remote_snapshot. Defaults to local.

Listing indexes
To determine if an index is a searchable snapshot index, look for the store setting in the index settings with the value of remote_snapshot:
curl -X GET "https://localhost:9200/my-index/_settings?pretty" -ku admin:admin

{
  "my-index": {
    "settings": {
      "index": {
        "store": {
          "type": "remote_snapshot"
        }
      }
    }
  }
}

Potential use cases

Users who wish to offload indexes from cluster-based storage yet retain the ability to search them

Known limitations

Accessing data from a remote repository is slower than local disk reads, so higher latencies on search queries are expected.
Data is discarded immediately after being read. Subsequent searches for the same data will have to download data again. Future work will address this by implementing a disk-based cache for storing frequently-accessed data.
Many remote object stores charge on a per-request basis for retrieval so users should closely monitor any costs incurred.
Seaching remote data can impact the performance of other queries running on the same node. Users are recommended to provision dedicated nodes with the search role for performance-critical applications.

Created PR - https://github.com/opensearch-project/documentation-website/pull/1795 - with my early rough draft. I will incorporate these changes into that PR.

PR - https://github.com/opensearch-project/documentation-website/pull/1795 - is ready for Tech Review if you want to review @andrross


use "etcd2" plugin in Kubernetes examples

The example is still using the old "etcd" plugin and not the rewritten one which uses a different storage format ("etcd2"). More details: http://vitess.io/user-guide/topology-service.html#etcd-etcd2-implementation-new-version-of-etcd
I would like to change this in the Kubernetes configuration before we release 2.1.

I'm moving this to the 3.0 milestone because I am no longer sure that this is a trivial task.
The new topo implementation "etcd2" will require at least etcd version 3 but our etcd Docker images are still on 2.0.13. That means we'll have to create and publish etcd 3 images first.

I was planning on removing 'etcd' and 'zookeeper' after 2.1. Maybe I'll look at this then.

So the examples/kubernetes directory now uses etcd2 with etcd-operator. What's left is @enisoc two directories:

the helm/ directory
the (not submitted yet) stateful set demo

So sending to @enisoc.


Consolidate config into primary entrypoint

Problem/Opportunity Statement
Config is currently referenced in a few different modules. Consolidating this into Hubcast's main entry-point will help clarify module interfaces and make them readily import-able.
What would success / a fix look like?

[ ] Global config values are collected and processed in __main__.py
[ ] Modules relying on config are modified to accept values they require

@tgmachina should I assign this to you? Or did you want to leave it open to whomever has time?


$ mrhyde new starter (not work)

$ mrhyde new starter

mrhyde/0.1.1 on Ruby 2.3.1 (2016-04-26) [i686-linux]
mrhyde/0.1.1 on Ruby 2.3.1 (2016-04-26) [i686-linux]
GET https://github.com/mrhydescripts/scripts/raw/master/starter.rb
starting new MrHyde script (sitefile) {}; lets go
Welcome, before setting up your site Mr. Hyde will ask you some questions.
Q: What's your site's title? [Your Site Title]: TestTitle
Q: What's your name? [Henry Jekyll]: TestName
Thanks! Ready-to-go. Stand back.
  handle install_theme Starter, {}
GET https://github.com/drjekyllthemes/themes/raw/master/themes.yml

*** error: *** theme 'starter' not found; sorry

@StartZeroGnu  Again thanks for trying and reporting. The missing starter shortcut key is now working (again). Fixed in the drjekyll gem (dependency) e.g. update drjekyll to retry. Note: I've also fixed the key for your SZ Flex (Blog) theme in scripts/sz-flex.rb. Thanks for trying. It's now working too. Try:
$ mrhyde new sz-flex

Cheers.

@geraldb  Why install_theme: szflexblog (https://github.com/mrhydescripts/scripts/blob/master/sz-flex.rb#L15) and not install_theme: SZ-Flex (https://github.com/StartZeroGnu/scripts/blob/new-script/sz-flex.rb#L15)
Please read this https://github.com/StartZeroGnu/jekyll-szflex-theme/issues/1#issuecomment-260298326

@StartZeroGnu  Thanks for trying.  mrhyde is still using the drjekyll themes.yml datafile and the key is the title (but slugified/urlified/downcased), thus, "SZ Flex (Blog)" becomes "szflexblog". Will add "proper" title support e.g."SZ Flex (Blog)" in the next update (to avoid confusion). Cheers.

then, why you use "Starter" in the example (https://github.com/mrhydescripts/scripts/blob/master/starter.rb#L14) and do not use, "henrysstarterminimal" ???

@StartZeroGnu  Sorry that's a special case (that is, it's hard-coded) see https://github.com/drjekyllthemes/drjekyll/blob/master/lib/drjekyll/catalog.rb#L42. Cheers. PS: I added a (custom) shortcut for your theme (see themes.yml) e.g.
 keys: [szflex]

Now you should also be able to use szflex (or SZFlex etc.) if you prefer.

That was my confusion... so I used install_theme: SZ-Flex and made him the title "SZ-Flex (Blog)" thinking that by finding "SZ-Flex" in the title install the theme.
then now with "key" I can customize the name, to use "SZ-Flex" e.g.
in sz-flex.rb

install_theme: "SZ-Flex"

and
in themes.yml

keys: [SZ-Flex]

or I can't use "-" ?  It must be SZFlex?
Thanks for your time, and thank you so much for your patience with me, I am aware that I can be a bit heavy (sorry)

@StartZeroGnu  No worries. Thank you for your patience and trying it out and thinking it all through. The idea of the key / keys for now is to use only a-z (letters, all downcased) and 0-9 (numbers), thus, szflex. Adding a dash (-) might be an option for the future (needs an update). Cheers.


Can't read from server. It may not have the appropriate access-control-origin settings.

怎么支持https:

使用swagger4j  2.1.4及以上版本，并在 swagger.properties 文件中加入配置项
schemes=https
即可支持https


jarek/8214: set global timezone for Tabledisplay

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


libc++ bug prevents communication via named pipes

Note: This refers to the same problem as the fuego-on-ios project's issue 16. The issue here tracks the code changes that are required on Little Go's side to fix the problem.
After building Boost, fuego-on-ios and Little Go with libc++, the GTP communication between Little Go and Fuego via named pipes no longer works. The observed problem is that Little Go hangs during application launch because Fuego blocks when reading from the GTP command stream.
I've described a rather complicated command line repro case in this StackOverflow question. Unfortunately this did not result in a solution, but at least in a pointer to the LLVM bug tracker.
Bug 23078: fstream doesn't play well with named pipes

The problem basically is that the libc++ implementation of basic_filebuf::underflow() does not properly handle reading from files that are named pipes. basic_filebuf::underflow() always attempts to read 4096 bytes of data, but this read operation, of course, blocks if there is insufficient data in the pipe.
Applied to the Little Go use case: The first GTP command that Little Go sends already is less than 4k bytes in length, so Fuego never gets to see that command. Because of that Fuego also never sends a response, which in turn means that Little Go hangs waiting for that response.

The solution that I came up with is to write a custom stream buffer that acts as an in-memory pipe. At runtime it is used like this:

Little Go no longer creates an input and an output named pipe. Instead Little Go now creates an input and an output stream object, both of which it configures to use the new pipe stream buffer.
Little Go no longer passes the path of the two named pipes to Fuego as command line parameter. Instead Little Go now passes the two stream objects to Fuego as parameters to the FuegoMain function.
Fuego no longer creates file streams to read from / write to named pipes. Instead Fuego's GTP engine implementation now simply and directly uses the two stream objects that it received from Little Go as end points to the GTP command channel and the GTP response channel.
Little Go also no longer creates file streams to read from / write to named pipes. Instead Little Go's GTP client implementation now creates a second set of input/output stream objects and configures them with the same pipe stream buffers as their counterpart stream objects that are used by Fuego's GTP engine.

The main change to Little Go is the addition of the PipeStreamBuffer class mentioned in the previous comment.
Also obviously the ApplicationDelegate no longer needs to create two named pipes with mkfifo. Instead it now creates two PipeStreamBuffer objects and passes these objects on to the following system actors:

The GtpEngine class, for forwarding to Fuego
The GtpClient class, for setting up its GTP command and GTP response streams

The remaining changes all concern themselves with the mechanics of passing around the aforementioned PipeStreamBuffer objects.


rancher local cluster updgrade failing

What kind of request is this (question/bug/enhancement/feature request):
bug
**Steps to reproduce (least amount of steps as possible):Result:
rke up --config rancher-cluster.yml
Other details that may be helpful:
Trying to upgrade k8s on local rancher cluster node but getting warning error and k8s are not updated to the latest stable version provided by rke verison.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.3.3
Installation option (single install/HA): HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): Imported
Machine type (cloud/VM/metal) and specifications (CPU/memory): Cloud/AWS, 4cores/15GB
Kubernetes version (use kubectl version):

➜```
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-13T11:52:32Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:19:22Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

- Docker version (use `docker version`):

18.9.4

Please reply to https://github.com/rancher/rke/issues/1836#issuecomment-567102236 with the actual error where the provisioning stops, there is no need to create a duplicate issue on the same subject.


Updates to setup and quantum demos

Bloch-Sphere Demo, Qrasp, Raspberry-Tie added
major updates to rasqberry-config

initial update to setup and demos


Press Releases & In The News - Save Button

We are noticing the save button doesn’t work here. We can create a new entry and save it, but not edit an existing one. Is this an easy fix?

I did not yet program editing newsroom items.


language does not change in android but work in ios

the sdk and plugins :
    implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0'
    implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0'

the demo from example:

compare the two picture(ios is Chinese but android is en)

i have fixed it by specify StyleURL as bleow  and add code  localizationPlugin.setMapLanguage(MapLocale.CHINA);
mapbox://styles/mapbox/streets-v10
mapbox://styles/mapbox/outdoors-v10
mapbox://styles/mapbox/dark-v9
mapbox://styles/mapbox/light-v9
mapbox://styles/mapbox/satellite-streets-v9
mapbox://styles/mapbox/traffic-day-v2
mapbox://styles/mapbox/traffic-night-v2


Fixed #26566 -- Rewrote a wrong Cache-Control example.

@timgraham Thank you for feedback, I updated the branch.

merged in 101dd787eca588f32c4647fe45fc533072f0eb0b, thanks!


2nd render window navigation BUG

When navigating mouse in the 2nd render window .. T3 is still navigating the first render window ..

please note where the mouse pointer is in this screen capture..
then notice that the operator is being selected.. as if i am still navigating from the original render window inside the graph ..

I can confirm that mouse interaction in the second render view have totally unpredictable results in the main window.
This should be fixed in upcoming release v3.4
fba7f68f750a52b7b7f63b7498943da44aa19281

This seems to be still occurring, to a degree, in 3.9.3. See how my cursor is in the T3 Viewer window, yet the Windows menu item in the editor is highlighted. (Moving my mouse around highlights other things in the editor window.) Clicking in the T3 Viewer window doesn't do anything, though.


about the install problems

i follow the remead install the vocos, but when testing samples, there is a problem:
LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.
i also download the the pytorch file, but vocos.from_pretrain() how to load the local files?

add a `local_dir` parameter for Vocos class may work:

@classmethod     def from_pretrained(cls, local_dir: str, repo_id: str = None, revision: Optional[str] = None) -> Vocos:         """         Class method to create a new Vocos model instance from a pre-trained model stored in the Hugging Face model hub.         """         if local_dir:             config_path = os.path.join(local_dir, "config.yaml")             model_path = os.path.join(local_dir, "pytorch_model.bin")         elif repo_id:             config_path = hf_hub_download(repo_id=repo_id, filename="config.yaml", revision=revision)             model_path = hf_hub_download(repo_id=repo_id, filename="pytorch_model.bin", revision=revision)


Elastic wall collision not working right

Heyhey Brax team,
I would like to simulate an overhead view on a table with a ball on it and surrounded by walls (think pool billiards).
If I bounce the ball into the wall, I would like the ball to be reflected elastically but it appears to be stuck in the wall:

This is what I think should happen:

Here's a simple example to reproduce this:
https://colab.research.google.com/drive/1e0Xaq0oc2iCs84mbumnGcgmc3u_GNg94?usp=sharing
I'm sure I'm doing something pretty simple wrong here but I can't figure out what that is.
Could you help me, please?
Thanks,
Florian

Never mind, I positioned the ball too low and it behaved like this because it was stuck in the floor.


Fix error when binaries are not in /sbin

Not all distros put the required binaries in /sbin, leading to errors. This patch uses which to look for the binaries, and tells the user if it couldn't be found.

So how to fix it

So how to fix it

Wait for this PR to be merged, or download my fork and run that.

You can also fix it by creating symbolic links in /sbin to the required utils (tc, iptables, sysctl).

I have the same problem, and I can't fix it. Someone can explain to me how I do it.

I've cloned the project yesterday, stuck at this issue. how do I apply the fix? @bitbrute


Adding filename utility filename

Change Summary
This is a proposal for this data-access repo - that we should move various filename related utilities out of SDS data manager/imap_processing and into this repo. Then it could be imported into both projects without duplicating code or needing to import large sds-data-manager into imap-processing. This could also be used to make additional command line utilities, such as --validate filename.
Overview

For now, just added a split method to break a file name into multiple components. In the future, I think moving path_helper.py into this project would make sense.
New Dependencies

New Files

file_naming.py

The name of this file sucks, but I didn't want to name it file_utils.py
copied extract_filename method from batch_starter.py

@greglucas Agreed with your notes, I wanted to open the discussion and see what people thought before adding more stuff here.

@tech3371 , you wrote most/all of pathhelper, what do you think about moving it here and making it a common utility across sds_data_manager and imap-processing?

Along the same lines of not repeating code across sds-data-manager & imap_processing, would this repo be a good place to store stuff like valid instrument names and data levels (i.e. what is listed here) ?

Along the same lines of not repeating code across sds-data-manager & imap_processing, would this repo be a good place to store stuff like valid instrument names and data levels (i.e. what is listed here) ?

I think this makes a lot of sense, especially as it's part of checking a valid file name. It's not super related to data access beyond that... but also it's a minor thing that would be really easy to add here and just reference everywhere, so ... I like that idea.

I haven't given much though but yeah, I like the idea of keeping things that's commonly used in this library.

Since I'm hearing some positive info, I will add some of the filename utilities into this repo and open a more comprehensive code review. Then, we can remove some code from sds-data-manager and imap_processing

@maxinelasp I was going to ask if you could help me improve path_helper.py class. If you could improve it during this movement, I appreciate.


Added Summernote Integration

Thanks, merged! Will add documentation later.

Yeah I will keep an eye on it.
I will have a look on CKEditor in the next upcoming free time.


[FEAT] Firebase Auth?

Is your feature request related to a problem? Please describe.
Firebase Auth offer easy solution as Auth0, but they're free with generous amount of users (unlimited?).
Describe alternatives you've considered
No response
Additional context
No response
Describe the thing to improve
Add Firebase Auth

Thank you for contacting us. Indeed, this is a great idea 🎉


Remove Revision number

Should Revision be removed from Experiment?
What are the implications of removing this? What do we want the expected behavior of rerunning experiments going forward?

We will keep it in for now. It is a benign feature and will require more cycles.

Revision number ensures that the old job spec is deleted and a new job spec is created whenever an experiment is upgraded. Without the revision number, helm will not recreate a job, so helm upgrade will not result in a new experiment run.


instructions for making executables outdated

I tested building MediaConch from source using your description in Readme.md for two OS.
Build instructions followed for macOS 10.8, i had some troubles:

First confusing point is, that i had to install Qt5, but a few lines later linux dependency list, says you are using Qt4. When i check my App with otool -L i think its using Qt4.

Building libxslt as your instructions descripes, i got the error message:
error: unknown type name 'xmlCatalogPtr'
So i fixed this, by using --without-python on configure step.

Building the CLI, i had problems using the autogen script: illegal variable name. , so i made the steps one by one (glibtoolize --automake; aclocal; automake -a; autoreconf -if)

The configure step for the CLI complains 3 times for missing 3rd party libs.
You should add to the port install step: sqlite3 jansson libevent

Starting the Gui after building it from source, there was libzen.0.dylib missing, athough i followed your steps building libzen. It worked after: sudo cp MediaConch/ZenLib/Project/GNU/Library/.libs/libzen.0.dylib /usr/local/lib/

Build instructions followed for Fedora 25 works well, although libzen and libmediainfo libraries were only for Fedora 24 availible - but still works with.

First confusing point is, that i had to install Qt5, but a few lines later linux dependency list, says you are using Qt4. When i check my App with otool -L i think its using Qt4.

You can compile with both Qt4 and Qt5.
The build will use the default one (qmake --version)
If you want to use Qt5, you have to do it manually, on MacOs:
cd MediaConch/MediaConch_SourceCode/Project/Qt
/WHERE_YOU_INSTALLED_Qt5/bin/qmake -spec macx-g++
make
cd -

(on the system, qmake could be also named qmake-qt5)

Starting the Gui after building it from source, there was libzen.0.dylib missing, athough i followed your steps building libzen. It worked after: sudo cp MediaConch/ZenLib/Project/GNU/Library/.libs/libzen.0.dylib /usr/local/lib/

You compiled MediaConch in shared mode, so, you need to indicate where is your dynamic library.
On Mac OS, you should set the environment: DYLD_LIBRARY_PATH.
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:MediaConch/ZenLib/Project/GNU/Library/.libs

(I'm not a MacOS user, I cannot test (using this manpage: http://www.manpagez.com/man/1/dyld/)... but, this kind of problem is resolved on Linux by setting the $LD_LIBRARY_PATH)
Otherwise, if you want to install it on your system, you should prefer to use the make install.
cd MediaConch/ZenLib/Project/GNU/Library
./configure ...
make
sudo make install
cd -

On the configure line, you can use --prefix=PATH, with PATH the place you want to copy it (/usr/local/lib)


Timer not ending grafically

Steps to reproduce:

click a key icon to add an entry manually
choose an interval up to 28 (might be broken for bigger intervals but I noticed it up to 28), other values fill as you please
when you click the entry, a timer is displayed on entry's icon, when it finishes the timer should disappear but it doesn't - a small part of it is still visible

I recommend choosing interval 1 for maximal visibility or the bug.

Interesting. I will review this. Thanks for the testing!


Unable to create task using image urls not ending with image extensions.

Using remote image urls links unable to create task.
Screenshot of the issue

url used for creating task :
https://media.istockphoto.com/photos/close-up-of-colorful-tshirts-on-hangers-apparel-background-picture-id1170635789?b=1&k=20&m=1170635789&s=170667a&w=0&h=5CZtqZRGBRkQtZw3YIRotRDu4OROZPSkXeyzaMs-xYE=
However, I found that urls which ends with image extensions do not create any problem
How to create task using such image urls where image extensions is not present?

https://github.com/openvinotoolkit/cvat/pull/2336


Prep for JOSS submission

add impedance to environment.yml
minor documentation updates

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 92.563%

Totals

Change from base Build<PHONE_NUMBER>6:
0.0%

Covered Lines:
1369

Relevant Lines:
1479

💛  - Coveralls


[Feature Request] Add ability to pass external database configuration for Ambari using cloudbreak/blueprint

Ambari services use local postgres database. It would be great if ambari services database configuration can be an input in cloudbreak or blueprint so ambari uses external db when it starts.
Link to hortonworks community forum: https://community.hortonworks.com/questions/44300/using-external-database-for-ambari-via-blueprint-c.html

On master branch Cloudbreak supports remote database configuration for Ambari. Currently PostgreSQL and MySQL works out of the box. On the web UI  you should find settings under advanced options. On shell we have a new a new command, you have to execute before cluster create command:
database configure --vendor MYSQL --host [host-name] --port [port-number] --name [database-name] --username [user-name] --password [password]


encrypt using this package doesn't give the same result as with openssl command

I'm trying to encipher my data using this function (which is available here)
func (c *Crypter) Encrypt(input []byte) ([]byte, error) {
  ctx, err := openssl.NewEncryptionCipherCtx(c.cipher, nil, c.key, c.iv)
  if err != nil {
    return nil, err
  }

  cipherbytes, err := ctx.EncryptUpdate(input)
  if err != nil {
    return nil, err
  }

  finalbytes, err := ctx.EncryptFinal()
  if err != nil {
    return nil, err
  }

  cipherbytes = append(cipherbytes, finalbytes...)
  return cipherbytes, nil
}

But the result is not the same as if i try then openssl command.
So, Finally decryption doesn't work as well.
I think the problem went from the use of []byte key instead of string key.

I'm sorry this doesn't work the same for you, but it sounds like a difference between the command line and how the C interface we've wrapped is being used. The []byte vs string will make no difference because we have to copy either to a C string before we pass it anyway.
Please check the openssl documentation to resolve your issue.


Add option to change thickness and text size of labels.

The current size defaults aren't suitable for small images. Ideally, the user should have the option to change the size.

I would like to work on this.

Hi, feel free to fork the repo and put in a PR!

#7

Thanks for the PR! Please give me until this weekend to review and merge.

I'm currently working on this

The current size defaults aren't suitable for small images. Ideally, the user should have the option to change the size.

Is it still open? I would like to work on this issue.

Is it still open? I would like to work on this issue.

@shoumikchow
Is it still open? I would like to work on this issue.

@nefelipar yes it is! feel free to put in a PR. Please follow the contribution guidelines.

@shoumikchow
Do you want the thickness and the text size to be requested from the user or in some other way?

@shoumikchow
Do you want the thickness and the text size to be requested from the user or with a button
I thought that I can put a button that will have some default settings, and if the user wants to change them, press it and put the values he wants.

@nefelipar The user should not be prompted for thickness and text size, nor should there be a button for it. Instead, the user should have the option to change it if required. Ideally, the user should be able to use keyword arguments to change the default values.
Please refer to this incomplete PR: https://github.com/shoumikchow/bbox-visualizer/pull/7 for details.

@shoumikchow
For the keyword arguments do you want to be functions where the user will change the parameters (or don't change them because they want to use the default values), or should I take the keyword arguments some other way? I saw 7 but that detail is not clear. Thanks a lot and sorry for the questions but I'm begginer.

@shoumikchow
For the keyword arguments do you want to be functions where the user will change the parameters (or don't change them because they want to use the default values), or should I take the keyword arguments some other way? I saw PR 7 but that detail is not clear. Thanks a lot and sorry for the questions but I'm begginer.

@shoumikchow
Hello again.
Do you want me to add parameters to the functions he needs, which will have a default value and when the user wants different values he can change them by putting another value in the parameter?
Otherwise I can create new functions that will either not have any parameters and the size and thickness will take the default values, or there will be parameters that the user will change with the keyboard and these values will be defined as thickness and size.
Sorry for so many questions but I'm a beginner.
Τhank you very much!

@shoumikchow
I have submitted a pull request.
Please check it out when you have the time. Thank you very much!

Fiied by #17


More graceful handling of nested mappings

Ignore nested mappings instead of throwing (maybe add a config option)

can you assign me this issue please?

sure!

@108aryanmaurya are you still interested in working on this?


Way to enable sporth 'print' function

Hi Aure
Do you know if there is a way to enable the 'print' function in sporth? It's a documented function but seems to be unavailable in AudioKit. I think it would really help me to debug sporth code. Or is there another recommended way to track values in sporth?
Many thanks
John.

Set the parameter and it will be accessible from the node's parameter array.  "7 pset" for instance would store the parameter into the 8th element of the array, then you can access and print it.

Aure
Thank you so much for such a rapid and precise solution.
Best wishes
John.
Sent from my iPhone

On 27 Jul 2016, at 21:18, Aurelius Prochazka<EMAIL_ADDRESS>wrote:
Set the parameter and it will be accessible from the node's parameter array. "7 pset" for instance would store the parameter into the 8th element of the array, then you can access and print it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

No problem!


samples: subsys: usb: mass/sample.usb_device_next.mass_ram_none and  cdc_acm/sample.usb_device_next.cdc-acm fails on nrf54h20

Describe the bug
The tests:

samples/subsys/usb/cdc_acm/sample.usb_device_next.cdc-acm
samples/subsys/usb/mass/sample.usb_device_next.mass_ram_none

Observed for

nrf54h20dk/nrf54h20/cpuap

To Reproduce
Steps to reproduce the behavior:

have nrf54h20dk/nrf54h20/cpuap connected
go to your zephyr dir
call ./scripts/twister -T  samples/subsys/usb/ -p nrf54h20dk/nrf54h20/cpuapp --device-testing --device-serial /dev/ttyACM0 -v --inline-logs
See console output with error

Expected behavior
Valid console output
Impact
Not clear
Logs and console output
*** Booting Zephyr OS build v3.7.0-4183-g66ff30efb4d7 ***
[00:00:01.181,586] <err> udc_dwc2: Quirk init failed -11
[00:00:01.181,594] <err> usbd_core: Failed to init device driver
[00:00:01.181,598] <err> usbd_sample_config: Failed to initialize device support
[00:00:01.181,601] <err> cdc_acm_echo: Failed to initialize USB device
[00:00:01.181,604] <err> cdc_acm_echo: Failed to enable USB

There are expected ping/pong messages.
Environment (please complete the following information):

OS: Ubuntu 20.04.1 LTS
Toolchain Zephyr SDK 0.16.8
Commit SHA or Version used: v3.7.0-4183-g66ff30efb4d7

@lstnl @Rafal-Nordic This is nrfs issue. Reverting 022122d659a7c10180b8a91c6a0b49874f2850fa is a possible solution. I let you fix it.

Triaged internally

Cannot reproduce.


Support partial preprocessing with clang

This one made me scratch my head a bit because I assumed it was a Bazel problem and didn't look in the llama docs for it :joy:
ERROR: /home/jpeach/.cache/bazel/_bazel_jpeach/bca846880028b2eb76664b66797b90da/external/com_google_protobuf/BUILD:129:11: Compiling src/google/protobuf/stubs/stringprintf.cc failed: (Exit 1): llamacc failed: error executing command
  (cd /home/jpeach/.cache/bazel/_bazel_jpeach/bca846880028b2eb76664b66797b90da/sandbox/linux-sandbox/12/execroot/build && \
  exec env - \
    PATH=/bin:/usr/bin:/usr/local/bin \
    PWD=/proc/self/cwd \
  /home/jpeach/src/envoy-build/bazel/llamacc -U_FORTIFY_SOURCE -fstack-protector -Wall -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections -fdata-sections '-std=c++0x' -MD -MF bazel-out/k8-opt-exec-2B5CBBC6/bin/external/com_google_protobuf/_objs/protobuf_lite/stringprintf.d '-frandom-seed=bazel-out/k8-opt-exec-2B5CBBC6/bin/external/com_google_protobuf/_objs/protobuf_lite/stringprintf.o' -iquote external/com_google_protobuf -iquote bazel-out/k8-opt-exec-2B5CBBC6/bin/external/com_google_protobuf -isystem external/com_google_protobuf/src -isystem bazel-out/k8-opt-exec-2B5CBBC6/bin/external/com_google_protobuf/src -g0 -g0 -DHAVE_PTHREAD -DHAVE_ZLIB -Woverloaded-virtual -Wno-sign-compare -Wno-unused-function -Wno-write-strings -Wno-deprecated-declarations -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c external/com_google_protobuf/src/google/protobuf/stubs/stringprintf.cc -o bazel-out/k8-opt-exec-2B5CBBC6/bin/external/com_google_protobuf/_objs/protobuf_lite/stringprintf.o)
Execution platform: @local_config_platform//:host

Use --sandbox_debug to see verbose messages from the sandbox
clang: error: unknown argument: '-fdirectives-only'
Target @envoy//source/exe:envoy-static failed to build

-fdirectives-only doesn't work with clang. Perhaps there's an alternative that works with both compilers? There is a short thread discussing how clang's -frewrite-includes differs, but maybe the difference doesn't matter for llama?

Yeah, I think -frewrite-includes would work for us, but I'm not sure if there's an easy way to autodetect which one to use. Could add another configuration flag, I guess -- LLAMACC_CC_IS_CLANG or something -- but that seems mildly unpleasant

FWIW, I tried this quick hack with the Envoy build, and it ended up not being able to resolve libstdc++ types properly. Not sure whether there's something more needed to get partial pre-processing to work with clang, or whether this Bael making some aggressive assumptions.
--- cmd/llamacc/main.go
+++ cmd/llamacc/main.go
@@ -196,7 +196,7 @@ func buildLocalPreprocess(ctx context.Context, client *daemon.Client, cfg *Confi
                preprocessor.Args = []string{comp.LocalCompiler(cfg)}
                preprocessor.Args = append(preprocessor.Args, comp.LocalArgs...)
                if !cfg.FullPreprocess {
-                       preprocessor.Args = append(preprocessor.Args, "-fdirectives-only")
+                       preprocessor.Args = append(preprocessor.Args, "-frewrite-includes")
                }
                preprocessor.Args = append(preprocessor.Args, "-E", "-o", "-", comp.Input)
                preprocessor.Stdout = &preprocessed
@@ -224,7 +224,7 @@ func buildLocalPreprocess(ctx context.Context, client *daemon.Client, cfg *Confi
        args.Args = []string{comp.RemoteCompiler(cfg)}
        args.Args = append(args.Args, comp.RemoteArgs...)
        if !cfg.FullPreprocess {
-               args.Args = append(args.Args, "-fdirectives-only", "-fpreprocessed")
+               args.Args = append(args.Args, "-frewrite-includes")
        }
        args.Args = append(args.Args, "-x", comp.PreprocessedLanguage, "-o", comp.Output, "-")

OK, I figured this one out. We need to pass all the Defs along to the remote build as well as the -frewrite-includes flag. Clang also needs different constants in preprocessedLang (ie. "c" and "c++").


Realbooru.com not loading every image or video

Bug description
Realbooru is not loading every image or video and gives you the error "Image not found." even if the image or video exists on the website itself. It is very spotty when it comes to loading images, some load, some don't.
Steps to reproduce
Add realbooru.com to your sources and search for images or videos
Expected behavior
Grabber loads the image or video in the app
Context

Provide your main.log file to see if any obvious error occurred.
main.log Going by the log, Grabber can't load the thumbnails as they don't exist on the Realbooru server (?)
Providing your settings.ini file will greatly help maintainers reproduce your problem if it may be caused by your configuration.
settings.ini

Screenshots
If applicable, add screenshots to help explain your problem. Video showing the spotty loading behaviour - uploaded to Catbox [NSFW]
System information

OS: Windows 11 21H2
Grabber version: 7.8.1

Seems to be caused by their API returning the wrong information for the file_url and sample_url paths 🤔
http://realbooru.com/index.php?page=dapi&s=post&q=index&limit=20&pid=0&tags=sort%3Ascore
Most of those return a 404 errors, and that's what Grabber rely on to load images.

Images are loading files now, but videos are still impacted.
The site is probably returning the wrong file extension to the filename (eg webm and mp4 pointed to .jpeg).
Is there a way we can tell grabber to try other extensions automatically? (.mp4, .webm ) ?

Is this fixed now?


In case one key is not okay fsck gives up

Summary
In case one key is not okay fsck gives up (in my case it was not an E type key as recipient)
Steps To Reproduce

add a key to recipients without E type
add some others as well
re-encrypt on add recipient fails
fsck  --decrypt gives up re-encrypting after seeing the "bad" key

Expected behavior
re-encrypt for all vaild keys
Environment

OS: fedora 38
OS version: 6.3.13?
gopass Version: 1.15.4?
Installation method: package from github releases

I don't think this is what we want. If we silently ignore an invalid key that might cause some users to loose access to their keys.
I'd rather expect the user to remove the invalid key and then re-encrypting again.
Do you think there is anything we can do to make this easier?

If the error would be more clear and point to the key to remove it would already help. Maybe providing the command needed and some human readable explanation why the key is invalid would be nice.
I however think ignoring the key, warn about it and continue with the fsck/re-encrypt is the correct behavior.
I can imagine use cases where keys may not be added or removed by everyone and only some users but fsck should be possible all the time.


Layer transition holes

Hello.
Maybe I don't fully understand, but I don't see the holes of transition to another layer on the diagram taken from EasyEDA.
Appears as a track break.

I just added via support. Note actual holes of the via are not drawn, that is intentional because they are usually covered by soldermask. But you will see the via outline similar to trracks.


[package] print the name of the package earlier

Before this cosmetic improvement, the download of
a package could happen before its name gets printed,
so it could be confused as a build step of the
previous package.

The work tested in the 'develop' branch has removed the 'Source:' lines (source is only printed when updated). Fetching is also now done for all packages together before building starts, so downloads fall under the new section 'Setting up packages'.


Cannot use peer retrieved from ContactsResolveUsername, as an argument to MessagesGetHistory

Though Go's linter didn't give me a hint that I was using mismatched type;
What version of gotd are you using?
0.71.0
Can this issue be reproduced with the latest version?
Yes
What did you do?
I tried to compile this code:
api := self.client.API()
	username := fmt.Sprintf("@%v", group)
	peer, err := api.ContactsResolveUsername(
		ctx,
		username,
	)
	if err != nil {
		return err
	}

	history, err := api.MessagesGetHistory(
		ctx,
		&tgappapiextra.MessagesGetHistoryRequest{
			Peer:  peer,
			Limit: 20,
		},
	)
	if err != nil {
		return err
	}

	messages := history.String()
	fmt.Printf(
		"retrieved msgs => %v\n",
		messages,
	)

What did you expect to see?
I expect successful compilation;
What did you see instead?
An error of type mismatch:
services/my-secret-thing/index.go:60:11: cannot use peer (variable of type *tg.ContactsResolvedPeer) as type tg.InputPeerClass in struct literal:
        *tg.ContactsResolvedPeer does not implement tg.InputPeerClass (missing construct method)

What Go version and environment are you using?
Go version: go1.18.8 linux/amd64

Same issue

This is not a bug in the library, the approach is wrong. You need to use the data retrieved from tg.ContactsResolvedPeer and fill it in tg.InputPeerClass to make it work.


Dashboard can't find "Flask" clean Ubuntu 20.04 install

  Virtualization: kvm
  Operating System: Ubuntu 20.04.2 LTS
  Kernel: Linux 5.4.0-77-generic
  Architecture: x86-64

wireguard/focal-updates,now 1.0.20200513-1~20.04.2 all [installed]
wireguard-tools/focal-updates,now 1.0.20200513-1~20.04.2 amd64 [installed,automatic]

I setup an Ubuntu VM, installed wireguard, pip, and then followed the install instructions for wireguard-dashboard.
Upon running this line "$ python3 -m pip install -r requirements.txt" I did receive a warning that Flask is not in the $PATH, but after logging out and back in, I see my $PATH was updated to include the "local bin."
When launching "$ ./wgd.sh start" as a user I get access denied.
When launching "$ sudo ./wgd.sh start" I get a log file which says:
Traceback (most recent call last):
  File "dashboard.py", line 3, in <module>
    from flask import Flask, request, render_template, redirect, url_for, session, abort, jsonify
ModuleNotFoundError: No module named 'flask'

Then I realized I needed to install all the pip modules as sudo, to make them accessible when running the script as sudo.
It is working now, after going back to install step 2 and doing:
$ sudo python3 -m pip install -r requirements.txt
Please consider updating the read me.

Issue resolved by installing pip modules as sudo


Multiarch Docker Image

It would be really nice to have a multi-arch docker image for this.
I would like to run this on a k3s raspberry pi cluster but it looks like the current docker image is only amd64?
This (https://itnext.io/ci-cd-for-a-multi-arch-go-application-using-github-actions-docker-buildx-helm-and-kubernetes-f415a42b2c82) seems to have a good example of how to implement building multi-arch docker images using github actions.

Sure!
I already have my standard way of building for multi-arch, it's just a matter of "doing it".

I also had to add libc6-compat to get it to work.
Here is the Dockerfile I use for building on and for raspberry pi.
FROM golang:1.13 as builder
COPY . /build
RUN cd /build && make build

FROM alpine:3.12
COPY --from=builder /build/fronius-exporter /usr/local/bin/fronius-exporter

RUN \
  apk add --no-cache libc6-compat

ENTRYPOINT ["/usr/local/bin/fronius-exporter"]

It works for 32 and 64 bit arm. I had to switch to 64 bit as prometheus does not very well on 32 bit.

@ccreamer happy to test the resulting image if you can push it somewhere

Hi.
I've release a pre-release with ARM. Please try if docker pull ghcr.io/ccremer/fronius-exporter:v0.9.0-rc1 works and runs for you.
Once you give confirmation, I can tag the full release.

@ccremer I'm currently running 32-bit raspbian OS so I would need an armv7 build as well as the arm64
pi@kube-master-0:~ $ sudo ctr image pull ghcr.io/ccremer/fronius-exporter:v0.9.0-rc1 ghcr.io/ccremer/fronius-exporter:v0.9.0-rc1:                                   resolved       |++++++++++++++++++++++++++++++++++++++|  index-sha256:8f51f2657ce3a5df7e14b6a8b5d73c969a3608455489d3af0b233d502c75d9ed: done           |++++++++++++++++++++++++++++++++++++++|  elapsed: 2.4 s                                                                 total:   0.0 B (0.0 B/s)                                          unpacking linux/arm/v7 sha256:8f51f2657ce3a5df7e14b6a8b5d73c969a3608455489d3af0b233d502c75d9ed... ctr: no match for platform in manifest sha256:8f51f2657ce3a5df7e14b6a8b5d73c969a3608455489d3af0b233d502c75d9ed: not found pi@kube-master-0:~ $ uname -a Linux kube-master-0 5.10.17-v7+ #1414 SMP Fri Apr 30 13:18:35 BST 2021 armv7l GNU/Linux pi@kube-master-0:~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

@ccremer I upgraded one of my node to 64 bit to test the amd64 image and it looks like its working well
I think the armv7 build is still worth having if its not too hard to add though
PS C:\Users\Mark> kubectl get nodes -o wide
NAME            STATUS   ROLES                  AGE    VERSION        INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION   CONTAINER-RUNTIME
kube-worker-0   Ready    <none>                 129d   v1.20.9+k3s1   <IP_ADDRESS>   <none>        Raspbian GNU/Linux 10 (buster)   5.10.17-v7+      containerd://1.4.8-k3s1
kube-master-0   Ready    control-plane,master   129d   v1.20.9+k3s1   <IP_ADDRESS>   <none>        Raspbian GNU/Linux 10 (buster)   5.10.17-v7+      containerd://1.4.8-k3s1
kube-master-1   Ready    <none>                 28m    v1.20.9+k3s1   <IP_ADDRESS>   <none>        Debian GNU/Linux 11 (bullseye)   5.10.63-v8+      containerd://1.4.8-k3s1
PS C:\Users\Mark> kubectl -n fronius get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP          NODE            NOMINATED NODE   READINESS GATES
fronius-exporter-845c44d889-6ghk5   1/1     Running   0          4m40s   <IP_ADDRESS>   kube-master-1   <none>           <none>
PS C:\Users\Mark> kubectl -n fronius exec fronius-exporter-845c44d889-6ghk5 -- curl -s localhost:8080/metrics
# HELP fronius_inverter_power Power flow of the inverter in Watt
# TYPE fronius_inverter_power gauge
fronius_inverter_power{inverter="1"} 4090
# HELP fronius_inverter_soc State of charge of the battery attached to the inverter in percent
# TYPE fronius_inverter_soc gauge
fronius_inverter_soc{inverter="1"} 0
# HELP fronius_scrape_duration_seconds Time it took to scrape the device in seconds
# TYPE fronius_scrape_duration_seconds gauge
fronius_scrape_duration_seconds 3.817705411
# HELP fronius_scrape_error_count Number of scrape errors
# TYPE fronius_scrape_error_count counter
fronius_scrape_error_count 0
# HELP fronius_site_autonomy_ratio Relative autonomy ratio of the site
# TYPE fronius_site_autonomy_ratio gauge
fronius_site_autonomy_ratio 1
# HELP fronius_site_energy_consumption Energy consumption in kWh
# TYPE fronius_site_energy_consumption gauge
fronius_site_energy_consumption{time_frame="day"} 15893
fronius_site_energy_consumption{time_frame="total"} 1.779274e+07
fronius_site_energy_consumption{time_frame="year"}<PHONE_NUMBER>625
# HELP fronius_site_mppt_current_dc Site mppt current DC in A
# TYPE fronius_site_mppt_current_dc gauge
fronius_site_mppt_current_dc{inverter="1",mppt="1"} 5.75
fronius_site_mppt_current_dc{inverter="1",mppt="2"} 5.7700000000000005
# HELP fronius_site_mppt_voltage Site mppt voltage in V
# TYPE fronius_site_mppt_voltage gauge
fronius_site_mppt_voltage{inverter="1",mppt="1"}<PHONE_NUMBER>0000003
fronius_site_mppt_voltage{inverter="1",mppt="2"} 329.8
# HELP fronius_site_power_accu Site power supplied to or provided from the accumulator(s) in Watt
# TYPE fronius_site_power_accu gauge
fronius_site_power_accu 0
# HELP fronius_site_power_grid Site power supplied to or provided from the grid in Watt
# TYPE fronius_site_power_grid gauge
fronius_site_power_grid -3584.78
# HELP fronius_site_power_load Site power load in Watt
# TYPE fronius_site_power_load gauge
fronius_site_power_load -505.2199999999998
# HELP fronius_site_power_photovoltaic Site power supplied to or provided from the accumulator(s) in Watt
# TYPE fronius_site_power_photovoltaic gauge
fronius_site_power_photovoltaic 4090
# HELP fronius_site_selfconsumption_ratio Relative self consumption ratio of the site
# TYPE fronius_site_selfconsumption_ratio gauge
fronius_site_selfconsumption_ratio 0.12352567237163808
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
go_gc_duration_seconds{quantile="0.5"} 0
go_gc_duration_seconds{quantile="0.75"} 0
go_gc_duration_seconds{quantile="1"} 0
go_gc_duration_seconds_sum 0
go_gc_duration_seconds_count 0
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 9
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.16.12"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 1.532784e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 1.532784e+06
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.445018e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 735
# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
# TYPE go_memstats_gc_cpu_fraction gauge
go_memstats_gc_cpu_fraction 0
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 4.09784e+06
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 1.532784e+06
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 6.4151552e+07
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 2.531328e+06
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 9357
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes gauge
go_memstats_heap_released_bytes 6.3995904e+07
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 6.668288e+07
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 0
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 0
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 10092
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 4800
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 16384
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 54264
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 65536
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 4.473924e+06
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 880958
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 425984
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 425984
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 7.36146e+07
# HELP go_threads Number of OS threads created.
# TYPE go_threads gauge
go_threads 6
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 0.25
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1.048576e+06
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 10
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 9.801728e+06
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.64135594445e+09
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 7.29391104e+08
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes 1.8446744073709552e+19
# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 4
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0
PS C:\Users\Mark> kubectl -n fronius logs fronius-exporter-845c44d889-6ghk5
time="2022-01-05T04:12:25Z" level=info msg="Starting exporter." commit=8d01b08f492cbe3883ba82cb721004fe3128146e date="2022-01-05 04:12:25.221047722 +0000 UTC m=+0.010260118" version=0.9.0-rc1
time="2022-01-05T04:12:25Z" level=info msg="Listening for scrapes." port=":8080"

@ccremer Working fine on both arch=arm and arch=arm64 using ghcr.io/ccremer/fronius-exporter:v0.9.0.
Thanks heaps!


Default speech doesn't match demo defaults

I have been playing with the demo as well as calling the interface.rs directly and have been unable to get the speech output from the API to match the demo. If I use the sample equation:
<math xmlns=\'http://www.w3.org/1998/Math/MathML\'>
    <mrow>
      <mi>x</mi>
      <mo>=</mo>
      <mfrac>
        <mrow>
          <mrow>
            <mo>-</mo>
            <mi>b</mi>
          </mrow>
          <mo>±</mo>
          <msqrt>
            <mrow>
              <msup>
                <mi>b</mi>
                <mn>2</mn>
              </msup>
              <mo>-</mo>
              <mrow>
                <mn>4</mn>
                <mo></mo>
                <mi>a</mi>
                <mo></mo>
                <mi>c</mi>
              </mrow>
            </mrow>
          </msqrt>
        </mrow>
        <mrow>
          <mn>2</mn>
          <mo></mo>
          <mi>a</mi>
        </mrow>
      </mfrac>
    </mrow>
</math>

The speech returned is:
x is equal to; the fraction with numerator; negative b plus or minus; the square root of b squared minus 4 eigh c; and denominator 2 eigh;
Which matches neither the "ClearSpeak" nor "SimpleSpeak" options. No amount of fiddling in the demo seems to produce the same speech I am receiving from the API and no amount of setting different preferences before calling set_mathml has enabled me to get the same results as the demo.

Thank you. If the TTS setting none produces the "eigh" utterance then what TTS setting produces the "a" utterance? Since I am generating output for both SSML and on-screen I need to switch the TTS setting back and forth.

It is basically a bug, but if you set TTS to none, you get "eigh", but if you set it to None, you get 'a'. Maybe I should claim it is a feature :-)


Update update-infrastructure-redhat.md

Remove version numbers from documentation, let repository determine latest version of client package.
//cc @BorisB2015 @asinn826

@paulmey : Thanks for your contribution! The author, @BorisB2015, has been notified to review your proposed change.

#sign-off


Title Extraction error

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2021.12.17
[ ] I've checked that all provided URLs are alive and playable in a browser
[ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

Python 3.10.10
PASTE VERBOSE LOG HERE

Input URL ::https://www.youtube.com/watch?v=5vIZ0kOpWvw
Error:ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
DownloadError('ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.')
Description
Error:ERROR: Unable to extract uploader id;
Code:
roxy=''
ydl_opts = {}
ydl_opts['proxy']= proxy
ydl_opts['outtmpl'] = '%s/%%(title)s.%%(ext)s  ' % (out_dir)
ydl_opts['logger'] = MyLogger()
ydl_opts['progress_hooks'] = [my_hook]
ydl_opts['format'] = 'best[ext=mp4]/best[ext=avi]'
ul, id = getYouTubeUrl(url)
# id = ''
# if m:
#    id = u = m.group(1)
ydl = youtube_dl.YoutubeDL(ydl_opts)

# Add all the available extractors
ydl.add_default_info_extractors()
try:
    result = ydl.extract_info(url, download=False)  # We just want to extract the info
except  (Exception) as err:
    print( repr(err))
    return None

Read and follow #30839. Use the checklist.


Add gosec linter

Add gosec G402 linter, which checks bad TLS settings.
Also add MinVersion for tls configs and add nosec for false positives.

Hi @bochengchu. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@bochengchu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
afd96a27625522e0ffe48d2ead9fb9c7b2a8d06a
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

Added G401 and G404 checkers.

/cherry-pick experimental-ambient

@ericvn: #41930 failed to apply on top of branch "experimental-ambient":
Applying: add gosec linter
Using index info to reconstruct a base tree...
M	common/config/.golangci.yml
M	pkg/hbone/dialer.go
M	pkg/test/echo/server/endpoint/http.go
M	security/pkg/nodeagent/caclient/providers/citadel/client_test.go
Falling back to patching base and 3-way merge...
Auto-merging security/pkg/nodeagent/caclient/providers/citadel/client_test.go
Auto-merging pkg/test/echo/server/endpoint/http.go
Auto-merging pkg/hbone/dialer.go
Auto-merging common/config/.golangci.yml
CONFLICT (content): Merge conflict in common/config/.golangci.yml
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 add gosec linter
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

In response to this:

/cherry-pick experimental-ambient

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@ericvn: new issue created for failed cherrypick: #42673

In response to this:

/cherry-pick experimental-ambient

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Automatically draw existing edges

https://www.loom.com/share/09de0f47b802405fbd6f84992af7d60d

ah I missed that case as well! Will include in my iteration /tomorrow


Cirrus docker image source incorrect after Flutter 3.7.7

Orb version:
2.0.1
What happened:
Attempting to use the Flutter version 3.7.11  returns the error
error response from daemon: manifest for cirrusci/flutter:3.7.11 not found: manifest unknown: manifest unknown
Expected behavior:
The daemon would find a docker image with the requested Flutter version
Additional Information:
CirrusCI changed from publishing their Flutter docker images on hub.docker.com after version 3.7.7 of Flutter.  So now instead of
cirrusci/flutter:3.7.11
it needs to request the image
ghcr.io/cirruslabs/flutter:3.7.11
Unfortunately the new docker image repository only goes back to Flutter 3.7.7 so to access any earlier Flutter versions the previous docker repository still needs to be used.

Hi @jblough thank you for bringing this to our attention, I'm currently working on a fix for this and should have a patch release cut by the end of the day


Rocket Foundation Project 🚀

Goal
We are aiming to solidify our library's foundation before implementing new classes and features. Our focus is:

Complete Functionality: Implement missing features in MemoryLedger to fully align it with the abstract base class.
Comprehensive Testing: Establish thorough testing to enable confident future changes or refactoring. Increase pyledger package test coverage to 90%+.
Coherence: Maintain coherence across various implementations of the base ledger class by applying similar tests to each implementation. Tests will be organized in a class hierarchy, with base test cases in a parent class and minimal adaptations for each specific implementation.

Sequence of Work
Preparation Phase
This step is prioritized first because understanding the testing strategy for StandaloneLedger is crucial for estimating and developing the base test logic. Research will focus on identifying the best approach for testing StandaloneLedger, which will then inform how the base test logic is implemented.

Step 1: Research & Develop Testing Strategy for StandaloneLedger
The goal is to create a universal testing approach that covers functionality common to every ledger system. Applying these tests to existing software such as CashCtrlLedger will validate the tests and ensure consistent behavior across all systems.

Step 2: Provide Estimates for Future Phases
Once the research and strategy are complete, provide detailed estimates for the remaining phases. This includes the scope, time, and resources needed for implementing the base test logic and the required functionality across all ledger systems.

Phase 1: Proof of Concept
This phase is important to test whether the base test concept works. It fully covers our goal cycle and allows us to be creative, ensuring alignment with the client about the concept we implement to solve the problem.

Step 3: Finalize MemoryLedger Implementation and Base Tests
Complete the implementation of missing methods specifically for the accessor, mutator, and mirroring logic in MemoryLedger for VAT codes, Accounts, and Ledger. Develop comprehensive base tests for these methods to validate their functionality.

Step 4: Adapt and Validate Base Tests for CashCtrlLedger
Apply the base test logic to CashCtrlLedger. Adjust as needed to account for its external nature.

Phase 2: Implementation Phase
At this point, the concept has been proven, and we have shared agreement with the team about the base test structure. Now, we need to implement this approach across the remaining codebase.

Step 5: Develop Base Test Logic for StandaloneLedger
Expand existing base tests (from MemoryLedger) to cover untested cases for StandaloneLedger, such as VAT booking logic, FX revaluation, and account balance. Ensure the base test suite is modular and adaptable for future extensions, including TextLedger and CashCtrlLedger.

Step 6: Implement and Test TextLedger
Implement missing methods in TextLedger to align with LedgerEngine. Apply the base test suite developed for MemoryLedger and StandaloneLedger to validate the functionality of TextLedger.

Step 7: Complete Test Coherence for CashCtrlLedger
Apply the base test suite developed for StandaloneLedger to validate the functionality of CashCtrlLedger.

Step 8: Refactor Mirroring Logic for CashCtrlLedger
Refactor the mirroring logic by moving the existing functionality from CashCtrlLedger to pyledger. This will streamline the codebase and ensure consistent handling of mirroring across ledger implementations.

Benefits of Splitting into Phases

Progress Visibility: By splitting into phases, both programmers and users can see tangible progress and adjust the current scope of work as necessary, either reducing or increasing the workload based on feedback and outcomes.
Iterative Feedback: Each phase provides an opportunity to gather feedback and gradually enhance alignment about the final product, ensuring that potential issues are caught early before progressing too far.
Better Estimation: By addressing foundational elements first, each subsequent phase can be estimated more accurately, reducing uncertainty.
Risk Mitigation: Phases ensure that testing principles and functionality are proven early on, avoiding the need for large-scale rewrites later.
Flexibility: Opportunity to redefine the process or the expected outcome based on learnings early in the process.

Completed project!!!