Created a new visual element - progress bar

Fixes #692
About
This PR creates a new progress bar visual element to be incorporated in Taipy.

I don't understand what you're trying to do ?
We want the component to generate 1 progress.
The component needs to be integrated into taipy-gui => we need to see an entry in factory.py if we want to be able to test it
the value should then be declared as dynamic.
The comments we made for the 1st PR are still valid here (Why use useEffect + useState when you're only testing a boolean value ?)

@FredLL-Avaiga, sorry for the misunderstanding, actually in the previous comments of the 1st PR, there was a suggestion that if the user wants to render 2 progress bars side by side, there has to be a functionality for that as well, here's the link, that's why I added the loop in the end so that if user wants to render more than one element, then it can be done easily. If it's not required, kindly let me know, I'll remove it👍🏼
Yes, I haven't added this file in the factory.py or in the index.ts. The tests about which I was talking about was the - ProgressBar.spec.tsx file.
Actually, I'm a beginner only, so that's why it's taking time for me to implement these. I apologize for the inconvenience caused, If any changes are required in this file, kindly tell, I'll implement those. I'll also add this file in the factory.py and in index.ts as well👍🏼

No problem at all, I suppose I should be more clear.
What I'd like is that 2 progress can be rendered side by side
ie in markdown it would be declared as <|progress|><|progress|>
The declaration in index.ts and factory.py allows to manually test the component and it's interaction with taipy.
It's quite easy as you only need to declare the component in those 2 files.
Let me know if/how I can help.

@FredLL-Avaiga, I've removed the progressBarCount param, since it was not required. I've also added the ProgressBar.tsx file to index.ts and factory.py. Could you please review and tell if any changes are required?

can you mark the discussions as resolved when they are ?

Made the changes @FredLL-Avaiga , could you please review those👍

@FredLL-Avaiga, could you please have a look at the changes in the factory.py. I've removed the with_default param and renamed showProgress -> showValue.

Thanks for the review, @FredLL-Avaiga . Also, do I've to add the Progress.spec.tsx file (like the tests)? I haven't added those yet.

Thanks for the review, @FredLL-Avaiga . Also, do I've to add the Progress.spec.tsx file (like the tests)? I haven't added those yet.

yes you do

@FredLL-Avaiga, I've created the tests file, but I'm not able to understand that how to add the tests completely. Could you please guide that what has to be put in here, like in the getByText("")?

@FredLL-Avaiga, I've created the tests file, but I'm not able to understand that how to add the tests completely. Could you please guide that what has to be put in here, like in the getByText("")?

Jest emulates a user Interaction.
So getbytext is used to retrieve an UI element by specifying the text that the user can see.
Once you get an element you can interact with it like a user would: click, type ...
I'm not sure it's the best for your use case.
But you can at least render the component and verify that everything shows as it should depending on the properties.
I suppose you can look at the indicator component for an example

@FredLL-Avaiga, I've just updated the progress element tests, could you please review those👍

looks good

Except that it does not work :-D

@FredLL-Avaiga, are the tests failing? Could you please guide that how can I run the tests? Like if I particularly want to check the Prorgress.spec.tsx file?

@FredLL-Avaiga, are the tests failing? Could you please guide that how can I run the tests? Like if I particularly want to check the Prorgress.spec.tsx file?
Check the log: https://github.com/Avaiga/taipy/actions/runs/9265910137/job/25488960881?pr=1303

You also need to write backend tests.
You can get inspiration from

tests\gui\builder\control\test_indicator.py
tests\gui\control\test_indicator.py

Also, @FredLL-Avaiga, to check if all the tests are passing, do I've to run the command npm run tests? Inside of the frontend dir?

@FredLL-Avaiga, I've recreated some tests in the Progress.spec.tsx file and they are all passing, could you please review those. Also, I'll add the tests in these 2 dirs  as well- tests\gui\builder\control\test_indicator.py and tests\gui\control\test_indicator.py

@FredLL-Avaiga, if I want to check that if all the tests in these files - tests\gui\builder\control\test_indicator.py and tests\gui\control\test_indicator.py, are passing, then how can I do that? Like what command I've to run?

@FredLL-Avaiga, if I want to check that if all the tests in these files - tests\gui\builder\control\test_indicator.py and tests\gui\control\test_indicator.py, are passing, then how can I do that? Like what command I've to run?

pipenv run pytest ...

@FredLL-Avaiga, when I tried to run the command - pipenv run pytest, but it's showing this error

Could you please guide regarding how should I create a test for markdown and html?

<|Progress|>=> <|progress|> ?

@FredLL-Avaiga, I tried this as well, but it's still not working, here's the error:
AssertionError: <CircularProgress not in
<|INVALID SYNTAX - Control is 'progress'|>

Is there some issue in the code in the factory.py file? (The code which I pushed)?

@FredLL-Avaiga, in the file - tests/gui/control/test_progress.py, I've run all the tests and all of those are passing. But, I'm facing an issue in the file - tests/gui/builder/control/test_progress.py, in this:
import taipy.gui.builder as tgb
from taipy.gui import Gui

def test_progress_builder(gui: Gui, helpers):
    with tgb.Page(frame=None) as page:
        tgb.progress()

In tgb.progress it's showing this error:

Could you please guide how to fix this?

Could you please guide how to fix this?

This is  not an error, the information is added at build time for the vscode extension

So, should I leave it like this only? It'll not create any issue, right?

When I'm running this test, it's showing this error:
AttributeError: module 'taipy.gui.builder' has no attribute 'progress'
The test:
import taipy.gui.builder as tgb
from taipy.gui import Gui
from tests.gui.helpers import Helpers

def test_progress_builder(gui: Gui, helpers: type[Helpers]):
    with tgb.Page(frame=None) as page:
        tgb.progress()  # type: ignore[attr-defined]
    expected_list = ["<Progress"]
    helpers.test_control_builder(gui, page, expected_list)

I tried running the test_button.py test as well, it's not showing any error, but why is it saying so that the progress is no attribute?

Did you push it to GitHub?

No, I haven't pushed it yet, may I push it @FredLL-Avaiga?

No, I haven't pushed it yet, may I push it @FredLL-Avaiga?

Why not, it's your PR
This way you'll see how/if the backend tests run

@FredLL-Avaiga, I've pushed my changes, could you please review the tests in the tests/gui/control/test_progress.py(these are all passing) and guide where I'm going wrong in tests/gui/builder/control/test_progress.py ?

Made the changes @FredLL-Avaiga, kindly review (but the error is still there 😢)

you need to update the viselements.json file to add a description of progress

Hey @FredLL-Avaiga, I've added this code in the taipy/gui/viselements.json at the top as well as in the 'undocumented' section. But, the attribute error is still there

Hey @FredLL-Avaiga, I've added this code in the taipy/gui/viselements.json at the top as well as in the 'undocumented' section. But, the attribute error is still there

No need to specify default_property=false but you need to set default_property=true
No need for default_value if it is None

Hey @FredLL-Avaiga, I've added this code in the taipy/gui/viselements.json at the top as well as in the 'undocumented' section. But, the attribute error is still there

No need to specify default_property=false but you need to set default_property=true No need for default_value if it is None showValue => show_value

@FredLL-Avaiga, do I've to set the default_property=true at both the places - linear and show_value?

Hey @FredLL-Avaiga, I've added this code in the taipy/gui/viselements.json at the top as well as in the 'undocumented' section. But, the attribute error is still there

No need to specify default_property=false but you need to set default_property=true No need for default_value if it is None showValue => show_value

@FredLL-Avaiga, do I've to set the default_property=true at both the places - linear and show_value?

No only for the default property (as set in factory.py) : value

@FredLL-Avaiga, I've pushed the changes, could you please review, if I've done it correctly?

Made the changes @FredLL-Avaiga, kindly review

Hey!! @FredLL-Avaiga, any update on this :)

Made the changes @FredLL-Avaiga 👍

Made the changes @FredLL-Avaiga 👍

Excellent! I think we can merge this first version after updating the branch.
What do you think?

Hey @FredLL-Avaiga, I've made the changes as suggested 👍 If any change has to be made, kindly LMK.
If this PR looks good, then should I remove it from the draft PR and make a real one for getting merged?

Hey @FredLL-Avaiga, I've made the changes as suggested 👍 If any change has to be made, kindly LMK. If this PR looks good, then should I remove it from the draft PR and make a real one for getting merged?

We're looking into the Builder issue
you can update the branch and make the PR ready for Merge

Hey @FredLL-Avaiga, I've made the changes as suggested 👍 If any change has to be made, kindly LMK. If this PR looks good, then should I remove it from the draft PR and make a real one for getting merged?

We're looking into the Builder issue you can update the branch and make the PR ready for Merge

We found a problem in the viselements.json, it will be pushed soon.
Please be careful when you update your branch.
I'll let you know when it's done

Hey @FredLL-Avaiga, I've made the changes as suggested 👍 If any change has to be made, kindly LMK. If this PR looks good, then should I remove it from the draft PR and make a real one for getting merged?

We're looking into the Builder issue you can update the branch and make the PR ready for Merge

We found a problem in the viselements.json, it will be pushed soon. Please be careful when you update your branch. I'll let you know when it's done

the viselements.json file has been updated in the repository
Please update your branch and everything should be fine (!)

@FredLL-Avaiga, I'm not able to view the changes? Have the changes been pushed?

Are you saying of this this commit?

@FredLL-Avaiga, actually, I was checking this commit, there are a lot of changes made in it. I don't think that all those were from my side ig? Like, in this PR commits, if I check, the only thing which has been added to viselements.json is the progress element and nothing has been deleted from that file.
Could you please guide that where have I made the mistake, so that for future contributions, I'll keep it in mind 👍

@FredLL-Avaiga, actually, I was checking this commit, there are a lot of changes made in it. I don't think that all those were from my side ig? Like, in this PR commits, if I check, the only thing which has been added to viselements.json is the progress element and nothing has been deleted from that file.
Could you please guide that where have I made the mistake, so that for future contributions, I'll keep it in mind 👍

As I said it's not you. We made the mistake and we fixed it.

BTW is the PR looking good @FredLL-Avaiga :)

BTW is the PR looking good @FredLL-Avaiga :)

You need to resolve the conflicts

Could you please guide that how can I do the same @FredLL-Avaiga?

Hey @FredLL-Avaiga, I've copied the viselements.json from the develop branch to my own branch, but it's still showing that Attribute error? That taipy.gui.builder has no attribute progress?

Hey @FredLL-Avaiga, do I've to make any other changes in the viselements.json file?

What do you think?

What do you think?

Ig, the viselements.json (my branch) is up to date with the develop branch?
I'm still trying to check that where's the error that why taipy.gui.builder is not able to find the progress element.

What do you think?

Ig, the viselements.json (my branch) is up to date with the develop branch? I'm still trying to check that where's the error that why taipy.gui.builder is not able to find the progress element.

GitHub shows that there are many differences between your viselemen,ts.json and the develop branch one.
I don't see the description of the progress component in that file.

Made the changes @FredLL-Avaiga 👍

@FredLL-Avaiga, changed default value of render to true👍

progress is not described in viselements.json

Ohh, yes! I just realized that. I apologize for my mistake. I copied the viselements.json into my branch, but forgot to add the progress in it. I've pushed the changes now. The test tests/gui/builder/control/test_progress.py which was earlier failing are also passing now 👍

Added the render in viselements.json👍 @FredLL-Avaiga

I'll invite @FabienLelaquais to review it and if he agrees I'll merge your PR
Well done

Thank you so much for your help to me complete this PR @FredLL-Avaiga 😀
Looking forward for more contributions

Hey @FabienLelaquais, ig there's some miscommunication, actually, in the above suggestions and also in the latest commit which I've made, the default value of linear param is false i.e. by default if linear is not mentioned, then the circular element will be rendered and in my latest commit, I've changed this in the viselements.json as well. I'll create one more commit to resolve all the above issues👍

Now I think everything is working fine @FabienLelaquais @FredLL-Avaiga ? I've set the default value of linear param as False because in the Progress.tsx file, by default the circular element is being rendered and not the linear one. If any change is required, do LMK👍

@FabienLelaquais @FredLL-Avaiga , any update on this :)

@yaten2302

any update on this

Sure. I had to talk with the team for opinion, and make a decision.
We will stick to what you first proposed: the default behavior for the progress element will be 'circular'.
Let me now look at the changes and hopefully approve!
Thanks

Thank you so much @FabienLelaquais for approving the PR👍
Looking forward for more contributions with Taipy🎉


GitHub stale action

Add a GitHub action to mark issues and PRs as stale and
to eventually close them after a grace period.
Signed-off-by: Valentin Rothberg<EMAIL_ADDRESS>

LGTM, although 30 days might be a little quick.  Will this wait 30 days from today to start removing, or will it remove issues/PRs that have not been updated from Sep28?

The code looks fine, but I'm not at all a fan of this.  I fear it will cause more work for us than necessary, and angst for our community.  I'm guessing we'll get the warning then jump in and change the issue to "do-not-close" 90% or more of the time and I don't see the payoff there.  But that's my $.02

LGTM, although 30 days might be a little quick. Will this wait 30 days from today to start removing, or will it remove issues/PRs that have not been updated from Sep28?

I agree, 30 days is too aggressive.  We can try with 90 days first and see how it goes.

LGTM, although 30 days might be a little quick.

We discussed 30 days yesterday in the meeting. @baude wdyt?

Will this wait 30 days from today to start removing, or will it remove issues/PRs that have not been updated from Sep28?

I expect it to count from Sep 28 in this case. Note that the bot will not close issues and PRs after 30 days but it will drop a comment and close after a grace period of 7 days and only close in the absence of activity or without the do-not-close label.

The code looks fine, but I'm not at all a fan of this. I fear it will cause more work for us than necessary, and angst for our community. I'm guessing we'll get the warning then jump in and change the issue to "do-not-close" 90% or more of the time and I don't see the payoff there. But that's my $.02

I understand this concern but accumulating old PRs and issues isn't good either. At the very least, the bot will buy us time going through the growing list and sending reminders. Certainly, the "do-not-close" label must be used with care. If it's overused we can remove it (also from the bot).

I will merge this and then we can play with the number after the fact.  This will at least get us to look at old stuff every 30 days and force people to acknowledge they still want it, or we close them.  Rather then letting them rot.
/lgtm


Bug: After setting "dock" to be "right", the window disappears

It's still there, somewhere, judging by the preview (on hover above the icon on taskbar), but it's beyond the boundary of the screen, and can't be brought back.
A solution I've found is to delete all contents of %appdata%/Terminus as merely changing config.yaml didn't help.

See my comment on #364:

I found killing Terminus and deleting %appdata%\Terminus\window.json fixes the issue.
The bug appears to be something related to windowBoundaries having nonsense large (or negative) numbers.

This really isn't stale and should be a simple fix. windowBoundaries should be min'd with the desktop boundaries.


Fix menus for mobil/small window

sm and extrasm menus are not programed.

estimate: 3-4hrs

Moved out of ToDos for now. Will happen gradually.


Image position - stretching image

Hello everyone. I have a problem with images using exceljs.  I tried workaround and so I just removed images from original excel file and inserted them with add image. Again stretched. So I tried not to specify cells for image to include, but also other(more specific option):
{tl: { col: 1.2, row: 0.4 }, br: { col: 3.2, row: 0.9 }}
This worked when row number was not decimal. Because the example above didn't scale the image
from 0.4 to 0.9 of the cell, but rather deformed it .. Which is weird as the image started the position on 0.4. This for example worked fine:
{tl: { col: 1.2, row: 0.4 }, br: { col: 3.2, row: 1 }}
but any decimal number in br->row does weird things.
I also tried to specify editAs attribute and all its options, but no luck there.
Am I doing something wrong or is it a bug? Is there any workaround where I can specify the place where I want to include image without stretching image?
Thank you for your help!

@Trynex interesting way of going around this issue.
Would it not be more practical to account the cell height and weight in the calculation or is this something that is not possible?

One can also use the sharp image processing library to add a transparent (or white) background to an image and scale the image whilst retaining it's aspect ratio. Then, placing this square image into a square cell will display it with the correct aspect ratio. Maybe an image is a simpler way of explaining:

The ratio between width an height in this library seems to be 0.14291498 (IDK why?). In other words, one can set col.width = 10 * 1.429149798 and row.height = 100 to get a square cell. Then, you can use the following sharp snippet to scale the image, preserving the aspect ratio and adding a white background to the image in the places where extra space is needed to keep the image square.
sharp(image)
      .resize(scale, scale)
      .background({r: 255, g: 255, b: 255})
      .embed()
      .toBuffer()
      .then(data => {
        // do something
      })

One could use this snippet to use a transparent background
sharp(image)
      .resize(scale, scale)
      .background({r: 0, g: 0, b: 0, alpha: 0})
      .embed()
      .toFormat(sharp.format.png)
      .toBuffer()
      .then(data => {
        // do something
      })

Super duper hacky but I got a working solution for my use case. Whether or not this will help you depends on your use case.

I'm just wondering why @Trynex's fix isn't pulled into master. It's an actual bug that editAs: 'absolute' doesn't actually do what it says.

@FelipeRobles92 This may be because you forgot to quote your file name
 workbook.xlsx.writeBuffer({
            base64: true
        }).then(buffer => FileSaver.saveAs(new Blob([buffer], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), `${Date.now()}_feedback.xlsx`)).catch(err => console.log('Error writing excel export', err))
    });

it just happens to me when export excel with image :(

I can confirm. This issue is still there. Same problem as OP posted.

@Trynex @jwmann @dmastag
Hello guys, i fix it in pull request #702,
comparing it to #691, i care about backward compatibility and write some test to ensure it works well.
if You need this changes quicly, i have build branch in my repo:
https://github.com/p3rio/exceljs/tree/build
npm:
    "dependencies": {
        "exceljs": "github:p3rio/exceljs#build"
    }

@Siemienik as soon as i get back to that project where i used exceljs, i will try out your fix and see if that fixes my problem. Ofc its better to have tests etc. I just did it to fix my issue fast without going too deep into execeljs code.

@alubbe @guyonroche
Hi!
An issue, which was resolved after #702 merged - came back again. Something happened, and images again stretched

An issue, which was resolved after #702 merged - came back again. Something happened, and images again stretched

any one found reason of that?

probably mess in installed dependencies. Can not reproduce it again

So .. does the bug still exists or was it fixed?

as for me, i cannot reproduce it again. So i'd say it's fixed

"editAs" : "absolute"

So as promised this is my fork of ExcelJS: https://github.com/Trynex/exceljs
The thing is that (after few hours debugging their code) I found they use fixed height and width of cells to calculate the position of your image. I had to break down excel (unzip it and look into the standard what is excel's structure) and I found out that first you have to specify where your image starts and ends (cell-wise: row and col property of model) and than colOff and rowOff is actuall stretching/position inside the cell of the image. This is what was calculated wrong and I didn't find any possibility to calculate colOff and rowOff easily and dynamically(since you would need to know the width and height of cells you insert the image into). So what I did is I added two new properties colOff and rowOff (obviously) for each of two existing tl and br properties. As you know from documentation tl is top left corner (cell wise) and br is bottom right. But now you need stretching right to specify like part of the cell where you want it.
(TLDR starts here:)
So basic example in original:
{
"tl": { "col": 1, "row": 0},
"br": { "col": 3, "row": 0},
"editAs" : "absolute"
}
But that stretches the wrong way as your cell width and height is not accounted for in calculation. So what you want to do here is to add specific position in the cell where these top left and bottom right corners will start in pixels.
Example with my fix:
{
"tl": { "col": 1, "row": 0, "colOff": 6, "rowOff": 14},
"br": { "col": 3, "row": 0, "colOff": 76, "rowOff": 55},
"editAs" : "absolute"
}
Try to play with it little and ask if you need any help.

@Trynex  How to calculate coloff and rowoff and what is the unit of coloff and rowoff ?

still not working and calculating rowOff & colOff is not clear

I'm trying to add an image to a specific cell, is there any way I can adjust the image size or the cell size so it can fit on the cell.?
    result.map(order => {
      const worksheet = workbook.addWorksheet(order.branch_code);

      worksheet.columns = [
        { header: 'Id', key: 'id', width: 10 },
        { header: 'Product Code', key: 'pcode', width: 20 },
        { header: 'Image', key: 'image', width: 50 },
      ];

      order.products.map(product => {
        const imageId = workbook.addImage({
          filename: `${PRODUCT_IMAGE_PATH}/${product.image}`,
          extension: 'jpeg',
        });

        worksheet.addRow({ id: product.products.id, pcode: product.products.product_code });
        worksheet.addImage(imageId, `C${position}:C${position}`);
        position++;
      });
    });

    await workbook.xlsx.writeFile('export.xlsx');
    ```

![image](https://user-images.githubusercontent.com/14838550/113600879-42fe8200-965e-11eb-9d22-54d921588b10.png)

but it looks like this, how can I fix this.?


ENH: Bring back setting to disable IPython console as default at startup

From<EMAIL_ADDRESS>on 2014-06-02T19:40:20Z
What steps will reproduce the problem?

Start Spyder and go to tools->preferences->IPython->startup

What is the expected output? What do you see instead?
There used to be an option to not use IPython by default. This is now gone. What version of the product are you using? On what operating system? 2.3.0rc on Win_x64 installed via conda
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1839

From contrebasse on 2014-06-03T16:24:20Z
Just close the ipython widget, It will stay closed at next start.

From ccordoba12 on 2014-06-09T09:05:18Z
Yes, as contrebasse explained, just close the console and it won't reappear at next restart.
However, if you want to use it again, just go to
View > Panes > IPython Console
We feel this is more intuitive to grasp, instead of looking for an option in our Preferences
Status: WontFix


[Bug]: Missing privacy manifest

Platform
macOS
Plugin
device_info_plus
package_info_plus
Version
device_info_plus  v10.1.2
package_info_plus  v8.0.2
Flutter SDK
3.24.2
Steps to reproduce
https://github.com/flutter/flutter/issues/143381#issuecomment-2340969960
Code Sample
No response
Logs
ITMS-91061: Missing privacy manifest - Your app includes “Contents/Frameworks/device_info_plus.framework/Versions/A/device_info_plus”, which includes device_info_plus, an SDK that was identified in the documentation as a privacy-impacting third-party SDK. Starting November 12, 2024, if a new app includes a privacy-impacting SDK, or an app update adds a new privacy-impacting SDK, the SDK must include a privacy manifest file. Please contact the provider of the SDK that includes this file to get an updated SDK version with a privacy manifest. For more details about this policy, including a list of SDKs that are required to include signatures and manifests, visit: https://developer.apple.com/support/third-party-SDK-requirements.

ITMS-91061: Missing privacy manifest - Your app includes “Contents/Frameworks/package_info_plus.framework/Versions/A/package_info_plus”, which includes package_info_plus, an SDK that was identified in the documentation as a privacy-impacting third-party SDK. Starting November 12, 2024, if a new app includes a privacy-impacting SDK, or an app update adds a new privacy-impacting SDK, the SDK must include a privacy manifest file. Please contact the provider of the SDK that includes this file to get an updated SDK version with a privacy manifest. For more details about this policy, including a list of SDKs that are required to include signatures and manifests, visit: https://developer.apple.com/support/third-party-SDK-requirements.

Flutter Doctor
[✓] Flutter (Channel stable, 3.24.2, on macOS 14.6.1 23G93 darwin-x64, locale zh-Hans-CN)
    • Flutter version 3.24.2 on channel stable at /Users/ying/fvm/versions/3.24.2
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4cf269e36d (7 天前), 2024-09-03 14:30:00 -0700
    • Engine revision a6bd3f1de1
    • Dart version 3.5.2
    • DevTools version 2.37.2

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/ying/Android/sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_SDK_ROOT = /Users/ying/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 81.1.3
    • Dart plugin version 242.21829.3

[✓] VS Code (version 1.93.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.96.0

[!] Proxy Configuration
    • HTTP_PROXY is set
    ! NO_PROXY is not set

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.6.1 23G93 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 128.0.6613.120
    ! Error: Browsing on the local area network for Kimmy's iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as
      this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Checklist before submitting a bug

[X] I searched issues in this repository and couldn't find such bug/problem
[X] I Google'd a solution and I couldn't find it
[X] I searched on StackOverflow for a solution and I couldn't find it
[X] I read the README.md file of the plugin
[X] I'm using the latest version of the plugin
[X] All dependencies are up to date with flutter pub upgrade
[X] I did a flutter clean
[X] I tried running the example project

We have the privacy manifests for iOS, but not macOS. If you want, you can submit a PR with the changes, copying over the iOS manifest to macOS and adjusting the podfile to reflect it.


[Bug Report] tree component can not delete node

Element UI version
2.4.6
OS/Browsers version
chrome  65.0.3325.181 (64bit)
Vue version
2.5.17
Reproduction Link
https://jsfiddle.net/8ousnvj4/
Steps to reproduce
clike delete button
What is Expected?
the node should be deleted
What is actually happening?
the node is not deleted

Duplicate of #12664


Improve error handling and naming on journal threads

What changes are proposed in this pull request?
This change improves lifecycle handling and monitoring on threads we manually create and manage in the journal.
Why are the changes needed?
Mostly this change does:

Adds uncaughtExceptionHandler to threads
Adds missing thread names
Sets the thread field to null when the thread does not exist any more, for better state induction
Fix a minor thread safety issue

Does this PR introduce any user facing changes?
NA

@tcrain @jenoudet Any more comments on the structure and unit tests?

alluxio-bot, merge this please


Rancher 2.0 and terraform interference on metadata

Rancher versions:
rancher/server: preview 2.0 Image: sha256:3cb94c58896a5dd73654df77b27952768a2f9ec2f09a8df52c0fb795a665e423
Infrastructure Stack versions:
kubernetes (if applicable): GKE 1.9.4-gke.1 imported
terraform: 0.11.7
Story:
We are managing some of our resources with terraform google_container_cluster kubernetes_namespace kubernetes_secret (passed to TF from vault) Mostly resources which developers shouldn't change but just use or public facing stuff. When we import cluster and assign namespace to project it adds metadata, on next terraform plan/apply it wants to remove those data. For these resources we really need IaC approach, no metter if terraform or other, but TF preferred.
  ~ kubernetes_namespace.awesome_team
      metadata.0.annotations.%:                                         "3" => "0"
      metadata.0.annotations.cattle.io/status:                          "{\"Conditions\":[{\"Type\":\"InitialRolesPopulated\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2018-04-17T19:49:20Z\"}]}" => ""
      metadata.0.annotations.field.cattle.io/projectId:                 "cluster-fg4ph:project-wqqq7" => ""
      metadata.0.annotations.lifecycle.cattle.io/create.namespace-auth: "true" => ""
      metadata.0.labels.%:                                              "2" => "1"
      metadata.0.labels.field.cattle.io/projectId:                      "project-wqqq7" => ""

  ~ kubernetes_service.service_public
      metadata.0.annotations.%:                                         "1" => "0"
      metadata.0.annotations.field.cattle.io/publicEndpoints:           "[{\"addresses\":[\"<IP_ADDRESS>\"],\"port\":2345,\"protocol\":\"TCP\",\"serviceName\":\"ns:service-public\",\"allNodes\":false}]" => ""

I have couple of questions in mind

how much does R2 rely on changing existing resources
are these metadata dynamic or can we hardcode them to TF? as bonus we might have Projects-Namespaces structure as code
do you plan to have R2 terraform provider

Steps to Reproduce:

create kubernetes namespace with terraform
import cluster into R2
assign namespace to project
run terraform plan

Results:

terraform wants to remove rancher's metadata from namespace

As bonus small bug: scaling deployment in ui cause to recreate whole deployment and so also all containers

Asking upstream if they have any thoughts on this. To answer your questions:
Rancher allows you to import and mange 100% of the cluster. So its possible that Rancher could change all sorts of things. I believe we are assigning these things dynamically, and they are generated IDs (project-wqqq7 is an id). We do plan to have a provider to support Rancher 2 concepts. Still, we would like to find a way for the native K8s provider and Rancher to co-exist.

Any workarounds available?

Found a workaround:
resource "kubernetes_namespace" "myns" {
  metadata {
    annotations = {
      "cattle.io/status" = "placeholder"
      "lifecycle.cattle.io/create.namespace-auth" = "placeholder"
    }
    name = "myns"
  }
  lifecycle {
    ignore_changes = [
      metadata[0].annotations["cattle.io/status"],
      metadata[0].annotations["lifecycle.cattle.io/create.namespace-auth"]
    ]
  }
}

This works in terraform 0.12.5 although I have no reason to think it won't work >=0.12.0

Thank you for the workaround! Just a hint: IntelliJ IDEA's inspection warning can be avoided using metadata.0.annotations["..."] instead of metadata[0].annotations["..."].

This is still an issue, please do not close this as stale.

!stale

Still an issue

The issue still remains.

Was this resolved? I’m not sure why this issue was closed.

Poorly tuned stale bot, looks like

Bump still isse

Still an issue


[C#] Initital dataflow tests

This PR includes,

Dataflow tests for existing AST structures.
Minor refactoring.

@DavidBakerEffendi , some unrelated changes are causing test failures. Not sure what the issue is.

Closing due to a git issue. Opened -  #4099.


Provided configuration is included into Runtime

This was originally reported as https://github.com/sbt/sbt/pull/5575
steps
Using sbt 1.4.0-SNAPSHOT with lm-coursier-shaded 2.0.0-RC6-7:
ThisBuild / scalaVersion := "2.13.3"

lazy val root = (project in file("."))
  .settings(
    libraryDependencies += "javax.servlet" % "servlet-api" % "2.5" % Provided,
  )

Then show Runtime/fullClasspath
problem
servlet-api is included into Runtime configuration:
sbt:root> show Runtime/fullClasspath
[info] Compiling 1 Scala source to /private/tmp/hello/target/scala-2.13/classes ...
[info] * Attributed(/private/tmp/hello/target/scala-2.13/classes)
[info] * Attributed(/Users/eed3si9n/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.3/scala-library-2.13.3.jar)
[info] * Attributed(/Users/eed3si9n/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar)

expectation
Provided-scoped dependencies are not included into Runtime.
notes
lm-coursier-shaded 2.0.0-RC6-4 used by sbt 1.3.13 seems to be ok.

I'm guessing that this is related to https://github.com/coursier/sbt-coursier/pull/235 or https://github.com/coursier/sbt-coursier/pull/239.
In sbt/librarymanagement the configuration hierarchy is set up in https://github.com/sbt/librarymanagement/blob/v1.3.4/core/src/main/scala/sbt/librarymanagement/ConfigurationExtra.scala. In this system, there are nominal Compile, Test, Runtime configurations and the internal configuration for each of them defined as:
  lazy val RuntimeInternal = optionalInternal(Runtime)
  lazy val TestInternal = fullInternal(Test)
  lazy val IntegrationTestInternal = fullInternal(IntegrationTest)
  lazy val CompileInternal = fullInternal(Compile)

where CompileInternal extends Compile, Optional, and Provided; however, RuntimeInternal extends Runtime and Optional only.


[BUG]-Registration of Hrxx0WirelessRemoteController missing

Describe the bug
I was able to successfully configure a HR-150 remote with version 1.5.6, but I can't seem to find where the device's register method is actually called if the gateway used has deviceKey "processor". Is it possible that the current device assumes that the gateway's Register method will be called? That certainly would be the case here since CenRfgwController inherits from CrestronGenericBaseDevice and registering the gateway would register all devices.
For the internal gateway, each infinet device still requires a register() call.
To Reproduce
Steps to reproduce the behavior:

Configure device as:

      {
        "name": "HR-150",
        "group": "remotes",
        "type": "hr150",
        "key": "hr150-1",
        "uid": 1,
        "properties": {
          "control": {
            "infinetId": "0x61"
          },
          "gatewayDeviceKey": "processor"
        }
      }

I set the debug level to 1 and couldn't see any of the buttonStateChange debug calls being triggered when pressing buttons.
Expected behavior
Hrxx0RemoteControl devices should have their own register() call if they are added to an internal gateway
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Just wanted to add that in the mean time, I compiled from source and update the last part of the preactivation func so that it calls the Crestron's GenericBaseExtensions RegisterWithLogging method when the gatewayDeviceKey == "processor":
...
// right after getting the gateway
            Hr1x0WirelessRemoteBase remoteBase;
            switch (type)
            {
                case ("hr100"):
                    remoteBase = new Hr100(rfId, gateway);
                    break;
                case ("hr150"):
                    remoteBase = new Hr150(rfId, gateway);
                    break;
                case ("hr310"):
                    remoteBase = new Hr310(rfId, gateway);
                    break;
                default:
                    return null;
            }

            // register the device when using an internal RF gateway
            if (props.GatewayDeviceKey == "processor")
            {
                remoteBase.RegisterWithLogging(config.Key);
            }

            return remoteBase;

Strangely enough - that's almost exactly the fix I was fiddling with.  I don't have access to an MC3 to test against, unfortunately.

Strangely enough - that's almost exactly the fix I was fiddling with. I don't have access to an MC3 to test against, unfortunately.

Ha! happy to test for you in you put a fix in a branch

If you want to make a branch and commit this fix, please make sure you reference this issue in your commit;  "Resolves #262"
In this way we can link the commit to the issue explicitely and trigger a code review on what you have.

Currently, that class inherits from EssentialsBridgeableDevice. Is there any reason that it couldn't be changed to inherit from CrestronGenericBridgeableBaseDevice? That class automatically includes registration as a PostActivationAction

@andrew-welker That's what I was thinking of initially. I'd imagine that it is ok to register a device even if it's not necessary due to it being added to an external gateway that will be registered too.

I'm not sure that's going to necessarily work, because CrestronGenericBridgeableBaseDevice requires the device to be in the constructor.  I'm not sure I can do the post-activation device instantiation using the func<> pattern we are using now.


🐛 fix: Fix SAML redirect code (302, not 200)

Currently, when a GET request is made to a SAML endpoint, the incorrect response code 200 is used, causing the handleHTTPExternalLogin method to not redirect a user to the authorisation server.
This change changes the response code to 302, allowing the http.StatusFound branch to be triggered, redirecting the user to the correct page.
I hereby consent to the Individual CLA provided in assets/cla/individual_cla.md

@7coil , thank you for the PR! Do you integrate with Azure?

Yeah! Our uni society is switching to Office 365.

Incidentally, I have no experience with Go or SAML, just spent a good 30 minutes just CTRL+F-ing just to try and find out why I couldn't log in.

@7coil , also, did README help configuring the setup?

To be honest, there were some parts that I felt seemed unnecessary and under-explained.
I can help improve it if you wish but I'm preparing for Fresher's Week so I won't be available for now.

To be honest, there were some parts that I felt seemed unnecessary and under-explained.

@7coil , great feedback! Thank you! Please do contribute ;-)


Add devcontainer setup for lolcode

Adds devcontainer setup for lolcode. Part of #871.
The euclidian method example doesn't work, I get this error:

contents/euclidean_algorithm/code/lolcode/euclid.lol:27 variable does not exist: EI

Documenting if anyone else needs it later: You can Run lolcode with lci


Issue with single addon causes entire decryption to fail

I'm getting this error when trying to extract/decrypt, however I confirmed that the cebe7a76_hassio_google_drive_backup.tar.gz file is present in the .tar archive, as well as in the backup.json (see attached).
backup.json
I only want to recover part of the files from this backup, but I haven't found a workaround.
I looked at #1  and confirmed I am able to open the root .tar file without issue, and can see all the .tar.gz files, but can not decrypt any of them. Is it possible to decrypt only one of these subfolders/archives? The utility as designed currently only appears to work on the root archive.
python3 -m decrypt-ha-backup Partial\ Backup\ 2024-03-01\ 03:00:00.tar --password='<redacted>'
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/nathang21/Downloads/ha-restore/lib/python3.12/site-packages/decrypt-ha-backup/__main__.py", line 266, in <module>
    main()
  File "/Users/nathang21/Downloads/ha-restore/lib/python3.12/site-packages/decrypt-ha-backup/__main__.py", line 233, in main
    backup = Backup(backup_file)
             ^^^^^^^^^^^^^^^^^^^
  File "/Users/nathang21/Downloads/ha-restore/lib/python3.12/site-packages/decrypt-ha-backup/__main__.py", line 66, in __init__
    self._items = [BackupItem(entry['slug'], entry['name'], self) for entry in self._config.get("addons")]
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/nathang21/Downloads/ha-restore/lib/python3.12/site-packages/decrypt-ha-backup/__main__.py", line 124, in __init__
    self._info = self._backup._tarfile.getmember(self.fileName)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File<EMAIL_ADDRESS>line 1985, in getmember
    raise KeyError("filename %r not found" % name)
KeyError: "filename './cebe7a76_hassio_google_drive_backup.tar.gz' not found"

sorry it took me a while to get back.  You're right, this is a a relatively arbitrary limitation in the script, mostly just because of how its written.  The easiest way to work around this would be to edit the archive manually:

Decompress the main archive into a folder.
Edit backup.json and remove all the entries in "addons" or "folders" referring to addons/folders you don't want included.
(optional) delete the archives associated with the removed folders/addons.
Recompress the folder into a tar.gz
Run the script on the modified archive

I'll see about adding a commandline arg to limit it to interacting with a subset of the archives inside it.

Just trying to restore a backup with a password made by HA 2024.1
Is this tool still working ?

It looks like they changed the backup format a little bit, and I'm having trouble getting HA to import encrypted backups that even it makes.  I'll fix this when I'm able to dedicate some time to sort out whats goign wrong here.

When I rearrange the tar file structure, I can use decrypt-ha-backup without any issue...

When I rearrange the tar file structure, I can use decrypt-ha-backup without any issue...

I'm running in the same issue, but I don't understand what you were rearranging to get things to work. Could you elaborate?

ah, now I get it, it's the leading ./ that's the problem.
diff --git a/decrypt-ha-backup/__main__.py b/decrypt-ha-backup/__main__.py
index 7ed4110..c24f16a 100644
--- a/decrypt-ha-backup/__main__.py
+++ b/decrypt-ha-backup/__main__.py
@@ -128,7 +128,7 @@ class BackupItem:
     @property
     def fileName(self):
         ext = ".tar.gz" if self._backup.compressed else ".tar"
-        return f"./{self._slug.replace('/', '_')}{ext}"
+        return f"{self._slug.replace('/', '_')}{ext}"

     @property
     def slug(self):

is the code change that gets things to work for me without futzing with my archive.

ah, now I get it, it's the leading ./ that's the problem.
diff --git a/decrypt-ha-backup/__main__.py b/decrypt-ha-backup/__main__.py
index 7ed4110..c24f16a 100644
--- a/decrypt-ha-backup/__main__.py
+++ b/decrypt-ha-backup/__main__.py
@@ -128,7 +128,7 @@ class BackupItem:
     @property
     def fileName(self):
         ext = ".tar.gz" if self._backup.compressed else ".tar"
-        return f"./{self._slug.replace('/', '_')}{ext}"
+        return f"{self._slug.replace('/', '_')}{ext}"

     @property
     def slug(self):

is the code change that gets things to work for me without futzing with my archive.

This patch worked for me. Thank you.


[Enhancement] Add Support for Parametric Polymorphism

Supporting polymorphism allows implementation of more abstract functions.
An example use-case written in Plutus:
helper :: [TxInInfo] -> [TxInInfo] -> (TxOut -> TxOut -> a) -> a
helper inputs references handler = ...

In this example, this helper function can expect specific patterns for the given inputs and reference inputs, while allowing various behaviors through it's handler argument.

At the risk of stating the obvious, this shouldn't open the door to dynamic typing. That is, if the return type is inferred as anything more concrete than the claimed polymorphism, the compiler should fail with a type error.

At the risk of stating the obvious, this shouldn't open the door to dynamic typing. That is, if the return type is inferred as anything more concrete than the claimed polymorphism, the compiler should fail with a type error.

In the above example a is constrained by MyTypeConstraint, and everything that is of type a has to be exactly of type a (no up or down casting). When calling the function the concrete type will have to be specified:
result: ConcreteType = helper[ConcreteType](...)

In most cases ConcreteType will be inferable though. @keyan-m are you ok with that?

@keyan-m It would be the cleanest way to support mutual recursion. Due to the limitations of Plutus-Core any kind of recursion requires passing functions as arguments.
Also: the most basic type-class can have to_data and from_data methods, which can be used to convert to/from primitive types much more cleanly (currently a lot of IR code is generated twice, once for bool and once for data (and int is kept as data).

The implementation has been merged into the dev branch.
If you have time, please help me test this.
Some examples:
A parametric function:
 func deserialize[A](a: Data) -> A {
      A::from_data(a)
    }

A parametric function a non-default typeclass:
 func get_value[V: Valuable](v: V) -> Value {
   v.value
 }

A parametric enum:
  testing merkle_trees

  enum BinaryTree[A] {
    // represents no value (null object pattern)
    Empty

    Leaf { hash: A }

    Node {
      hash: A
      left: BinaryTree[A]
      right: BinaryeTree[A]
    }
  }

  func main() -> Bool {
      a = BinaryTree[ByteArray]::Empty;
      b = BinaryTree[ByteArray]::Leaf{#abcd};
      c = BinaryTree[ByteArray]::Node{hash: #1234, left: a, right: b};
      (c.left == a).trace("left equal to a: ")
  }

A parametric struct with a parametric method:
testing type_parameters

  struct Pair[A, B] {
    a: A
    b: B

    func serialize_custom(self) -> ByteArray {
      self.a.serialize() + self.b.serialize()
    }

    func serialize_2[C](self, other: C) -> ByteArray {
      self.serialize_custom() + other.serialize()
    }
  }

  func main() -> Bool {
    p = Pair[Int, Int]{10, 11};

    p.serialize_custom().length < p.serialize_2(true).length
  }

Builtin typeclasses (WiP):

Any: matches everything, including functions (used in the fold methods)
default (empty): matches everything except function types
Valuable: anything with the value: Value getter (because getters can be defined by a user, this only matches TxInput, TxOutput and Value itself)

Notes:

only enum, struct, and func-statements can be parametric. Expressions are never parametric
user-defined typeclasses aren't yet possible

dev branch has been merged into main -> v0.14.0
@keyan-m feel free to close this issue once you get a chance to review the implementation

Thank you, we will hopefully get to test it in 2-3 weeks.

Everything is working so far, except it looks like tupled (or multi-valued) generics is giving an error. We were not sure if this was intended, since it encourages the use of using record/struct data types! Thanks for your implementation of generics. For our use case, it seems to be working well.

@ritterbush yes, that was intentional
Will close this issue, as it's been a while since I've seen any bugs related to this


SSL Load error

@vfarcic, I'm facing a with SSL certificates. My SSL certificate is distribute to the service through "docker secrets" for security reasons.
haproxy is throwing this error:
/ # haproxy -f /cfg/haproxy.cfg -p /var/run/haproxy.pid
[ALERT] 164/205019 (144) : parsing [/cfg/haproxy.cfg:47] : 'bind *:443' : 'crt-list' : error processing line 1 in file '/cfg/crt-list.txt' : unable to load SSL private key from PEM file '/certs/r.sb'.
[ALERT] 164/205019 (144) : Error(s) found in configuration file : /cfg/haproxy.cfg
[ALERT] 164/205019 (144) : Proxy 'services': no SSL certificate specified for bind '*:443' at [/cfg/haproxy.cfg:47] (use 'crt').
[ALERT] 164/205019 (144) : Fatal errors found in configuration.

This error is caused because haproxy is trying to load a certificate from an non pem encoded file.
Here is the /cfg/haproxy.cfg:
global
    pidfile /var/run/haproxy.pid
    tune.ssl.default-dh-param 2048

    # disable sslv3, prefer modern ciphers
    ssl-default-bind-options no-sslv3
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

    ssl-default-server-options no-sslv3
    ssl-default-server-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

resolvers docker
    nameserver dns <IP_ADDRESS>:53

defaults
    mode    http
    balance roundrobin

    option  dontlognull
    option  dontlog-normal
    option  http-keep-alive
    option  forwardfor
    option  redispatch

    errorfile 400 /errorfiles/400.http
    errorfile 403 /errorfiles/403.http
    errorfile 405 /errorfiles/405.http
    errorfile 408 /errorfiles/408.http
    errorfile 429 /errorfiles/429.http
    errorfile 500 /errorfiles/500.http
    errorfile 502 /errorfiles/502.http
    errorfile 503 /errorfiles/503.http
    errorfile 504 /errorfiles/504.http

    maxconn 5000
    timeout connect 5s
    timeout client  20s
    timeout server  20s
    timeout queue   30s
    timeout tunnel  3600s
    timeout http-request 5s
    timeout http-keep-alive 15s

frontend services
    bind *:80
    bind *:443 ssl crt-list /cfg/crt-list.txt
    mode http

    acl url_infra_registry5000 path_beg /
    acl domain_infra_registry hdr(host) -i r.sb
    use_backend infra_registry-be5000 if url_infra_registry5000 domain_infra_registry

backend infra_registry-be5000
    mode http
    server infra_registry infra_registry:5000

The file /cfg/crt-list.txt has two entries:
/certs/r.sb
/run/secrets/cert-sb.pem

What is happening is: docker-flow-proxy is adding a file "/certs/r.sb" into "/cfg/crt-list.txt" because the label "com.df.serviceDomain=r.sb" added to registry service from infra stack. The file "/certs/r.sb" has this content:
/run/secrets/cert-sb.pem

This is causing the mentioned error in haproxy, because /certs/r.sb is a file with an unknow content. haproxy expects that /certs/r.sb is a pem encoded file, and not a plain text file.
If I remove the label "com.df.serviceDomain=r.sb" from registry service and deploy it again, docker-flow-proxy creates "/cfg/crt-list.txt" with this content:
/certs/infra_registry
/run/secrets/cert-sb.pem

Again, the error is almost the same, but with an another file (/certs/infra_registry). This file has the same content of /certs/r.sb file.
haproxy -f /cfg/haproxy.cfg -p /var/run/haproxy.pid
[ALERT] 164/210129 (191) : parsing [/cfg/haproxy.cfg:47] : 'bind *:443' : 'crt-list' : error processing line 1 in file '/cfg/crt-list.txt' : unable to load SSL private key from PEM file '/certs/infra_registry'.
[ALERT] 164/210129 (191) : Error(s) found in configuration file : /cfg/haproxy.cfg
[ALERT] 164/210129 (191) : Proxy 'services': no SSL certificate specified for bind '*:443' at [/cfg/haproxy.cfg:47] (use 'crt').
[ALERT] 164/210129 (191) : Fatal errors found in configuration.

If I remove /certs/infra_registry or /certs/r.sb from /cfg/crt-list.txt, in booth case, haproxy starts without any error.
Here are some details of my env:
root@swarm-manager-001:~# docker secret ls |grep cert-sb.pem
hye49hp6x027k0eqknhdyp4dj   global_cert-sb.pem                   2 weeks ago         2 days ago

docker-compose-proxy.yml
version: "3.2"

networks:
  out:
    driver: overlay
    ipam:
      driver: default
      config:
        - subnet: <IP_ADDRESS>/16

secrets:
  global_cert-sb.pem:
    external: true

services:
  proxy:
    image: vfarcic/docker-flow-proxy
    deploy:
      mode: global
    environment:
      - LISTENER_ADDRESS=swarm-listener
      - MODE=swarm
    secrets:
      - source: global_cert-sb.pem
        target: cert-sb.pem
    networks:
      - out
    ports:
      - "443:443"
      - "80:80"
      - "8080:8080"

  swarm-listener:
    image: vfarcic/docker-flow-swarm-listener
    deploy:
      mode: global
      placement:
        constraints:
          - node.role == manager
    environment:
      - DF_NOTIF_CREATE_SERVICE_URL=http://proxy:8080/v1/docker-flow-proxy/reconfigure
      - DF_NOTIF_REMOVE_SERVICE_URL=http://proxy:8080/v1/docker-flow-proxy/remove
    networks:
      - out
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

docker-compose-infra.yml
version: "3.2"

volumes:
  docker.infra.registry.config:
    external: true
  docker.infra.registry.images:
    external: true

networks:
  proxy_out:
    external: true

services:
  registry:
    image: registry:2
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        reservations:
          memory: 100m
      labels:
        - com.df.notify=true
        - com.df.distribute=true
        - com.df.servicePath=/
        - com.df.serviceDomain=r.sb
        - com.df.port=5000
        - com.df.serviceCert=/run/secrets/cert-sb.pem
    networks:
      - proxy_out
    volumes:
      - docker.infra.registry.config:/etc/registry
      - docker.infra.registry.images:/var/lib/registry

docker-compose-global.yml
version: "3.2"

secrets:
  ca-certificates.crt:
    file: ../certs/ca-certificates.crt
  cert-sb.pem:
    file: ../certs/sb/wildcard/cert-sb.pem
  cert-sb.crt:
    file: ../certs/sb/wildcard/cert-sb.crt
  cert-sb.key:
    file: ../certs/sb/wildcard/cert-sb.key

@vfarcic I've found the issue. It is related to this label: serviceCert. Acording to the docs, this label expects a CONTENT of the PEM-encoded certificate to be used by the proxy when serving traffic over SSL and NOT the filename. So, if we use docker secrets or mounted volumes, it doesn't need to be used.
I've used that configuration because I was think that I need to point to each service its related certificate file. But, as explained here: http://cbonte.github.io/haproxy-dconv/configuration-1.6.html#5.1-crt, if the browser supports SNI, haproxy automatically chooses the correct certificate file for that domain.
After remove that label, the proxy worked very fine.


Introduce caching

Many Grafana Data Sources can support caching. It is enabled in the data sources settings. This request is to introduce caching of results from Trino.

I missed that there was already a issue open for this.


[AutoPR sql/resource-manager] Add sql/resource-manager/readme.typescript.md

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4096

(message created by the CI based on PR content)


Pretrained model for colossal chat

Describe the feature
Is it possible to download (or if they are already public, where is possible to find them) the pre-trained models to test inference of colossalChat (i.e Coati7B, LLaMA-xx) to execute some quick test?
I would the understand the state of the art of this model, before execute an estensive train.
Thank you

I'd also like to know the answer to this question.


added stopwords cleaner with tests

This is an interesting addition! For applications that match text this looks very useful. Thank you.
The build fails with a compile error: /home/travis/build/larsga/Duke/duke-core/src/main/java/no/priv/garshol/duke/cleaners/StopwordsCleaner.java:[49,21] error: cannot find symbol
Looks like you're using a newer Java version. Please fix that.
Also, please remove the .idea folder from the PR.
I'll go through the code and comment on that now.

Okay, I will update this.

Thank you! That's much appreciated. I hope you agree with the comments. If not, just let me know.

Larsga,
I have updated every point except for -

.idea folder
the test case which you mentioned.

Thanks


Is vue-hackernews a tool for the backend template engine like EJS and express-hbs?

Is vue-hackernews a tool for the backend template engine like EJS and express-hbs?

No it's not.