asynchronous block blob client can't reuse connection to a BlobServiceClient

azure.storage.blob.aio:
12.6.0:
Linux:
3.8:

Describe the bug
Have to create new connection for every request to BlobServiceClient when using the azure.storage.blob.aio.  Would like to download a set of blobs in asynchronous manner with a precreated BlobServiceClient.  The performance for the set is slower then when downloading using the synchronous library because of the overhead required to create the connection.
To Reproduce
Example code:
MyClass
    def __init__(self):
        self.blob_service_client_async = getBlobServiceClientAsync()

    async def get_models_async_reuse(self, id):
        input = [('type1',id,"i"),('type2',id,"ir"),('type3',id,"ir"),('type4',id,"ir")]
        return await asyncio.gather(*[self.fetch_model_async_reuse(modeltype, bodyId, training_level) for (type,id,training_level) in input])

    async def fetch_model_async_reuse(self, attr, bodyId, training_level):
        async with self.blob_service_client_async:
            container_client = self.blob_service_client_async.get_container_client("modelstorage")
            blob_client = container_client.get_blob_client(f'{attr}-{bodyId}-{training_level}.model')
            try:
                stream = await blob_client.download_blob()
                model_bytes = await stream.readall()
            except ResourceNotFoundError:
                print("No blob found.")
            return model_bytes

def getBlobServiceClientAsync():
    client_id = ""
    client_secret = ""
    tenant_id = ""
    vault_url = ""
    connection_string = getModelStorageConnectionString(client_id, client_secret, tenant_id, vault_url)
    from azure.storage.blob.aio import BlobServiceClient
    return BlobServiceClient.from_connection_string(connection_string)

tic = time.perf_counter()
loop = asyncio.get_event_loop()
models = loop.run_until_complete(MyClass.get_models_async_reuse("xxx"))
loop.close()
toc = time.perf_counter()
print(f"model fetch time async in {toc - tic:0.4f}")

Traceback (most recent call last):
  File "test3.py", line 131, in <module>
    models = loop.run_until_complete(invoice.get_models_async_reuse("14813"))
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "test3.py", line 31, in get_models_async_reuse
    return await asyncio.gather(*[self.fetch_model_async_reuse(modeltype, bodyId, training_level) for (modeltype,bodyId,training_level) in input])
  File "test3.py", line 65, in fetch_model_async_reuse
    stream = await blob_client.download_blob()
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/tracing/decorator_async.py", line 74, in wrapper_use_tracer
    return await func(*args, **kwargs)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/aio/_blob_client_async.py", line 361, in download_blob
    await downloader._setup()  # pylint: disable=protected-access
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/aio/_download_async.py", line 225, in _setup
    self._response = await self._initial_request()
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/aio/_download_async.py", line 265, in _initial_request
    location_mode, response = await self._clients.blob.download(
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/_generated/aio/operations_async/_blob_operations_async.py", line 174, in download
    pipeline_response = await self._client._pipeline.run(request, stream=True, **kwargs)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 215, in run
    return await first_node.send(pipeline_request)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  [Previous line repeated 5 more times]
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/policies/_redirect_async.py", line 64, in send
    response = await self.next.send(request)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/_shared/policies_async.py", line 99, in send
    response = await self.next.send(request)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/_shared/policies_async.py", line 56, in send
    response = await self.next.send(request)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 83, in send
    response = await self.next.send(request)  # type: ignore
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/_base_async.py", line 116, in send
    await self._sender.send(request.http_request, **request.context.options),
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/_shared/base_client_async.py", line 173, in send
    return await self._transport.send(request, **kwargs)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/storage/blob/_shared/base_client_async.py", line 173, in send
    return await self._transport.send(request, **kwargs)
  File "/home/mshamber/.local/lib/python3.8/site-packages/azure/core/pipeline/transport/_aiohttp.py", line 177, in send
    result = await self.session.request(
AttributeError: 'NoneType' object has no attribute 'request'

Expected behavior
Ability to share connection in a multi-threaded safe manner.  Asynchronous download should be able to outperform synchronous download for a set of blobs.

Hi @scivm
async with self.blob_service_client_async: will close the transport layer when you got out of it. As a consequence, calling twice fetch_model_async_reuse will make the second call on a closed connection.

I am currently using a long lived BlobServiceClient singleton instance that is reused among different threads for downloading blobs.   So same idea doesn't work with the aio package.
Based on your feedback, I tried creating a single connection to download 4 blobs worked and functionally it works fine.
    async def get_models_async(self, bodyId):
        blob_service_client_async = getBlobServiceClientAsync(self.blob_session)
        async with blob_service_client_async:
            input = [('model1',bodyId,"i"),('model2',bodyId,"ir"),('model3',bodyId,"ir"),('model4',bodyId,"ir")]
            return await asyncio.gather(*[self.fetch_model_async(blob_service_client_async, modeltype, bodyId, training_level) for (modeltype,bodyId,training_level) in input])

There is an issue is that this async download of 4 blobs is slower then sync download.
I noticed the time for connection is 10x higher for aio package
    from azure.storage.blob import BlobServiceClient
    tic = time.perf_counter()
    blob_session = requests.session()
    client = BlobServiceClient.from_connection_string(connection_string)
    toc = time.perf_counter()
    print(f"time to create sync connection: {toc - tic:0.4f}")

time to create sync connection: 0.0005
    tic = time.perf_counter()
    from azure.storage.blob.aio import BlobServiceClient
    client = BlobServiceClient.from_connection_string(connection_string)
    toc = time.perf_counter()
    print(f"time to create async connection: {toc - tic:0.4f}")

time to create async connection: 0.0115
Except it was still slower then creating a non AIO connection and  downloading the 4 in a synchronous manner.

Hi @scivm
If you get a a blobclient using blob_service_client_async.get_blob_client() and use async with blob_client: then it will not close the connection of blob_service_client and you don't have to initialize multiple blob_service_client.
Let me know if it doesn't help

Hi @scivm
If you get a a blobclient using blob_service_client_async.get_blob_client() and use async with blob_client: then it will not close the connection of blob_service_client and you don't have to initialize multiple blob_service_client.
Let me know if it doesn't help


Foundation: add small extensions for URL

We need to convert the paths to NT style paths to get extended paths to work.  Provide the ability to query the NT style path and a helper to perform a callback with the C-style representation of the NT style path representation.

@swift-ci please test


[DMP 2024]: Sugar on Raspberry Pi

Ticket Contents
Description
Sugar runs on RPi and we should take advantage of that to reach the Maker community. This project involves ensuring that Sugar runs w/o any issues; that it is packaged in a way that is suitable for inclusion on the Raspberry Pi operating system images. Also, there are any number of Sugar activities that could be enhanced by knowing some of the details of the RPi, such as Turtle Blocks, Measure, and Pippy, all of which could be tailored to take advantage of the sensors available on RPi.
GPIO is a great place to start. But access to other RPi IO, such as a joystick and other peripherals would also be good. These could also be integrated into the Sugar Toolkit and sugargame.
Goals & Mid-Point Milestone
Goals

[ ] [Sugar on RPi]
[ ] [Turtle Blocks extensions]
[ ] [Measure extensions]
[ ] [Pippy extensions]
[ ] [Documentation]
[ ] [Goals Achieved By Mid-point Milestone]
[ ] [Sugar on RPi]
[ ] [Turtle Blocks extensions]

Setup/Installation
Please refer to Sugar on RPi
Expected Outcome
Not just Sugar on RPi, but a rich integration with the sensor capabilities of the hardware into at least three activities: Turtle Art, Pippy, and Measure.

gpio input/output
buttons
LEDs
distance sensor
oLED displays

Acceptance Criteria
New Sugar image for RPi with:

Turtle Art with a RPi plugin and examples
Pippy with RPi examples
Measure extended to know about RPi sensors
Documentation on how cool it is.

Implementation Details
Each activity will need to be extended to take advantage of the rich sensor env. of RPi.
Mockups/Wireframes
Product Name
Sugar on RPi
Organisation Name
Sugar Labs
Domain
Education
Tech Skills Needed
Debugging, Python
Mentor(s)
@walterbender @chimosky @ale
Category
Configuration, Documentation, Maintenance, Testing

comment

Hi @walterbender , I find your project very interesting and want to contribute to it too. I just needed to know if I require particular knowledge in any libraries or packages of python to work in this project (other than what's already mentioned) , also what else do you think will be great to know before contributing to this project?

@spyder0010 Some experience with RPi is a must. And you'll need to be able to write Python code to access the various sensors etc. And since the goal is Sugar integration, you'll need to become familiar with the Sugar Toolkit.

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

Hi @walterbender, @chimosky, @Ale
I hope this message finds you well. I came across this Sugar on Raspberry Pi project for DMP 2024, and I'm very much interested in contributing in this project. and I'm eager to apply my skills in Python and my problem solving skills to this initiative.
Could you please share any prerequisites or specific steps I should follow to begin contributing? I'm keen on making a meaningful impact through this project and would love to discuss any potential ideas or areas where my contributions could be most valuable.
Thank you for considering my interest. Looking forward to your guidance and hoping to be part of this exciting endeavor

@Anupam4058 If you have access to a RPi device, then the first step would be to follow the instructions for installing Sugar. From there you can familiarize yourself with some of the activities, such as Turtle Art, from which you can begin to think about how to best leverage the RPi resources. (See https://github.com/sugarlabs/RPi-Docs)

I am interested in this exciting project as I had worked with Arduino, I want to learn more about your organization and want to contribute my creative thinking, problems solving and python skills.

hey @walterbender i was interested in this project since gsoc 24' couldn't participate in that due to some deadlines , i already have a RPI device, i have installed sucrose through the bash, i have connected my RPI through Remote Desktop for GUI to test out things, I am looking forward working under your guidance!

I am not waltbender, I am pragati
On Mon, 29 Apr 2024, 19:44 samyaksgupta, @.***> wrote:

hey @walterbender https://github.com/walterbender i was interested in
this project since gsoc 24' couldn't participate in that due to some
deadlines , i already have a RPI device, i have installed sucrose through
the bash, i have connected my RPI through Remote Desktop for GUI to test
out things, I am looking forward working under your guidance!
—
Reply to this email directly, view it on GitHub
https://github.com/sugarlabs/DMP/issues/15#issuecomment-2082868937, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/A5GYSGPXNRRFJXTSBUMRHGTY7ZISVAVCNFSM6AAAAABF5QS6ASVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBSHA3DQOJTG4
.
You are receiving this because you commented.Message ID:
@.***>

Hello, I have worked on RPi and Arduino earlier and would love to use my learnt skills on this project. Any advice on starting the project will be welcomed!

For everyone interested in this project, demonstrating some understand of both RPi and Sugar in your proposal is important.

Weekly Goals: DRAFT
Week 1:

[ ] Sync up goals with RPi team

Week 2:

[ ] ...

Weekly Goals:
Week 1 - 3 (30th June):

[ ] Sync up goals with RPi team
[ ] Put what's already built in place (GPIO, OLED, buttons, & LEDs)
[ ] Create an initial setup video for RPi
[ ] Explore the sugar environment and add some important keyboard shortcut keys (quick-show pinouts, tutorials, quick-disable SPI, I2C, etc)
[ ] Start with tutorials: vid and docs both

Week 4 - 6 (20th July):

[ ] Add some more sensors (Partially done by Anurag)
[ ] Build the Camera activity or add to Record-activity if feasible
[ ] Add face detection, some filters, etc.
[ ] Build an activity to test the peripherals (GPIO, SPI, I2C, audio, cam, etc) on RPi
[ ] Make sugar run on Orange Pi

Week 7 - 8 (30th July):

[ ] Fix bugs, complete what's undone, and update tutorials.
[ ] Build an app store and/or control center activity for RPi. (to be discussed)

Week 9 - 12 (30th Aug):

[ ] Packaging the RPi OS will all libraries and activities pre-installed.
[ ] Most of the work should be done by now. We can focus on further enriching RPi OS by adding some more activities and features.
[ ] Finally, add encyclopedic documentation for further development

Weekly Goals:
Week 1 - 3 (30th June):

[x] Sync up goals with RPi team
[ ] Put what's already built in place (GPIO, OLED, buttons, & LEDs)
[x] Create an initial setup video for RPi
[ ] Explore the sugar environment and add some important keyboard shortcut keys (quick-show pinouts, tutorials, quick-disable SPI, I2C, etc)
[x] Start with tutorials: vid and docs both

Week 4 - 6 (20th July):

[ ] Add some more sensors (Partially done by Anurag)
[ ] Build the Camera activity or add to Record-activity if feasible
[ ] Add face detection, some filters, etc.
[x] Build an activity to test the peripherals (GPIO, SPI, I2C, audio, cam, etc) on RPi
[ ] Make sugar run on Orange Pi

Week 7 - 8 (30th July):

[ ] Fix bugs, complete what's undone, and update tutorials.
[ ] Build an app store and/or control center activity for RPi. (to be discussed)

Week 9 - 12 (30th Aug):

[ ] Packaging the RPi OS will all libraries and activities pre-installed.
[ ] Most of the work should be done by now. We can focus on further enriching RPi OS by adding some more activities and features.
[ ] Finally, add encyclopedic documentation for further development

@walterbender Can you please update the above comment? I have updated the tasks and checklist.
Thanks
# Weekly Goals:

## Week 1
- [X] Sync up goals with RPi team
- [X] Put what's already built in place (GPIO, OLED, buttons, & LEDs)

## Week 2
- [X] Create an initial setup video for RPi
- [X] Explore the sugar environment and add some important keyboard shortcut keys (quick-show pinouts, tutorials, quick-disable SPI, I2C, etc)

## Week 3
- [X] Update the TurtleArt RPi plugin that I built before the contribution period started
- [X] Start with tutorials: vid and docs both

## Week 4
- [X] Add some more sensors (temperature & humidity sensor, distance sensor, delay)
- [X] Start building the Camera activity skeleton

## Week 5
- [X] Build an activity to test/toggle the peripherals (GPIO, SPI, I2C, audio, cam, etc) on RPi

## Week 6
- [X] Build a camera activity to utilize the camera module (v3 - tested with 5MP; a working model)

## Week 7
- [X] Make the camera activity GUI better (icons, background color, full-screen preview, buttons, etc)
- [X] Fix bugs, and update docs.

## Week 8
- [X] Add record feature to Camera activity (on a separate thread to not interrupt the preview since the camera can be acquired by only one thread at a time)
- [X] Add more sensors (servo motor, PWM output, DC motor)

## Week 9
- [X] Build Gallery Activity to view photos.
- [X] Create a rpi-sensors-library repo and add all the sensors to it

## Week 10
- [X] Add video preview to gallery activity with progress bar
- [X] Fix bugs and refactor some snippets of code

## Week 11
- [X] Review and update documentation of all the activities.
- [ ] Finally, add encyclopedic documentation for further development.

## Week 12
- [ ] Add contribution journey summary to DMP repo


Delete a key

Hello,
Please can you help with an information, how can I delete a key from json file.
Thanks

Hello.
Currently you can delete it manually from the JSON-file.
I'll make a new release with key remove option.
Thank you for the feedback.

thanks a lot

You are welcome :)


CB-15248 Add Connect to DataHub templates (LD and HD) in Cloudbreak

This commit adds the Kafka Connect roletype to both the Heavy and Light Duty Streams Messaging templates.
Tested: Manually on provisioned cluster

Added the DO_NOT_MERGE label as we are waiting for a runtime change to be part of the GBN that Cloudbreak uses before this commit should be merged. I'll remove the label once it's available.

@lajosrodek Thanks, I'll make sure we open a PR for that.


PyInt cannot be subclassed

Bug Description
PyInt does not implement PyClassBaseType, because it does not use pyobject_native_type!() but pyobject_native_type_core!(). As such, it cannot be subclassed.
Fixing this is not trivial because:
error[E0277]: the trait bound `pyo3_ffi::PyLongObject: PySizedLayout<types::num::PyInt>` is not satisfied
    --> src\types\mod.rs:200:33
     |
200  |             type LayoutAsBase = $crate::impl_::pycell::PyClassObjectBase<$layout>;
     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PySizedLayout<types::num::PyInt>` is not implemented for `pyo3_ffi::PyLongObject`, which is required by `PyClassObjectBase<pyo3_ffi::PyLongObject>: PyClassObjectLayout<types::num::PyInt>`
     |
    ::: src\types\num.rs:17:1
     |
17   | pyobject_subclassable_native_type!(PyInt, ffi::PyLongObject);
     | ------------------------------------------------------------ in this macro invocation
     |
     = help: the following other types implement trait `PySizedLayout<T>`:
               <PyClassObject<T> as PySizedLayout<T>>
               <_PyWeakReference as PySizedLayout<PyWeakrefReference>>
               <pyo3_ffi::PyBaseExceptionObject as PySizedLayout<PyArithmeticError>>
               <pyo3_ffi::PyBaseExceptionObject as PySizedLayout<PyAssertionError>>
               <pyo3_ffi::PyBaseExceptionObject as PySizedLayout<PyAttributeError>>
               <pyo3_ffi::PyBaseExceptionObject as PySizedLayout<PyBaseException>>
               <pyo3_ffi::PyBaseExceptionObject as PySizedLayout<PyBaseExceptionGroup>>
               <pyo3_ffi::PyBaseExceptionObject as PySizedLayout<PyBlockingIOError>>
             and 74 others
note: required for `PyClassObjectBase<pyo3_ffi::PyLongObject>` to implement `PyClassObjectLayout<types::num::PyInt>`
    --> src\pycell\impl_.rs:195:12
     |
195  | impl<T, U> PyClassObjectLayout<T> for PyClassObjectBase<U>
     |            ^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^
196  | where
197  |     U: PySizedLayout<T>,
     |        ---------------- unsatisfied trait bound introduced here
note: required by a bound in `PyClassBaseType::LayoutAsBase`
    --> src\impl_\pyclass.rs:1131:24
     |
1131 |     type LayoutAsBase: PyClassObjectLayout<Self>;
     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `PyClassBaseType::LayoutAsBase`
     = note: this error originates in the macro `pyobject_subclassable_native_type` (in Nightly builds, run with -Z macro-backtrace for more info)

Steps to Reproduce
The following code:
use pyo3::prelude::*;
use pyo3::types::PyInt;

#[pyclass(extends=PyInt)]
pub struct IntSubClass {}

Triggers the error:
error[E0277]: the trait bound `PyInt: PyClass` is not satisfied
 --> src\lib.rs:4:1
  |
4 | #[pyclass(extends=PyInt)]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PyClass` is not implemented for `PyInt`, which is required by `PyInt: PyClassBaseType`
  |
  = help: the trait `PyClass` is implemented for `IntSubClass`
  = note: required for `PyInt` to implement `PyClassBaseType`
  = note: this error originates in the attribute macro `pyclass` (in Nightly builds, run with -Z macro-backtrace for more info)

Backtrace
No response
Your operating system and version
Windows 11
Your Python version (python --version)
3.12
Your Rust version (rustc --version)
rustc 1.80.1 (3f5fd8dd4 2024-08-06)
Your PyO3 version
0.22.0
How did you install python? Did you use a virtualenv?
The official website.
Additional Info
Noticed while working on https://github.com/PyO3/pyo3/pull/4453.

See also #1647, I think int is a PyVarObject like tuple. If we were fixing this, I think it would also likely help with #1344.


Add explicit Python 3.11 support in pyproject.toml

We agreed to do this after we increase our test coverage somewhat (e.g. see #36)

Blocked by

#27
#36


Update 0000-01-01-intro.md

This is the updated file approx. 18:00 28/12/2021. I need to know if this is what was expected.

github-learning-lab bot commented 9 minutes ago
Nice work
celebrate
Congratulations @24383708, you've completed this course!
What went well
Now, you have your slide deck deployed here and you've gone through the GitHub Flow.
 Please share your feedback in this brief survey.
What's next?
We hope this course helped you feel more comfortable using GitHub. Remember: You’re always welcome to repeat course topics if you’d like additional practice. If you’re ready to build on your new skills, here are some ideas.
Contribute to a project
To find projects to contribute to through trending topics and curated collections, check out GitHub Explore.
Keep learning
Here are some suggestions for future courses you can take:
GitHub Pages: Continue learning about GitHub Pages, which we touched on in this course.
Communicating using Markdown: We used a little Markdown in this course, but if you want to learn all about this ✨ syntax, take the course!
What will you learn next?
@24383708 24383708
deleted the 0000-01-02-24383708.md branch 1 minute ago


uniform data directives required

Implementation 1: https://github.com/radical-cybertools/radical.ensemblemd/blob/master/src/radical/ensemblemd/kernel.py#L338-L363.
Implementation 2: https://github.com/radical-cybertools/radical.ensemblemd/blob/master/src/radical/ensemblemd/kernel.py#L59-L73

This is resolved in devel.


[FEATURE] Reporters profile dash board

Fixes #4
Porject setup
Description
Please include a summary of the change and relevant motivation and context.
List any dependencies that are required for this change.
All pull requests should be related to open issues. Indicate the issue(s) bellow and remove this line:
Fixes #(issue number 1) #(issue number 2 if applicable)
How Has This Been Tested?
Please describe in detail how you tested your changes.
Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code etc.
Screenshots (if applicable, else remove this line / section)
Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added necessary inline code documentation
[ ] I have added tests that prove my fix is effective and that this feature works
[ ] New and existing unit tests pass locally with my changes

There are still issues with the CSS and app.test.js fil

There are still issues with the CSS and app.test.js fil

That is why I am pushing for Mtaerial-UI, will reduce the css. For the tests there' is nothing I can do.  Either it is fixed from codacy end or no front end test

Bro the errors are precise just make the necessary changes.

@okezieobi  the CSS file is still throwing error can you delete it comment the App.css file?

@okezieobi the CSS file is still throwing error can you delete it comment the App.css file?

Done


Changed login form container for better usability when in mobile view

The dekstop view is distored .

Screenshot of registration page

I have made changes in media query, so page layout will not get distorted in desktop view

seems like you have not pushed your latest commits in this branch. @sarthakroy107

I have not changed anything after opening PR.
UI is not distorting as you can see in the above screenshot.

okay. Good work . I am merging this PR.


Refactor Solang's CLI

Refactor Solang's CLI to prepare to parse CLI arguments easily from a toml file.

How is this PR tested?

How is this PR tested?

Nice point @LucasSte , I will add further coverage of CLI's functionality to tests/cli.rs

How is this PR tested?

Well it is tested the same way as it was before. By adding new tests, we don't actually check whether this PR does not break anything. What additional tests do you have in mind?

How is this PR tested?

Well it is tested the same way as it was before. By adding new tests that weren't in main already, we don't actually check whether this PR does not break anything; what additional tests do you have in mind?

@xermicus One way to do that is comparing the clap::Command with the previous generated Command, but this would look ugly I guess.  I used this:  https://docs.rs/clap/latest/clap/struct.Command.html#method.debug_assert

The debug_assert is a good idea :+1:

comparing the clap::Command with the previous generated Command

I don't think this is time well spent. There are so many possible combinations. We use the binary in the codegen tests and in the integration tests, that should give as enough confidence about the most important parts of the CLI in my opinion.

The debug_assert is a good idea 👍

comparing the clap::Command with the previous generated Command

I don't think this is time well spent. There are so many possible combinations. We use the binary in the codegen tests and in the integration tests, that should give as enough confidence about the most important parts of the CLI in my opinion.

I agree

How is this PR tested?

Well it is tested the same way as it was before. By adding new tests that weren't in main already, we don't actually check whether this PR does not break anything; what additional tests do you have in mind?

We do not have proper CLI tests today in our repository. For the context of this PR, it might suffice to add a unit tests to check if a certain input command generates the correct struct Cli and its substructures.

tests to check if a certain input command generates the correct struct Cli and its substructures.

We should trust clap to do that correctly. And at least the compile command (which is by far the most important one) is implicitly tested heavily in the codegen and integration tests. Per se I'm not against increasing test coverage, but without concrete suggestions for additional test cases, we can not move forward here.

tests to check if a certain input command generates the correct struct Cli and its substructures.

We should trust clap to do that correctly. And at least the compile command (which is by far the most important one) is implicitly tested heavily in the codegen and integration tests. Per se I'm not against increasing test coverage, but without concrete suggestions for additional test cases, we can not move forward here.

I am sure clap works correctly. The reason behind the unit test is ensuring the correct behavior in our code (all commands are correctly mapped) and making sure mischanges do not go unnoticed. The codegen and integration test coverage for the CLI command is limited. They do not test combined options.
This is a suggestion for a complete PR. If you think there is no need to implement these tests, we can move forward.

I am sure clap works correctly. The reason behind the unit test is ensuring the correct behavior in our code (all commands are correctly mapped) and making sure mischanges do not go unnoticed. The codegen and integration test coverage for the CLI command is limited. They do not test combined options.

Do you have specific cases in mind? We have coverage for the idl and language-server subcommand already, and as you point out the integration/codegen tests already a lot of compile. There are import tests for the import cli options.
I am all for increasing coverage but we need to be specific here.

Do you have specific cases in mind? We have coverage for the idl and language-server subcommand already, and as you point out the integration/codegen tests already a lot of compile. There are import tests for the import cli options.
I am all for increasing coverage but we need to be specific here.

The untested options that I could find: enabling/disabling the optimizations passes (codegen tests do not cover all), using the -O option, setting a custom address length and a value length.
I might have missed something, so please ignore the cases if we already have tests for them.

@LucasSte I added some test cases covering the poorly covered parts. If you found other parts that could use more coverage please list them. Thanks!

@salaheldinsoliman thank you - very nice, this is much better!


fix npm prepack script

npm prepack doesn't work correctly if dependencies aren't installed.
Now, npm package is broken – index-compact.js is empty.
Also, npm prepack is firing before installing dependencies, when you geting it from github. In this way, npm i will run twice, but at least it will be installed correctly.
Maybe, it will be more elegant to change process of packing.

So, a default install doesnt include dev dependencies and i didnt include them in the prepack script thinking the user should know that of they are packing, they are developing... It was short sighted of me and I will resolve that shortly.

@efimweb thanks. I integrated your npm i in to the script itself. 1.0.3 was just released. Thanks for your help.


removing voids from arity

Like #698.  Works in grunt jshint.  Does this fail in make?

:+1: but what happens when you minify it?

@megawac:  Not sure what the question is.  So the comment is stripped out and it wont lint properly.  But a minified file shouldn't be passed to lint anyway, right?  Is there some other concern?

Will the parameter be removed in the minifed build (i.e. the arity be set incorrectly)

Ahh, I didn't know minifiers might do that.  I'll check.

Ahh, looks like the minification is a problem:

WARN: Dropping unused function argument a0 [-:527,29]

I'm going to close this one for now.  Maybe at some point we can also configure the minifier, but that's getting a fair bit trickier.


ntr PMID: 28945192

increased short ribosome footprints upon UPR induction
I have no idea if I can do this, or how to define it!
Basically if you knock out   dom34 and ski2
implicated in ribosome rescue and mRNA no-go-decay (NGD).
you get short footprints in a ribosome profiling experiment...
how would we do this?

I think we could do this as "abnormal ribosome footprint size distribution", and if the additional specificity is worth capturing, I could put the bits about "increased level of short footprints" and "during UPR" in a child.
If we include the more specific term, should I refer to GO:0030968 for the "during UPR" part (tho I don't think I can do xps for either the general or specific term)?

Sounds good. I think we will capture the additional specificity because they  go to a lot of effort to demonstrate the different sizes, and why they think they are so.....

abnormal ribosome footprint size distribution FYPO:0006254
increased level of short ribosome footprints during endoplasmic reticulum unfolded protein response FYPO:0006255
edit file: 940e4f1fa6e57fb20827e9f138daab9844811dfb
release: e1793b5c1b70775665337bfa8900d7d6df6a4c67


Attribution Error: 'can_decoder' has no attribute 'load_dbc'

I have been using this code from the documentation to decode my MF4 files but for the past few days, the code has stopped working. Following is the code:
import can_decoder
import mdf_iter
mdf_path = "00000001.MF4"
dbc_path = "j1939.dbc"
db = can_decoder.load_dbc(dbc_path)
df_decoder = can_decoder.DataFrameDecoder(db)
with open(mdf_path, "rb") as handle:
mdf_file = mdf_iter.MdfFile(handle)
df_raw = mdf_file.get_data_frame()
df_phys = df_decoder.decode_frame(df_raw)
print(df_phys)
Now its showing error as follows:
Attribution Error: 'can_decoder' has no attribute 'load_dbc'

Hi, can you please share a replicable example zip file and a pip freeze of your requirements in the virtual environment you're using?

Hi Martin,
I hope this email finds you well. The issue I was facing was resolved that
load_dbc was the attribute of DBCLoader instead of can_decoder. It would be
better if you update the documentation to change the code as follows:
-----------Rest of the Code------------
from can_decoder import DBCLoader
from can_decoder import DataFrameDecoder
Load the DBC file
db = DBCLoader.load_dbc(dbc_path)
df_decoder = DataFrameDecoder(db)
-----------Rest of the Code------------
Sorry for the late reply. If you have any questions please let me know.
Best regards
Sohaib Raza
On Mon, Feb 5, 2024 at 12:43 PM Martin Falch @.***>
wrote:

Hi, can you please share a replicable example zip file and a pip freeze of
your requirements in the virtual environment you're using?
—
Reply to this email directly, view it on GitHub
https://github.com/CSS-Electronics/can_decoder/issues/11#issuecomment-1926390856,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATW7SKHM5CVAKTOYVTQ5EKTYSCEQZAVCNFSM6AAAAABCYW2IPWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRWGM4TAOBVGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

I'm having the same issue
'''
import can_decoder
dbc_file_names = ["/opt/cbm/J1939_DTC.dbc"]
db = can_decoder.load_dbc(dbc_file_names)
'''
gives the same module not found.
and pip freeze
'''
anyio==4.6.2.post1
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
attrs==24.2.0
babel==2.16.0
beautifulsoup4==4.12.3
bleach==6.2.0
Brlapi==0.8.2
can_decoder==0.1.9
canedge-browser==0.0.8
canmatrix==1.0
certifi==2024.8.30
cffi==1.17.1
chardet==4.0.0
charset-normalizer==3.4.0
click==8.1.7
cockpit @ file:///builddir/build/BUILD/cockpit-311.1/tmp/wheel/cockpit-311.1-py3-none-any.whl
comm==0.2.2
cupshelpers==1.0
dasbus==1.4
dbus-python==1.2.18
debugpy==1.8.8
decorator==5.1.1
defusedxml==0.7.1
distro==1.5.0
exceptiongroup==1.2.2
executing==2.1.0
fastjsonschema==2.20.0
file-magic==0.4.0
fqdn==1.5.1
fsspec==2024.10.0
future==1.0.0
gpg==1.15.1
h11==0.14.0
httpcore==1.0.6
httpx==0.27.2
idna==2.10
importlib_metadata==8.5.0
ipykernel==6.29.5
ipython==8.18.1
ipywidgets==8.1.5
isoduration==20.11.0
jedi==0.19.2
Jinja2==3.1.4
json5==0.9.28
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.14.2
jupyter_server_terminals==0.5.3
jupyterlab==4.2.5
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
libcomps==0.1.18
lxml==4.6.5
MarkupSafe==3.0.2
matplotlib-inline==0.1.7
mdf_iter==2.1.1
mistune==3.0.2
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
nftables==0.1
notebook==7.2.2
notebook_shim==0.2.4
numpy==2.0.2
overrides==7.7.0
packaging==24.2
pandocfilters==1.5.1
parso==0.8.4
perf==0.1
pexpect==4.8.0
platformdirs==4.3.6
prometheus_client==0.21.0
prompt_toolkit==3.0.48
psutil==5.8.0
ptyprocess==0.6.0
pure_eval==0.2.3
py4j==<IP_ADDRESS>
pycairo==1.20.1
pycparser==2.22
pycups==2.0.1
pycurl==<IP_ADDRESS>
Pygments==2.18.0
PyGObject==3.40.1
PySocks==1.7.1
pyspark==3.5.3
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
python-linux-procfs==0.7.3
pyudev==0.22.0
PyYAML==5.4.1
pyzmq==26.2.0
referencing==0.35.1
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.21.0
rpm==<IP_ADDRESS>
selinux==3.6
Send2Trash==1.8.3
sepolicy==3.6
setools==4.4.4
setroubleshoot @ file:///builddir/build/BUILD/setroubleshoot-3.3.32/src
six==1.15.0
sniffio==1.3.1
sos==4.7.0
soupsieve==2.6
stack-data==0.6.3
systemd-python==234
terminado==0.18.1
tinycss2==1.4.0
tomli==2.1.0
tornado==6.4.1
traitlets==5.14.3
types-python-dateutil==<IP_ADDRESS>41003
typing_extensions==4.12.2
uri-template==1.3.0
urllib3==1.26.5
wcwidth==0.2.13
webcolors==24.11.1
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.13
zipp==3.21.0
'''

I suggest reviewing our api-examples repo:
https://github.com/CSS-Electronics/api-examples
Here we provide guidance on setting up a venv and provide example code that leverages the can_decoder library along with the requirements.txt files. With that said, we have transitioned to the use of the MF4 decoders and the new python-can integration as the recommended methods for handling data decoding in an automated way - see the CANedge Intro for details. The can_decoder library is considered legacy at this stage.

Hi John,
Just change your code as follows:
import can_decoder
dbc_file_names = ["/opt/cbm/J1939_DTC.dbc"]
db = can_decoder.DBCLoader.load_dbc(dbc_file_names)
On Thu, 14 Nov 2024, 23:01 John Klapp, @.***> wrote:

I'm having the same issue
'''
import can_decoder
dbc_file_names = ["/opt/cbm/J1939_DTC.dbc"]
db = can_decoder.load_dbc(dbc_file_names)
'''
gives the same module not found.
and pip freeze
'''
anyio==4.6.2.post1
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
attrs==24.2.0
babel==2.16.0
beautifulsoup4==4.12.3
bleach==6.2.0
Brlapi==0.8.2
can_decoder==0.1.9
canedge-browser==0.0.8
canmatrix==1.0
certifi==2024.8.30
cffi==1.17.1
chardet==4.0.0
charset-normalizer==3.4.0
click==8.1.7
cockpit @
file:///builddir/build/BUILD/cockpit-311.1/tmp/wheel/cockpit-311.1-py3-none-any.whl
comm==0.2.2
cupshelpers==1.0
dasbus==1.4
dbus-python==1.2.18
debugpy==1.8.8
decorator==5.1.1
defusedxml==0.7.1
distro==1.5.0
exceptiongroup==1.2.2
executing==2.1.0
fastjsonschema==2.20.0
file-magic==0.4.0
fqdn==1.5.1
fsspec==2024.10.0
future==1.0.0
gpg==1.15.1
h11==0.14.0
httpcore==1.0.6
httpx==0.27.2
idna==2.10
importlib_metadata==8.5.0
ipykernel==6.29.5
ipython==8.18.1
ipywidgets==8.1.5
isoduration==20.11.0
jedi==0.19.2
Jinja2==3.1.4
json5==0.9.28
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.14.2
jupyter_server_terminals==0.5.3
jupyterlab==4.2.5
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
libcomps==0.1.18
lxml==4.6.5
MarkupSafe==3.0.2
matplotlib-inline==0.1.7
mdf_iter==2.1.1
mistune==3.0.2
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
nftables==0.1
notebook==7.2.2
notebook_shim==0.2.4
numpy==2.0.2
overrides==7.7.0
packaging==24.2
pandocfilters==1.5.1
parso==0.8.4
perf==0.1
pexpect==4.8.0
platformdirs==4.3.6
prometheus_client==0.21.0
prompt_toolkit==3.0.48
psutil==5.8.0
ptyprocess==0.6.0
pure_eval==0.2.3
py4j==<IP_ADDRESS>
pycairo==1.20.1
pycparser==2.22
pycups==2.0.1
pycurl==<IP_ADDRESS>
Pygments==2.18.0
PyGObject==3.40.1
PySocks==1.7.1
pyspark==3.5.3
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
python-linux-procfs==0.7.3
pyudev==0.22.0
PyYAML==5.4.1
pyzmq==26.2.0
referencing==0.35.1
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.21.0
rpm==<IP_ADDRESS>
selinux==3.6
Send2Trash==1.8.3
sepolicy==3.6
setools==4.4.4
setroubleshoot @ file:///builddir/build/BUILD/setroubleshoot-3.3.32/src
six==1.15.0
sniffio==1.3.1
sos==4.7.0
soupsieve==2.6
stack-data==0.6.3
systemd-python==234
terminado==0.18.1
tinycss2==1.4.0
tomli==2.1.0
tornado==6.4.1
traitlets==5.14.3
types-python-dateutil==<IP_ADDRESS>41003
typing_extensions==4.12.2
uri-template==1.3.0
urllib3==1.26.5
wcwidth==0.2.13
webcolors==24.11.1
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.13
zipp==3.21.0
'''
—
Reply to this email directly, view it on GitHub
https://github.com/CSS-Electronics/can_decoder/issues/11#issuecomment-2477078902,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATW7SKHNJVFQ76G3QXLRVPT2ATQQNAVCNFSM6AAAAABRZPLV56VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZXGA3TQOJQGI
.
You are receiving this because you authored the thread.Message ID:
@.***>


[Publisher] Add link to report in 42Crunch platform

Describe your problem(s)

It would be useful if a link to the report in 42Crunch platform was shown in the UI for the API Security Audit feature
Describe your solution

Adding a link in the UI under the Audit Score and Summary Section
How will you implement it

Optional Fields
Related Issues:

Suggested Labels:

3.1.0
Type/New Feature
Suggested Assignees:

@sanjulamadurapperuma

Fixed with https://github.com/wso2/carbon-apimgt/pull/8165


[Feature Request] Add support for creating CNAMES for .status.loadBalancer.ingress.hostname

Hello,
I am attempting to use k8s_gateway for split DNS with an environment that has no consistent external IP, In traefik, I use
--providers.kubernetesingress.ingressendpoint.hostname=traefik.example.com

This allows external-dns to properly populate my public DNS with CNAMEs instead of A records containing private IPs that are not valid on the public web.
However, no .status.loadBalancer.ingress.ip is generated in the ingress option, only .status.loadBalancer.ingress.hostname
Because of this, my ingress options do not populate in k8s_gateway
If k8s_gateway is able to create CNAMEs for the hostnames on an ingress, I would be able to take advantage of that to use the same object in both external-dns and k8s_gateway without issue.
It's possible that there is a solution that allows me to use both as is, however I have not found it quite yet.
Thank you,

AFAIR, k8s_gateway understands status.loadBalancer.address.hostname, see https://github.com/ori-edge/k8s_gateway/blob/f4a6ea896bd3ebf895ce33356685f92b85dcd4ae/kubernetes.go#L495
Can you attach your full ingress resource kubectl get -o yaml , the queries that you're trying to make and what responses to you expect to see?

# results of https://github.com/rwaltr/home-ops/blob/cffea6e286c012c760dbab2d516cc6b4d1ebf2e1/k8s/kyz/apps/media-servers/jellyfin/helm-release.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    external-dns.home.arpa/enabled: "true"
    meta.helm.sh/release-name: jellyfin
    meta.helm.sh/release-namespace: default
  creationTimestamp: "2022-10-13T00:27:36Z"
  generation: 5
  labels:
    app.kubernetes.io/instance: jellyfin
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: jellyfin
    helm.sh/chart: app-template-0.2.1
    helm.toolkit.fluxcd.io/name: jellyfin
    helm.toolkit.fluxcd.io/namespace: default
  name: jellyfin
  namespace: default
  resourceVersion: "13535901"
  uid: 69a0ca8f-cdc7-427d-b3b0-4226b91d6cc0
spec:
  ingressClassName: traefik
  rules:
  - host: jellyfin.waltr.tech
    http:
      paths:
      - backend:
          service:
            name: jellyfin
            port:
              number: 8096
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - jellyfin.waltr.tech
status:
  loadBalancer:
    ingress:
    - hostname: kyz.waltr.tech

K8s_gateway deployed at https://github.com/rwaltr/home-ops/blob/cffea6e286c012c760dbab2d516cc6b4d1ebf2e1/k8s/kyz/apps/networking/k8s_gateway/helm-release.yaml
short Dig results
-> dig jellyfin.waltr.tech A @<IP_ADDRESS> +short # Expecting local ingress IP
<IP_ADDRESS> #results in public DNS
<IP_ADDRESS>

-> dig jellyfin.waltr.tech CNAME @<IP_ADDRESS> +short # Expecting kyz.waltr.tech
# no results

-> dig jellyfin.default.waltr.tech @<IP_ADDRESS> +short # Expecting IP of jellyfin service
<IP_ADDRESS> # correct response

long dig results
┌─╴ blackphidora@monolith    [☸ admin@kyz: default][🐦kyz]
└> dig jellyfin.waltr.tech A @<IP_ADDRESS>

; <<>> DiG 9.16.33-RH <<>> jellyfin.waltr.tech A @<IP_ADDRESS>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58545
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: fbffa0d198ae0009 (echoed)
;; QUESTION SECTION:
;jellyfin.waltr.tech.		IN	A

;; ANSWER SECTION:
jellyfin.waltr.tech.	300	IN	A	<IP_ADDRESS>
jellyfin.waltr.tech.	300	IN	A	<IP_ADDRESS>

;; Query time: 23 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Thu Oct 20 16:52:20 CDT 2022
;; MSG SIZE  rcvd: 130

┌─╴ blackphidora@monolith    [☸ admin@kyz: default][🐦kyz]
└> dig jellyfin.waltr.tech CNAME @<IP_ADDRESS> # Expecting kyz.waltr.tech

; <<>> DiG 9.16.33-RH <<>> jellyfin.waltr.tech CNAME @<IP_ADDRESS>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13860
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: b0708301f38af79a (echoed)
;; QUESTION SECTION:
;jellyfin.waltr.tech.		IN	CNAME

;; AUTHORITY SECTION:
waltr.tech.		60	IN	SOA	k8s-gateway.networking.waltr.tech. hostmaster.k8s-gateway.networking.waltr.tech. 12345 7200 1800 86400 60

;; Query time: 6 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Thu Oct 20 16:52:47 CDT 2022
;; MSG SIZE  rcvd: 183

┌─╴ blackphidora@monolith    [☸ admin@kyz: default][🐦kyz]
└> dig jellyfin.default.waltr.tech @<IP_ADDRESS>  # Expecting IP of jellyfin service

; <<>> DiG 9.16.33-RH <<>> jellyfin.default.waltr.tech @<IP_ADDRESS>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32583
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 2f7483a164e57e71 (echoed)
;; QUESTION SECTION:
;jellyfin.default.waltr.tech.	IN	A

;; ANSWER SECTION:
jellyfin.default.waltr.tech. 300 IN	A	<IP_ADDRESS>

;; Query time: 1 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Thu Oct 20 16:53:08 CDT 2022
;; MSG SIZE  rcvd: 111

ah, I see, so you want k8s_gateway instead of recursively resolving a hostname, to respond you with a CNAME, which your client will then resolve on its own?

yes, Either a CNAME, or ideally an A record of traefik's service.
Since my DNS starts at my local router, I can put in overrides for my ingress's cname, So when k8s_gateway responds with a Cname, its the same public and internal, but internal is already split DNS. so one change doesn't hurt.

ok, in theory it's possible to make k8s_gateway return a CNAME or resolve a CNAME based on some sort of configuration flag.
But I don't understand the ideally an A record of traefik's service part. I understand you're referring to loadBalancer service that traefik puts in front of an ingress controller? Why don't you use providers.kubernetesingress.ingressendpoint.publishedservice  and get this automatically published in the ingress status?

Thinking back, the ideally an A record of traefik's service was a bad idea thing to write.
Using providers.kubernetesingress.ingressendpoint.publishedservice does allow k8s_gateway to resolve an A record for an ingress as expected, but at the same time, causes external-dns to start populating public dns with private IPs, even with kubernetesingress.ingressendpoint.hostname enabled on traefik.

ok, so we're down to one option: a global recursive hostname resolution option (on/off). the current behaviour is the same as "on". With "off", k8s_gateway will simply return a CNAME, without any additional A record.
Did I get it right?

Yes, that sounds correct to me.

ok, got it. I won't have time to implement this in the near future, so marking it as "help wanted" for now.

I have found a solution to my problem that nullifies this feature request.
I am able to use providers.kubernetesingress.ingressendpoint.publishedservice set to true, but added an annotation to traefik's service to manually set the DNS records with external-dns.alpha.kubernetes.io/hostname
This was hinted in external-dns's documentation in FAQs, but I missed it until now.
Because of this, I do not need this feature request, But I will leave it in case someone else does need this feature.


this app doesn't work

I don't know the reason
https://youtu.be/Oi6OByxe5DM

That was an original way to do a bug report :) Unfortunately I don't know how to debug avatarify-desktop yet (I support the python version because I use Linux) but I will summarize your issue for anyone else looking at it:
Avatarify app is installed and it starts, but the preview is empty/white. The camera appears as "DS-2UCTV38W-S" in Avatarify, and it is demonstrated to work in a different capture program

The issue is most likely about unsupported camera codec.
The conversion code is here.
https://github.com/alievk/avatarify-desktop/blob/559924fe6b62312c3155c1216c68ccc9afec1b00/avatarify/src/camera/AsyncCameraCapture.cpp#L73-L92

That was an original way to do a bug report :) Unfortunately I don't know how to debug avatarify-desktop yet (I support the python version because I use Linux) but I will summarize your issue for anyone else looking at it:
Avatarify app is installed and it starts, but the preview is empty/white. The camera appears as "DS-2UCTV38W-S" in Avatarify, and it is demonstrated to work in a different capture program

Yes, "DS-2UCTV38W-S" is my webcam, it works in other programs properly

The issue is most likely about unsupported camera codec.
The conversion code is here.
https://github.com/alievk/avatarify-desktop/blob/559924fe6b62312c3155c1216c68ccc9afec1b00/avatarify/src/camera/AsyncCameraCapture.cpp#L73-L92

i'm not a professional programmer, so this means i should change some code in somewhere? but this is a "exe" program

You can download the complete source code from github, modify it and compile your own exe. But you need to learn at least the basics of programming first


IllegalState sdk error

Facing issue of illegalState when starting the call. On android its working fine but on ios i am facing this issue and below are the logs .
ios: 14.3
xcode: 12.3
AmazonChimeSDK: 0.12.2
AmazonChimeSDKMedia: 0.8.2
2021-01-11 19:57:09.600248+0530 Eldertech[952:297436] [INFO] NativeMobileSDKBridge - API/DefaultAudioVideoFacade/stop
2021-01-11 19:57:09.600642+0530 Eldertech[952:297436] [INFO] NativeMobileSDKBridge - Running Amazon Chime SDK (0.12.2)
2021-01-11 19:57:09.611880+0530 Eldertech[952:297440] [INFO] NativeMobileSDKBridge - VideoClient is uninitialized so cannot be stopped and destroyed
2021-01-11 19:57:09.613955+0530 Eldertech[952:297436] [ERROR] NativeMobileSDKBridge - Failed to start meeting, error: illegalState
2021-01-11 19:57:09.645 [info][tid:com.facebook.react.JavaScript] 'SDK Error', 'Failed to start meeting, error: illegalState'
2021-01-11 19:57:09.646 [info][tid:com.facebook.react.JavaScript] Failed to start meeting, error: illegalState
2021-01-11 19:57:09.646 [info][tid:com.facebook.react.JavaScript] 'Error', 'Failed to start meeting, error: illegalState'

Hi @tuneerclixlogix,
The issue was fixed in https://github.com/aws/amazon-chime-sdk-ios/pull/201 and released in iOS SDK v0.13.1. Please try the latest SDK and Media and see if the issue resolves. Thanks!
Best,
Tianyu

Hi @tuneerclixlogix,
The issue was fixed in https://github.com/aws/amazon-chime-sdk-ios/pull/201 and released in iOS SDK v0.13.1. Please try the latest SDK and Media and see if the issue resolves. Thanks!
Best,
Tianyu

Now i am using the latest sdk, but if i join the meeting as the second resource it works fine on the first time. From the second time as the second resource i am facing this issue of illegalState again.
If i am the first person who is creating the meeting and joining as first resource its working fine everytime.

Now i am using the latest sdk, but if i join the meeting as the second resource it works fine on the first time. From the second time as the second resource i am facing this issue of illegalState again.
If i am the first person who is creating the meeting and joining as first resource its working fine everytime.


bevy_ui: Fix scaling issues

Objective
Fixes #3493.
The issue was that extracted_uinode.rect is scaled according to the window's scale factor when extracted_uinode.atlas_size is None, but it's not scaled when extracted_uinode.atlas_size is Some.
Solution
I changed one condition to avoid relying on extracted_uinode.rect, extracted the window's scale factor into the render app, and applied it as necessary when calculating the clipped UVs.
To be honest, I can't properly explain why it works this way, and I'm not confident I covered all cases. In #3460, the similar fields extracted_sprite.rect and extracted_sprite.atlas_size are changed to cleanly separate what affects position/size and what affects UVs. I hope to port to UI the sprite improvements of that PR after it's accepted, but meanwhile this smaller PR can fix the issue.

This PR needs to have its merge conflicts resolved. @Davier if you have time please feel free (but I know you've been busy). Otherwise I've added the Adopt-Me label; others are free to remake this PR to fix those.

The issue has already been fixed by #3854, closing this


[SUG]Fancy Zones Overview should include the troubleshooting for using it with UAC elevated programs.

So, I read here and there through an issue rabbit hole, that this has been addressed multiple times (check #1466 #1015) but still, it's page isn't addressing this.
📝 Provide a description of requested docs changes
https://github.com/microsoft/PowerToys/wiki/FancyZones-Overview
What is the purpose and what should be changed?
The idea is to add a new section that tells basically what #1015 said, when running elevated processes one should run PowerToys as admin/elevated in order for other elevated windows to be able to be snapped inside FancyZones' zones.

Does https://github.com/microsoft/PowerToys/wiki/PowerToys-and-running-as-Administrator work?

added in section https://github.com/microsoft/PowerToys/wiki/FancyZones-Overview#applications-running-as-admin-elevated-and-having-fancyzones-react-to-them

@https://github.com/microsoft/PowerToys/wiki/FancyZones-Overview#applications-running-as-admin-elevated-and-having-fancyzones-react-to-them does that work for you?

@frenchiveruti  does that work for you?

yes that is good, I think it would be better if it linked here:
https://github.com/microsoft/PowerToys/wiki/PowerToys-and-running-as-Administrator#powertoys-affected
But I think as is, this issue is solved.
Greets!

As a PS...
https://github.com/microsoft/PowerToys/wiki/PowerToys-and-running-as-Administrator#powertoys-affected
Here, instead of saying
Snapping a window into a zone
Moving the window to a different zone
Say
Snapping an elevated window (e.g. command prompt) into a Fancy Zone
Moving the elevated window to a different zone

done


Adds support for sending logs to FluentD.

Fixes #11.

Coverage decreased (-2.5%) to 97.452% when pulling 4f4cdb875c14c9adb2bb9eb7eefdb40ef4280c65 on AndreLouisCaron:fluentd-logging into d18575c17434f7fd34a8492c89ae8e8e8de9ac52 on smartmob-project:master.

Coverage remained the same at 100.0% when pulling 748572159ba5d5e779c60f2a92977e1da1db0a73 on AndreLouisCaron:fluentd-logging into d18575c17434f7fd34a8492c89ae8e8e8de9ac52 on smartmob-project:master.


Update development branch with some changes

Changes include:

Change all require() to import variable from filepath
Update files using filepath: ".../wrapper/..." to ".../documentPackager/..." due to renaming of wrapper component to documentPackager.

Updates:

Update documentPackager component to include:

Highlight.js plugin
KaTeX plugin
HTML XSS Filtering plugin

Fixed all issues! Merging!


Reporting: uniform time units across all benchmarks.

As per https://github.com/PerfDotNet/BenchmarkDotNet/issues/16
For usability use the same time unit when reporting AvrTime and StdDev.
Sample output:
  Method |        AvrTime |      StdDev |       op/s |
-------- |--------------- |------------ |----------- |
 Slower1 |      1.8112 us |   0.2015 us | 552,120.14 |
 Slower2 |      2.4149 us |   0.2425 us | 414,095.82 |
 Slower3 |      9.0558 us |   0.3052 us | 110,426.47 |
 Slower4 |     81.2006 us |   1.2585 us |  12,315.18 |
 Slower5 |  4,148.1727 us | 740.3897 us |     241.07 |
 Slower6 | 15,047.0119 us |  99.5290 us |      66.46 |

New commit as per the plan: squashed pushed etc.


Match patterns are broken

pub fn inline_start_physical_side() -> PhysicalSide {
    match (is_vertical, is_inline_tb) {
        (false, true) => PhysicalSide::Left,
    }
}

->
pub fn inline_start_physical_side() -> PhysicalSide {
    match (is_vertical, is_inline_tb) {
        (false,, true)) => PhysicalSide::Left,
    }
}

Ranges also:
 fn is_ascii_digit(c: &char) -> bool {
     match *c {
-        '0'...'9' => true,
+        '0'......'9' => => true,
         _ => false,
     }
 }

And even enum variants:
     let sign = match input.peek() {
         None => return None,
-        Some(&'-') => {
+        Some(&'-')) => {
             input.next();
             -1
-        },
-        Some(&'+') => {
+        }
+        Some(&'+')) => {
             input.next();
             1
-        },
+        }
         Some(_) => 1,
     };

Keeps getting better:
         match ch {
-            '0'...'9' => continue,
-            '%' => {
+            '0'......'9' => => continue,
+            '%' => => {
                 found_percent = true;
                 end_index = i;
-                break
+                break;
             }
-            '.' if !found_full_stop => {
+            '.' if if !found_full_stop => {
                 found_full_stop = true;
-                continue
+                continue;
             }
             _ => {
                 end_index = i;
-                break
+                break;
             }
         }

This is a libsyntax bug that has been fixed recently: https://github.com/rust-lang/rust/issues/29120
Updating your compiler should resolve this.

Confirmed, thank you.


Create ADR describing interacting with DALC implementations

Refer to https://rollkit.github.io/rollkit/specs/da.html


Created 'derivatives' folder with processed MPM output

@lazaral thanks! Small correction:
MTmap --> MTsat (magnetization transfer saturation index map)
Another concern regarding field maps, should we put them in the fmap folder @KirstieJane ?

Good point, thank you @agahkarakuzu! The other maps are R1map R2starmap etc. - shall I go for "MTsatmap"?
I was also in doubt about the field maps as they're not "raw" data but they're also not the main output...

@lazaral, great work!
Could you restructure the ds-04 a bit more, making a very clear distinction between derivatives and sourcedata? To be compeltely BIDSy, it should be something like

ds-04/derivatives/sub-01/anat/*_*map.nii.gz for derivatives
and
ds-04/sourcedata/sub-01/anat/*_*w.nii.gz for sourcedata

@lazaral  IMO we can keep this one as MTsat and let the R2starmap be the exceptionally long one, unless other people feel strongly otherwise :)

@Gilles86 thank you, yes happy to restructure the folders!
Btw what do you think of the other examples? I noticed that there the maps are also just in an 'anat' folder - should I move them to 'derivatives' and restructure the other 3 example datasets too?

Yes! Would be great if you could do that. Otherwise I can also give it a shot.

Great, restructuring all the examples now :)

@lazaral thanks! Small correction:
MTmap --> MTsat (magnetization transfer saturation index map)
Another concern regarding field maps, should we put them in the fmap folder @KirstieJane ?

@agahkarakuzu I think the point made by @Gilles86 on derivatives being a higher-level folder might solves this problem, as we can put the field maps in derivatives/sub-01/fmap/ ... curious to hear if @KirstieJane also agrees?

@Gilles86 Done! It's now added to the pull request :)

@lazaral, great work!
Could you restructure the ds-04 a bit more, making a very clear distinction between derivatives and sourcedata? To be compeltely BIDSy, it should be something like
* `ds-04/derivatives/sub-01/anat/*_*map.nii.gz` for derivatives
  and

* `ds-04/sourcedata/sub-01/anat/*_*w.nii.gz` for sourcedata

Hey folks - I don't think this is quite right. sourcedata is for the stuff that comes off the scanner. The "bidsified" raw data (as in the raw data in BIDS format) should be in the same level as the derivatives directory: https://bids-specification.readthedocs.io/en/stable/02-common-principles.html#source-vs-raw-vs-derived-data.
So while the derivatives data in this PR are correct, I think the raw data should have the /sourcedata folder removed from the path.
eg:

ds-04/sub-01/anat/*_*w.nii.gz`

I'll ping a PR to @lazaral's branch to show what I mean 😃

Another concern regarding field maps, should we put them in the fmap folder @KirstieJane ?

@agahkarakuzu I think the point made by @Gilles86 on derivatives being a higher-level folder might solves this problem, as we can put the field maps in derivatives/sub-01/fmap/ ... curious to hear if @KirstieJane also agrees?

Heya - the field maps should go in the fmap folder I think. It is in the top level folder (neither sourcedata nor derivatives as above). Here's the current specification: https://bids-specification.readthedocs.io/en/stable/04-modality-specific-files/01-magnetic-resonance-imaging-data.html#fieldmap-data
I think we need to update that section with an anatomical example. This conversation is already happening at #40.

@KirstieJane all makes sense - about the fields maps, my understanding is that with MPM both the B0 and B1+ field are calculated off the scanner in hMRI but others might be able to confirm.

I've implemented some of the changes we've discussed on Wednesday - if people would like to have a look, any feedback is appreciated :)
(p.s. note that the FLASH/MEGRE and MPM suffices are still inconsistent, but have been fixed in other pull requests... not sure what the best thing to do is, but I have made a note of the inconsistencies in the current pull request so I'm happy to fix them manually here if helpful)

So I heavily refactored the examples data in this branch
https://github.com/Gilles86/bep001/tree/examples
Somehow, I cannot push it to lazaral/master:
> git push -u lazaral master
To github.com:lazaral/bep001.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:lazaral/bep001.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Which is weird because when I do
> fetch lazaral master
> git merge lazaral/master

It says
Already up to date.

Anyone has a clue what's wron here? @KirstieJane ?

Then, @lazaral, could you have a look again at the MPM-examples?
Some issues to look into:

Why is there a fmap-derivatives folder?
A given file can have only one relevant sidecar-json in the same folder. So You can't have and sub-01_acq-MTon_MPM.json and sub-01_echo-1_acq-MToff_MPM.json. You will have to put all the relevant metadata in sub-01_echo-1_acq-MToff_MPM.json only. This was wrong in the MP2RAGE-examples as well. Maybe have a look in https://github.com/Gilles86/bep001/tree/examples to see how I solved it.
Why do the anat MPM-files all have the same echo times?

@Gilles86 thank you for the work and suggestions - I think I need some further clarifications :)

The B1 and B0 maps from MPM are an output of hMRI, rather than raw data from the scanner, so I thought we had decided in a previous meeting they'd go into derivatives because of that - should I move them out?

I kind of see what you mean in the MP2RAGE example but not sure I fully understand how that applies to the MPM example - MTon and MToff are entirely different scans so there is a nifti for each (MToff is what's called PDw in current hMRI/MPM wording).
Looking at your folder - do you mean that we shouldn't have a "master" json file (like sub-01_inv-1_MP2RAGE.json or sub-01_acq-T1w_MPM.json) for each contrast and rather just have the one json for each echo of each contrast? The way I process MPMs I don't get that "master" json file either, so I thought there was a specific reason why those additional "master" json files were there, but maybe there isn't :) happy to remove those "master" json files if that's not the case?

I was holding off adding extra details to the json files cause I thought the "real data example" of the MPMs will have that anyway. Is it useful to add realistic echo times at this stage? If so, should we also add other realistic fields to the json (e.g. flip angle etc.)?

Quick summary of recent updates to this pull request: I've fixed a few small issue about file names that were raised at previous meetings, and added realistic jsons for all the niftis (anat and fmap files alike).

One open question (@Gilles86 you might know?): previous versions of the MP2RAGE examples used to have a T1w scan, but I can't see it in the real example in OSF. Is that an error - should I remove it?

Also, @agahkarakuzu MEGRE is not my specialty so the json file for that example are quite sparse sorry :) it might be nice to add some realistic details (e.g. repetition time and flip angle) if you have them at hand?


Python 3.6 beta 3 + pip upgrade

Python 3.6 beta 3 is out, it's time to upgrade ))
Also with pip 9.0.1 it is time to move on.

I could apply the same changes to fix all base images (basically add libgdbm-dev to all containers)

libgdbm-dev is not needed since https://github.com/docker-library/buildpack-deps/pull/49, but it looks like there was a hiccup in the signing process and so the new image is not showing up on the Docker Hub.  We'll push them again today.


ld error occurs on aarch64 platform while compiling

Hi, recently I met some problem using nuitka with "--lto",
nuitka is installed using pip
platform & python nuitka gcc version
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

$ uname -a
Linux localhost.localdomain 4.4.194 #17 SMP Tue Sep 7 10:54:35 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

$ python3 -m nuitka --version
<IP_ADDRESS>
Commercial: None
Python: 3.6.9 (default, Jan 26 2021, 15:33:00)
Executable: /usr/bin/python3
OS: Linux
Arch: aarch64

$ gcc --version
gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
I met

$ echo 'print("hello")' > t.py
$ python3 -m nuitka --nofollow-imports --remove-output -o ttexec --static-libpython=yes  t.py
Nuitka-Options:INFO: Used command line options: --nofollow-imports --remove-output -o ttexec --static-libpython=yes t.py
Nuitka:INFO: Starting Python compilation with Nuitka '<IP_ADDRESS>' on Python '3.6' commercial None.
Nuitka:INFO: Completed Python level compilation and optimization.
Nuitka:INFO: Generating source code for C backend compiler.
Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C level backend compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: gcc (gcc).
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
compilation terminated.
                                                                                scons: *** [/xxxx/new_upx/ttexec] Error 1

only set "--lto=no" explicitly, the output executable file can generated successfully, it seems abnormal here.
when I'm using nuitka==<IP_ADDRESS>, without the "--lto", it runs well. If nuitka==<IP_ADDRESS> runs with "--lto" I got errors like this issue above too.
And it seems when using nuitka==<IP_ADDRESS> without the "--lto",
the output executable file futher compressed using tool "upx" sometimes got illegal instruction failure, but using nuitka==<IP_ADDRESS> with "--lto=no" can solve this.
What "--lto" really do under these conditions, are these phenomenon expected?

it seems related to this issue  #959

I will close this as invalid, the warning is there and explicit, and I doubt it has anything to do with the architecture at all. And the upx issue seems separate, should be a different issue.


Generic template interpolations beyond HistFactory

HistFactory deals with templates that describe the distribution of a sample when varying a single parameter (corresponding to a systematic uncertainty). For two parameters (a, b), usually four templates are provided for these points: (1,0), (-1,0), (0,1), (0,-1).
As suggested by @cranmer, it would be good to make cabinetry flexible enough to support a more general scenario where templates can correspond to variations of multiple parameters at the same time. As an example, it should be possible to provide a template corresponding to (1,1).
The following two things are needed for this:

A way to implement this in the config file. At the moment, users specify systematics, and the associated templates show variations of the parameter describing the systematic. All systematics naturally factorize in the config file. If templates corresponding to variations of multiple parameters are needed, then maybe a list of systematics and a list of templates could be used. The systematics list could describe general aspects of each systematic (e.g. what samples it acts on), and the list of templates could specify how to obtain a given template and to what parameter settings it corresponds to. This could make the config significantly less readable, and better solutions might exist.
A structure within cabinetry that associates templates to systematics and passes them on to a tool that would use them.

Some ideas about a configuration file structure are in this gist. Conceptually, it seems like a good idea to group together everything that is related to template interpolation: systematic variations, but also e.g. signal template variations for things like mass measurements.
The following structure is one possibility:
TemplateInterpolation:
  UpDownSystematics:  # equivalent to the current "Systematics" block
    - Name: "Luminosity"
      ...
      Type: "Normalization"

    - Name: "Modeling"
      ...

  ExtendedHistFactorySystematics:  # nuisance parameter values do not have to be -1, 1
    - Name: ""
      ...

  DirectProductSystematics:  # templates for direct product of multiple parameters
    - Name: ""
      ...

  MeshgridSystematics:  # templates at any value of multiple parameters
    - Name: ""
       ...

  Other:  # need some other name for remaining cases, like different signal mass templates
    - Name: ""
      ...

Pure normalization uncertainties may not fit well into the UpDownSystematics example above, since they do not rely on any templates at all. Following the approach from above, they probably should be specified outside of TemplateInterpolation.


Question: What's the syntax used in target field?

I try to match all lua file wihtin workspace(just for experiment), but I got no match at all, which is weird. Can I use regex in target field?
{
   pattern = "(.*).py",
   target = ".*lua$"
}

@qlibp In the target you can use glob patterns and reference the groups from the pattern.
So just removing the the $ from the target should work already.


Bump gh cli to v1.6.1

Description
Update gh cli.
Motivation and Context
Stay up to date.
How Has This Been Tested?
I built the new arkade version, downloaded the executable and ran the tests.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.

[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[x] I've read the CONTRIBUTION guide

[x] I have signed-off my commits with git commit -s

[x] I have added tests to cover my changes.

[x] All new and existing tests passed.

[ ] I have tested this on arm, or have added code to prevent deployment

Thanks @jceb


Configure Swagger to ignore property on model

I would like to filter out property on request model (dynamically injected from auth claim, should not be passed in request Body).
There is a solution for that using Swashbuckle.AspNetCore.SwaggerGen.ISchemaFilter (see below) but it does not work with FastEndpoints (it's not possible to configure SchemaFilters). Is there an alternative solution?
Solution using ISchemaFilter:
    [AttributeUsage(AttributeTargets.Property)]
    public class SwaggerExcludeAttribute : Attribute
    {
    }

    public class SwaggerExcludeFilter : ISchemaFilter
    {
        public void Apply(OpenApiSchema schema, SchemaFilterContext context)
        {
            if (schema.Properties == null)
                return;

            var excludedProperties = context.Type.GetProperties()
                .Where(t =>
                    t.GetCustomAttribute<SwaggerExcludeAttribute>()
                    != null);

            foreach (var excludedProperty in excludedProperties)
            {
                if (schema.Properties.ContainsKey(excludedProperty.Name))
                    schema.Properties.Remove(excludedProperty.Name);
            }
        }
    }

(based on https://stackoverflow.com/questions/41005730/how-to-configure-swashbuckle-to-ignore-property-on-model)

Actually the property is ignored automatically when decorated with [FromClaim] attribute, nothing else is needed to remove it from swagger.json. The package works exactly how it should - great work!

I am using this library for the first time and am loving it so far!
Actually, I implemented a custom authorization handler that uses different query string parameters, and that I use as input in some endpoint requests. As this info is already entered on the swagger authorization section, it would be very nice if we could make swagger gen ignore request properties at-will; either by creating a new attribute, or by adding a new parameter to the current attributes such as `FromHeaderAttribute(..)".
Would this be possible @dj-nitehawk ?

@ninety7 you can achive that by decorating the property to be ignored with [JsonIgnore] from STJ, or [HideFromDocs] from fastendpoints.
fe's nswag operation processor removes those properties like so:
https://github.com/FastEndpoints/FastEndpoints/blob/1e364d6e0058418097fb3af45e2947c781bf361d/Src/Swagger/OperationProcessor.cs#L263-L275

This is really nice. I have not noticed this in the docs (yet) so thank you so much for pointing me to what I was looking for!

you are most welcome...
looks like we forgot to document it 🤦♂
will update soon 😉


FUSETOOLS2-2402: Setup code coverage

Can you share the results in the PR to see if it is coherent or not?


When using monorepo, react only on changes done to configured paths

Description
When using monorepo (=more packages in one git repository, defined using the packages key) with many packages, triggering actions for all the packages is not needed.
Let's check the affected paths first and react only if anything has been done to the package-related path.
Benefit

Safe of resources. (=Only the important/relevant jobs are done.)
Cleaner UX. (=Just important/relevant results are shown.)

Importance
This has been asked multiple times, but lately by @LecrisUT who wants to use a monorepo with ~500 packages.
What is the impacted category (job)?
General
Workaround

[ ] There is an existing workaround that can be used until this feature is implemented.

Participation

[ ] I am willing to submit a pull request for this issue. (Packit team is happy to help!)

Option 1:
Add the info to the Event classes and use this when creating job tasks:

[ ] Add a new property to all the relevant event classes:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/events/github.py#L86
[ ] Fill in the info when parsing:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/parser.py#L250

[ ] Check if we can actually get that info: https://docs.github.com/en/webhooks-and-events/webhooks/webhook-events-and-payloads?actionType=opened#pull_request (If I've checked correctly, it's not in the event payload and we need to use GitHub API (using this OGR method in our case) to get that info.

[ ] Use the info when filtering the new tasks to be added to our job queue:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/jobs.py#L446

I would say to have it for both PRs and branch commits initially. Later this should be handled by the dependencies logic with rebuild/sync-version logic from here. To bridge the gap between them, maybe the user could run the packit build in-copr for the select packages or use a \packit build in the PR specifying the packages there (later just \packit build dependents).

Option 2:
Probably more simple. Check this info when creating the job tasks:

[ ] Use GitHub API (using this OGR method in our case) to get the info about changed files.
[ ] And use it when filtering the new tasks to be added to our job queue. Probably here:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/jobs.py#L446

I would say to have it for both PRs and branch commits initially.

:+1:  That makes sense.

I am preparing some tips/ideas for the implementation but am now not sure if this should be pull-request/merge-request specific. WDYT? Should we run only change-relevant jobs for pull requests but all for branch/release builds so we are sure everything is rebuilt once merged? Or, is it misleading/confusing and the new builds not run on PR/MR could potentially fail?

I think the triggering method should stay the same, we should always create all jobs and let the jobs themself decide if they are relevant or not, but maybe I am missing something...

Option 1:
Add the info to the Event classes and use this when creating job tasks:

[ ]  Add a new property to all the relevant event classes:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/events/github.py#L86

[ ]  Fill in the info when parsing:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/parser.py#L250

[ ]  Check if we can actually get that info: https://docs.github.com/en/webhooks-and-events/webhooks/webhook-events-and-payloads?actionType=opened#pull_request (If I've checked correctly, it's not in the event payload and we need to use GitHub API (using this OGR method in our case) to get that info.

[ ]  Use the info when filtering the new tasks to be added to our job queue:
https://github.com/packit/packit-service/blob/a8dddb3d4be8ca29110f93e671a54a8a3fd6be7a/packit_service/worker/jobs.py#L446

I know that with these solutions we can save some cpu time.  But to me this seems like work that should be done by the Job itself.
I think the jobs won't always have the same filtering method; most of them will just look for something that happened inside their path. But others, which are dependent, could also check for changes elsewhere. And maybe there could exist jobs that need to be done always to keep things consistent (I don't really know, just a fear).

I think the triggering method should stay the same, we should always create all jobs and let the jobs themself decide if they are relevant or not, but maybe I am missing something...

So, do it on the handler level (, where)? OR as a handler pre-check?

I think this can be a pre-check. At first all the jobs can have the same pre-check code which checks if something happened inside the package's paths and later it could be easily customized or removed per job' s handler.

To detect the files changed how about running purely on the git repo and CI status:

On PRs: check against the target branch
On branches: check against last run packit job

This would be very useful to implement - if you look at https://github.com/fedora-copr/copr/pull/2720 for us it would spawn cca 70 builds for every PR with every change. This is overkill a bit considering that we need to build only a fraction of it.

Should we run only change-relevant jobs for pull requests but all for branch/release builds so we are sure everything is rebuilt once merged?

Good question. For Copr specifically, we don't need to build everything once PR is merged and I believe that many users may have the same use-case so it may be useful to do this as opt-in feature for some folks who want to build everything.
Regarding the two options, the first one sounds too much complicated to me but I don't know the implementation detail.  My first thought how to implemented was naive approach - using git diff directly between main branch and PR branch and then matching the subdirectories with content mentioned in .packit.yaml (paths key). And this sounds familiar to the second option (use OGR to get changed files and then process). Is there some implementation detail that stops you from doing it this way?

We can start with the PR diff and get the info from GitHub. If I remember correctly, the affected files are available via API so we can skip the job even before doing anything with the cloned git repo.

any ETA on this? This blocks Copr to use packit in PRs

hi @nikromen , no we haven't discussed this for longer time, but I may bring this up at our next team meeting and let you know.


onFocus and onBlur events not firing when component given a mask prop

Upgrading to v3.0.0 and running into some issues. Lots of stuff is working great, but passing a mask prop causes the onFocus and onBlur callbacks to not be invoked.
Examples:
    <TextInputMask
          mask="[0000]"
          style={{ fontSize: 20, backgroundColor: 'red' }}
          onFocus={() => {
            console.log('I don\'t work');
          }}
          onBlur={() => {
            console.log('Neither do I');
          }}
    />

    <TextInputMask
          style={{ fontSize: 20, backgroundColor: 'green' }}
          onFocus={() => {
            console.log('I work!');
          }}
          onBlur={() => {
            console.log('So do I!');
          }}
    />

Also, unrelated, it probably doesn't make sense to have an npx tsc postinstall script

This could be related to rewiring of listeners in the native code, is this happening on iOS, android or both?

Also, recent release has fixed up packaging, check out https://github.com/react-native-text-input-mask/react-native-text-input-mask/releases/tag/v3.0.1

I only tested on android and it happens here

I was on iOS, so it appears it's on both platforms

any updates on that problem? We are facing the same issue on both platforms

@yawnr This should now be resolved in https://github.com/react-native-text-input-mask/react-native-text-input-mask/releases/tag/v3.0.4 for both android and iOS


how can i make it run @ 5 GHz?

how can i make the AP run on 5 ghz?

After creating a hostapd config file, open it manually (/etc/hostapd/hostapd.conf), and add this to the end of the file:
hw_mode=g
After this, change the channel to a 5GH one, for example 40:
channel=40
I'm not sure if it works on every wifi card, please try it and tell me if it is working or not.

Closing the issue because of no response from OP.


error installation,

openvpn-install.sh: line 651: openvpn: command not found
cp: cannot stat ‘pki/ca.crt’: No such file or directory
cp: cannot stat ‘pki/private/ca.key’: No such file or directory
cp: cannot stat ‘pki/issued/server_Mpnz87UB47gTNOOv.crt’: No such file or directory
cp: cannot stat ‘pki/private/server_Mpnz87UB47gTNOOv.key’: No such file or directory
cp: cannot stat ‘/etc/openvpn/easy-rsa/pki/crl.pem’: No such file or directory
chmod: cannot access ‘/etc/openvpn/crl.pem’: No such file or directory

Applying /etc/sysctl.d/20-openvpn.conf ...
net.ipv4.ip_forward = 1
Applying /etc/sysctl.d/99-sysctl.conf ...
Applying /etc/sysctl.conf ...
cp: cannot stat<EMAIL_ADDRESS>No such file or directory
sed: can't read<EMAIL_ADDRESS>No such file or directory
sed: can't read<EMAIL_ADDRESS>No such file or directory
Failed to restart<EMAIL_ADDRESS>Unit<EMAIL_ADDRESS>failed to load: No such file or directory.
Failed to execute operation: No such file or directory
mkdir: cannot create directory ‘/etc/iptables’: File exists
Created symlink from /etc/systemd/system/multi-user.target.wants/iptables-openvpn.service to /etc/systemd/system/iptables-openvpn.service.

there for
require apt-get install OpenVPN --force-y install -y

It's gpg key error no valid. How to solve this matter?

solved by mirroring gpg key


with_terminal() doesn't work

In Pluto there is the nice with_terminal() that captures terminal output and renders it to the output cell. This seems to currently not work here?
Originally posted by @kellertuer in https://github.com/rikhuijzer/PlutoStaticHTML.jl/issues/68#issuecomment-1037305221

Fixed now @kellertuer

Nice! I will take a look soon. Together with the resolved pwd-iddue It might be that my notebooks should now work fine in the docs. Very cool.

I finally had the time to check – and it works like a charm. I still have to finish the last (but shorter) 4 tutorials, but I think I am now in a state that it works fine. Thanks for all the fixes :)


Use inferred bounds, regenerate travis.yml

Hi @mitchellwrosen! This PR updates the source for 8.10.1 support in the .cabal file, using the correct inferred bounds for the dependencies, and updates the .travis.yml to test GHC 8.8.3 and GHC 8.10.1.
This doesn't necessarily require a release, since we can just commit the changes as a revision on hackage.

👋 Thanks! Could you explain this bit?

It seems less accurate to me because although the ^>= operator is syntactic sugar for >= && < today, semantically I think it means "works with this major version, and might work with the next, which doesn't exist yet".

Assuming these packages follow PVP (and they must, since all but bifunctors are packaged with GHC), they are functionally equivalent statements. The intent of ^>=x.y.z.w is to express positive information that says "yes, x.y.z.w is known to work, so v <= x.(y+1) is also known to work". This is useful for the solver when determining bounds information, in a way that x.y.z.w < u is a little harder to determine.
However, they are both functionally equivalent, and I'd consider the ^>= . || ^>= . || ... || ^>= chains to be kind of grody since cabal gives you the precise syntax to express this, which is the >= . && < . syntax.

Hm, I'm not sure I agree :) Let's get to the bottom of this, but I'm happy to merge the 8.10 bump.
Have you seen this, from the user guide?

Since they're equivalent, the ^>= . || ^>= . || ... || ^>= chains then seem kind of grody since cabal gives you the precise syntax to express this, which is the >= . && < . syntax.

cabal does give the precise syntax for this - it's a set notation, only available in 3.0+

But hold on here, you're doing ^>= x.y || ^>= x.(y+1) || ^>= ..., which is precisely >=x.y && <x.(y+n)! The distinction that sets apart set notation is when you need to skip versions, but still express the information that everything else up to a major version in is positive. In the example, network >= 2.7 && < <IP_ADDRESS> is an invalid version. This is like saying
network >= 2.6 && <2.7 && >= 2.7.02 && < 2.9 && >= <IP_ADDRESS> && < 3.1

But if you're just going to chain carets together for every major version bump, there's no point, since all the information you need is expressed in that >= . && < . bound. We're not skipping versions, and everything we're working with follows PVP, so it's fine.

But hold on here, you're doing ^>= x.y || ^>= x.(y+1) || ^>= x.(y+2) || ..., which is precisely >=x.y && <x.(y+n)!

I don't think it is:

^>= x.y || ^>= x.(y+1) || ^>= x.(y+2) says "I am known to be compatible with x.y, x.(y+1), and x.(y+2).
>=x.y && <x.(y+3) says "I am known to be compatible with x.y, x.(y+1), and x.(y+2), and known not to be compatible with x.(y+3).

Here's the relevant point from the cabal user guide:

Alright, i've asked around about this. HVR and gbaz confirmed for me that it is currently equivalent to make either statement, but you have a way you think about your bounds, and it's not a hill I'm going to die on, so I've reverted it.

That's good info! It's also not a hill I'm going to die on, and I trust the author of the PVP operator on this one. So thanks for reverting the bounds, but I would have merged knowing this without :)
Were these discussions anywhere public?

Oh, I missed the word "currently" in your statement above. Yes, I totally agree they are currently indistinguishable - I never meant to argue otherwise - however I was imagining in some future world, with smarter tooling, the PVP operator would be the preferred way of saying "works with this major ver" (in the absence of knowledge about the next one).

That's good info! It's also not a hill I'm going to die on, and I trust the author of the PVP operator on this one. So thanks for reverting the bounds, but I would have merged knowing this without :)

Oh yea, no worries, I was wondering if I was just reading this completely wrong and totally off base 😓

Were these discussions anywhere public?

No, these were in PM on discord, but we can summon him here to confirm: @hvr I choose you!

Just a minor nitpick: Not many know this, but they are already distinguishable now, e.g. by --allow-newer which can be told to only act on ^>= style-inferred upper bounds, but not on explicit < ones.
And one set of tooling that's quite easy to imagine is teaching something like haskell-ci to explicitly try to verify the "known-to-work" data-points declared by ^>=, from which everything else is inferred. This could e.g. be easily implemented it cabal was taught a modifier that controls how  "wide" ^>= is expanded. Imagine a variant of the allow-newer flag that tells the solver not to omit the upper bound, but a bit the opposite, i.e. to tighten the expansion to e.g. the extreme to treat ^>= as if it was a ==; or turn ^>= a.b.c.d... into something like == a.b.c.*  (taking into account omitted trailing zero components)...
Does this make any sense? :-)