[BUG] LedFx does not wokr under Home Assistant 2023.6.1

Describe the bug

Log from HA
Cette erreur provient d'une intégration personnalisée
Logger: aiohttp.server
Source: custom_components/ledfx/light.py:310
Integration: LedFx (documentation, issues)
First occurred: 18 juin 2023 à 16:35:35 (16 occurrences)
Last logged: 09:14:47

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/api/__init__.py", line 329, in post
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1910, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1950, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/components/homeassistant/__init__.py", line 130, in async_handle_turn_service
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/core.py", line 1910, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1950, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 226, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 811, in entity_service_call
    future.result()  # pop exception if have
    ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1034, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 851, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 582, in async_handle_light_on_service
    await light.async_turn_on(**filter_turn_on_params(light, params))
  File "/config/custom_components/ledfx/light.py", line 292, in async_turn_on
    await self._async_call(f"_{self._type}_{STATE_ON}", STATE_ON, **kwargs)
  File "/config/custom_components/ledfx/light.py", line 310, in _async_call
    if action := getattr(self, method):
                 ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LedFxLight' object has no attribute '_ActionType.DEVICE_on'

Please complete the following information:

HASS version: 2023.6.1
Component version 3.0.0
LedFx version 2.0.68 from https://github.com/YeonV/LedFx-Builds (worked before)

Same problem here. Can not control LedFX anymore.

I am using the exact same configuration as PolestarWx (exept HASS version: 2023.6.2), and I am experiencing the same issues reported.

Experiencing the same on HASS version: 2023.6.2

I have the same error, I noticed that if I try to go to a device that is connected to the ledfx via Home assistant, it gives an error 404 because the addresses have changed since the ledfx 2.0.0 version, if you access the ledfx and the browser, then the address is like this (example: http://<IP_ADDRESS>:8888/#/device/wled-daa742 ), and if through the Home assistant, then this is (Example: http://<IP_ADDRESS>:8888/devices/wled-daa742 ) and this difference does not allow you to control ledfx from Home assistant normally (My opinion)

I have the same error, I noticed that if I try to go to a device that is connected to the ledfx via Home assistant, it gives an error 404 because the addresses have changed since the ledfx 2.0.0 version, if you access the ledfx and the browser, then the address is like this (example: http://<IP_ADDRESS>:8888/#/device/wled-daa742 ), and if through the Home assistant, then this is (Example: http://<IP_ADDRESS>:8888/devices/wled-daa742 ) and this difference does not allow you to control ledfx from Home assistant normally (My opinion)

Nope, I use led fx 2 from YeonV repo since some month with this module without problem, I tried to revert back to 2.0.63 which I'm sure it was working well with this module and still got the same message error

okay, well, it was just my guess, then I take my words back, but still the problem is the same and how to solve it is not clear

У меня такая же ошибка, я заметил, что если я пытаюсь перейти на устройство, подключенное к ledfx через Home assistant, оно выдает ошибку 404, потому что адреса изменились с версии ledfx 2.0.0, если вы заходите в ledfx и браузер, то адрес выглядит следующим образом (пример: http://<IP_ADDRESS>:8888/#/device/wled-daa742 ), а если через Home assistant, то это (пример: http://<IP_ADDRESS>:8888/devices/wled-daa742 ) и это отличие не позволяет вам нормально управлять ledfx из Home assistant (мое мнение)

Нет, я использую led fx 2 из репозитория YeonV с какого-то месяца с этим модулем без проблем, я попытался вернуться к версии 2.0.63, которая, я уверен, хорошо работала с этим модулем, и все еще получал то же сообщение об ошибке

okay, well, it was just my guess, then I take my words back, but still the problem is the same and how to solve it is not clear

I also have the same problem. no solutions found :/

same issue, can't start a start a scene with the below error:
 'LedFxButton' object has no attribute '_ActionType.SCENE_press'

Depending on what functionality you need you can use the rest api and send commands that way, for example all I really need is to start and stop a scene so I've set up the below:
  rest_command:
    ledfx_activate_scence:
      url: "http://<IP_ADDRESS>:8888/api/scenes"
      method: PUT
      payload: '{"id": "party", "action": "activate"}'
    ledfx_turn_off_scence:
      url: "http://<IP_ADDRESS>:8888/api/scenes"
      method: PUT
      payload: '{"id": "off", "action": "activate"}'

Depending on what functionality you need you can use the rest api and send commands that way, for example all I really need is to start and stop a scene so I've set up the below:
  rest_command:
    ledfx_activate_scence:
      url: "http://<IP_ADDRESS>:8888/api/scenes"
      method: PUT
      payload: '{"id": "party", "action": "activate"}'
    ledfx_turn_off_scence:
      url: "http://<IP_ADDRESS>:8888/api/scenes"
      method: PUT
      payload: '{"id": "off", "action": "activate"}'

Thanks for that tip, it will keep me going till the issue is resolved.

Has a solution been found yet? I think I am facing a similar issue, when trying to trigger a scene in LedFx using the HA integration I get the error "Failed to call service button/press. connection lost"

@dmamontov Do you plan on fixing this? I don't mean to sound rude, just want to know if I should look into viable solutions or if this will be updated. Ty and kind regards

ASked for a removal from HACS as it's not working anymore
https://github.com/hacs/integration/issues/3257

Removed from hacs

Another  Dev fixed this module and it works again, just download it's repo and copy files under custom_component inot the folder of same name in config folder of hassio : https://github.com/DeKaN
Thank you so much DeKaN !

Another dev fixed this module and it works again, just download it's repo and copy files under custom_component inot the folder of same name in config folder of hassio : https://github.com/DeKaN/hass-ledfx Thank you so much DeKaN ! Use LedFx from https://github.com/YeonV

Thank you for that hint. One can install the fork via hacs as well. But for me the buttons do not work. There is no error anymore, but the buttons do not do anything. Do they work for you?


Add UNETR Repository

Is your feature request related to a problem? Please describe.
Add UNETR repository for various tasks such as 3D multi-organ segmentation using BTCV dataset. The model is based on:

UNETR based on: "Hatamizadeh et al., UNETR: Transformers for 3D Medical Image Segmentation (https://arxiv.org/abs/2103.10504)"

Describe the solution you'd like
A pull request can address this feature request.

@wyli


GoAccess log format for Amazon S3 - Simple Storage Service

Hi,
I am running goaccess 0.8.5 (this is the latest that can be used with the s3stat python script).  When running via the Python script, or running directly from goaccess I get the following:
[ec2-user@ip-XX-XXX-X-XXX goaccess-0.8.5]$ goaccess -f /home/ec2-user/2016-05-04-13-21-15-780444E7C9B1400B.txt

GoAccess - version 0.8.5 - May  4 2016 18:03:56

Fatal error has occurred
Error occured at: goaccess.c - main - 832
Nothing valid to process.

This is the what is in the log that I am pointing to (replaced some numbers and letters for security purposes, but kept the same exact format).  BTW, this is a S3/CloudFront log:
0a318c25bf6098da13317f8e00aeddec696bbfa592d54df1ec849fd99627de75 sco-download-files [04/May/2016:12:11:43 +0000] <IP_ADDRESS><EMAIL_ADDRESS>8D6CECF94EE0ACBD REST.GET.BUCKET - "GET /sco-download-files?prefix=downloads/fixpacks/&max-keys=100&marker=downloads/fixpacks/company-<IP_ADDRESS>51.zip&delimiter=/&encoding-type=url HTTP/1.1" 200 - 37728 - 114 113 "-" "S3Console/0.4" -

In the goaccess.conf file I tried both without editing the file and with the following options:
date-format %Y-%m-%d
log-format %d\t%^\t%^\t%b\t%h\t%m\t%^\t%r\t%s\t%R\t%u\t%^

I have uncommented this for both goaccess.conf file just in case.
I am stuck and not sure how to proceed.  Any ideas?
Thank you.

Are your log entry delimited by spaces or tabs?

According to Amazon's doc about 'Log File Format' it states:
"Contain tab-separated values."
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#LogFileFormat

It seems your log is a bit different than the ones on the amazon site.
Could you  please explain the fields on your log. It's not clear, especially the ones at end of the string - 37728 - 114 113 "-" "S3Console/0.4" - .
Thanks.

Hi.
According to Amazon's doc they show the "S3Console/0.4" in their example log format at the very top section of the page:
http://docs.aws.amazon.com/AmazonS3/latest/dev/LogFormat.html
For the delimiter I think I was wrong previously as this doc states:
"The server access log files consist of a sequence of new-line delimited log records. Each log record represents one request and consists of space delimited fields. The following is an example log consisting of six log records."
This is the log example they have and the format looks just like my logs:
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket [06/Feb/2014:00:00:38 +0000] <IP_ADDRESS> 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /mybucket?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" -
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket [06/Feb/2014:00:00:38 +0000] <IP_ADDRESS> 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /mybucket?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" -
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket [06/Feb/2014:00:00:38 +0000] <IP_ADDRESS> 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /mybucket?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" -
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket [06/Feb/2014:00:01:00 +0000] <IP_ADDRESS> 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /mybucket?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" -
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket [06/Feb/2014:00:01:57 +0000] <IP_ADDRESS> 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /mybucket/s3-dg.pdf HTTP/1.1"<PHONE_NUMBER> 41754 28 "-" "S3Console/0.4" -
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket [06/Feb/2014:00:03:21 +0000] <IP_ADDRESS> 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be BC3C074D0EXAMPLE REST.GET.VERSIONING - "GET /mybucket?versioning HTTP/1.1" 200 - 113 - 28 - "-" "S3Console/0.4" -
The "S3Console/0.4" is apparently the 'HTTP user-agent header'.  The link gives a break down of what each piece in the logs represents.
So the snippet you asked about should be the following according to the link:
The first "-" indicates there were no "Error Code" for the GET portion of the copy operation.
"37728" is the "Bytes Sent".
The next "-" seems to indicate "Object Size"... I think.
"114" seems to be the "Total Time" in ms.
"113" seems to be the "Turn-Around Time" in ms.
The 3rd "-" from the your snippet seems to be the "Referrer".  I guess it could not determine it and therefore puts a dash.
"S3Console/0.4" seems to be the "User-Agent".
And the last "-" is supposed to be "Version Id" if one exists.
When I enabled logging I did not choose any other options.  Actually I don't think I saw any other options.  So right now I pretty much just have default logging enabled, but my log seems to be consistent with what Amazon shows in their doc.
Thank you for your help!

This should work (>= v0.9):
log-format %^[%d:%t %^] %h %^"%r" %s %^ %b %^ %L %^ "%R" "%u"
date-format %d/%b/%Y
time-format %H:%M:%S

For previous versions, (although, highly recommended to upgrade) you don't need the time-format, so you can use:
log-format %^[%d:%^] %h %^"%r" %s %^ %b %^ %L %^ "%R" "%u"
date-format %d/%b/%Y

Let me know how it goes.

I would have installed the latest but according to s3stat they only support up to v.8.5.
https://pypi.python.org/pypi/s3stat

I see. In that case, you will need to use the second version.

The second version seemed to work!  Thank you very much for your help!

Great! Closing this. Feel free to reopen it if needed.

Hi,
I just wanted to add to this just in case this may benefit anyone who reads it.
I was able to go back and just use the default 'log-format' and 'date-format' in the goaccess.conf file.
So there are two types of logging that you can enable.  There is one for CloudFront and for S3.  These are completely two different types of logging.  In the issue I was having and the log snippets I was showing previously these were S3 logging, and not CloudFront logging.  The type of info and log format are different for the two.
After I correctly enabled CloudFront logging (takes up to 12 hours before it kicks in) then I was able to used the CloudFront 'log-format' and 'date-format' that is already in goaccess.conf file.
That was the difference... hope helps you and anyone else that reads this in the future.
Thank you.
Ahmad

Sometimes, you need to not stick with specific technology:
s3 sync s3://my-log-bucket/ logs/
gem install request-log-analyzer
request-log-analyzer -f amazon_s3 --output html --file report.html logs/my-bucket*
open report.html # OSX users


relay: conflict with GlobalId of strawberry_django_plus

I get the error:
strawberry.exceptions.scalar_already_registered.ScalarAlreadyRegisteredError: Scalar GlobalID has already been registered
I think it is because I use strawberry_django_plus and the new relay implementation.
I don't know on which side to report

/cc @bellini666

@devkral you are probably mixing both integrations (i.e. using GlobalID from strawberry while also using it from strawberry-django-plus)
I need to port strawberry-django-plus to use the core integration instead of its own, and I should do that this weekend. Then those kind of issues are not going to happen anymore :)

it was a gql.django.node which caused the problem

@devkral I just released a new version of strawberry-django-plus, which removes its custom relay implementation and integrates on top of the official one: https://github.com/blb-ventures/strawberry-django-plus/releases/tag/v3.0.0


feat: WIP: Scaleway provider

I've started to draft a Scaleway provider, the first commit contains only the API and the links between the CLI flags and the said API.
I open it so you can start suggestions / remarks :)

@anbraten Is it planned to use a config file instead of CLI Flags and Env Vars for users to describe their agent pools?

We should discuss about it because in terms of UX, if we want the auto-scaler to manage different agent pools (with different labels set) this will be really heavy on environment variables and a structure file format like YAML or TOML would be better IMHO.
As a middle-ground maybe we could use godotenv with an environment variable WOODPECKER_AUTOSCALER_AGENT_POOLS_PATH that loads such a file 🤷

We should discuss about it because in terms of UX, if we want the auto-scaler to manage different agent pools (with different labels set) this will be really heavy on environment variables and a structured file format like YAML or TOML would be better IMHO.

Currently the design is to use one autoscaler per agent-pool. Its a pretty lightweight tool and makes the code / config much simpler.
In container / deployment setups env vars are normally way easier to setup IMO than mounting a config file, so wouldn't per se agree that a config file is better suited.

Alright, I didn't have the argument that we will use multiple autoscaler per pool, that's a pretty neat design :)

I am going to comply with the CI checks just before the MR leave the draft state btw

Alright, I didn't have the argument that we will use multiple autoscaler per pool, that's a pretty neat design :)

It might be a consideration in the long-run to not have 100 (lets first get to such an amount 😅) agents querying the server for queue information, but til then I think it ways easier to have separate ones.

I am going to test the PR later in the afternoon, do you have any hint on how to setup a testing environment as I am pretty new to WP? 🙏

Solves #51

I am going to test the PR later in the afternoon, do you have any hint on how to setup a testing environment as I am pretty new to WP? 🙏

I normally test using a simple docker-compose with gitea. Sth like this:
version: '3'

services:
   woodpecker-server:
     image: woodpeckerci/woodpecker-server:next
     ports:
       - 8000:8000
     volumes:
     environment:
       - WOODPECKER_OPEN=true
       - WOODPECKER_ADMIN=anbraten
       - WOODPECKER_HOST=${WOODPECKER_HOST}
       - WOODPECKER_GITEA=true
       - WOODPECKER_GITEA_CLIENT=${WOODPECKER_GITHUB_CLIENT}
       - WOODPECKER_GITEA_SECRET=${WOODPECKER_GITHUB_SECRET}

  gitea-database:
    image: postgres:12.4-alpine
    environment:
      POSTGRES_USER: gitea
      POSTGRES_PASSWORD: 123456
      POSTGRES_DB: gitea
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - pgsql:/var/lib/postgresql/data/pgdata

  gitea:
    image: gitea/gitea:1.21
    ports:
      - 3000:3000
    volumes:
      - gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - gitea-database
    environment:
      USER_UID: 1000
      USER_GID: 1000
      # GITEA__server__DOMAIN: gitea.local.self
      GITEA__server__ROOT_URL: http://gitea:3000
      GITEA__database__DB_TYPE: postgres
      GITEA__database__HOST: gitea-database:5432
      GITEA__database__NAME: gitea
      GITEA__database__USER: gitea
      GITEA__database__PASSWD: 123456
      GITEA__webhook__ALLOWED_HOST_LIST: '*'
    extra_hosts:
      - 'host.docker.internal:host-gateway'

volumes:
  gitea:
  pgsql:
  woodpecker-server-data:

Thanks for you review, I will try to fix it tonight!

I addressed your concerns, my colleagues gave me one or two tips like using the terminate action instead of deletion to also detach and remove the block storage but I will probably do it in another PR to avoid putting too much in this one :)

could you merge master into the feature branch :)

@raskyld Could you please rebase again?

Done :)
Sorry for the delay!

No worries. Thanks!


Shorten path bitcoin::secp256k1 -> secp

Based off of an idea I had here we can reduce the number of times devs have to write 'secp256k1' since it is a tad clunky to write. Until we get an alias in rust-bitcoin we can test run the usefulness of such a thing here in rust-miniscript by using import aliases.
Shorten the use of bitcoin::secp25k1::Foo -> secp::Foo with no loss of clarity.
The import alias can be later removed if/when rust-bitcoin adds an alias as described in the discussion linked above.
Please note, this PR in and of itself is not that much of an improvement, the hope is that this makes coding on rust-miniscript more fun by being less clunky. If this is the case it may influence other crates and make everyones life better (for those of us who define goodness of their lives by terseness of the code we write).

I'm going to leave this one to go into rust-bitcoin then we can decide if we want to use it here.


Use reused translations and remove unnecessary double quotes

See the discussion about these changes.

Hmm, I'd like to merge this for now. But now we have conflicts, sorry for the long wait. :cry:
@milescellar Can I ask you to rebase this so I can merge? :)

Do we have a longer-term plan to remove the reused translation mechanism? Should I make an issue?

I still like it, to be honest.

@franzliedke i'm with you. I think the references are a great way to keep translations clean, even though they make readability harder. As such I'm against dropping the references in the long term, even though that means maintaining a custom Translator class.

@franzliedke No more conflicts, it should be good! 👍


feat: History details and summary

Is your feature request related to a problem? Please describe.
Currently the application imports the wish history from Kuro's servers but there are no features that currently consume the data.
Describe the solution you'd like

A detail screen to show the entire history, in detail.
A summary screen to show the summary of the user's history data. This should focus more on info being more readily available.

Describe alternatives you've considered
- None -
Additional context
- None -

Detailed convene history page will be done in a later feature since the development of this feature blocks out other much needed features.


Idea for bulk edit improvement

I like the idea behind the bulk edit feature, but it doesn't quite work for me: I want to list "unassigned" tasks, and then use bulk edit to assign a batch of them at once to a single user, but of course (and as noted in the docs) as soon as I assign my "example" task it disappears from the view so I can't use it to bulk edit the others.
I wonder if this could work slightly differently: if I create a "new record" form on my page above the grid that shows my query results, and "bulk edit" would take the field values from the form and apply them to the checked entries in the grid.  Perhaps you can hide or alter the behavior of the default "submit" button from the new record form to make that work.

That seems like it would work.  You'd do a 'normal' inline edit on the first row, and then click the 'select all rows' checkbox and 'apply last edit' and that would do the same thing to all the other selected rows.

Not exactly, but close.
Here's the typical sequence I'd see:

Click on all rows' checkboxes you wish to edit
Click on a columns to select the fields you wish to copy
Click on the source row to start the Bulk Edit process and wait until it completes

At that point I still have all the source data in memory, so I add that new button named "Reuse Last Source"

Repeat step 1) but with new records. Note that you can take all the time you need to apply various filters, sort, actually do anything except refresh the page.  The memory will retain your last source data.
Once your new row selection is satisfactory, click on the "Reuse Last Source" button instead of a source row.
The same changes will apply for the new section, and you can repeat this at will.

Norm

Dr. Scott,
I've taken the initiative to close the issue, since I didn't hear back from you.
Feel free to re-open it if you need anything else.
Norm


Methods not exist in the class when class extended with decorator

Hey guys,
I'm getting an error from templates:
The method "areElementsValid" that you're trying to access does not exist in the class declaration.
I will try to describe my case.
I have a component where I define form and this component is extended by decorator @AddValidationHandling() which is extending prototype of the class with some methods including areElementsValid. So code itself is working and methods are accessible but I get all the errors from codelyzer about methods not exist.
Simplified decorator:
export function AddValidationHandling (): Function {
    return (target: any): Function => {
        target.prototype = Object.assign(ValidationForm.prototype, target.prototype);
        return target;
    };
}

function ValidationForm (): void {}
ValidationForm.prototype. areElementsValid = function (formGroup: FormGroup, elementNames: string|string[]): boolean {
        // ...
        return isValid;
    }
};

and usage:
@Component({
    // ...
})
@AddValidationHandling()
export class OfferFormComponent {
    // ...
}

@rokerkony codelyzer does static code analysis. In @AddValidationHandling you dynamically set the prototype of the target class.
There are a lot of dynamic constructs which are not statically analyzable, i.e. not supported by codelyzer.
Does this code compilers with Angular's AoT compiler?

Angular CLI with --aot=true does all the magic... at least I tried on as minimal example as possible:
import {Component} from '@angular/core';

function AddCallMe (): Function {
  return (target: any): Function => {
    target.prototype = Object.assign({
      callMe: function (value: any) {
        console.log('called with: ', value);
      }
    }, target.prototype);
    return target;
  };
}

@Component({
  selector: 'app-root',
  template: `see call method in console {{callMe(12)}}`,
})
@AddCallMe()
export class AppComponent {}

any idea if it is achievable by codelyzer as well in the future?
looks like it could be related with https://github.com/Microsoft/TypeScript/issues/4881


'pick hostname from backend address' option is now 'Pick hostname from backend target'

'pick hostname from backend address' option is now 'Pick hostname from backend target'

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 77a317f1-deef-4ba7-5839-f39ce3733655
Version Independent ID: d85aa8fe-7270-d073-ea56-d1c0759383b8
Content: Enabling end to end TLS on Azure Application Gateway
Content Source: articles/application-gateway/ssl-overview.md
Service: application-gateway
GitHub Login: @amsriva
Microsoft Alias: victorh

@zhoucengchao , Thanks for reaching out. We will investigate and update this thread.

@zhoucengchao , Appreciate your feedback. The document has been edited accordingly and it would take some time for the changes to get reflect over the document.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


Help needed

Sir how can i make my demo website from this repo. What things i needed to change to run github pages successfully

🙁


Expose PinMode as public

With the new GPIO API it is not possible anymore to create a generic
functions that would turn a Pin into PushPull unless the current mode of
the Pin is hardcoded.
This used to work:
 pub struct LedUser(pub gpio::gpioc::PC7<gpio::Output<gpio::PushPull>>);

 impl LedUser {
     pub fn new<Mode>(pin: gpio::gpioc::PC7<Mode>) -> Self {
         LedUser(pin.into_push_pull_output())
     }
 }

Now it fails due to:
error[E0599]: the method `into_push_pull_output` exists for struct `stm32h7xx_hal::gpio::Pin<'C', 7_u8, Mode>`, but its trait bounds were not satisfied
  --> src/led.rs:29:21
   |
29 |         LedUser(pin.into_push_pull_output())
   |                     ^^^^^^^^^^^^^^^^^^^^^ method cannot be called on `stm32h7xx_hal::gpio::Pin<'C', 7_u8, Mode>` due to unsatisfied trait bounds
   |
   = note: the following trait bounds were not satisfied:
           `Mode: stm32h7xx_hal::gpio::convert::PinMode`

I would like to set <Mode: PinMode>, but for that, PinMode needs to be
made public.
Signed-off-by: Petr Horacek<EMAIL_ADDRESS>

Thanks for reporting! This trait is already sealed, so I see no issue with making it public.

Published as version 0.12.1 on crates.io 🎉

Thanks a lot @richardeoin o/


Update NuGet.Config

Added <clear /> before packageSources to speed up finding vNext packages. This helped me out getting the samples working. Thanks to Maarten Balliauw http://blog.maartenballiauw.be/post/2014/05/19/Speeding-up-ASPNET-vNext-package-restore.aspx

@jchannon maybe this should be closed or resolved.


fix middleware on 302 responses

I want to fix that using feature from #21 . What are you think?

@snapshotpl I left some comments there

Fixed in #21


Interactive window title not localized

See image for comparison of the text for the menu item, the caption for Python Interactive, and R Interactive.

It looks as though the caption for R is not localized (or badly localized).  We should aim for consistent localized terms between Python and R.

Sorry, looks like it's Python that's inconsistent.  I'll move the bug over there.


Update spark rapids version to 23.10.0

This PR updates spark-rapids.sh init script with the latest 23.10.0 (to-date) rapids-4-spark version.
signed-off-by: Suraj Aralihalli<EMAIL_ADDRESS>

@jayadeep-jayaraman The new version of RAPIDS Accelerator is out. Can you review this PR?
FYI @viadea

LGTM

/gcbrun

Hi @jayadeep-jayaraman , could you help confirm why the check failed?


feat: adds DB ping to healthchecks

Signed-off-by: rkilingr<EMAIL_ADDRESS>Fixes #98
Tests

[x] Unit Tests

[x] API Test
Good DB:

Bad DB:

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.rkilingar seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #373 (1da07de) into main (45f292b) will increase coverage by 0.08%.
The diff coverage is 100.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #373      +/-   ##
==========================================
+ Coverage   70.02%   70.11%   +0.08%
==========================================
  Files          11       11
  Lines        2042     2048       +6
==========================================
+ Hits         1430     1436       +6
  Misses        510      510
  Partials      102      102

Impacted Files
Coverage Δ

service/handlers.go
62.03% <100.00%> (+0.22%)
:arrow_up:

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 45f292b...1da07de. Read the comment docs.


fix: installation docs

:tada: This PR is included in version 1.1.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Error getMuiTheme

ERROR in ./node_modules/material-ui-datetime-range-picker/DatePicker/DateRangePicker.js
Module not found: Error: Can't resolve 'material-ui/styles/getMuiTheme' in '../node_modules/material-ui-datetime-range-picker/DatePicker'

Same here

Same here!

Same here!

Same

Same here !

same

Same here. Is module dead? ))

@pravosleva it looks like this module is compatible only with old Material UI library.

same here

Same here


Deterministic $TeamCityBuildNumber when triggering multiple builds

Currently, teamcity build operation will always update $TeamCityBuildNumber. This behavior may not be ideal for concurrent builds scenario.
For example, bm triggers multiple builds concurrently, without the ability to turn off $TeamCityBuildNumber, every build would update this result back to bm when it finishes, and depending on which build finish last, the result of build number would be indeterministic.

Can you confirm if this was addressed w/ the new style of operations?

How does the new style work now (5.4.2)? I assigned $TeamCityBuildNumber to "Set build number to variable", within the execution itself the build number is set, but I couldn't see it from pipeline progress screen. I recall used to be able to see it from the progress screen, however, tried version 5.2.2, also didn't work.

This is now a output parameter of the Operation, so this is assigned as a runtime variable. You can use the Set Package Variable  Operation to create a package variable.

Do you have a simple example that demonstrates how to set this?
I tried to set it as release variable and it didn't work. What I did was:
Created a release variable ($BuildNumber, $TeamCityBuildNumber) in the release.
Import TC Artifact operation:
TeamCity::Import-Artifact
(
Credentials: teamcity,
Project: aaa,
BuildConfiguration: bbb,
Artifact: ccc.zip,
Branch: bm,
TeamCityBuildNumber => $TeamCityBuildNumber
);
Set-ReleaseVariable BuildNumber
(
Value: $TeamCityBuildNumber
);
With this set, running the package, in the log it says:
TeamCity build number "20" imported.
Setting BuildNumber release variable...
ReleaseNumber: 0.0.10
PackageNumber:
Variable set.
It seems the release variable has been set, but when from the progress screen, the release variables for both BuildNumber and TeamCityBuildNumber are both empty value.
I tried similar thing with package variable too yesterday, but same result, the variables are left empty as when created, nothing set is passed back to progress screen.

Thank you for that additional information. There does appear to be a scoping issue, but it only applies to output variables. If you change the Import operation to the following, it should work in the meantime:
TeamCity::Import-Artifact
(
    Credentials: teamcity,
    Project: aaa,
    BuildConfiguration: bbb,
    Artifact: ccc.zip,
    Branch: bm,
    TeamCityBuildNumber => $TempTCBuildNumber
);

set $TeamCityBuildNumber = $TempTCBuildNumber;

Can you try that, and let me know if that resolves it?

Tried, but it doesn't solve it.
"set $TeamCityBuildNumber = $TempTCBuildNumber;"
works within the execution plan confirmed by the log. But the $TeamCityBuildNumber outside in the progress screen is still blank.

This should be resolved in BuildMaster v5.6.0 and later.


Fetch The Data From Backend into Results Page

Hey, Please assign it to me if the issue is still open

Yes @jashlodhavia assigning to you,
Please fetch only the required data i.e., given on the results page

Hey, So sorry. I am busy with another project.

Hi, @nehakalbande I can work on this.
Please assign me the task

@fumblehool  assigning to you,
Please make sure to fetch only the required data i.e., given on the results page


steam: Bind mount for /etc/resolv.conf fails often

Describe the bug
Starting a game in Steam fails with the following message:
bwrap: Can't bind mount /oldroot/etc/resolv.conf on /newroot/etc/resolv.conf: No such file or directory
This does not happen all the time, but quite often (>50%); when it happens once it will happen until I restart Steam.
I'm using systemd-resolved (services.resolved.enable = true), so /etc/resolv.conf is a symlink to /etc/static/resolv.conf, which is a symlink to /run/systemd/resolve/stub-resolv.conf.
I assume that resolv.conf pointing to /run might interfere with the setup of the steam runtime somehow, but that's just a guess.
Notify maintainers

@jagajaga
@jonringer
Metadata
 - system: `"x86_64-linux"`
 - host os: `Linux 5.12.7, NixOS, 21.11.20210601.1c2986b (Porcupine)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4pre20210503_6d2553a`
 - nixpkgs: `/nix/store/ypgnj9x286v31wf3061j60vqmyq7pc45-source`

I had the problem with that revision; now I'm using steam from nixpkgs/2033f37fb284bd55159ea1650aa93a635caaffb3 (because of the new runtime version), but the problem persists.
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:
- programs.steam.enable

this is probably a bwrap issue. I would report upstream https://github.com/containers/bubblewrap

Thanks for the direction.
After updating (new Steam runtime https://github.com/NixOS/nixpkgs/pull/126138/) and reinstalling Steam (it wouldn't launch anything with the new runtime) I can't reproduce the problem any more.
If the problem reappears I will report this upstream, otherwise I am going to close the issue in a few days.

I'm getting the same error, but with the localtime file:
bwrap: Can't bind mount /oldroot/etc/localtime on /newroot/etc/localtime: No such file or directory

Another update: After playing around with this and trying to fix the issue - I'm now getting a new issue, unrelated to this one.
No games will launch in steam from my dGPU, but all will work fine on my iGPU with a horrid performance. This isn't a system wide issue, since minecraft and glxgears still seem to start on my dGPU.
I know that this is not on the topic of this issue (i'll maybe open a issue another time), but they must have something to do with each other.

I'm now encountering this with the Steam Deck UI (launch steam with -steamos3 -steampal -steamdeck -gamepadui). With services.resolved.enable I can trigger the /etc/resolv.conf error reliably by disconnecting and reconnecting to Wi-Fi, and I'm also seeing the same error but for /etc/group intermittently. Doing an strace yields the following weirdness:
5650  stat("/oldroot/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=920, ...}) = 0
5650  stat("/newroot", {st_mode=S_IFDIR|0755, st_size=380, ...}) = 0
5650  stat("/newroot/etc", {st_mode=S_IFDIR|0700, st_size=780, ...}) = 0
5650  stat("/newroot/etc/resolv.conf", 0x7ffd8fc42cc0) = -1 ENOENT (No such file or directory)
5650  creat("/newroot/etc/resolv.conf", 0444) = 4
5650  close(4)                          = 0
5650  mount("/oldroot/etc/resolv.conf", "/newroot/etc/resolv.conf", NULL, MS_BIND|MS_REC|MS_SILENT, NULL) = -1 ENOENT (No such file or directory)
5650  write(2, "bwrap: ", 7)            = 7
5650  write(2, "Can't bind mount /oldroot/etc/re"..., 69) = 69
5650  write(2, ": Unable to mount source on dest"..., 39) = 39
5650  write(2, ": No such file or directory", 27) = 27
5650  write(2, "\n", 1)                 = 1
5650  exit_group(1)                     = ?

bwrap: Can't bind mount /oldroot/etc/resolv.conf on /newroot/etc/resolv.conf: Unable to mount source on destination: No such file or directory

I can confirm @zhaofengli's obersvations with services.resolved.enable = true;.


Update README.md

Added troubleshooting

I don't understand this. From the line of code you suggest modifying you can see it is loading the TTY device name from the config file. Why not just set it in the config?

I was referencing a closed issue (#2) that had a solution, although setting in the config sounds like a more elegant solution.  Which config file are you referring to?


CompositeFilter doesn't work with multiple MarkerFilters

Description
The composite filter seem to not work with multiple MarkerFilters.
I learned in the meantime about the existence of the NoMarkerFilter which fits my use case, but I guess chaining multiple MarkerFilters is still a valid scenario.
Here is my configuration:
      AppenderRef:
        - ref: Console
          Filters:
            - MarkerFilter:
                marker: COMMAND
                onMatch: DENY
                onMismatch: NEUTRAL
            - MarkerFilter:
                marker: METRICS
                onMatch: DENY
                onMismatch: NEUTRAL

You can see in the logs bellow, having two MarkerFIlters, COMMAND and METRICS, only the first one is taken into account.
Configuration
Version: 2.24.1
Operating system: Ubuntu 22.04
JDK: 8
Logs
2024-10-17T12:26:13,119 [main] INFO  MarkerExample - This is a METRICS log entry
2024-10-17T12:26:13,122 [main] INFO  MarkerExample - This is a general log entry without a marker

Reproduction
I'm attaching a test below
demo.zip

The YAML configuration format interprets arrays as a list of element having the same plugin type as the key of the array.
Translated to XML your example looks like:
<AppenderRef ref="CONSOLE">
  <Filters>
    <MarkerFilter marker="COMMAND" onMatch="DENY" onMismatch="NEUTRAL"/>
  <Filters>
  <!-- This element is ignored since there can be only one filter element.
         An `ERROR` is logged to the status logger -->
  <Filters>
    <MarkerFilter marker="METRICS" onMatch="DENY" onMismatch="NEUTRAL"/>
  <Filters>
</AppenderRef>

What you want is for your Filters YAML object to contain an array with key MarkerFilter:
AppenderRef:
  ref: CONSOLE
  Filters:
    MarkerFilter:
      - marker: COMMAND
        onMatch: DENY
        onMismatch: NEUTRAL
      - marker: METRICS
        onMatch: DENY
        onMismatch: NEUTRAL

See Configuration syntax. There is a tip about YAML arrays.

Thanks for the detailed explanation. In the documentation this is not so clear. Maybe a clear example would help there.


Add others callbacks

Hello @camillebrianceau! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file clinicadl/utils/maps_manager/maps_manager.py:

Line 1241:1: W293 blank line contains whitespace
Line 1242:13: E303 too many blank lines (2)


camera option should go away if not on https

@nikkimk the camera / new upload thing is great. Camera doesn't show up if not on https but the option in the dropdown for camera is still there. should prolly hide that too

fixed.


Transfer error : "Argument of type ValueError is not iterable", but the transfer exists in the transaction list

I tried to apply a transfer, with the following comment : "cool cutecoin, isn't it ?"
but cutecoin display an error message : "Argument of type ValueError is not iterable"
So i remove the comma in comments, and the transfer was accepted.
In the transaction list, i could see both transfer : the first (bad) one and good one.
I should not see the bad transfer, isn't it ? ;)
Thks guys for all your work !!

Idem pour les caractères non ascii (le message est clair, mais la transaction est tout de même dans la liste)

Fixed in https://github.com/ucoin-io/cutecoin/commit/b5b4dae43f4dd30fb69261915a356783b0a4bbab


modify query_params and path_params class names

Is there a way to change how the query_params and path_params class names are generated without modifying the parser?
I would like them to be named with the camelcase endpoint name plus the suffix.
Example of what I get now:
    def get_field_values(
        self,
        path_params: FieldNamePathParams,
        query_params: XmlNodeNameParameter1Parameter2Parameter3QueryParams
    ) -> GetFieldValuesResponse:
        """Get Field Values"""
        return self.get(Endpoints.get_field_values, query_params)

what I want:
    def get_field_values(
            self,
            path_params: GetFieldValuesPathParams,
            query_params: GetFieldValuesQueryParams
    ) -> GetFieldValuesResponse:
        """Get Field Values"""
        return self.get(Endpoints.get_field_values, query_params)

This is how I get it now but would rather not modify the library.
Change https://github.com/mom1/apiclient-pydantic-generator/blob/master/apiclient_pydantic_generator/parser.py#L320
operation_name = re.sub('(?i)response$', '', self._temporary_operation.get('response'))
original_name = self._get_model_name(operation_name, '', suffix=suffix)

Thank you for your interest in the project.
I think the method using response is not very good.
In my case response = List[Pet] the result will be List[Pet]QueryParams.
What do you think of this method?
original_name = self._get_model_name(path[1], '', suffix=suffix)

endpoint = pet/findByStatus
models_name = PetFindByStatusQueryParams

@mom1 I will test tomorrow and let you know.  Thanks for looking at this.

@mom1 That almost works but need only the last part of a path like /api/v1/get_field_values/.  Something like:
original_name = self._get_model_name(pathlib.Path(path[1]).name, '', suffix=suffix)

I think the other problem with using the path name is that you could have a GET, POST, and PUT endpoint all with the same path name but each could have different query_params.  I think using the operation name is probably the best way to avoid this as they all need to be unique.

That's right, but here I need to investigate where to get the operation_id


Write UI-tests to make sure we reach > 75 % test code coverage

User story

As a SD
I want / need meet the requirements set by the customer
So that we have a successful collaboration with happy customers in the end

Further description

Based on the foundation layed in #128, now focus on the creation of tests

Acceptance criteria

[ ] * Write tests to cover the UI-components of our app
[ ] * Make sure to improve the overall test code coverage by a substantial amount of percentage points
[x] Check for Android
[ ] Check for iOS

Definition of done (DoD)

It builds without errors
code has been reviewed
Build has been made and deployed on a testing environment
Code coverage >75%
All acceptance criteria were met
Documentation updated whenever needed within planning documents (Tabs: Bill of materials, Documentations)
Branch/feature was merged into dev and then main

DoD general criteria

Feature has been fully implemented
Feature has been merged into the mainline
All acceptance criteria were met
Product owner approved features
All tests are passing
Developers agreed to release

For iOS I'm waiting for Markus mail


Fix get defaultExchange failed when the default exchange not init completed.

Motivation
In some unit tests, default exchange not init completed when call getExchange.
Modifications
Add CountDownLatch in ExchangeContainer.java to take control of default exchange init and get.
Verifying this change
Pass the exist unit tests.
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The schema: (no)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: (no)
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation

Does this pull request introduce a new feature? (no)

It will impl in new PR.


Add more verbosity to undeploy

What type of PR is this?
/kind bug
What does this PR do / why we need it:
This PR adds more verbosity to un-deploy while executing odo delete -af.
Which issue(s) this PR fixes:
Fixes #5321
PR acceptance criteria:

[ ] Unit test

[x] Integration test

[ ] Documentation

[ ] I have read the test guidelines

How to test changes / Special notes to the reviewer:
odo create nodejs --starter nodejs-starter
odo push
odo delete -af

Output:
➜ odo delete -fa
Un-deploying the Kubernetes Deployment
 ✗  no kubernetes component to un-deploy

Gathering information for component nodejs-abc-jtmy
 ✗  Checking status for component [5ms]
 ⚠  pod not found for the selector: app.kubernetes.io/instance=nodejs-abc-jtmy,app.kubernetes.io/part-of=app

Deleting local config
 ✓  Successfully deleted env file
 ✓  Successfully deleted devfile.yaml file

➜ odo delete -fa
Un-deploying the Kubernetes Deployment
 ✗  no kubernetes component to un-deploy

Do we really want to print anything at all when there's nothing to undeploy? I don't think we should because it might confuse a user who is using odo only for inner loop. Even if they are using odo for outer loop, that cross mark gives off an impression that something failed.
IMO, we should just skip it if there's nothing to undeploy for odo.

➜ odo delete -fa
Un-deploying the Kubernetes Deployment
 ✗  no kubernetes component to un-deploy

Do we really want to print anything at all when there's nothing to undeploy? I don't think we should because it might confuse a user who is using odo only for inner loop. Even if they are using odo for outer loop, that cross mark gives off an impression that something failed.
IMO, we should just skip it if there's nothing to undeploy for odo.

If the devfile.yaml or env.yaml is non-existent, we still put out an error saying that the file was not found when odo delete --all is run, I don't see why we can't do the same for deployed resources. Plus, We are deleting "all", which involves the deployed resources, I think it makes sense to show that there are no components to be un-deployed.

If the devfile.yaml or env.yaml is non-existent, we still put out an error saying that the file was not found when odo delete --all is run,

Your comment made me take a look at what odo errors out when a devfile.yaml or env.yaml are missing.

Missing devfile.yaml, but env.yaml exists:
$ odo delete -af
 ✗  error occurred while undeploying, cause: failed to populateAndParseDevfile: failed to read devfile from path '/home/dshah/src/nodejs-ex/devfile.yaml': open /home/dshah/src/nodejs-ex/devfile.yaml: no such file or directory
 ✗  error occurred while deleting component, cause: failed to populateAndParseDevfile: failed to read devfile from path '/home/dshah/src/nodejs-ex/devfile.yaml': open /home/dshah/src/nodejs-ex/devfile.yaml: no such file or directory

Deleting local config
 ✓  Successfully deleted env file
 ✗  devfile.yaml does not exist in the current directory

Yikes, that looks very bad, IMO. Think as a user. The messages are confusing me with what's deleted, what's not deleted, and why undeploy didn't happen. Heck, the devfile has nothing outer loop related in this case and I don't even care what undeploy is at this point.

Missing env.yaml, but devfile.yaml exists:
$  odo delete -af
 ✗  the current directory does not represent an odo component. Use 'odo create' to create component here or switch to directory with a component

That looks much more reasonable! This makes the earlier output (when devfile.yaml was missing) look even more gibberish, IMO.

I think we should revisit what odo prints to stdout when devfile.yaml is missing.

I don't see why we can't do the same for deployed resources. Plus, We are deleting "all", which involves the deployed resources, I think it makes sense to show that there are no components to be un-deployed.

I'm copy-pasting what I said earlier - I don't think we should because it might confuse a user who is using odo only for inner loop. Even if they are using odo for outer loop, that cross mark gives off an impression that something failed.
Now, if you want to stick to showing something on stdout when there's nothing to undeploy, at least don't use a cross sign! Replacing the output to below would be clear and cause no confusion to the user.
➜ odo delete -fa
Un-deploying the Kubernetes Deployment
 ✓  no kubernetes component to un-deploy

devfile.yaml does not exist

➜   odo create nodejs-vue
➜   rm devfile.yaml
➜   odo delete -af
Un-deploying the Kubernetes Component
 •  no kubernetes component to un-deploy
Deleting the devfile component
 •  no devfile component to delete
Deleting local config
 ✓  Successfully deleted env file
 •  devfile.yaml does not exist in the current directory

odo create with devfile-deploy.yaml

➜  odo create nodejs-vue
Devfile Object Creation
 ✓  Checking if the devfile for "nodejs-vue" exists on available registries [119081ns]
 ✓  Creating a devfile component from registry "DefaultDevfileRegistry" [4s]
Validation
 ✓  Validating if devfile name is correct [78288ns]
 ✓  Validating the devfile for odo [6ms]
 ✓  Updating the devfile with component name "nodejs-vue-abc-pngm" [402943ns]

Please use `odo push` command to create the component with source deployed

➜   cp $ODOPATH/tests/examples/source/devfiles/nodejs/devfile-deploy.yaml devfile.yaml

➜   odo delete -af
Un-deploying the Kubernetes Component
 •  Un-deploying the Kubernetes Deployment: my-component
 ✗  error occurred while un-deploying, cause: command execution failed: deployments.apps "my-component" not found
Deleting the devfile component
 •  Gathering information for component: nodejs-vue-abc-pngm
 ✗  Checking status for component [419ms]
 ⚠  pod not found for the selector: app.kubernetes.io/instance=nodejs-vue-abc-pngm,app.kubernetes.io/part-of=app
Deleting local config
 ✓  Successfully deleted env file
 ✓  Successfully delete devfile.yaml file

devfile.yaml is present, devfile k8s component are present. odo deploy and odo push have been executed

➜  odo delete -af
Un-deploying the Kubernetes Component
 •  Un-deploying the Kubernetes Deployment: my-component
Deleting the devfile component
 •  Gathering information for component: nodejs-vue-abc-hnuw
 ✓  Checking status for component [428ms]

Deleting component nodejs-vue-abc-hnuw
 ✓  Deleting Kubernetes resources for component [324ms]
 ✓  Successfully deleted component
Deleting local config
 ✓  Successfully deleted env file
 ✓  Successfully delete devfile.yaml file

@dharmit what do you think?

/approve
/lgtm

@valaparthvi since it's a bug fix, I would suggest cherrypicking this on v2 branch.

Do you think we need a demo for this one? @dharmit

Do you think we need a demo for this one? @dharmit

I don't think so.


Remove tool comment artifact in last line.

"This converter is running version 0.9.0 of EasyRdf."

???

subsequent builds have resolved this issue.


Issue with swift package manager

my package.swift entry looks as following
import PackageDescription

let package = Package(
  name: "Alamofire",
  dependencies: [
        .Package(url: "https://github.com/Alamofire/Alamofire.git", majorVersion: 3)
        ]
)

but when i run swift build i get following error
error: NoSources("/Users/agaikwad/git/swift-crash-course/Packages/Alamofire-3.4.0/Tests/Resources")

anyone else facing this issue?

We're not officially supporting SPM until it has been officially released. If you find a direct issue with our Package file, please submit a PR to help us fix things up!
Cheers. 🍻

Cheers. 🍻


Create docs for compression module

Coverage remained the same at 94.946% when pulling 0459fb8542fa66a9f4b5edd4ed9b7d1339b8641a on docs-compression-module into 90fa79573fe6860d9657a67b158e7da9452d126a on master.

Coverage remained the same at 94.946% when pulling 0459fb8542fa66a9f4b5edd4ed9b7d1339b8641a on docs-compression-module into 90fa79573fe6860d9657a67b158e7da9452d126a on master.

Codecov Report

Merging #128 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #128   +/-   ##
=======================================
  Coverage   95.56%   95.56%
=======================================
  Files          18       18
  Lines        1870     1870
=======================================
  Hits         1787     1787
  Misses         83       83

Impacted Files
Coverage Δ

src/compression.rs
96.52% <0%> (ø)
:arrow_up:

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 90fa795...0459fb8. Read the comment docs.


chore: bdd-nh-1583240158 to 0.0.1

chore: Promote bdd-nh-1583240158 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


[FEATURE] prevent processing new control interface requests after a shutdown message has been received

Affected project(s)

[ ] documentation
[ ] examples
[X] wasmCloud host
[ ] wasmCloud CLI (wash)
[ ] wasmCloud dashboard UI (washboard)
[ ] capability providers
[ ] provider bindgen
[ ] control interface client
[ ] other / not sure

Is your feature request related to a problem? Please describe.
The host handles requests concurrently, but it's possible for a shutdown message to be processed, and before the host fully shuts down, additional requests to be processed (semi-)concurrently
This would allow a host that is shutting down to respond positively to auctions, for example, which is undesired
Describe the solution you'd like
Once a shutdown message is received, the control interface subscriptions should be closed immediately
Describe alternatives you've considered
No response
Additional context
Related to https://github.com/wasmCloud/wasmCloud/issues/367, which was closed in response to breaking this out as its own issue

Once a shutdown message is received, the control interface subscriptions should be closed immediately

This is currently the behavior of the host. Once the shutdown message is received, we .abort() the queue that's handling control interface requests https://github.com/wasmCloud/wasmCloud/blob/main/crates/host/src/wasmbus/mod.rs#L2775
From their docs on Abortable::new():
    /// When `abort` is called on the handle tied to `reg` or if `abort` has
    /// already been called, the future/stream will complete immediately without making
    /// any further progress.

Weirdly, on AbortHandle::abort():
    /// Notifies the Abortable task associated with this handle that it
    /// should abort. Note that if the task is currently being polled on
    /// another thread, it will not immediately stop running. Instead, it will
    /// continue to run until its poll method returns.

So, I'm unsure which piece is more accurate. If it's the former we can close this, if the latter then we may need to keep it open.

@brooksmtownsend I took a shot at reproducing and could not. Do you think this is sufficient motivation to close?
export host_id=NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO
for i in {0..30}; do
  if [[ $i -eq 20 ]]; then
    wash stop host $host_id
  else
    ./target/debug/wash label $host_id $i=true
  fi
done

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `0=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `1=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `2=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `3=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `4=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `5=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `6=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `7=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `8=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `9=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `10=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `11=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `12=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `13=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `14=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `15=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `16=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `17=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `18=true`

Host `NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO` labeled with `19=true`

Host NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO acknowledged stop request

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

Did not receive put label acknowledgement: no responders: no responders

./target/debug/wasmcloud --log-level debug
2024-01-12T20:53:08.898721Z DEBUG new: wasmcloud_host::wasmbus: adding cluster key to cluster issuers cluster_pub_key="CDKXCM5MIQAUQT3TC3EK5F7U4SLHSF4PFEUG4O63H4WN2KOBS3IR7SHH"
2024-01-12T20:53:08.899363Z DEBUG new: wasmcloud_host::wasmbus: connecting to NATS control server ctl_nats_url="nats://<IP_ADDRESS>:4222"
2024-01-12T20:53:08.899492Z DEBUG new: wasmcloud_host::wasmbus: connecting to NATS RPC server rpc_nats_url="nats://<IP_ADDRESS>:4222"
2024-01-12T20:53:08.901656Z  INFO async_nats::options: event: connected
2024-01-12T20:53:08.901862Z  INFO async_nats::options: event: connected
2024-01-12T20:53:08.902979Z  INFO new:create_bucket: wasmcloud_host::wasmbus: bucket already exists. Skipping creation. bucket=LATTICEDATA_default
2024-01-12T20:53:08.903370Z  INFO new:create_bucket: wasmcloud_host::wasmbus: bucket already exists. Skipping creation. bucket=CONFIGDATA_default
2024-01-12T20:53:08.905478Z DEBUG new:process_claims_put: wasmcloud_host::wasmbus: process claim entry put pubkey="VDCXWAILV6VBITUBJROH3T2GEB2Q4FJT3GLZAG2CDVCXVUEDF4EZYM2V"
2024-01-12T20:53:08.905842Z DEBUG new:process_claims_put: wasmcloud_host::wasmbus: process claim entry put pubkey="VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M"
2024-01-12T20:53:08.906126Z DEBUG new:process_claims_put: wasmcloud_host::wasmbus: process claim entry put pubkey="MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5"
2024-01-12T20:53:08.906505Z  INFO new:process_linkdef_put: wasmcloud_host::wasmbus: process link definition entry put actor_id="MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5" provider_id="VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M" link_name="default" contract_id="wasmcloud:httpserver"
2024-01-12T20:53:08.907208Z  INFO new: wasmcloud_host::wasmbus: wasmCloud host started host_id="NDSHE2WA7URWEKEHWRQUDCZQVSQG3NA24AOPT7X2X3QL2YPK5EH5PMFO"
2024-01-12T20:53:14.530632Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="0" value="true"
2024-01-12T20:53:14.543407Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="1" value="true"
2024-01-12T20:53:14.555049Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="2" value="true"
2024-01-12T20:53:14.566057Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="3" value="true"
2024-01-12T20:53:14.577682Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="4" value="true"
2024-01-12T20:53:14.588626Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="5" value="true"
2024-01-12T20:53:14.599625Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="6" value="true"
2024-01-12T20:53:14.610841Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="7" value="true"
2024-01-12T20:53:14.621775Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="8" value="true"
2024-01-12T20:53:14.632806Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="9" value="true"
2024-01-12T20:53:14.644196Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="10" value="true"
2024-01-12T20:53:14.654943Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="11" value="true"
2024-01-12T20:53:14.665979Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="12" value="true"
2024-01-12T20:53:14.678192Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="13" value="true"
2024-01-12T20:53:14.690112Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="14" value="true"
2024-01-12T20:53:14.701809Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="15" value="true"
2024-01-12T20:53:14.713420Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="16" value="true"
2024-01-12T20:53:14.724891Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="17" value="true"
2024-01-12T20:53:14.737208Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="18" value="true"
2024-01-12T20:53:14.748560Z  INFO handle_label_put: wasmcloud_host::wasmbus: set label key="19" value="true"
2024-01-12T20:53:14.757773Z DEBUG handle_stop_host: wasmcloud_host::wasmbus: handling stop host timeout=Some(2000)
2024-01-12T20:53:14.757840Z  INFO wasmcloud_host::wasmbus: heartbeat task gracefully stopped
2024-01-12T20:53:14.757854Z  INFO wasmcloud_host::wasmbus: data watch task gracefully stopped
2024-01-12T20:53:14.757882Z  INFO wasmcloud_host::wasmbus: control interface queue task gracefully stopped
2024-01-12T20:53:14.757895Z  INFO wasmcloud_host::wasmbus: config data watch task gracefully stopped

Yep that's good enough for me. I think the chance of a host responding to an auction after receiving a stop request is much lower than whatever client making that request taking too long!


Tracker: binary heaps

#1999 motivates the need for a general PIFO. It also discusses a made-up strategy for implementing such a PIFO. It leaves on the table, however, another straightforward solution: binary heaps.
This is a tracker for the things we need.

[ ] A module that accepts values and pushes them into a min-heap ordered by value.
[ ] Tweak the above to accept a value and a rank, and push a (value, rank) tuple ordered by rank.
[ ] Modify the above to obey the queue interface.
[ ] Add peek and pop functionality.
[ ] Test!
[ ] Document!
[ ] Write logic for a scheduling transaction that interacts with the above, granting ranks to values. This logic should achieve fairness among the incoming classes of traffic.
[ ] Explore what it would take to implement PIFO trees using these PIFOs.

Does this issue have a PR or a branch?

PR for the first task coming soon. My intention is to leave the other tasks as little tasks for my BURE undergrads.

@ethanuppal see #2074 if you're curious!


Add publication point details to man page

Annoyingly, we can’t quite seem to remember what this is supposed to mean …


http: alpn upstream

Allows configuring both HTTP/1 and HTTP/2 options for a cluster, which triggers TLS alpn negotiation.
  NEEDS UNIT TESTS
Docs Changes: n.a
Release Notes: inline
Fixes #3431

Unit tests are expected to fail - there's some mock clean up around timers and connection.connected() to do, but it's in pretty good shape stability-wise (beyond the new integration test, I've run the full http2_upstream_integration_test and http_integration_test with alpn forced true and they pass)
I wanted to get include-API thumbs up before I spent too much time reordering mocks and writing the new nuit tests.

Whoops, meant to cc @mattklein123 and @snowp last week.  Still got 1 of 2, not bad :-P

Ok, I'll go beat the config loading into shape, and see how much of the config the deprecated CI gets, then ping for another pass.  So waiting w.r.t Matt, but I would appreciate Snow's toughts w.r.t. alpn decoration.  I'm not sure of the motivation for explicitly configured transport ALPN vs cluster failover ALPN so I'm not sure how to address Matt's question there.

CI likely going to fail on this push, but I want to give you a feel for what it's going to look like as I continue cleaning deprecated config failures.

this PR is now up over 100 files with all the docs and configs changes.  Worth splitting out an API-only PR which deprecates the old and adds the new (sans ALPN) then the ALPN PR, or are you Ok with the megadiff?
know offhand where in docs we should doc up the new options other than API stuff?
just want to note we can't migrate from the current "ALPN always includes HTTP/1 and HTTP/1" to "ALPN can selectively include HTTP/1 or HTTP/2, so if we want folks to be able to choose h2/h1 only, we should go with the expected_alpn string.

yeah, on further inspection I thnk I've got to split out config - this is simply too unwieldy.

FWIW I have the transport socket requirements as well as all the prefetch plumbing sorted out for this PR, so just waiting on https://github.com/envoyproxy/envoy/pull/14079 so I can clean up the diffs.

+1 on being futureproof, but my point is I think any shared happy eyeballs extension would go either directly in cluster config, or both TcpProtocolOptions and HttpProtocolOptions.
Basically I think auto ipv4/ipv6 is orthogonal from auto http1/http2/http3 so should not go into the AutoHttpConfig

would go either directly in cluster config, or both TcpProtocolOptions and HttpProtocolOptions.

Yes we are in agreement. My only comment is I think in general we want more things to go in typed_extension_config vs. the raw cluster config so we don't wind up in the same situation you just unwound, but I agree we can cross that bridge later.

Basically I think auto ipv4/ipv6 is orthogonal from auto http1/http2/http3 so should not go into the AutoHttpConfig

Yes agreed I think we are OK.

new conflicts are just two build file additions and two include additions. Will push another update but it should have no impact on tests.

PTAL?


Add new page on who uses Scikit-HEP

I will also add that information for iminuit.

Thanks @HDembinski.
Just to be clear: so far I made no distinction among packages so the page really is for any project/collab/… that uses any of the packages in the org. I think that makes sense. But am open to other opinions and suggestions, as always.


Check our models are getting this configuration of data inputs

General

[ ] The target should be future GSP power and, optionally, future satellite imagery

The model should receive these as inputs

[ ] An embedding of the GSP ID (also see https://github.com/openclimatefix/nowcasting_dataset/issues/451)
[ ] Historical data from all individual PV systems within the region of interest (which almost certainly will be available at inference time and is probably important so the model can see how much sunlight each cloud is letting through!), probably including:

[ ] An embedding of each PV system's ID (so the model can learn which PV systems to trust)?
[ ] The spatial and temporal location of each PV reading

The model should NOT receive these as inputs :slightly_smiling_face:

[ ] Triple-check that we're not accidentally giving the model future GSP power as an input :slightly_smiling_face:  (mistakes like this are all too easy to make!)
[ ] Historical GSP power data (because that won't be available at inference time!)
[ ] Future satellite images :slightly_smiling_face:

The target should probably also optionally be the future satellite imagery too?

Ah, yes, good point! I'll add that to the list

Also, we should give future PV values too?

Okay, I started a new dataset based off one I had for SatFlow that should ensure all these things in #60

we shouldnt give future PV values too?

Good point!  I've added that to the list, too!


adds machine id to viper config

you may need too fix imports..

"github.com/spf13/viper"

"github.com/spf13/viper"

added this! thanks for catching that @6za


Avoid passing app to UI elements

Currently we are passing app into the UI elements to send events up. But this will create peer dependencies to app and make it harder to split out the UI elements into their own modules.
Instead we should just create a target callback for sending actions up. Such as:
function action (name, params) {
  /* Handle action name */
}
self.views = {
    channels: new Channels({ target: action })
}

and then in the UI element:
function Composer (opts) {
  opts = opts || {}
  this.target = opts.target || function() {}
}

Composer.prototype.render = function () {
  var self = this

  var input = h('input', {
    placeholder: 'Send a message...',
    autofocus: true
  })

  return h('form.composer', {
    onsubmit: function (e) {
      e.preventDefault()
      var input = this.querySelector('input')
      self.target('sendMessage', input.value)
      input.value = ''
    }
  }, input)
}

Or get more fancy and have the actions bubble up: https://gist.github.com/shama/33f7aaeb902a001637e8

what about each component being an event emitter and app just instantiating them and managing event passing/delegation

Yep that would be cool too. Just anything that can pass actions up that isn't another library passed into the constructor. :)

Trying out an event emitter approach: 585e1559e8cc7706422a69c3a6ecf304c701bb3d


feat: homepage feed json

Description

Task Item
#minor

Screenshots

@zhixzhan  lets wait on @garypretty  to review this content before we merge. So Tuesday is probably when we are looking to land this.

@zhixzhan  lets wait on @garypretty  to review this content before we merge. So Tuesday is probably when we are looking to land this.

Sounds good, i think it is provided by @garypretty , do you want to confirm?

I'd like to understand the following before we take this:

Is this feed fetched every time the home page loads? If so that seems inefficient.
Do we know what type of latency we can anticipate when we load this from github? Have we considered publishing the resource to a CDN?
What error cases are considered in the implementation? Malformed data, network errors, etc.

I'd like to understand the following before we take this:

Is this feed fetched every time the home page loads? If so that seems inefficient.
Do we know what type of latency we can anticipate when we load this from github? Have we considered publishing the resource to a CDN?
What error cases are considered in the implementation? Malformed data, network errors, etc.

For 1, i think the current implementation loads it every time Composer loads, not every time home page load. Is this correct @zhixzhan?
For 2, we haven't measured much about the latency, manual testing of the home page PR shows it's quite good, it could be there is less load. srinaath helped investigated the CDN usage, the recommendation is it's a bit of over kill given the effort to onboard, @srinaath can you elaborate more on this?
For 3, the feed defines a certain widgets (news, docs) in the home pages, when any error happens, the widget will be empty. The core functionality like creating\open, will still be functional.

Is this feed fetched every time the home page loads? If so that seems inefficient.

Hi @cwhitten @boydc2014  the feed will be fetched at every composer loads.

Coverage remained the same at 51.64% when pulling e7bf31be3c7940789bdbed76282a6a24849aecf1 on zhixzhan/feed into da58480c2be20d519c5ddcdafbcc41bab08367f0 on main.


Remove kovarex-enrichment-process insertion for artillery-atomics

Fixes https://github.com/More-Wrong/Factorio-True-Nukes/issues/15
If you want to discuss a better fix please let me know, happy to discuss.

Hi, that would be the fix, but as far as I can tell, the issue doesn't lie with base SE nor the SE official modpack, so doing the changes under SE would break the mod for people playing with just SE.
I'll work with you on finding the offending mod in the issue you raised.

Ok so I have extracted and looked for kovarex-enrichment-process in all the mods currently installed and it looks like Nuclear Fuel which by default disables kovarex-enrichment-process and its research.
So the simple fix is to check if the research is also enabled in the SE fixes

Mod List
[
	"base",
	"aai-containers",
	"aai-industry",
	"aai-signal-transmission",
	"advanced-portable-reactor",
	"alien-biomes",
	"alien-biomes-hr-terrain",
	"artillery-bombardment-remote",
	"AutoDeconstruct",
	"Automatic_Coupling_System",
	"Automatic_Train_Painter",
	"big-data-string",
	"bigger-artillery",
	"BlueprintSignals",
	"Bottleneck",
	"bullet-trails",
	"cargo-ships",
	"cargo-ships-graphics",
	"combat-mechanics-overhaul",
	"CopyPasteModules",
	"DeathNotice",
	"Dirt_Path",
	"Enhanced_Map_Colors",
	"equipment-gantry",
	"even-distribution",
	"Factorissimo2",
	"factoryplanner",
	"FARL-fixed-se",
	"Flammable_Oils_QUICKFIX",
	"FlashlightOnOff",
	"flib",
	"Flow Control",
	"FNEI",
	"GCKI",
	"GhostScanner",
	"glutenfree-ltn-thought-bubble",
	"Induction Charging",
	"informatron",
	"jetpack",
	"Kux-BlueprintExtensions",
	"Kux-CoreLib",
	"lightorio",
	"LogiNetChannels",
	"LogisticRequestHinter",
	"LogisticTrainNetwork",
	"MushroomCloud-patched",
	"nicefill",
	"Noxys_Multidirectional_Trains",
	"Noxys_Trees",
	"Nuclear Fuel",
	"nuclear_train",
	"original-music-hd-reloaded",
	"OverloadedTrains11",
	"PavementDriveAssistContinued",
	"Portable_power",
	"ProgressiveRunningRevived",
	"pump",
	"QuickItemSearch",
	"RateCalculator",
	"RealisticFlashlight",
	"RealisticReactorGlow",
	"Realistic_Heat_Glow",
	"RecipeBook",
	"recursive-blueprints",
	"research-progress",
	"Robot256Lib",
	"robot_attrition",
	"shield-projector",
	"simhelper",
	"space-exploration",
	"space-exploration-graphics",
	"space-exploration-graphics-2",
	"space-exploration-graphics-3",
	"space-exploration-graphics-4",
	"space-exploration-graphics-5",
	"space-exploration-menu-simulations",
	"space-exploration-postprocess",
	"Squeak Through",
	"SteamCracking",
	"Tapeline",
	"TrainDriver_A16_fix",
	"transparent-inventory",
	"True-Nukes",
	"True-Nukes-Graphics",
	"Underneathies",
	"UnminableBots",
	"upgrade-machines",
	"uranium_geiger",
	"VehicleWagon2",
	"vtk-armor-plating",
	"Warehousing",
	"Warheads",
	"Waterfill_v17",
	"what-is-it-really-used-for"
]

Yup, that looks great, would you mind putting the same fix into line 69 as well?

Hey sorry for the delay. Looks like you'll sort it, thanks


Counter id is generated using DeprecatedTags and ignoring Tags

If I emit counters with different tags, I expect their totals to be tracked separately. However, this functionality only exists if I am using the DeprecatedTags field.
This line is the issue: https://github.com/cloudfoundry/loggregator-agent/blob/77da6d528025d41c23392254b6f26e31e821a735/pkg/egress/v2/counteraggregator.go#L39
Failing test made based on existing test by replacing DeprecatedTags with Tags:
    It("calculates totals separately for counter envelopes with same name but unique tags", func() {
        mockWriter := newMockWriter()
        close(mockWriter.WriteOutput.Ret0)

        aggregator := egress.NewCounterAggregator(mockWriter)
        aggregator.Write([]*loggregator_v2.Envelope{{
            Message: &loggregator_v2.Envelope_Counter{
                Counter: &loggregator_v2.Counter{
                    Name:  "name",
                    Delta: 10,
                },
            },
            Tags: map[string]string{
                "code": "200",
            },
        }})
        aggregator.Write([]*loggregator_v2.Envelope{{
            Message: &loggregator_v2.Envelope_Counter{
                Counter: &loggregator_v2.Counter{
                    Name:  "name",
                    Delta: 15,
                },
            },
            Tags: map[string]string{
                "code": "200",
            },
        }})
        aggregator.Write([]*loggregator_v2.Envelope{{
            Message: &loggregator_v2.Envelope_Counter{
                Counter: &loggregator_v2.Counter{
                    Name:  "name",
                    Delta: 20,
                },
            },
            Tags: map[string]string{
                "code": "500",
            },
        }})

        var receivedEnvelope []*loggregator_v2.Envelope
        Expect(mockWriter.WriteInput.Msg).To(Receive(&receivedEnvelope))
        Expect(receivedEnvelope).To(HaveLen(1))
        Expect(receivedEnvelope[0].GetCounter().GetTotal()).To(Equal(uint64(10)))

        Expect(mockWriter.WriteInput.Msg).To(Receive(&receivedEnvelope))
        Expect(receivedEnvelope).To(HaveLen(1))
        Expect(receivedEnvelope[0].GetCounter().GetTotal()).To(Equal(uint64(25)))

        Expect(mockWriter.WriteInput.Msg).To(Receive(&receivedEnvelope))
        Expect(receivedEnvelope).To(HaveLen(1))
        Expect(receivedEnvelope[0].GetCounter().GetTotal()).To(Equal(uint64(20)))
    })

Additionally, it seems like origin is now in the Tags section rather than DeprecatedTags meaning counters from different origins may be aggregated together if they have the same name. See below envelope with empty DeprecatedTags:
{"timestamp":"1536683581952216401","sourceId":"a5099325-9536-4b81-ba62-2826ad9a8462","instanceId":"0","deprecatedTags":{},"tags":{"applicationGuid":"a5099325-9536-4b81-ba62-2826ad9a8462","applicationInstance":"0","deployment":"prism","index":"2bb6b8cc-f202-4cde-83f9-dbed098ff15d","ip":"<IP_ADDRESS>","job":"prism_endpoint_worker","origin":"a5099325-9536-4b81-ba62-2826ad9a8462"},"gauge":{"metrics":{"go_gc_duration_seconds_sum":{"value":0.000591412}}}}

Thanks for reporting this issue, we have fixed it in a110caf.


Build a Coursebook Data Scraper

Design and implement a web scraper that can extract course and section data from coursebook for uploading to our database.
There are no restrictions or requirements on how this is to be completed so long as it accomplishes the task of extracting the requisite data form Coursebook. Python 3 has many libraries that may be of use such as urllib, requests, and beautiful soup so this is probably a good place to start.

I created a very primitive web scraper that technically works, although inconsistently. This could be my fault, coursebook's fault, or a combination of the two. Regardless, the scraper needs to be reformatted to be both more efficient and more maintainable. Please improve and complete the web scraper while I focus on other sections of the project.
It can be found here c4c78f0043c27ed4eb1f2148a26df0947db5ebb9

Some details on how the scraper works:

The initialize() function simply scrapes each input field on the coursebook main page for all the possible input options to populate a dictionary of all search arguments.

The menu() function spawns a terminal menu to make interacting with the scraper slightly more bearable. There are some checks in the bottom to make sure that a term, at least one other field, and a PTGSESSID are provided.

The downloadData() function executes a search query on coursebook, waits for the download link, follows the download link, and then exports the data as a json file which it then saves in the data directory.

The runScraper() function simply executes multiple instances of the downloadData() function across several threads to improve the time it takes to scrape coursebook.

Finally, the PTGSESSID is a cookie that is required to make requests. The scraper only works if you sign in with your UTD NetID and then copy the PTGSESSID

@CharlieMahana can you go ahead and draft PRs for the branches that mention this and other issues?


KAFKA-16226; Reduce synchronization between producer threads (#15323)

NOTE this cherry-picks fix https://github.com/apache/kafka/pull/14522 into 3.6
More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

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

The tests failing on jenkins are unrelated, flaky tests.

@ijuma thanks!


Replace OS RNG with ChaCha20 RNG

Addresses CRYP-171. The gist of it is that WASM does not support OS RNGs, so we have to use our own; but ChaCha20 with an all zeros seed is not the wisest choice.

Let's put this PR on hold, there might not be a use for it.

Schnorrkel signers use a default OS RNG to make signature, even though this default could be changed, it’s not necessary if the signer/prover uses native build instead of WASM. Therefore I will abandon this change and ask people to only use the CLI to make claim proofs.
Side note, even though Schnorrkel verifiers register the same default RNG, they don’t use it, so it is safe to run the verifier on WASM.


cohost2autost: incorrect escaping of rewritten attachment urls

in 90285408f729b9fbbe108306abbcb433e3ef94d6 we fixed the filenames on disk to not be percent encoded, but we failed to actually percent encode the filenames in urls, so anything with a % or ? is broken. for example:
<img src="attachments/a6d33e9c-5b3e-4d0b-b3e7-20820630286d/if you see this font theres a 50% chance that you're on a rust-related website.svg" data-cohost-src="https://staging.cohostcdn.org/attachment/a6d33e9c-5b3e-4d0b-b3e7-20820630286d/if%20you%20see%20this%20font%20theres%20a%2050%25%20chance%20that%20you're%20on%20a%20rust-related%20website.svg" loading="lazy">

the browser sees a 50% chance and requests a%2050%%20chance, which is a 400 bad request in nginx.

working on this now, i think this is the last straw for our sloppy path handling. we should have types like PostsPath and SitePath that do all of our path and url manipulations in one place and do them correctly.


set recorded video resolution

When I run the demo code in local environment,
the recorded video has lower resolution than the one on the website.
Could you point out where to set the resolution?
image1 : run in local env
image2: run on website https://simpl.info/mediarecorder/

Hi @BerlinaLI !
Thanks for filing the issue, but I can't seem to reproduce this :(.
Are you running exactly the same code, from localhost (i.e. running a local server), from the same computer and camera?
There's a demo of using constraints to choose resolution here: https://simpl.info/getusermedia/constraints (it won't work for resolutions not supported by your camera).


Card links don't work in the text-heavy template.

In the text-heavy template, links in the bottom of the cards in the overview tab do not work, even when the href attribute is the same as the tab that links there.
I am using Chrome, but the same bug happens in Firefox.

Because they don't have a value, just empty hashtags. Nothing broken, just slightly-misleading since it is a demo developers are meant to expand on their own.


Statement.bind() overloads for specific wrapper types

Feature Request
The type-specific overloads were removed in #124 because they no longer necessary. However, they can be very convenient when someone uses SPI directly (and yes, I understand that SPI was not meant to be user-facing, but when faced with adding another dependency or using SPI directly, enough people seem to choose the latter).
Is your feature request related to a problem? Please describe
The data layer of an application typically gets values from another layer. These values may or may not be null, leaving the data layer to do a check like this on every field:
if (fieldValue == null) {
  statement.bindNull("column", TypeOfFieldValueKnownToUser.class);
} else {
  statement.bind("column", fieldValue)
}

Of course, a client library such as Spring Data R2DBC will handle this logic for the user, but if SPI is used directly, it's a small but irritating bit of boilerplate.
Describe the solution you'd like
SPI's Statement could bring back the type-specific overrides; it would look similar to GoogleCloudPlatform/cloud-spanner-r2dbc#207
Then users would have the default option of just feeding values (which could be null) to the bind method and let compile-time overloading choose the right method. Drivers can then override the type-specific overloaded methods if necessary, although I would not expect this to be necessary much.
Describe alternatives you've considered
We can implement the overloads in the driver implementation as in GoogleCloudPlatform/cloud-spanner-r2dbc#207, but then usage of the convenience overloads will require downcasting. This could lead to user errors, since without downcasting, the general-purpose bind() method will be the only one available, and our implementation will raises an error on the null value, as there is no way to determine the type of a null value at this point.
Teachability, Documentation, Adoption, Migration Strategy
Let's... figure out if this is a good idea first.

We avoid type-specific overloads as they come in various variants (bind by index, by placeholder multiplied by serveral types) and we would end up with a very broad API with 20+ bind methods, more likely 30+ bind methods.
Binding null values requires a type hint so that drivers can specify the type of the null value. An INT null is handled differently from VARCHAR or NVARCHAR null. A model like bindValueOrNull(placeholder, value, Class<?>) would carry information that are partially redundant, as either the value is present and we use the type from the value or the value is null and we use the class parameter. Maybe there's something different that we could do:
We face a different challenge right now as we cannot disambiguate between some types. What type does bind(…, "my-string") map to? Right now, that's specific to drivers. In some cases it's VARCHAR and sometimes it can be NVARCHAR. What about JSON strings?
The issue there is, that we cannot infer more type information from the given context and drivers need to either work around this fact or fall back to the best default they have. In the context of stored procedures, we also lack a mechanism to describe OUT parameters. Parameters that are consumed from a stored procedure/SQL function call, are neither value-bound (bind(…)) nor are they null (bindNull(…)).
Given these requirements, we need a mechanism to specify more details about parameters. In early 2019 we've briefly discussed how we could support stored procedures and we have a proposal on the mailing list to introduce parameter descriptors to indicate the nature of a parameter. This could look like:
Parameter.in("the-value")
Parameter.in("the-value", "VARCHAR")
Parameter.in("the-value", Types.VARCHAR)
Parameter.in("{some: json}", MyVendorType.JSON)

Having a parameter along a type hint could fit nicely into the requirement to construct value objects that are null-agnostic. One could write Parameter.in(null, Types.VARCHAR) and satisfy the requirement of a potentially null value without that we require to introduce changes to the Statement.bind(…) mechanism. The Parameter type would allow special handling within drivers to unpack the descriptor and do the right thing in terms of binding and value casting.

This issue should get addressed by #160.

Fixed via #160.

Fixed via #160.


Crash on any ./gradlew command

Crashes with:
symbol:   class TagKey
location: class FuelRegistryImpl
C:\Users\myUser\Notebook\common\src\main\java\dev\bookkeepersmc\notebook\registry\content\impl\FuelRegistryImpl.java:117: error: cannot find symbol
public static void add(Map<Item, Integer> map, TagKey tag, int i) {
About 150 of these errors, don't know why. Worked fine and then just started with these problems.

Randomly starting working again...

Gives error: ExampleMethod has private access in net.minecraft.~~~. I have this method/class in the accessWidener on common, and can use it, but gradle gives the private method error.

can your upload your project somewhere so that I can pull it please.

Sure! I have a repo for it, that is here.

Also gives warnings about any unused method/class with:
File:Java:line: warning no comment. 100 of these for every module

You removed the lines from the fabric build.gradle that copies the files from the common project:
https://github.com/jaredlll08/MultiLoader-Template/blob/1.20.4/fabric/build.gradle#L52C1-L54C2
As for the warnings about unused methods / classes, welcome to forge, where you 'need' to recompile the game, and all the warnings from the game's code gets shoved into your terminal.
As far as I'm aware, there is no solution to that, and you should just ignore it.

Ok so I replaced addFuel with AbstractFurnaceBlockEntity.add(map, item, time), and the Fabric Client launches successfully, but Forge/NeoForge clients and ./gradlew build fail with:
    method AbstractFurnaceBlockEntity.add(Map<Item,Integer>,TagKey<Item>,int) is not applicable
      (add(Map<Item,Integer>,TagKey<Item>,int) has private access in AbstractFurnaceBlockEntity)

    method AbstractFurnaceBlockEntity.add(Map<Item,Integer>,ItemLike,int) is not applicable
      (argument mismatch; TagKey<Item> cannot be converted to ItemLike)

C:\Users\MyUser\Notebook\common\src\main\java\dev\bookkeepersmc\notebook\registry\content\impl\FuelRegistryImpl.java:113: error: no suitable method found for add(Map<Item,Integer>,ItemLike,int)
                AbstractFurnaceBlockEntity.add(map, item, time);

I added AbstractFurnaceBlockEntity add to my Common accessWidener, and can use it, but gradle and neo/forge fails.

Accesswideners aren't applied to the forge / neoforge projects, the only reason they work in Fabric is because of this line https://github.com/BookkeepersMC/Notebook/blob/master/fabric/build.gradle#L26, which pulls it from the common project.
Forge and NeoForge use AccessTransformers instead, and are written with a different syntax, so you will need to maintain both an accesswidener and accesstransformer file.
This issue tracker is mainly for issues with the template itself, not for issues with developing Multiloader mods.
If you have any further issues that are unrelated to the template itself, please can you ask them on the discord.
https://discord.myceliummod.network/


Implement shop config versioning

We had several instances of merchants misconfiguring their shop.
In some cases they wiped their PGP private key in the config which causes any order placed afterwards to fail processing.
As opposed to overwriting the config, it would be nice to version it. So that we can help a merchant rolling back bad config changes.
Implementation TBD. It could either be a separate shop_configs_version table or alternatively store the versions in the JSON blob. I'd probably lean towards the former.

Prioritizing as a P1 since we already saw several instances of that issue in the field.
CC @gullible1 @nick @shahthepro  for any input/thoughts

Ah yes. It's done.


Fix one click login accessing/generating wrong folders

Added #localWithNet as a possible folder for the sol file, it seems to be used depending on some security settings.
When the #SharedObjects folder is empty or doesn't exist prevent from generating folders in the wrong place.
Properly check folder structure and all contents of #SharedObjects in case duplicates or unrelated folders are present and only write to valid paths.

Released in Muledump v9.6.


Multiple files written per day even though Rolling Interval is set for Day

Hello there. I have the S3 sink left at its default RollingInterval by Day but I am still getting multiple files written to the bucket per day with _00X appended to the name. I was under the assumption this would work like the File sink (which I have configured to roll per day and is working fine).  Code to configure logger is below. Thanks for any help!
.WriteTo.AmazonS3(
                    path:"logs.txt",
                    bucketName: "bucket-name",
                    endpoint: Amazon.RegionEndpoint.USEast2,
                    formatter: new JsonFormatter()
                    )

Looks like this is working as intended as S3 does not handle appending objects. Closing.

Looks like this is working as intended as S3 does not handle appending objects. Closing.

That is the indeed the reason. Sorry for my late reply.


afterMigrate.sql callback runned twice in versions higher than 4.0.3.

What version of Flyway are you using?
3.2.1 - 4.0.3 - 4.2.1
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin, SBT plugin, ANT tasks)
Gradle 3.4, SpringBoot 1.5.2
What database are you using (type & version)?
Mysql 5.1.38 connector
What operating system are you using?
Ubuntu 16.04
What did you do?
(Please include the content causing the issue, any relevant configuration settings, and the command you ran)
Running SpringBoot @DataJpaTest test with the following configuration:
`public class DatasourceConfig {
@Bean
@Profile("integration")
FlywayMigrationStrategy integrationMigrationStrategy() {
    System.out.println("Setting Flyway integration strategy");
    FlywayMigrationStrategy strategy = new FlywayMigrationStrategy() {
        @Override
        public void migrate(Flyway flyway) {
            flyway.setLocations("/data/integration/migrations");
            flyway.clean();
            flyway.migrate();
        }
    };
    return strategy;
}

}`
Where the said location contains:
V0.0.1__initialize.sql  -> DDL creating the schema
afterMigrate.sql          -> DML loading data in the created schema
What did you expect to see?
When I run a single test, I expect that the database schema is recreated and the data loaded before the tests executes.
What did you see instead?
The schema is recreated but the afterMigrate.sql callback  is runned twice by any Flyway versions higher than 4.0.3. This, of course, results in duplicates in the database and the test fails. Conversely, 4.0.3 and 3.2.1 work just fine.

Normal operation in 4.0.3

afterMigration double run in 4.2.0

I can't seem to reproduce this. Can you share a small test repo that triggers this?

Duplicate of #1625


[release-1.7] Remove deprecated manifest apply for 1.7

This is an automated cherry-pick of #25737

@googlebot I consent

@brian-avery I think your CLA also required.

@googlebot I accept

@googlebot I consent