text:
Add Time-based Onetime Password Multi-factor Authentication Module

Description:
totp is Time-based One Time Password module which compatible with Google Authenticator and Authy.
See #15489 learn more about multi-factor authentication module
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):
# configuration.yaml
homeassistant:
  # Auth Provider
  auth_providers:
    - type: homeassistant
  auth_mfa_modules:
    - type: totp

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code does not interact with devices:

[x] Tests have been added to verify that the new code works.

PR order problem, the setup flow part need wait #16141 merged first.

Rebase on #16141, add setup flow, add QR code generation
Need first merge #16141, then merge https://github.com/home-assistant/home-assistant-polymer/pull/1590, then merge this PR, finally need add/fix translate to display QR code

The only thing left is translation string. I am not familiar with the process, @balloob can you take care of it?

I will but won't have time today. Will do it tomorrow.

authors: awarecan balloob


text:
WIP: Add group foundation

Description:
This adds the bare minimal foundation for groups.
Does not add editing of groups, creation of groups, API to fetch groups.
Because it requires a migration of the auth storage, I am also fixing the data to no longer have to do backwards compat checks during normal load.
Architecture issue: https://github.com/home-assistant/architecture/issues/87
Things to note:

We are creating one group called "All Access"
All non-system generated users will be added to the "All Access" group
A new user that is created will also be added to this group
This PR includes a migration for the auth storage. This means that users will be unable to rollback to 79 from 80. No longer includes migration

Related issue (if applicable): For #16890
Pull request in home-assistant.io with documentation (if applicable): TODO dev docs update
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If the code does not interact with devices:

[x] Tests have been added to verify that the new code works.

This is ready for review.

Update: I realized that in 79 we have coded the auth store in such a way that it can't handle a rollback from having groups added. So I am going to open a PR with changes that will allow for rollbacks once groups arrive.

Fixed in #17127

source: gharchive/pull-request

repo: home-assistant/home-assistant

license_type: permissive

license_source: github-api


text:
Add Livebox Router

Description:
Add Orange Livebox (router)
Sensors for bandwith ans status connection
Device Trackers
Pull request with documentation for home-assistant.io (if applicable): home-assistant/home-assistant.io#10260
Example entry for configuration.yaml (if applicable):
      livebox:
         host:
         port:
         username:
         password:

Checklist:

[X] The code change is tested and works locally.
[X] Local tests pass with tox. Your PR cannot be merged unless tests pass
[X] There is no commented out code in this PR.
[X] I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

Sorry Martin , big bug between the chair and the keyboard.
I took all your remarks and I corrected everything

Many of my earlier comments have not been addressed.

Ok I added all the recommendations of the previous PR 26318

Many of my earlier comments have not been addressed.

This code
tasks = []
for component in COMPONENTS:
tasks.append(
hass.config_entries.async_forward_entry_unload(config_entry, component))
return all(await asyncio.gather(*tasks))
is Not OK . Infinite Loop or Max depth exceed.

is Not OK . Infinite Loop or Max depth exceed.

Please push the code, and I can have a look.

Don't give up ;) I'm waiting for this plugin.
Take care.

this pl

Don't give up ;) I'm waiting for this plugin.
Take care.

the plugin works but they do not want to take it
You can copy the directory to custom_components if you want and it will appear in the Integration menu

@Cyr-ius are you planning to continue here?

yes I would like to continue but what needs to be improved?

@Cyr-ius are you planning to continue here?

yes I would like to continue but what needs to be improved?

The comments need to be addressed and the build needs to pass.

authors: Cyr-ius MartinHjelmare Toukassay


text:
Fix set volume level

Proposed change
afsapi requires an int in the 0-20 range but we receive a float in the 0.0-1.0 range so we have to cast and offset it
Type of change

[ ] Dependency upgrade
[x] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Example entry for configuration.yaml:

  - platform: frontier_silicon
    host: 192.168.0.17

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[ ] I have followed the development checklist
[ ] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

[ ] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

Hi @maxcanna,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

authors: homeassistant maxcanna


text:
Improvements to zwave lock platform

Description:
Improvements to the zwave lock platform.
Locks that uses the notification cc does not provide state in the old command_class_door_lock.
It is still used as a fallback for devices using this command_class.
Also support for attribute how the lock was locked/unlocked via the notification cc.
Available datas are:
'Manual Lock',
'Manual Unlock',
'RF Lock',
'RF Unlock',
'Keypad Lock',
'Keypad Unlock',
'Unknown Event'

Looks good over here 👍

authors: devdelay turbokongen


text:
[sensor.zamg] Update Station List (all capitols of Austria)

all capitols of austria:
Bregenz (Vorarlberg) Station_ID: 11101
Eisenstadt (Burgenland) Station_ID: 11190
Graz (Steiermark) Station_ID: 11240 (Flughafen), 11238 (Strassgang), 11290 (Universität)
Innsbruck (Tirol) Station_ID: 11120 (Flughafen), 11320 (Universität)
Klagenfurt (Kärnten) Station_ID: 11231 (Flughafen)
Linz (Oberösterreich) Station_ID: 11060 (Stadt)
Salzburg (Salzburg) Station_ID: 11150 (Flughafen), 11350 (Freisaal)
Sankt Pölten (Niederösterreich) Station_ID: 11389 (Stadt)
Wien (Wien) Station_ID: 11090 (Donaufeld), 11035 (Hohe Warte 1), 11033 (Hohe Warte 2), 11034 (Innere Stadt), 11044 (Jubiläumswarte), 11080 (Mariabrunn), 11042 (Stammersdorf), 11040 (Unterlaa)
Description:
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Instead of maintaining the 270 stations we could work with the CSV as source for the stations. I think that if we do caching the 30 kB to download does not really affect the launch time of HA.
Reference: https://github.com/home-assistant/home-assistant/commit/dbcad34b47e4adadf02c6f76d076396074f73dde

The problem here is - the csv which is downloaded from the plugin (http://www.zamg.ac.at/ogd/) does only contain a couple of stations. So working with the full stations csv list is not possible at the moment and I quess also the patch is more or less senseless until http://www.zamg.ac.at/ogd/ contains more stations.
However - I would suggest to just remove the VALID_STATION_IDS list and mention in the documentation where a valid id can be found.

what's the final result?

I would suggest to leave it as it is for now - it will work as soon as the ids are added to the data csv (http://www.zamg.ac.at/ogd/).
But we should think if it makes sense to remove the VALID_STATION_IDS list in an upcoming release.. I'd vote for that!

I agree with @HerrHofrat. Let's remove the VALID_STATION_IDS and update the docs.

I'm down for removing it too

Hi @themuggle,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

+1 for removing the whitelist and updating the docs (including openweathermap config).  I had to think about similar issues for Australia in #5153, and ended up preferring automatic detection - or a try-and-fail-gracefully approach if the user supplies a station ID.
I'd suggest something similar here, and would be happy to help out - though I only speak English sorry.
Autodetection could use this csv to get the {(lat, lon): station_id} mapping, and then find the nearest station to the user which has data (in this csv, unless another source is added).  'failing gracefully' would mean putting an else on this for loop, so that an exception is raised if the configured station does not appear in the data - plus trying this in setup_platform and reporting any failure.  I'd also suggest using the interface for the weather component - it's dead easy to implement from the sensor, also demo-ed in the pull above.

+1 for removing the whitelist and updating the docs (including openweathermap config). I had to think about similar issues for Australia in #5153, and ended up preferring automatic detection - or a try-and-fail-gracefully approach if the user supplies a station ID.

Note that most of that can be found in the commit history, the station whitelist as well as the check for a correct station id in the loop was there but was removed on request from the HA team.
Cheers!

I was proposing no whitelist at all - just validate against \d* and if it's a strign of digits, try it out!  In order to check this in platform_setup, we can try fetching data and only add the sensor(s) if that succeeds.
Also: the update schedule is currently pretty naive - get every 30 mins for hourly data, so it's potentially 29 mins late and twice as many requests as we need.  Given the Zeit column in the data, we could instead try once per minute starting an hour after the last known conditions.  (sensor.bom does this for half-hourly data)

@Zac-HD .homeassistant

Not ready yet, but here's my WIP pull.  Docs and optional config still to come.

@Zac-HD Any updates on this PR?

Probably next week - I'm currently at a conference and won't have any free brain capacity until afterwards.

@Zac-HD any updates?
If there are no plans to finish this in the near future - lets close this PR (and reopen if you come back to this)

See #5894 - I think I've responded to all review comments; if there's anything else let me know there.

Hi @themuggle,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Fixed with #5894

authors: HerrHofrat Zac-HD andrey-git balloob fabaff homeassistant mjl themuggle


text:
Migrate cover component to async

Description:

Migrate cover to async.

🎉  awesome!

authors: balloob pvizeli


text:
Fix Met Office Sensor

Description:
Fixes the Met Office sensor issues raised at https://community.home-assistant.io/t/metoffice-integration/15537. No new dependencies or files.
Related issue (if applicable): fixes https://community.home-assistant.io/t/metoffice-integration/15537
Pull request in home-assistant.github.io with documentation (if applicable): N/A, no configuration changes
Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Thanks!
Cherry-picked for 0.46.1

authors: balloob cyberjacob


text:
skip_words are not parsed

Im trying to use HassILGrammar to define skip_words in the italian language's _common.yaml file (#607).
I would like to add this line:
skip_words:
  [...]
  - "puoi [dirmi]"

CI breaks.
While Adding :
skip_words:
  [...]
  - "puoi"
  - "puoi dirmi"

CI does not break.
Is not parsing skip_words the desired behaviour?

Correct. Skip words should not contain template syntax. They have their whitespace normalized and are casefold-ed, but are otherwise interpreted literally.

source: gharchive/issue

authors: alessandroias synesthesiam

repo: home-assistant/intents


text:
Cameras Always Marked “Favorite” after 2.0.0

I don’t understand what could possibly cause this from the Homebridge and plugin side, but after updating to 2.0.0 the cameras are always marked as favorites. If you toggle that off, it has no effect and ends up on again as soon as you close the dialog.
Nothing relevant shows up in the logs, and it happens with two different Homebridge installations and from multiple iOS devices.

I have observed this same issue with a recent update to the Ring homebridge plugin. I wasn’t able to find a fix so I reverted to a previous version. I haven’t installed the 2.0.0 update for this camera plugin yet. I plan on doing so tomorrow. I’ll comment again if I have the same issue with this plugin.

Interestingly, I also have the Ring plugin, but that works as expected, and I’m able to have that not marked as a favorite...

Not sure how that can be the plugin. Think it’s a HomeKit thing. Workaround that I have seen work on things like this, is diving into secondary accessories, like the motion sensor and the light switch then go back and make sure favorite is unchecked. After that close out and it should stop being a favorite.

I don’t have any secondary accessories on any of the cameras (3 cameras across 2 installations), so there is no way to do that.
And I agree it doesn’t make sense to be the plugin, but the fact remains that it worked on the previous version, so it seems to be a quirk of HomeKit being hit by some change in 2.0.0.

simple turn-off favorite marker, than turn-on, than turn-off again, camera will be removed from favorites. it's homekit bug. I've seen the same thing with some other non-camera devices.

I was eventually able to remove them as favorites, I just kept trying periodically and eventually, one at a time, the setting took.

authors: MikeDProducer Sunoo donavanbecker mrmaximas


text:
Last update does not appear in the dashboard

Describe The Bug
Last update does not appear in the dashboard.
I think it is because you changed the URLs of the repository.
Logs
No response
Config
No response
Homebridge UI Version
4.50.2
Homebridge Version
1.6.1
Node.js Version
18.16.0
Operating System
Raspberry Pi OS / Raspbian
Environment Info

[ ] Using Docker?
[ ] Using Hyper-V?
[X] Using hb-service?

Raspberry Pi Model
Raspberry Pi 4 B

yeah does not show

The issue is the automated publishing is not working yet, give us a few more hours.
https://github.com/homebridge/homebridge-config-ui-x/commits/beta-4.50.4

And the release was published a few minutes ago.  Still have a minor issue with the release workflow version numbering as the published version number on npm is 4.50.3, while GitHub is 4.50.4.  And the change log is not displaying correctly.
Will resolve these with the next release.

repo: homebridge/homebridge-config-ui-x

license: MIT


text:
hb-service status reporting that homebridge isn't running when it is

Describe The Bug
I wasn't sure whether to report this on the main homebridge repo or this one, but I believe the hb-service is part of the config-ui-x. If that's not the case I'm happy for this to be closed and I can report it on the homebridge repo if needed.
Also, this isn't actually causing me any issues since the information I'm getting from the command is incorrect, so my homebridge is still running fine and I can still use everything, its just a small bug I noticed recently that I noticed hadn't been fixed in the last few updates so I thought I would flag it up.
I'm not 100% sure when this started happening, but I suspect it was around the time Bookworm was officially released as that seemed to cause no end of issues for me with other things, but I noticed a couple of days ago that when I run
sudo hb-service status
it is always reporting that Homebridge UI is not running (Screenshot attached). I am running homebridge on a RPi 400 that is running Debian Bookworm, and I followed the official instructions for the installation of homebridge. As such I have the repository added to my sources list so last night I reinstalled homebridge with
sudo apt-get install --reinstall homebridge
to see if that would fix the issue but it didn't. I have been reading through your documentation again today and have noticed that on the list of commands given for a Debian install of homebridge, 'hb-service status' isn't actually listed along with the others ('start, stop, restart, logs, etc..), so I'm wondering whether it has been removed from this type of setup? It is still reported in the command line though when you run 'sudo hb-service' for the usage information (Second screenshot attached).
I should also mention I am currently running the latest beta versions of both homebridge and hombridge-config-ui-x, so I thought it might just be an issue with one of those. However when I did my reinstall last night, it put me back on the latest official release of both so I ran the command then with the same output, before switching back to both beta's and trying the command again (with the same output again).
As I said, it's not causing me any issues myself and the rest of the commands seem to be working, as is the rest of my homebridge installation, but I just wanted to flag it up. I've been using homebridge for years now on a few different platforms over the years and I absolutely love it, so keep up the good work guys! I've also been using the beta versions for as long as I can remember and never given any feedback, so I thought it might be about time I made myself useful and reported something.
Let me know if you need any further information from me to help with this, and Happy New Year to everyone 😁 !!

Logs
HomeKitPi:~:% sudo hb-service status
ℹ Testing hb-service is running on port 8581...
✖ Homebridge UI Not Running
Config
{
    "bridge": {
        "name": "Homebridge ****",
        "username": "**:**:**:**:**:**",
        "port": *****,
        "pin": "***-**-***",
        "bind": [
            "eth0",
            "wlan0"
        ],
        "advertiser": "resolved"
    },
    "platforms": [
        {
            "name": "My Homebridge",
            "port": 8581,
            "auth": "form",
            "theme": "dark-mode-grey",
            "temp": "/sys/class/thermal/thermal_zone0/temp",
            "tempUnits": "c",
            "lang": "auto",
            "sudo": true,
            "sessionTimeout": 86400000,
            "ssl": {
                "key": "/var/lib/homebridge/certs/privkey.pem",
                "cert": "/var/lib/homebridge/certs/fullchain.pem"
            },
            "linux": {
                "shutdown": "sudo shutdown",
                "restart": "sudo reboot"
            },
            "scheduledBackupPath": "/home/homebridge/homebridgeBackups",
            "platform": "config"
        },
        {
            "name": "TuyaWebPlatform",
            "options": {
                "platform": "tuya"
            },
            "defaults": [
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness"
                    ]
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness"
                    ]
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness",
                        "Color"
                    ]
                },
                {
                    "device_type": "light"
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness",
                        "Color"
                    ]
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness",
                        "Color"
                    ]
                },
                {
                    "device_type": "light"
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness",
                        "Color"
                    ]
                },
                {
                    "device_type": "light"
                },
                {
                    "device_type": "light"
                },
                {
                    "device_type": "light"
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness"
                    ]
                },
                {
                    "device_type": "light"
                },
                {
                    "device_type": "outlet"
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness"
                    ]
                },
                {
                    "device_type": "light",
                    "min_brightness": "0",
                    "max_brightness": "1100",
                    "light_characteristics": [
                        "Brightness"
                    ]
                },
                {
                    "device_type": "outlet"
                }
            ],
            "scenes": false,
            "hiddenAccessories": [],
            "_bridge": {},
            "platform": "TuyaWebPlatform"
        },
        {
            "options": {
                "lang": "en",
                "projectType": "2",
                "valve": [
                    {
                        "isActive": true
                    }
                ],
                "motion": [
                    {
                        "overrideTuya": 0
                    }
                ],
                "ignoreDevices": [],
                "debug": false
            },
            "name": "TuyaPlatform",
            "_bridge": {},
            "platform": "TuyaPlatform"
        },
        {
            "name": "TuyaIR",
            "deviceRegion": "eu",
            "smartIR": [
                {
                    "autoFetchRemotesFromServer": false,
                    "configuredRemotes": [
                        {
                            "diy": true,
                            "model": "Tower Fan",
                            "brand": "Honeywell"
                        },
                        {
                            "model": "TV",
                            "brand": "LG"
                        }
                    ]
                }
            ],
            "platform": "TuyaIR",
            "_bridge": {}
        }
    ],
    "accessories": [
        {
            "accessory": "http-motion-sensor",
            "name": "Bedroom Motion Sensor",
            "port": ****,
            "_bridge": {}
        }
    ],
    "disabledPlugins": [
        "homebridge-dummy",
        "homebridge-dummy-radio-switch"
    ]
}

Homebridge UI Version
v4.54.2-beta.79
Homebridge Version
v1.7.1-beta.21
Node.js Version
v20.10.0
Operating System
Ubuntu / Debian (or a variant)
Environment Info

[ ] Using Docker?
[ ] Using Hyper-V?
[X] Using hb-service?

Raspberry Pi Model
Other (specify in description)

Under the covers homebridge-config-ui-x is running a very simple command to determine if the homebridge UI is running - https://github.com/homebridge/homebridge-config-ui-x/blob/f63405f68a55416be3f9bb3ee4d47227b78d691c/src/bin/hb-service.ts#L1289
You can emulate this from the command line with curl http://localhost:8581/api
In my case this is what I see from the command line
homebridge@jesse:/var/lib/homebridge $ hb-service status
ℹ Testing hb-service is running on port 8581...
✔ Homebridge UI Running

homebridge@jesse:/var/lib/homebridge $ curl http://localhost:8581/api
Hello World!homebridge@jesse:/var/lib/homebridge $

Ah, the curl command returns an error for me. I've enabled SSL/TLS so it can't be reached over http anymore. I would suggest an edit to the command so it can adapt for those using SSL/TLS, but my error is down to my cert only being valid for my domain, not localhost. Not sure if that's something that could be worked into the config at all so you can specify your custom domain and the command would update with either http/https and custom domain. Something like...
let domain, url;
(!customDomain) ? domain = "localhost" : domain = ${customDomain};
(!tls) ? url = `http://${domain}:${this.uiPort}/api`: url = `https://${domain}:${this.uiPort}/api`;
const res = await axios.get(url);

But in the grand scheme of things this is probably very insignificant 😅 I'll get this closed now, have a play with my own set up regarding implementing a check for that command, probably break everything a few times, and then maybe one day the opportunity will arise for me to share it with someone haha!
Thanks very much for the reply and nod in the right direction anyway @NorthernMan54, it's much appreciated!


text:
Update request dependency

request v2.34.0 have 3 vulnerabilities in dependencies:
Denial-of-Service Extended Event Loop Blocking
honeybadger@1.1.0 > request@2.34.0 > qs@0.6.6
https://nodesecurity.io/advisories/28

Denial-of-Service Memory Exhaustion
honeybadger@1.1.0 > request@2.34.0 > qs@0.6.6
https://nodesecurity.io/advisories/29

Regular Expression Denial of Service
honeybadger@1.1.0 > request@2.34.0 > hawk@1.0.0
https://nodesecurity.io/advisories/77

👍 thanks!

authors: gazay joshuap

repo: honeybadger-io/honeybadger-node

license: mit

license_source: bigquery


text:
Setup a parent based sampler

Is your feature request related to a problem? Please describe.
Related with a recent integration in a project of ours - https://github.com/netlify/build/pull/5118 - we're passing over a set of remote traceId, spanId and traceFlags to create a parent span we can use to stitch together a full trace of our system:

https://github.com/netlify/build/blob/705b93a8c59af878b5c698d1a3d9a04e7528b27e/packages/build/src/tracing/main.ts#L44-L51

The problem we're facing is that it seems like the current sampler in place is not aware of the parent span context:

https://github.com/honeycombio/honeycomb-opentelemetry-node/blob/a2da97851f6d443a8ac4fafe3844c38cb8912b7c/src/deterministic-sampler.ts#L38-L66

And we have no way of overriding it since the opts spread in the HoneycombSDK constructor is being overriden by the DeterministicSampler creation:

https://github.com/honeycombio/honeycomb-opentelemetry-node/blob/a2da97851f6d443a8ac4fafe3844c38cb8912b7c/src/opentelemetry-node.ts#L18-L25

Describe the solution you'd like
Either wrap the current default DeterministicSampler with a ParentBasedSampler so that the parent span context is used out of the box or alternatively allow us to override the default sampler.
Describe alternatives you've considered
None that I could think of but definitely open to it 👍
Additional context

Created a couple of PRs (#204 and #205) which address both problems. Let me know what you all think 👍

As mentioned in a comment in #205 comment.
I've approved #204 as this allows user better access to override some more distro PRs.

Thank you @MikeGoldsmith 🙏
Something I realised though when you reviewed the PRs and I went on to read the spec for the TraceIdRatioBasedSampler is that, given a traceID and a sampleRate, the resulting sample decision will always be the same is that correct (hence the DeterministicSampler behaviour 🤦)? So in fact our problem would be solved if, besides passing on a traceID we also use the same sampleRate, we should get consistent sampling across the whole trace.
Nevertheless I think #204 is still useful so happy to follow up on that 👍

Yes, that's correct - the TraceID ratio samplers are meant to be deterministic based on Trace ID and will consistently return the same result for the same Trace ID. Our sampler effectively just wraps this behaviour and returns the selected sample rate in the sampling decision result which are added to the span before it's exported. We have custom handling of the "SampleRate" attribute in our backend to calculate real population size. The default samplers do not return the ratio as an attribute.

authors: JGAntunes MikeGoldsmith


text:
maint: Rename to otelconfig

Which problem is this PR solving?
Renames the repo and tool to otelconfig.

Closes https://github.com/honeycombio/telemetry-team/issues/412

Short description of the changes

Rename tool to otelconfig in go mod, packages, README, changelog, etc

How to verify that this has the expected result
You can use the tool by importing otelconfig instead of launcher.

Can we prep a docs PR for this as well before we release?

authors: MikeGoldsmith pkanal

repo: honeycombio/otel-launcher-go


text:
No 'visible' attribute ?

Trying to make button invisible using Fun.SetTKAttrib(uiName,'Button_39','visible','Hidden'), but I can not get what I want.

Tkinter does not support the visible attribute, but I received your request. I will add a switch to this attribute in the next version.

authors: Oreobird honghaier-game

repo: honghaier-game/TKinterDesigner


text:
NDataTable在使用fixed的使用box-shadow消失了

如下图所示，box-shadow的样式没有了

应有一个样式如下：

抱歉，失误，需要配合scroll-x使用

repo: honghuangdc/soybean-admin


text:
hongyang 建议打tag

版本稳定后打下tag，我们就可以切换到tag上比较稳定可靠

多谢意见。

authors: fansfans hongyangAndroid

repo: hongyangAndroid/okhttp-utils


text:
Parsing body with all: true broken in hono 4.3.3 and above

What version of Hono are you using?
4.3.5
What runtime/platform is your app running on?
Cloudflare Workers
What steps can reproduce the bug?
Parsing the request body with all set to true (c.req.parseBody({ all: true })) is broken in Hono version 4.3.3 and above (tested with 4.3.3, 4.3.4, 4.3.5).
Code that works in 4.3.2:
app.post('/upload', async (c) => {
  const body = await c.req.parseBody<{ file: File | File[] }>({ all: true })
  const files = Array.isArray(body['file']) ? body['file'] : [body['file']]

  if (files.length === 0) {
    c.status(400)
    return c.json({ error: 'No files' })
  }

  return c.json({ fileNames: files.map((file) => file.name) })
})

This can be tested with the following curl command:
curl -F file=@test1.txt -F file=@test2.txt http://localhost:8787/upload

What is the expected behavior?
Parsing all form values into the response, this works in Hono 4.3.2 and below.
What do you see instead?
Running in local development results in the error below:
> wrangler dev src/index.ts

 ⛅ wrangler 3.55.0
-------------------
⎔ Starting local server...
[wrangler:inf] Ready on http://localhost:8787
✘ [ERROR] TypeError: formKey is not iterable

      at handleParsingAllValues
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/hono@4.3.5/node_modules/hono/dist/utils/body.js:35:27)
      at null.<anonymous>
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/hono@4.3.5/node_modules/hono/dist/utils/body.js:25:7)
      at convertFormDataToBodyData
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/hono@4.3.5/node_modules/hono/dist/utils/body.js:20:12)
      at parseFormData
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/hono@4.3.5/node_modules/hono/dist/utils/body.js:14:12)
      at async HonoRequest.parseBody
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/hono@4.3.5/node_modules/hono/dist/request.js:59:24)
      at async Array.<anonymous> (file:///Users/paul/tmp/hono-test/src/index.ts:6:16)
      at async jsonError
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/wrangler@3.55.0_@cloudflare+workers-types@4.20240502.0/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts:22:10)
      at async drainBody
  (file:///Users/paul/tmp/hono-test/node_modules/.pnpm/wrangler@3.55.0_@cloudflare+workers-types@4.20240502.0/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts:5:10)

[wrangler:inf] POST /upload 500 Internal Server Error (17ms)

Additional information
No response

Hi @pdlug
I've fixed it and released the new version v4.3.6, which includes the fix!

authors: pdlug yusukebe

repo: honojs/hono


text:
Etag middleware generating the same weak etag for different body content.

What version of Hono are you using?
4.6.5
What runtime/platform is your app running on?
Cloudflare workers
What steps can reproduce the bug?
Generate a large response (20kb) with the etag middleware using weak etags, change a character in the response again.
What is the expected behavior?
When changing the response body the etag should be different
What do you see instead?
Different response bodies generate the same etag
Additional information
When output'ing the respons body used for generating the hash it looks like this:
body ReadableStream {
  locked: false
}

This is the section in the middleware that we had a look at:
  const hash = await sha1(res.clone().body || '')
      etag = weak ? `W/"${hash}"` : `"${hash}"`

I'm guessing that hono starts to stream the body at some size of response body which breaks the etag functionality. I'm not sure what the best fix is in this case. Is it possible to disable the streaming or to read the entire stream into a string at this point?

Hi @markusahlstrand
Thank you for your report. This is a known issue and is currently stuck, but there is a pull request.
https://github.com/honojs/hono/pull/2911
https://github.com/honojs/hono/pull/2918
I would like to fix it with one of these, so please wait a little.

authors: markusahlstrand usualoma


text:
docs(readme): fixed vite link

Fixed the Vite link in the README which previously pointed to the Hono website.

Ah, this should be fixed. Thanks!

authors: newraina yusukebe

repo: honojs/honox


text:
Compatibility with Deep Storage (IHoldMultipleThings)

I have not built this; there may be typos.  But I think you can see what I was doing.
You will need to build against Mehni's IHoldMultipleThings.dll (available here: https://github.com/Mehni/PickUpAndHaul/tree/master/Assemblies)  You will need a local copy of the .dll and need to include it in the project file.
Any questions, let me know!

My bad:  the .dll should come from the 1.1 branch of Mehni's mod:
https://github.com/Mehni/PickUpAndHaul/blob/1.1/Assemblies/IHoldMultipleThings.dll
You would need a copy in your Assemblies as well.

repo: hooap/SatisfiedStorage


text:
Webview inside sliding view

I need to use webview inside sliding view, but the scrollable content out of the parentviews bounds is not drawn.
To fix that I guess the solution is to access the slider scrollview delegate and force webview to redraw itself.
How can I access scrollview to delegate it's methods to my viewcontroller or do you know any other fix for the issue?

Seems to be issue of html.

Also, just in case make sure that sliding controller is not resizing your webview. This will happen if you improperly implemented bottom constraint

authors: hoomazoid mikuke

repo: hoomazoid/CTSlidingUpPanel


text:
🛑 FWB is down

In 0fc8791, FWB ($FWB_SITE) was down:

HTTP code: 403
Response time: 294 ms

Resolved: FWB is back up in 3731c0b after 27 minutes.

repo: hoopybe/uptime


text:
Example: Pushnachricht jeden Morgen

Story
Als Benutzer der mobilen App erhalte ich jeden Morgen eine lustige Push-Nachricht, um daran erinnert zu werden, dass es die App gibt.
Akzeptanzkriterien

Auf iOS und Android soll jeden Morgen eine Pushnachricht auftauchen
Die Nachricht soll einen lustigen Witz beinhalten

Ich habe zu dem Issue ein paar Fragen:

soll das Feature einen eigenen Microservice haben?
Witze hardcoded oder KI-generiert?

repo: hopps-app/hopps


text:
[SPARK-LLAP-229] Add LLAP ReadSupport

What changes were proposed in this pull request?
Refactor SQL logic from LlapRelation for DataSourceV2
Change from HadoopRDD/LlapInputFormat to ArrowStreamReader based input.
Add SupportsScanColumnarBatch.
How was this patch tested?
Ran end-to-end smoke tests with 7 LLAP daemons/7 Spark-Yarn executors and TPC-DS 10TB. Tested queries with 600 splits/tasks.
Formal system-tests are in development.

Failures are due to pending commit of HIVE-19308.
Will resubmit once HIVE-19308 is merged.

repo: hortonworks-spark/spark-llap


text:
CB-15942 We fetch the entire environment but we get only a specific v…

…alue during the auth. It causes an N+1 query.
See detailed description in the commit message.

retest this please

we have EnvironmentView, why don't we use it?

we have EnvironmentView, why don't we use it?

Instead of long or String value? Or where should I use the EnvironmentView in this PR?

I just thought you can use the view to not fetch the entire environment (I thought that's the goal of this change) with existing code. If you prefer to write another query for this, I'm not against it.

I just thought you can use the view to not fetch the entire environment (I thought that's the goal of this change) with existing code. If you prefer to write another query for this, I'm not against it.

As I saw in the code the EnvironmentView difference is only that it is not fetching the secrets and fetch reference's view objects only. However, I want to check whether the DB load is decreasing or not if we fetch the specific field instead of an entire object even if that entity is a view.

I just thought you can use the view to not fetch the entire environment (I thought that's the goal of this change) with existing code. If you prefer to write another query for this, I'm not against it.

As I saw in the code the EnvironmentView difference is only that it is not fetching the secrets and fetch reference's view objects only. However, I want to check whether the DB load is decreasing or not if we fetch the specific field instead of an entire object even if that entity is a view.

ok, it makes sense

repo: hortonworks/cloudbreak


text:
Base image update for the latest RELENG image

Automated Pull request to update the base image and reduce CVEs

Duplicates #14489.

authors: doktoric lajosrodek


text:
🛑 Branex is down

In dc8de01, Branex (https://branex.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Branex is back up in 58326e9 after 20 minutes.

repo: hostingnocteam/monitoring


text:
Quality: use standard pre-commit

Fixes https://github.com/hostolab/covidliste/issues/195
Add code style badge

❤

authors: GuillaumeWrobel mininao

repo: hostolab/covidliste


text:
Improved: Set timezone from luxon settings instead of moment(#2dewerv)

Related Issues

Closes #
https://github.com/hotwax/picking/commit/c6aaf633bedbb408c20d326e1358c842aa0a5339
Short Description and Why It's Useful

Screenshots of Visual Changes before/after (If There Are Any)

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[x] I read and followed contribution rules

Closing as already implemented.

repo: hotwax/picking


text:
Get Project Westminster Application prepared for Store submission

I've reserved the name in the Windows Store. All the logo/image assets need finishing off and any other peripheral resources so that the application is ready to be submitted to the Windows Store.
Live tiles would have been nice in the initial release, but they're going to have to wait until the rest of the MongoDB/Localisation update launches so we can add the XML feed.
Not sure how/if we should do Notifications on new builds.

Due the recent problems with WuTest, I don't see any problems with pushing notifications to the users. An extra features could be that you can select the 'source-type(s)' what you want to see as notifications ...

authors: hounsell nickurt

repo: hounsell/BuildFeed


text:
FR: Free configurable pause skipping

Most web meetings run 1h, so I log in 5 min before and maybe it runs 10 min longer.
Hence I would like to pause Stretchly for 1,5h because 1h is too short and 2h is normally too long.

@hovancik I want to work on this.

Awesome ;]  I think this setting should be in "advanced" setting. And by that I mean that it should be possibe to change this value by editing config file, not from UI. Eg. the same like editing break notification timer.

Do we want a solution where we can customize our pause time value ? Like:

if yes then ,
Here every time after setting a new customized pause value ,my tooltip is showing me the value of the previously set customized pause, Will I have to use something , which functions like "Reset Break"
(Reset Break present in settings), does anyone have an idea , then please share :)

Hi @purva98 I'm working on this issue. Can you please work on something else.

Hey @purva98, I'm already talking to @kavya-jain about it ;]

Okas :)

repo: hovancik/stretchly


text:
Missing .jar files

Hi,
thanks for your great work!
Do you happen to know, where one can download both required .jar files?
I'm unable to download them from the official pages, making it impossible to evaluate my models :(
Am I doing something wrong or looking in the wrong place?
Thanks in advance!

check this?
https://github.com/howardhsu/BERT-for-RRC-ABSA/tree/master/pytorch-pretrained-bert/eval
On Sun, Aug 15, 2021 at 8:08 PM Jan Pfister @.***>
wrote:

Hi,
thanks for your great work!
Do you happen to know, where one can download both required .jar files?
I'm unable to download them from the official pages, making it impossible
to evaluate my models :(
Am I doing something wrong or looking in the wrong place?
Thanks in advance!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/howardhsu/DE-CNN/issues/16, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACRK373EJANLECJVDXHD5DLT5B6LXANCNFSM5CG3T4LA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
Homepage: https://howardhsu.github.io/
Linkedin: https://www.linkedin.com/in/hu-xu-9852403b/
Google Scholar: https://scholar.google.com/citations?user=SaH2yWMAAAAJ
Twitter: https://twitter.com/Hu_Hsu
Email: @.***

Ah nice! Thanks!

authors: howardhsu janpf

repo: howardhsu/DE-CNN


text:
Understand (hear) Facebook Like (thumbs-up) send on chat

Hi
How can I capture & respond to the Like message that FB users send to my FB bot on chat? I'm using botkit.
Thanks!

controller.on('message_received', function(bot, message) {
var v = message.text;
if (typeof v ==='undefined') @@@

});

repo: howdyai/botkit


text:
Email issue

https://rollbar.com/howtohireme/givemepoc.org/items/25/occurrences/45286536112/
Not sure what happened. Maybe some network issue.

as an option, there may still be problems with setting up account security
example:
https://toster.ru/q/139273
https://stackoverflow.com/questions/18124878/netsmtpauthenticationerror-when-sending-email-from-rails-app-on-staging-envir
but, since the problem did not recur anymore, it's hard to know the reason.

Let close it for new then. We'll investigate it deeper, if it happens again.

authors: Mehonoshin reabiliti

repo: howtohireme/give-me-poc


text:
fix get_athlete w new attrs for shoes given strava updates to API

This closes #220
It looks like strava has made some changes to their API. this fixes a bug where a bunch of warnings are thrown given missing attributes for shoes. I have tested this locally but did not look closely at the test suite to ensure tests also work locally. @hozn if you need any changes to this please let me know. But please do know i didn't touch the test suite yet as i still need to set that up and dig into how you have tests setup locally.
Thank you @yihong0618 for the direction regarding what the issue was!

Thank you!

authors: hozn lwasser

repo: hozn/stravalib


text:
Prepend .bin's to the PATH

Some modules like gulp-shell and gulp-run prepend the ./node_modules/.bin to the PATH for the child process, so you have access to all the binaries provided by your module's dependencies.

https://github.com/cbarrick/gulp-run/blob/master/gulp-run.js#L105
https://github.com/sun-zheng-an/gulp-shell/blob/master/index.js#L25

Would be nice to have this functionally here too.

:+1:

authors: nfroidure zenorocha

repo: hparra/gulp-spawn


text:
Windows support

Cannot pip install colossalai under Windows.
Any work arounds to get Open-Sora working under Windows?

@JThh Could you please have a check?

Would you please try installing anaconda on your Windows powershell? Try following this guide.
After having it installed, you may create an environment using conda create -n opensora python=3.11, and in the project home folder, run pip install -r requirements.txt.

acturally it shows that  (Anaconda+windows)
raise RuntimeError("Windows is not supported yet. Please try again within the Windows Subsystem for Linux (WSL).")
RuntimeError: Windows is not supported yet. Please try again within the Windows Subsystem for Linux (WSL).

这是来自QQ邮箱的自动回复邮件。
您好，已经收到您的邮件，我会及时查看，谢谢

I've got the same error, is it mean that I have to use a linux vm

这是来自QQ邮箱的自动回复邮件。
您好，已经收到您的邮件，我会及时查看，谢谢

这是来自QQ邮箱的自动回复邮件。
您好，已经收到您的邮件，我会及时查看，谢谢

In 1.2, same problem on Win.

I've got the same error, is it mean that I have to use a linux VM

We do not have a plan to test on Windows. You request a contributor to do that for you, or you have to use it on linux.

authors: JThh SoftologyPro liye007 nieyankai tin2tin zhengzangw

repo: hpcaitech/Open-Sora


text:
Implement get /api/v2/k8smanifest

{
  "_links": {
    "self": {
      "href": "/api/v2/k8smanifest"
    }
  },
  "supported_versions": [
    "1.14.10",
    "1.15.11",
    "1.16.9",
    "1.17.5"
  ],
  "bootstrap_image_version": "0.1",
  "version_info": {
    "1.14.10": {
      "min_upgrade_version": "1.13.0",
      "relnote_url": "https://v1-14.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor"
      ]
    },
    "1.15.11": {
      "min_upgrade_version": "1.14.0",
      "relnote_url": "https://v1-15.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor",
        "istio",
        "picasso"
      ]
    },
    "1.16.9": {
      "min_upgrade_version": "1.15.0",
      "relnote_url": "https://v1-16.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor",
        "istio",
        "picasso"
      ]
    },
    "1.17.5": {
      "min_upgrade_version": "1.16.0",
      "relnote_url": "https://v1-17.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor",
        "istio",
        "picasso"
      ]
    }
  },
  "import_addons": [
    "hpecp-agent",
    "kubedirector",
    "kube-state-metrics",
    "hpecp-monitoring",
    "istio"
  ],
  "addon_info": {
    "harbor": {
      "required": false,
      "version": "0.3",
      "system": false,
      "order": 40,
      "deployment": "hpecp-bootstrap-harbor",
      "label": {
        "name": "Harbor container image registry",
        "description": "Harbor secures images with role-based access control, scans images for vulnerabilities, and signs images as trusted."
      }
    },
    "hpecp-agent": {
      "required": true,
      "version": "0.6",
      "system": true,
      "order": 10,
      "deployment": "hpecp-bootstrap-hpecp-agent",
      "label": {
        "name": "hpecp-bootstrap-hpecp-agent",
        "description": ""
      }
    },
    "hpecp-monitoring": {
      "required": true,
      "version": "6.6.4-1.0",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-hpecp-monitoring",
      "label": {
        "name": "hpecp-bootstrap-hpecp-monitoring",
        "description": ""
      }
    },
    "hpecp-serviceaccounts": {
      "required": true,
      "version": "0.2",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-hpecp-serviceaccounts",
      "label": {
        "name": "hpecp-bootstrap-hpecp-serviceaccounts",
        "description": ""
      }
    },
    "istio": {
      "required": false,
      "version": "1.6.1",
      "system": false,
      "order": 30,
      "deployment": "hpecp-bootstrap-istio",
      "label": {
        "name": "Istio",
        "description": "Istio Service Mesh addon for Kubernetes."
      }
    },
    "kube-state-metrics": {
      "required": true,
      "version": "2.8.8",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-kube-state-metrics",
      "label": {
        "name": "hpecp-bootstrap-kube-state-metrics",
        "description": ""
      }
    },
    "kubedirector": {
      "required": true,
      "version": "0.9",
      "system": true,
      "order": 20,
      "deployment": "hpecp-bootstrap-kubedirector",
      "label": {
        "name": "hpecp-bootstrap-kubedirector",
        "description": ""
      }
    },
    "kubernetes-dashboard": {
      "required": true,
      "version": "v2.0.0-rc2",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-kubernetes-dashboard",
      "label": {
        "name": "hpecp-bootstrap-kubernetes-dashboard",
        "description": ""
      }
    },
    "metrics-server": {
      "required": true,
      "version": "v0.3.6-1",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-metrics-server",
      "label": {
        "name": "hpecp-bootstrap-metrics-server",
        "description": ""
      }
    },
    "nimble": {
      "required": false,
      "version": "0.2",
      "system": false,
      "order": 40,
      "deployment": "hpecp-bootstrap-nimble-csi",
      "label": {
        "name": "HPE Nimble Storage",
        "description": "HPE Nimble persistent storage using HPE CSI driver for Kubernetes."
      }
    },
    "nvidia-plugin": {
      "required": true,
      "version": "1.0.0-beta2",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-nvidia-plugin",
      "label": {
        "name": "hpecp-bootstrap-nvidia-plugin",
        "description": ""
      }
    },
    "picasso": {
      "required": false,
      "version": "0.1",
      "system": false,
      "order": 40,
      "deployment": "hpecp-bootstrap-picasso",
      "label": {
        "name": "Enable packaged apps",
        "description": "Enable custom resources to create Spark and KubeFlow applications"
      }
    }
  }
}

$ hpecp k8scluster get-installed-addons --id /api/v2/k8scluster/1
["picasso"]

$ hpecp k8scluster get-available-addons --id /api/v2/k8scluster/1
['hpecp-agent', 'kubedirector', 'kube-state-metrics', 'kubernetes-dashboard', 'metrics-server', 'nvidia-plugin', 'hpecp-monitoring', 'hpecp-serviceaccounts', 'nimble', 'harbor', 'istio', 'picasso']

$ hpecp httpclient post /api/v2/k8scluster/1/change_task --json-file <(echo '{"change_spec": {"addons": ["picasso", "harbor"]}, "operation": "reconfigure", "reason": ""}')

$ hpecp k8scluster wait-for-status --id  /api/v2/k8scluster/1 --status [ready] --timeout-secs 600

$ hpecp k8scluster get-installed-addons --id /api/v2/k8scluster/1
["picasso", "harbor"]

The addons list is the desired end state.  I.e. if a cluster has picasso and you want to add harbor while keeping picasso, you will need to submit: ["picasso", "harbor"]

done


text:
hpe csi driver nfs mount errors

OCP 4.12
hpe csi driver 2.4.0
We're trying to deploy IBM TNCP (proviso) and only some pods of the deployment are failing with:
  Warning  FailedMount  80m (x2 over 88m)   kubelet            Unable to attach or mount volumes: unmounted volumes=[logs pack-content], unattached volumes=[logs pack-content kube-api-access-pzsdp keystore-security sessions-security work-pack]: timed out waiting for the condition
  Warning  FailedMount  31m (x6 over 62m)   kubelet            Unable to attach or mount volumes: unmounted volumes=[pack-content], unattached volumes=[kube-api-access-pzsdp keystore-security sessions-security work-pack logs pack-content]: timed out waiting for the condition
  Warning  FailedMount  10m (x4 over 55m)   kubelet            Unable to attach or mount volumes: unmounted volumes=[pack-content], unattached volumes=[logs pack-content kube-api-access-pzsdp keystore-security sessions-security work-pack]: timed out waiting for the condition
  Warning  FailedMount  6m31s               kubelet            Unable to attach or mount volumes: unmounted volumes=[pack-content], unattached volumes=[pack-content kube-api-access-pzsdp keystore-security sessions-security work-pack logs]: timed out waiting for the condition
  Warning  FailedMount  21s (x60 over 88m)  kubelet            (combined from similar events): Unable to attach or mount volumes: unmounted volumes=[pack-content], unattached volumes=[sessions-security work-pack logs pack-content kube-api-access-pzsdp keystore-security]: timed out waiting for the condition

In the related hpe-csi-driver pod we see this:
time="2024-03-06T10:53:33Z" level=error msg="GRPC error: rpc error: code = Internal desc = Error mounting nfs share 172.30.57.231:/export at /var/lib/kubelet/pods/a22c9293-363a-40ba-9f05-fdc975e776f9/volumes/kubernetes.io~csi/pvc-259d76de-990e-43b7-b8de-4c28d87580c7/mount, err error command mount with pid: 2393 killed as timeout of 60 seconds reached" file="utils.go:73"
time="2024-03-06T10:54:19Z" level=error msg="\n Error in GetSecondaryBackends unexpected end of JSON input" file="volume.go:87"
time="2024-03-06T10:54:19Z" level=error msg="\n Passed details " file="volume.go:88"
time="2024-03-06T10:55:50Z" level=error msg="command mount with pid: 2424 killed as timeout of 60 seconds reached" file="cmd.go:60"
time="2024-03-06T10:55:50Z" level=error msg="GRPC error: rpc error: code = Internal desc = Error mounting nfs share 172.30.25.60:/export at /var/lib/kubelet/pods/29023752-be2c-499d-b92d-72373b423188/volumes/kubernetes.io~csi/pvc-69fe50cd-2f74-44b4-bb13-dc8c51add505/mount, err error command mount with pid: 2424 killed as timeout of 60 seconds reached" file="utils.go:73"
time="2024-03-06T10:56:35Z" level=error msg="command mount with pid: 2429 killed as timeout of 60 seconds reached" file="cmd.go:60"

Please help us to debug this and/or point the relevant issue.
# oc get sc -o yaml hpe-nfs
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "4"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{"argocd.argoproj.io/sync-wave":"4"},"labels":{"app.kubernetes.io/instance":"bru11-nprod-be-01-infra"},"name":"hpe-nfs"},"parameters":{"accessProtocol":"fc","allowMutations":"hostSeesVLUN","csi.storage.k8s.io/controller-expand-secret-name":"hpe-backend","csi.storage.k8s.io/controller-expand-secret-namespace":"hpe-storage","csi.storage.k8s.io/controller-publish-secret-name":"hpe-backend","csi.storage.k8s.io/controller-publish-secret-namespace":"hpe-storage","csi.storage.k8s.io/fstype":"xfs","csi.storage.k8s.io/node-publish-secret-name":"hpe-backend","csi.storage.k8s.io/node-publish-secret-namespace":"hpe-storage","csi.storage.k8s.io/node-stage-secret-name":"hpe-backend","csi.storage.k8s.io/node-stage-secret-namespace":"hpe-storage","csi.storage.k8s.io/provisioner-secret-name":"hpe-backend","csi.storage.k8s.io/provisioner-secret-namespace":"hpe-storage","description":"Volume created by the HPE CSI Driver for Kubernetes","fsMode":"0777","hostSeesVLUN":"true","nfsResources":"true"},"provisioner":"csi.hpe.com","reclaimPolicy":"Delete","volumeBindingMode":"Immediate"}
  creationTimestamp: "2023-11-23T17:31:40Z"
  labels:
    app.kubernetes.io/instance: bru11-nprod-be-01-infra
  name: hpe-nfs
  resourceVersion: "62518251"
  uid: afc44a3f-6ba2-4ac7-864a-9106dbd01173
parameters:
  accessProtocol: fc
  allowMutations: hostSeesVLUN
  csi.storage.k8s.io/controller-expand-secret-name: hpe-backend
  csi.storage.k8s.io/controller-expand-secret-namespace: hpe-storage
  csi.storage.k8s.io/controller-publish-secret-name: hpe-backend
  csi.storage.k8s.io/controller-publish-secret-namespace: hpe-storage
  csi.storage.k8s.io/fstype: xfs
  csi.storage.k8s.io/node-publish-secret-name: hpe-backend
  csi.storage.k8s.io/node-publish-secret-namespace: hpe-storage
  csi.storage.k8s.io/node-stage-secret-name: hpe-backend
  csi.storage.k8s.io/node-stage-secret-namespace: hpe-storage
  csi.storage.k8s.io/provisioner-secret-name: hpe-backend
  csi.storage.k8s.io/provisioner-secret-namespace: hpe-storage
  description: Volume created by the HPE CSI Driver for Kubernetes
  fsMode: "0777"
  hostSeesVLUN: "true"
  nfsResources: "true"
provisioner: csi.hpe.com
reclaimPolicy: Delete
volumeBindingMode: Immediate

thanks

We've noticed the automatic upgrade was enabled for the operator and it's in broken state.
      Name:       certified-operators
      Namespace:  openshift-marketplace
    Identifier:   hpe-csi-operator.v2.4.1
    Path:         registry.connect.redhat.com/hpestorage/csi-driver-operator-bundle@sha256:b5f87d6a9c7ec3a4d53204e86d0fa57d10d4aba2eeb1882f0a1b1caa19c7d9fd
    Properties:   {"properties":[{"type":"olm.gvk","value":{"group":"storage.hpe.com","kind":"HPECSIDriver","version":"v1"}},{"type":"olm.package","value":{"packageName":"hpe-csi-operator","version":"2.4.1"}}]}
    Replaces:     hpe-csi-operator.v2.4.0
  Catalog Sources:
  Conditions:
    Last Transition Time:  2024-03-04T17:51:58Z
    Last Update Time:      2024-03-04T17:51:58Z
    Message:               error validating existing CRs against new CRD's schema for "hpecsidrivers.storage.hpe.com": error validating custom resource against new schema for HPECSIDriver hpe-csi-driver/csi-driver: [].spec.disable.alletraStorageMP: Required value

can you advise what to do to resolve? 2.4.0 is in replacing state and 2.4.1 is in Pending

only found this: https://github.com/hpe-storage/csi-driver/blob/master/release-notes/v2.4.1.md not in releases even
should we edit the old CRD to include the disable.alletraStorageMP ?
or follow this
https://scod.hpedev.io/partners/redhat_openshift/index.html#upgrading

The operator is currently broken. We're working with Red Hat to have it resolved.

The 2.4.0 release has been restored.

how do we get out of the broken state though?

repo: hpe-storage/csi-driver


text:
Removed methods

Methods that got removed some time ago still appear in the browser because some ChangeRecords reference them, causing isInImage to incorrectly return false.
One would have to change isInImage to return "true" for changes that have been removed from the Image on purpose (or better add another kind of check like wasDeleted)

This gets especially bad when they get removed because we switched to a different git branch – that causes several methods to still be displayed that happen on another branch.

IsInImage isn't used anymore

repo: hpi-swa-teaching/ChangesBrowser


text:
[Feature request] syntax highlighting in file preview

And I also viewed the code and came up with a naive idea to implement this.
Since the &ft of preview window is always markdown, so we can't change &ft (am I right?). But the preview content is actually a markdown code block, so we can make use of that.
Create a new buffer which is named after the file name, check the &ft of that buffer, and delete that buffer. The &ft is what we want.
Note: for some unknown reason, treesitter highlight is not available, but the regex-based highlight is loaded.
A better solution is greatly appreciated.

Of course we can also change the code in nvim-cmp so that this issue can be closed right after that.

I don't want to create new pseudo buffer (it has big side effect).
I'm expecting to able to use the vim.filetype API but it would'nt usavle at the moment.

I'm expecting to able to use the vim.filetype API but it would'nt usavle at the moment.

Yes you are right. It doesn't have a function that can return the &ft by giving it the file name.


text:
ref(README): simplify check_back_space

For this function, using an if statement to return a boolean value is the same as just returning that value directly. The one caveat is that :match doesn't return a bool value, so we have to convert it into a boolean value by testing for ~= nil.

Oops. I just noticed I forgot to put the vim. before fn.getline. I'll amend the previous commit to fix that tomorrow.

LGTM. Thank you!


text:
Added automatic PR creation for resolving formatting errors.

This PR adds:

[x] A modified .github/workflows/formatting.yml GitHub Actions YAML file (derived from linting.yml) which now enables automatic PR creation through integration with GitHub itself. This allows for resolving errors thrown by black without touching your local machine.
[x] A modified README.md file for coping with the change mentioned above :P

@hrushikeshrv Yes I have created artificial changes as you can see above. The workflow resolved those with a new PR named 🎨 Format Python code with psf/black :)

Looks good, thanks for the PR! 👍🏻

authors: hitblast hrushikeshrv

repo: hrushikeshrv/chessengine


text:
gostream_test failed to connect

m2, _ := multiaddr.NewMultiaddr("/ip4/121.42.145.216/tcp/4001/ipfs/QmWKJoZuWMQEJpfsGNBsDqcnMRcPYbZjKCH76d7cwGMdCo")
m1, _ := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/4001")
srvHost := newHost(t, m1)
clientHost := newHost(t, m2)

func newHost(t *testing.T, listen multiaddr.Multiaddr) host.Host {
h, err := libp2p.New(
context.Background(),
libp2p.ListenAddrs(listen),
)
if err != nil {
t.Fatal(err)
}
return h
}

Connect to "/ip4/127.0.0.1/tcp/4001" succeed.
Connect to "/ip4/121.42.145.216/tcp/4001/" or "/ip4/121.42.145.216/tcp/4001/ipfs/QmWKJoZuWMQEJpfsGNBsDqcnMRcPYbZjKCH76d7cwGMdCo" failed, with the error: failed to listen on any address:[listen tcp4 121.42.145.216:4001:bind:can't assign requested address]

How to resolve this?

You are passing a remote multiaddress to newHost. It should receive the listen multiaddress that you want that host to listen. thus m2 needs to be a local interface/ip and it does not need the /ipfs/ part. IF it was a local IP, it would still need a different port than m1, because m1 already listens on 4001.
This seems like a libp2p issue, unlreated to this project. I suggest you try to get help in https://discuss.ipfs.io/ and familiarize yourself with the use of libp2p hosts. There are some examples here: https://github.com/libp2p/go-libp2p-examples

Thanks, Hector.
I am reading the libp2p code.
Currently what I am doing is to find a way to replace api, so that the app (mobile app based on IPFS) can get the data from remote server without http server. And read the libp2p-http project by you.

authors: hsanjuan rogerlzp


text:
把握信息革命动向，打破西方资产阶级话语垄断！

https://hsgn1.github.io/test/?
笔者近日关注到观察者网旗下的一个子品牌——观学院于2019年发布的演讲，中国社科院政治学研究所副研究员樊鹏教授在讲座中详细介绍了技术革新对于当下政治制度的影响，从保守和改良的立场提出了ZF的应对方案，感兴趣的读者请移步文末参阅原文批判阅读。笔者对这位教授的方法论持批判态度，但是笔者非常认可他择取的观察角度，并据此写了一篇短文如下。
如同物质世界里的绝大多数事物一样，人类的历史从来都是在渐进与飞跃、连续与断裂的辩证关系中指数式发展的。自上个世纪九十年代以互联网为代表的信息革命爆发以来，这一史无前例的技术革新又如同历史上曾发生的对人类生产关系和社会意识造成剧烈影响的技术革命一样，磕磕绊绊地在保守派与激进派的争议中开辟出一片错综复杂的新天地来。无论是自视甚高却不得不在新事物前退让妥协的传统ZF，还是掌握科技力量跃跃欲试尚且处于试探边缘的新兴企业，还是如同我们——几千年来一直被迫沉默的大多数——莫不为近乎不可捉摸的未来或者玩世不恭，或者喜形于色，或者黯然神伤。
正如第一次工业革命以机器制造业（机器生产机器）的产生为结束标志那样，生成式人工智能也因其可以仅仅凭借使用者的简单输入生成大量代码——也就是组成它本身的必需组织——而为信息革命的发展打下了一个沉甸甸的节点。这说明，无论从过去已有的，人类通过传媒工具干预人类社会的历史来看，还是从可以预见的，人类制造的人工智能可以在只需要最初始的指令的前提下，通过自行学习网络资料库和自我迭代而可持续地服从于指令（甚至在不久的未来，它们或许会通过庞大的全球互联网形成一个拥有自我意识的智慧生命体，就好比一个生命占据了整个网络）的未来来看，目前信息革命对传统治理模式带来的冲击实在不容小觑。历史，从整体上来看，一直都是连续不断的。推陈出新的潜台词就是旧事物包含于新事物之中。无论是因为社会意识的相对独立性，还是阶级社会发展的不平衡性，总之，历史不可能如同断代史那样无中生有，所有事物之所以产生必然有其原因，所有事物走向反面必然有其发展过程。技术的迭代和社会秩序——抽象一些来讲，它们分别代表着社会的经济基础和上层建筑——它们的发展同样也是如此。在信息革命发生之前，资本主义的生产方式已经十分成熟，帝国主义早已驰骋百年，当此之时只剩落日余晖，亟待一剂不由分说的猛药以求续命。
信息革命的成果从一开始便被资本家拿去，无论他们主观意愿如何，但是这一举动客观上将帝国主义形态推到了登峰造极的地步。九十年代正是这样一个帝国主义回光返照的时代。
新自由主义喧嚣尘世，苏修灭亡沉重打击国际共产主义运动，全球化浪潮进一步收割原苏联各加盟国以及大多数第三世界人民的劳动成果，与之相随的以新兴传媒工具散布的独属于资产阶级的价值体系更与原先的苏东社会主义国家和从殖民地半殖民地独立而来的国家内部的之前被打倒的统治阶级一起，里应外合地腐蚀本就不算成熟的本国无产阶级。
本来，按照马克思主义的观点，工业资产阶级的快速扩张会使得无数小生产者和小资产阶级因丧失必要生产资料而破产进而流离失所，最后进入城市形成以工业无产阶级为代表的无产者，靠出卖自己的劳动力为生。他们因为生产和生活在一起，加之资本家为提高生产效率而培养的技术型工人和因部分先进工人率领群众向资产阶级ZF进行阶级斗争而使得后者妥协，被迫支出更多预算支持教育事业，所以形成了广泛存在不过参差不齐的阶级意识和组织能力。但是，我们发现，自从信息革命开始介入生产生活之后，工人阶级的斗争事业反而不如之前了。
资本主义社会主流媒体大肆宣传的“地球村”仿佛仅存在于信息交流和物质交换层面，事实上，我们也常常听闻有人感慨“现在发送信息越来越方便，但是人与人的距离却越来越远了。”
二战时期纳粹德国曾经策划谋害了数百万犹太人，这一令人发指的罪行在当时却没有激起民愤，哪怕是亲手将他们送进集中营毒气室的一线士兵。首先，从史实角度看，当时绝大多数德国民众对此并不知情，在此文中并不是重点；其次，一线士兵认为，他们只是尽职地完成了上面交代的任务，而这些任务在他们——甚至于不知情的我们而言——都是与“屠S”二字完全不沾边：按下一个按钮、关上一些门、将一些犹太人从A地赶到B地……单独来看，每一个步骤都不至于使他们成为杀人犯，但是，正是这种因信息缺失和人为割裂造成的行为，使得他们能内心毫无波澜地杀死犹太人。
事实上，这个蓄意制造信息差和消解负罪感的策略造成的后果在今天很多西方资产阶级官僚主义大行其道、推诿扯皮现象屡见不鲜的地方仍然比比皆是。
而这种无所谓的心态，在基层更为常见，甚至在一些不谙世事的打工人眼中，仿佛也不是一件值得生气的事。结合起这一点，上一段中与我们认知中截然不同的现实其实并不费解，因为假如依照事物本来的发展顺序，人们因为互相不能见面而产生的疏远感，以及更深层次的，因无法身临其境地处于生产场景中造成的对于阶级意识的缺失，实际上可以通过网络本身的快捷性得到补偿，但是这一割裂却被人为地蓄意制造了，其根本原因则在于稳固统治阶级自身的统治，我们由此发现，西方统治阶级在初期面临技术革命时再次毫不意外地退居在保守一方。
读者可能会好奇，笔者刚刚所举的关于集中营的例子与现时西方人民被纵向切割有什么联系呢？其实，这更像是西方统治者“堵不如疏”的现实例子。当阶级叙事的价值观被解构、抹黑，那么被分化得如同沙子一样的西方劳动人民，在履行着犬牙交错一般的职责时，结合起前文提到的信息差的阻碍，又怎么能指望他们能不互相攻击呢？细心的读者还可以找出很多这样的例子。信息差的存在是难以抹除的，但是蓄意的价值引导和有意的选择报道（以把深层次的矛盾转移到个人、一类人或者一些表象身上），就不能说是无心插柳了。

Hi


text:
Optimize position of popout

When clicking on label or value, a popout for configuration is shown.
The x position of the popout should be optimized, so that it not hides label or value.
The x position should be the borderline between the label resp value and the start of the bar chart.

Maybe the left position of the svg area could be used or the right position of the clicked element e.g. label, value or percentage.
https://stackoverflow.com/questions/442404/retrieve-the-position-x-y-of-an-html-element


text:
/setspawn /spawn yaw point to south

When do /setspawn  and then /spawn  yaw set to south, looks like not saved what I want using /setspawn.
Also pitch looks like not saved.

Send me your spawn.conf via PasteBin

http://pastebin.com/GDYhs3tr

another http://pastebin.com/dcixKJ7w
version 7.8b, spongeforge 1193

I have been testing this out locally, can you confirm this is still an issue?

version 7.8c, spongeforge 1195, issue still persist

7.8d, spongeforge 1207, issue still persist

I added some debug code to Utils.java getSpawn() and looks like problem is here: https://github.com/hsyyid/EssentialCmds/blob/master/src/main/java/io/github/hsyyid/essentialcmds/utils/Utils.java#L1142
Its wrongly detect if transform is in the config.
My config:
Contains spawn data.
spawn {
X=219.17156534324903
Y=69.0
Z=308.7449598535267
transform {
pitch=54.900028228759766
roll=0.0
yaw=-122.39973449707031
}
world=world
}
http://pastebin.com/aXtY0xLv
Instead of "SPAWN PITCH" in the console I see "SPAWN"

I think found problem - typo - instead of warpsConfig muste be spawnConfig on this line:
https://github.com/hsyyid/EssentialCmds/blob/master/src/main/java/io/github/hsyyid/essentialcmds/utils/Utils.java#L1142

patch: http://pastebin.com/MwsqJYtb
Tested and fixed this issue.

@hunter688 thanks! I'll push a fix today

not fixed in 7.9 :(

repo: hsyyid/EssentialCmds


text:
Possible to change configuration?

Currently it seems to be impossible to update/change the configuration of an already created HttpBuilder. This seems like a conscious design decision and is probably a GOOD THING. But sometimes I might want to change the configuration of an HttpBuilder. Would it be possible to provide a "configure" method which takes an existing HttpBuilder as a template and creates a new one with additional options?

Sounds like an interesting idea. I could see the copy approach being useful... something like:
HttpBuilder http = otherHttp.configure {
    // alternate config that overrides specified original values
}

Except I can't use the method name "configure", since that would collide with the static method 🙄
How about "rebuild", "copy", "extend" or something like that... ( clone is already taken 😈)

Ah, yeah, good point. Let's go with copy.

Just to confirm... are you implementing this? If so, please branch off the development branch. Thanks.

I'll try ;) Will do.

@TobiX are you still considering this? Just checking because I may have some free time to look at issues soon.

I started with a prototype but then was too busy to continue with it. I might be able to whip up something this weekend...

After thinking about this a bit more, I am not sure it's worth the risk at this point. My concern is that it would be too easy to get into odd configuration situations with difficult to trace bugs due to the multi-layered configuration approach. On top of that I am not sure how much value there is when you can just share closures or consumers between multiple clients.

I'll take a look if that approach also works in my use case.

authors: TobiX cjstehno

repo: http-builder-ng/http-builder-ng


text:
DynamoDbIndexMapper should support more/all dynamoDb function parameters

(Remark: I'm rather new to DynamoDB, so I may not fully understand all of DynamoDB's query features.)
I wanted to use the ConsistentRead flag for DynamoDbIndexMapper.query() and realized that this is currently not possible.
Looking at the code is should be no big deal to add this parameter.
Furthermore DynamoDb.queryPaginated() has also ProjectionExpression, Select, ExclusiveStartKey, and ReturnConsumedCapacity, but I'm not sure if these make sense for the typed DynamoDbIndexMapper.
And the same applies of course for the other DynamoDbIndexMapper functions, i.e. scan(), scanPage(), and queryPage().
So, could you please add at least the ConsistentRead parameter to the DynamoDbIndexMapper functions?
I may create a PR if you like.
PS: Wouldn't it make sense to use lower case parameter names, to follow standard Kotlin naming conventions? I guess the serializable Query class is the reason for the upper case names, but this can simply be adjusted using @JsonProperty annotations. And yes, it's an incompatible change, but nevertheless it would make the code more "natural" for Kotlin developers.

The DynamoDbIndexMapper was designed to provide a simplified interface, but I can certainly see the need to include ConsistentRead.

I certainly agree the naming convention isn't natural, but it's consistent with all the other modules, and I don't think changing the convention for every module is in the cards (except perhaps for a major release)

FYI: the naming convention is a by-product of the way in which the objects are marshalled onto the wire - it matches the Amazon requests:
POST / HTTP/1.1
Host: dynamodb.<region>.<domain>;
Accept-Encoding: identity
Content-Length: <PayloadSizeBytes>
User-Agent: <UserAgentString>
Content-Type: application/x-amz-json-1.0
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
X-Amz-Date: <Date>
X-Amz-Target: DynamoDB_20120810.Scan

{
    "TableName": "Reply",
    "ReturnConsumedCapacity": "TOTAL"
}

authors: daviddenton obecker oharaandrew314


text:
Auto-upgrade to 4.17.7.0

Base PullRequest
default branch (https://github.com/http4k/http4k-connect/tree/master)
Command results

Details:

add path
/home/runner/work/_actions/technote-space/create-pr-action/v2/node_modules/npm-check-updates/build/src/bin

./upgrade_http4k.sh 4.17.7.0

Changed files

Changed file:

gradle.properties

:octocat: Repo | :memo: Issues | :department_store: Marketplace

Codecov Report

Merging #102 (d5ea659) into master (1039b44) will increase coverage by 62.61%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master     #102       +/-   ##
=============================================
+ Coverage          0   62.61%   +62.61%
- Complexity        0      657      +657
=============================================
  Files             0      389      +389
  Lines             0     4183     +4183
  Branches          0      286      +286
=============================================
+ Hits              0     2619     +2619
- Misses            0     1398     +1398
- Partials          0      166      +166

Impacted Files
Coverage Δ

...p4k/connect/amazon/dynamodb/model/ReplicaStatus.kt
0.00% <0.00%> (ø)

.../kotlin/org/http4k/connect/storage/RedisStorage.kt
71.42% <0.00%> (ø)

...http4k/connect/amazon/cloudfront/HttpCloudFront.kt
50.00% <0.00%> (ø)

...nnect/amazon/secretsmanager/model/RotationRules.kt
0.00% <0.00%> (ø)

...org/http4k/connect/amazon/cloudfront/CloudFront.kt
100.00% <0.00%> (ø)

.../kotlin/org/http4k/connect/amazon/AwsJsonAction.kt
100.00% <0.00%> (ø)

...otlin/org/http4k/connect/amazon/s3/HttpS3Bucket.kt
41.66% <0.00%> (ø)

.../http4k/connect/amazon/dynamodb/model/ErrorCode.kt
100.00% <0.00%> (ø)

.../kotlin/org/http4k/connect/amazon/sqs/endpoints.kt
87.20% <0.00%> (ø)

...onnect/amazon/dynamodb/model/BillingModeSummary.kt
100.00% <0.00%> (ø)

... and 379 more

Continue to review full report at Codecov.

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


text:
调用HttpRunner中run方法，不能传文件路径list

问题描述
从httprunner官方文档 获知：
指定测试用例文件路径支持三种形式， 第三种混合情况传入后会报错
File "E:\working\pyCode\HttpRunner-master\httprunner\loader.py", line 751, in load_tests
if not os.path.exists(path):
File "D:\Anaconda3\lib\genericpath.py", line 19, in exists
os.stat(path)
TypeError: argument should be string, bytes or integer, not list

YAML/JSON 文件路径，支持绝对路径和相对路径
包含 YAML/JSON 文件的文件夹，支持绝对路径和相对路径
文件路径和文件夹路径的混合情况（list/set）

# 文件路径
runner.run("docs/data/demo-quickstart-2.yml")
# 文件夹路径
runner.run("docs/data/")
# 混合情况
runner.run(["docs/data/", "files/demo-quickstart-2.yml"])

是的，我也遇到了，这个要什么时候解决呢

表示在HttpRunner version: 2.2.5遇到相同问题，期待解决

    def run(self, path_or_tests, dot_env_path=None, mapping=None):
        """ main interface.

        Args:
            path_or_tests:
                str: testcase/testsuite file/foler path
                dict: valid testcase/testsuite data
            dot_env_path (str): specified .env file path.
            mapping (dict): if mapping is specified, it will override variables in config block.

        Returns:
            dict: result summary

        """

看源码run方法的注释，已经不支持list类型参数了

authors: chaozhe lk236225128 mocobk whitexie

repo: httprunner/httprunner


text:
question about the true label

In the siamfc paper, the true label is composed of 1 and -1, but I think the true label here uses 1 and 0.
I'm wondering whether this can cause any performance drop or not.
Thanks in advance :)

Binary cross entropy loss requires labels to be between 0~1, so these labels make sense as probabilities.
[1, -1] is traditionally used in, e.g., SVMs, as coefficients. The SiamFC paper may use this formulation for convenience.
Use 0, 1 will not drop the performance.

authors: huanglianghua yujeong-star

repo: huanglianghua/siamfc-pytorch


text:
Search button reappears if you click it

I've had a small problem with the search box reappearing after I disabled it.
Steps to reproduce

Ensure search button is hidden (show_search = false).
Open blog page in browser.
Click the area where the search button would appear if it was not hidden.

Expected behaviour
The search button should stay hidden. It should not respond to any clicks.
Actual behaviour
The search button appears when the area is clicked.

Thank you for posting this. It will be fixed in next release.

fixed in v1.3.1

authors: huangyuzhang peter-bloomfield

repo: huangyuzhang/Fizzy-Theme


text:
Hoping for the training code

Hoping for the training code...

It is hard to achieve the training process. Hoping for the authors to release the training resource. Thanks.

Hoping for the authors to release the training resource. Thanks.

repo: huawei-noah/AdderNet


text:
Handle overflow on Welcome page

Describe the bug
If your window is shorter than the list of datasets, when you scroll down, you loose the grey background.
Screenshots

Environment:

Release or git hash: 645ced4
Browser: FF

Fixed in https://github.com/hubmapconsortium/vitessce/pull/572

authors: keller-mark mccalluc

repo: hubmapconsortium/vitessce


text:
🛑 VGMdb API is down

In 222770d, VGMdb API (https://vgmdb.info) was down:

HTTP code: 502
Response time: 370 ms

Resolved: VGMdb API is back up in 0fe4f69 after 23 minutes.

repo: hufman/upptime


text:
🛑 VGMdb API is down

In 1d8a207, VGMdb API (https://vgmdb.info) was down:

HTTP code: 502
Response time: 196 ms

Resolved: VGMdb API is back up in 5746bcc after 28 minutes.


text:
🛑 Akkoma is down

In a20e6d7, Akkoma (https://akkoma.chez.chat) was down:

HTTP code: 404
Response time: 393 ms

Resolved: Akkoma is back up in 90f10b7 after 6 minutes.


text:
🛑 Akkoma is down

In e922378, Akkoma (https://akkoma.chez.chat) was down:

HTTP code: 404
Response time: 328 ms

Resolved: Akkoma is back up in 18570cb after 16 minutes.


text:
Websocket will not send unless sleeping or function closes

Describe the bug
Websocket messages will only send if a function closes, or if you sleep for some time.
Code snippet
#! /usr/bin/env python3
import asyncio
import logging
import sys

import websockets
from sanic import Sanic
from sanic.websocket import WebSocketProtocol

app = Sanic('name')

log = logging.getLogger()
ch = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(message)s')
ch.setFormatter(formatter)
log.addHandler(ch)

messages = iter(range(15))

@app.websocket('/sock')
async def local_websocket(_, ws):
    while True:
        try:
            msg = next(messages)
            log.warning(f'sending {msg}')
            # await asyncio.sleep(0.5)  # uncomment this line, messages will send
            await ws.send(str(msg))
        except StopIteration:
            pass

async def client():
    log.warning('Starting client')
    async with websockets.connect('ws://localhost:8000/sock') as ws:
        async for message in ws:
            log.warning(message)

if __name__ == "__main__":
    if '-c' in sys.argv:
        loop = asyncio.new_event_loop()
        loop.run_until_complete(client())
    else:
        app.run(host="0.0.0.0", port=8000, protocol=WebSocketProtocol)

Expected behavior
The client should receive messages when ws.send is awaited.
Environment (please complete the following information):

OS: Debian Buster
Version: 10

Steps to reproduce

Run the provided script without any arguments, you will see something like so:

./example.py
[2020-08-22 10:06:01 -0600] [13175] [INFO] Goin' Fast @ http://0.0.0.0:8000
[2020-08-22 10:06:01 -0600] [13175] [INFO] Starting worker [13175]

In a separate terminal, run a SECOND instance of the provided script with a -c to enable client mode, you will see something like so:

$ ./example.py -c
2020-08-22 10:06:03,903 - Starting client

Once the client is running, the server's output will change to (showing that it is looping, and sending messages):
./example.py
[2020-08-22 10:06:01 -0600] [13175] [INFO] Goin' Fast @ http://0.0.0.0:8000
[2020-08-22 10:06:01 -0600] [13175] [INFO] Starting worker [13175]
2020-08-22 10:06:03,905 - sending 0
2020-08-22 10:06:03,905 - sending 1
2020-08-22 10:06:03,905 - sending 2
2020-08-22 10:06:03,905 - sending 3
2020-08-22 10:06:03,905 - sending 4
2020-08-22 10:06:03,905 - sending 5
2020-08-22 10:06:03,905 - sending 6
2020-08-22 10:06:03,905 - sending 7
2020-08-22 10:06:03,905 - sending 8
2020-08-22 10:06:03,905 - sending 9
2020-08-22 10:06:03,905 - sending 10
2020-08-22 10:06:03,905 - sending 11
2020-08-22 10:06:03,905 - sending 12
2020-08-22 10:06:03,906 - sending 13
2020-08-22 10:06:03,906 - sending 14

The client's logs will NOT change, it receives no messages.

Kill both server and client processes.

Modify the provided script and uncomment line 28 to enable an asyncio.sleep during the server's sending process.

            log.warning(f'sending {msg}')
            await asyncio.sleep(0.5)  # uncomment this line, messages will send
            await ws.send(str(msg))

When running the server, you will see:

$ ./example.py
[2020-08-22 10:07:25 -0600] [13271] [INFO] Goin' Fast @ http://0.0.0.0:8000
[2020-08-22 10:07:25 -0600] [13271] [INFO] Starting worker [13271]
2020-08-22 10:07:27,088 - sending 0
2020-08-22 10:07:27,589 - sending 1
2020-08-22 10:07:28,090 - sending 2
2020-08-22 10:07:28,592 - sending 3
2020-08-22 10:07:29,093 - sending 4
2020-08-22 10:07:29,594 - sending 5
2020-08-22 10:07:30,095 - sending 6
2020-08-22 10:07:30,596 - sending 7
2020-08-22 10:07:31,097 - sending 8
2020-08-22 10:07:31,598 - sending 9
2020-08-22 10:07:32,099 - sending 10
2020-08-22 10:07:32,599 - sending 11
2020-08-22 10:07:33,101 - sending 12
2020-08-22 10:07:33,602 - sending 13
2020-08-22 10:07:34,103 - sending 14

When running the client, you will see:

$ ./example.py -c
2020-08-22 10:07:27,087 - Starting client
2020-08-22 10:07:27,590 - 0
2020-08-22 10:07:28,091 - 1
2020-08-22 10:07:28,592 - 2
2020-08-22 10:07:29,093 - 3
2020-08-22 10:07:29,594 - 4
2020-08-22 10:07:30,096 - 5
2020-08-22 10:07:30,597 - 6
2020-08-22 10:07:31,098 - 7
2020-08-22 10:07:31,599 - 8
2020-08-22 10:07:32,100 - 9
2020-08-22 10:07:32,600 - 10
2020-08-22 10:07:33,101 - 11
2020-08-22 10:07:33,602 - 12
2020-08-22 10:07:34,103 - 13

As you can see, the client receives the messages ONLY when the sleep is enabled.  Why is this?
This script uses a 3rd party library websockets, hopefully that is acceptable because it is used only in the client.

@ahopkins This is actually quite unexpected behaviour. I'd expect await ws.send(...) to implicitly yield every time. Is there a good reason why it doesn't or could we fix that?

I think this is actually one of those situations where I ran into something similar and handled it by setting an async timeout. I'll try and find it.

It is out of our hands as long as we depend upon websockets. It is an api decision they made. drain when you yield back, or the connection closes. If we want it to operate differently, then we will need to hijack and either write a wrapper or subclass. I am VERY reluctant to do this until we get past the streaming PR. Potentially at that point we make the decision to drop the dependency.

I think this is actually one of those situations where I ran into something similar and handled it by setting an async timeout. I'll try and find it.

That makes sense. It also probably would have a similar effect if you create a task.

authors: Tronic ahopkins lrnselfreliance sjsadowski

repo: huge-success/sanic


text:
fixing rng sync when using custom sampler and batch_sampler

What does this PR do?

Fixes #679. PR #687 introduced support for custom samplers that are batch_samplers (e.g., my_awesome_sampler=BatchSampler()) but it had the following issues
a. Default collating was failing, I had to tweak the collate_fn which isn't a good experience for the user.
b. Duplicate samples were being yielded and gather_for_metrics wasn't removing ending excess samples.
With the changes in this PR, I am running below dataloader_checks.py script with the following command. Results are as per expectations.

accelerate launch --multi_gpu --num_processes 2 --num_machines 1 dataloader_checks.py

dataloader_checks.py: Builds upon the nice MRE given by @etiennebeaulac
import torch
from torch.utils.data import default_collate, Dataset, DataLoader, BatchSampler, RandomSampler, SequentialSampler
import numpy
import accelerate
from accelerate import Accelerator
from accelerate.utils.random import synchronize_rng_state
from accelerate.utils.dataclasses import DistributedType, RNGType
import os
import sys
import platform

class MyDataset(Dataset):
    def __len__(self):
        return 22

    def __getitem__(self, index):
#         print("MyDataset __getitem__", index)

        squeeze = False

        if isinstance(index, int):
            index = [index]
            squeeze = True
        elif isinstance(index, slice):
            index = list(range(*index.indices(self.size)))
        else:
            index = list(index)

        batch = [{"index": i, "label": i % 2} for i in index]
#         print(batch)

        if squeeze:
            batch = batch[0]

        return batch

if __name__ == "__main__":
    dataset = MyDataset()
    accelerator = Accelerator()

    accelerator.print("Starting conventional Dataloader with shuffle=False. Eval mode in general")
    loader = DataLoader(dataset, shuffle=False, batch_size=4)
    loader = accelerator.prepare(loader)
    all_examples = []
    for i, batch in enumerate(loader):
        print(f"{accelerator.process_index} | batch #{i} = {batch}")
        index, label = accelerator.gather_for_metrics((batch["index"], batch["label"]))
        all_examples.extend(index.detach().cpu().numpy().tolist())
        accelerator.print(f"{accelerator.process_index} | gathered batch #{i} | index = {index}, label = {label}")
    accelerator.print(f"{sorted(all_examples)=}")
    accelerator.print("Ending conventional Dataloader with shuffle=False. Eval mode in general")
    accelerator.print()
    accelerator.print()

    accelerator.print("Starting conventional Dataloader with shuffle=True")
    loader = DataLoader(dataset, shuffle=True, batch_size=4)
    loader = accelerator.prepare(loader)
    all_examples = []
    for i, batch in enumerate(loader):
        print(f"{accelerator.process_index} | batch #{i} = {batch}")
        index, label = accelerator.gather_for_metrics((batch["index"], batch["label"]))
        all_examples.extend(index.detach().cpu().numpy().tolist())
        accelerator.print(f"{accelerator.process_index} | gathered batch #{i} | index = {index}, label = {label}")
    accelerator.print(f"{sorted(all_examples)=}")
    accelerator.print("Ending conventional Dataloader with shuffle=True")
    accelerator.print()
    accelerator.print()

    accelerator.print("Starting Dataloader with batch_sampler=BatchSampler()")
    sampler = BatchSampler(RandomSampler(dataset), batch_size=4, drop_last=False)
    loader = DataLoader(dataset, batch_sampler=sampler)
    loader = accelerator.prepare(loader)
    all_examples = []
    for i, batch in enumerate(loader):
        print(f"{accelerator.process_index} | batch #{i} = {batch}")
        index, label = accelerator.gather_for_metrics((batch["index"], batch["label"]))
        all_examples.extend(index.detach().cpu().numpy().tolist())
        accelerator.print(f"{accelerator.process_index} | gathered batch #{i} | index = {index}, label = {label}")
    accelerator.print(f"{sorted(all_examples)=}")
    accelerator.print("Ending Dataloader with batch_sampler=BatchSampler()")
    accelerator.print()
    accelerator.print()

    accelerator.print("Starting Dataloader with sampler=BatchSampler()")
    sampler = BatchSampler(RandomSampler(dataset), batch_size=4, drop_last=False)
    loader = DataLoader(dataset, sampler=sampler)
    loader = accelerator.prepare(loader)
    all_examples = []
    for i, batch in enumerate(loader):
        print(f"{accelerator.process_index} | batch #{i} = {batch}")
        index, label = accelerator.gather_for_metrics((batch["index"], batch["label"]))
        all_examples.extend(index.detach().cpu().numpy().tolist())
        accelerator.print(f"{accelerator.process_index} | gathered batch #{i} | index = {index}, label = {label}")
    accelerator.print(f"{sorted(all_examples)=}")
    accelerator.print("Ending Dataloader with sampler=BatchSampler()")

The output logs: Broken down in respective chunks for easier understanding
Starting conventional Dataloader with shuffle=False. Eval mode in general
0 | batch #0 = {'index': tensor([0, 1, 2, 3], device='cuda:0'), 'label': tensor([0, 1, 0, 1], device='cuda:0')}
1 | batch #0 = {'index': tensor([4, 5, 6, 7], device='cuda:1'), 'label': tensor([0, 1, 0, 1], device='cuda:1')}
0 | gathered batch #0 | index = tensor([0, 1, 2, 3, 4, 5, 6, 7], device='cuda:0'), label = tensor([0, 1, 0, 1, 0, 1, 0, 1], dev
ice='cuda:0')
1 | batch #1 = {'index': tensor([12, 13, 14, 15], device='cuda:1'), 'label': tensor([0, 1, 0, 1], device='cuda:1')}
0 | batch #1 = {'index': tensor([ 8,  9, 10, 11], device='cuda:0'), 'label': tensor([0, 1, 0, 1], device='cuda:0')}
0 | gathered batch #1 | index = tensor([ 8,  9, 10, 11, 12, 13, 14, 15], device='cuda:0'), label = tensor([0, 1, 0, 1, 0, 1, 0,
 1], device='cuda:0')
1 | batch #2 = {'index': tensor([20, 21,  0,  1], device='cuda:1'), 'label': tensor([0, 1, 0, 1], device='cuda:1')}
0 | batch #2 = {'index': tensor([16, 17, 18, 19], device='cuda:0'), 'label': tensor([0, 1, 0, 1], device='cuda:0')}
0 | gathered batch #2 | index = tensor([16, 17, 18, 19, 20, 21], device='cuda:0'), label = tensor([0, 1, 0, 1, 0, 1], device='c
uda:0')
sorted(all_examples)=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
Ending conventional Dataloader with shuffle=False. Eval mode in general

Starting conventional Dataloader with shuffle=True
1 | batch #0 = {'index': tensor([19, 13, 18, 11], device='cuda:1'), 'label': tensor([1, 1, 0, 1], device='cuda:1')}0 | batch #0
 = {'index': tensor([17,  5, 12, 15], device='cuda:0'), 'label': tensor([1, 1, 0, 1], device='cuda:0')}

0 | gathered batch #0 | index = tensor([17,  5, 12, 15, 19, 13, 18, 11], device='cuda:0'), label = tensor([1, 1, 0, 1, 1, 1, 0,
 1], device='cuda:0')
1 | batch #1 = {'index': tensor([8, 9, 2, 0], device='cuda:1'), 'label': tensor([0, 1, 0, 0], device='cuda:1')}
0 | batch #1 = {'index': tensor([ 7, 14, 10,  1], device='cuda:0'), 'label': tensor([1, 0, 0, 1], device='cuda:0')}
0 | gathered batch #1 | index = tensor([ 7, 14, 10,  1,  8,  9,  2,  0], device='cuda:0'), label = tensor([1, 0, 0, 1, 0, 1, 0,
 0], device='cuda:0')
1 | batch #2 = {'index': tensor([16,  3, 17,  5], device='cuda:1'), 'label': tensor([0, 1, 1, 1], device='cuda:1')}
0 | batch #2 = {'index': tensor([20,  6, 21,  4], device='cuda:0'), 'label': tensor([0, 0, 1, 0], device='cuda:0')}
0 | gathered batch #2 | index = tensor([20,  6, 21,  4, 16,  3], device='cuda:0'), label = tensor([0, 0, 1, 0, 0, 1], device='c
uda:0')
sorted(all_examples)=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
Ending conventional Dataloader with shuffle=True

Starting Dataloader with batch_sampler=BatchSampler()
1 | batch #0 = {'index': tensor([18, 12, 10,  2], device='cuda:1'), 'label': tensor([0, 0, 0, 0], device='cuda:1')}
0 | batch #0 = {'index': tensor([ 4, 16,  3, 19], device='cuda:0'), 'label': tensor([0, 0, 1, 1], device='cuda:0')}
0 | gathered batch #0 | index = tensor([ 4, 16,  3, 19, 18, 12, 10,  2], device='cuda:0'), label = tensor([0, 0, 1, 1, 0, 0, 0,
 0], device='cuda:0')
1 | batch #1 = {'index': tensor([ 6,  9,  0, 14], device='cuda:1'), 'label': tensor([0, 1, 0, 0], device='cuda:1')}
0 | batch #1 = {'index': tensor([ 8, 17, 15, 20], device='cuda:0'), 'label': tensor([0, 1, 1, 0], device='cuda:0')}
0 | gathered batch #1 | index = tensor([ 8, 17, 15, 20,  6,  9,  0, 14], device='cuda:0'), label = tensor([0, 1, 1, 0, 0, 1, 0,
 0], device='cuda:0')
1 | batch #2 = {'index': tensor([ 7, 11,  4, 16], device='cuda:1'), 'label': tensor([1, 1, 0, 0], device='cuda:1')}
0 | batch #2 = {'index': tensor([13, 21,  1,  5], device='cuda:0'), 'label': tensor([1, 1, 1, 1], device='cuda:0')}
0 | gathered batch #2 | index = tensor([13, 21,  1,  5,  7, 11], device='cuda:0'), label = tensor([1, 1, 1, 1, 1, 1], device='c
uda:0')
sorted(all_examples)=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
Ending Dataloader with batch_sampler=BatchSampler()

Starting Dataloader with sampler=BatchSampler()
1 | batch #0 = {'index': tensor([ 2, 21,  0,  5], device='cuda:1'), 'label': tensor([0, 1, 0, 1], device='cuda:1')}
0 | batch #0 = {'index': tensor([13, 15, 18,  4], device='cuda:0'), 'label': tensor([1, 1, 0, 0], device='cuda:0')}
0 | gathered batch #0 | index = tensor([13, 15, 18,  4,  2, 21,  0,  5], device='cuda:0'), label = tensor([1, 1, 0, 0, 0, 1, 0, 1], device='cuda:0')
1 | batch #1 = {'index': tensor([12,  1, 11,  6], device='cuda:1'), 'label': tensor([0, 1, 1, 0], device='cuda:1')}
0 | batch #1 = {'index': tensor([20, 19,  8,  9], device='cuda:0'), 'label': tensor([0, 1, 0, 1], device='cuda:0')}
0 | gathered batch #1 | index = tensor([20, 19,  8,  9, 12,  1, 11,  6], device='cuda:0'), label = tensor([0, 1, 0, 1, 0, 1, 1, 0], device='cuda:0')
1 | batch #2 = {'index': tensor([14, 10, 13, 15], device='cuda:1'), 'label': tensor([0, 0, 1, 1], device='cuda:1')}
0 | batch #2 = {'index': tensor([16,  3, 17,  7], device='cuda:0'), 'label': tensor([0, 1, 1, 1], device='cuda:0')}
0 | gathered batch #2 | index = tensor([16,  3, 17,  7, 14, 10], device='cuda:0'), label = tensor([0, 1, 1, 1, 0, 0], device='cuda:0')
sorted(all_examples)=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
Ending Dataloader with sampler=BatchSampler()

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

repo: huggingface/accelerate