proposal for issue #41

It still needs a lot of cleanup but I wanted to get some feedback if this I'm going in the right  for #41.
I think that the interface for the effects doesn't need to be much more complicated but the ColorState class should be expanded to allow the effects to communicate with each other and the rest of the program. The ColorState class should probably encapsulate all led logic in a way that implementing issue #42 would also not affect the effects logic.
I'm not sure if separate source files or if all code inside the headers are preferred.
I think I've also found a fix for #34 but it could be improved by encapsulating the transitioning better.

This is really cool, and I'm impressed with how quickly you created this. If you are happy continuing down this path, I'm loving it.
I have a couple quick comments that I've noticed so far:

I think the contract/interface for the ColorState should be more restrictive and explicit. I'm thinking that it would expose the bare minimum of public fields (like the colors) and hide things like the weirdly-named realRed.
I'm not sure if the fading logic even really belongs in ColorState. For now, this might be necessary, but if we do end up including in FastLED (#42) and using the blend function, it seems like this might become a responsibility of the effect itself. Flash, for example, doesn't need to use any blending/fading code.

I'm picturing the flow working like this for each loop. Please correct me if you have a different view.

Main logic calls the update of the active effect, which:
a. does any calculation needed (timing, blending, etc.) to get the exact value to set the LEDs to
b. sets the specific color fields on the ColorState object
Main logic calls the update of the ColorState, which:
a. writes the color out to the LEDs
b. doesn't perform any of it's own fading calculations (except maybe global brightness)

This makes the ColorState object pretty "dumb," but I'm thinking it should just be a state object. This also would align with the FastLED model (from what I understand). You set the colors on a state object and then call FastLED.show() to push those values out to the lights.

To your comment about source files vs. code in the header files, I don't really have a lot of experience in that world. I'm totally happy with the code-in-header style because it keeps things simpler.
Finally, I'm not sure how well it would work, but could we make transitions just be another effect? I think it would help with the encapsulation issue, but it might be more of a headache. I'm curious about your thoughts now that you've gone through this process.
Thank you again for going through the work and setting this up.

The ColorState interface should indeed be a lot more restrictive for this the json parsing part would probably need to be moved from the main code to the ColorState.
The transition itself could probably be an effect but I'm not sure how this would work inside the home assistant UI. As far as I've seen you can only select an effect but not specify parameters such as color to transition to.
Further I think the design depends on how much the effects should depend on the fastled library. If we don't want the effects to actually depend on fastled then we should probably provide a blend like function in which we could swap the implementation. If the effects will depend on the festled library then we probably won't even need the colorstate object because the effects itself could directly call the FastLED.show() to push the changes when the effects need it.

I'm not sure about moving the JSON processing into ColorState. It seems like JSON processing would be part of the main logic. I'm thinking of using the ColorState object much like FastLED's pixel object (because we can't actually use that part of FastLED with analog LEDs). It would mostly be a data object.
So an effect would set ColorState.red, green, blue, brightness values and then the main logic would call update() (or show()) and push the color to the LED.
I think it's a kind of nice abstraction to not let the effects directly update the lights, only the ColorState object. That also means that it might be possible to chain effects someday.

I think I understand what you mean. I'll rework it some more when I have time.

Thanks, @depuits. Let me just reaffirm that I really like this proposal. There will always be things to tweak, so I'm okay with merging this in when we are relatively happy with it and continuing to make future improvements as well.

I've moved the transition logic into its own Transition effect and simplified the ColorState object so it now only contains the rgbw values and brightness logic. It still implements the IEffect interface so we can still just loop all effects in the main code.
The ColorFade now also depends on the Transition effect to fade between colors.

What changes should still be made to merge this code?


Wheeled inverted pendulum environment

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

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

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
2632

Relevant Lines:
2923

💛  - Coveralls


chore: use quote-specific terminology in types

Description

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

High Risk PRs Require 2 approvals

What protocols, transaction types or contract interactions might be affected by this PR?

Testing

Engineering

Operations

Screenshots (if applicable)

Current dependencies on/for this PR:

#6277  👈
develop

This stack of pull requests is managed by Graphite.


Doesn't work with CSSTransitionGroup animations

I'm using a CSSTransitionGroup to perform a page transition to a page with the textarea-autosize component. The animation won't run if I don't remove the call to _resizeComponent in ComponentDidMount.
Not entirely sure what's causing it yet.

Do you have a repro? Would useful to debug.

Run into the same issue. I have a parent container with CSSTransitionGroup using transform: translate3d to animate a page slide in from right.

@muntamala would be good to have a gh repo I can debug against.

Having the same issue @muntamala , tested on a local project. The animation becomes 'jittery' when transitioning a component (that contains this Textarea component within) using CSSTransitionGroup. Removing the _resizeComponent() call in componentDidMount solved the issue as @eriklovdahl mentioned.

Wrapping textarea component with https://github.com/reactjs/react-static-container and setting shouldUpdate={false} during animation could help probably.

@andreypopp unfortunately wrapping it with the static container doesnt seem to have any effect. While I dont quite understand the intricacies of the problem we know its from the call to _resizeComponent on mount. Could a possible solution be the just pass a prop to which we could disable this initial call to that function (defaults true)?

@deep-c can you provide a repo or jsfiddle with repro?

I had similar issue: Textarea occupied all height when its parent was changing size with css transitions. Setting useCacheForDOMMeasurements seems to fix it

@asquet could u share a reproduced issue on something like https://codesandbox.io/ ? I would love to take a quick look on how it is behaving during the transitions.

I tried to, but could not import react-textarea-autosize properly. Could you make base fiddle that I can extend?

https://codesandbox.io/s/M8pJnJ185

Heres what Ive managed to put together
https://codesandbox.io/s/pYyzv0Jjr
It's a rather messy, sorry about that. I hope it can help you to get the idea.
Click "toggle" to change sizes. After second change textarea will get higher than it should

Thanks! I'll definitely look into this when I have some spare time and provide at least explanation why this happens, although hopefully it will be fixable ;)

Heh, I couldnt resist and had to check this out :D So unfortunately its kinda a non-fixable issue on our side, certainly not in a performant way.
This happens because we hook into componentWillReceiveProps and schedule there a measurement to determine what height should be set on the textarea. And at the time when the measurement occurs ur UI is in pre-animation state, so your textarea's width is 0  and based on that value the height is getting determined and ofc its too high, because it thinks its the only way that the text is being able to fill into that width.
So really the best shot at it is in fact using the cache property, which is advised anyway - it will skip unnecessary recomputations inside the lib.
Ideally somebody could prepare a PR with a documentation note about this.
PS. I also really appreciate simpler demo you have put together (without CSSTransitionGroup involved)

@Andarist you beat me to it!

Thanks for the example, I looked into it and I think.
We schedule a rAF callback with resizeComponent() when we start the animation but because rAF callback executes before the animation completed it measures the wrong height.
The current implementation only calls resizeComponent() when a. resize event fires on window or b. component is being rendered with new props. Neither of a. and b. happens when animation ends.
So for that exact case my advice above to use react-static-container is the partial solution as you'd want to disable rerendering textarea and thus trigger its resizeComponent().
See updated codesandbox: https://codesandbox.io/s/1rN0XgGRj (btw love this service!)
Why partially? Because if you resize browser window when animation is in progress or textarea is hidden — it trigger resizeComponent() method due the resize listener firing.
Maybe we should add skipUpdate prop to <TextareaAutosize />? So that we can cut calls to resizeComponent() completely when it's not needed (during the animation and/or other edge cases).

hey @andreypopp ! Im glad you are still around and checking out :)
skipUpdate
im wondering if thats in any way helpful more than existing useCache~, it can also be steered with props quite granulary, but maybe i didnt think of something

If it works then it works 😉be pragmatic - from what I understand you force the rerender in onAnimationEnd, right? Seems that can indeed solve a problem, we just can't do anything like this in the library itself, because it's a leaf node and we can't know in what way it is used.
When I have last looked into the code it seemed to me that rAF scheduling might not be needed nowadays (issue https://github.com/andreypopp/react-textarea-autosize/issues/216), maybe it was needed once, but at the moment it's used only for controlled mode (and for uncontrolled mode when props change, but it seems to me that the only relevant part are value changes, so this case in uncontrolled mode can be disregarded).
So if we do not have any perf reports for uncontrolled mode, maybe this scheduling used in controlled mode is an overkill and could be just removed? Which has potential of alleviating your issue altogether.
Problem with such changes is that we don't really have any tests :s so any change is a risk. I'll try to prepare a beta release without that scheduling in a moment for testing purposes.

You can try npm install react-textarea-autosize@beta

Not sure if this will be helpful for others, but I was running into this issue when using Transition from headlessui. The TextArea in my case was deeply nested. I
Setting the cache prop did not do it for me. I was able to get this work by activating the transition (setting show to true in my case, with unmount equal to false) only after a setTimeout of 0. This waits a tick, which allows the text area to do its initial setup.


database.updateDeviceStatus parameter setting time to Null

Hi anton I have a problem with the key flag:
<!-- <entry key='database.updateDeviceStatus'>
       UPDATE `axioma_vehiculos` SET ultima_comunicacion = :lastUpdate WHERE imei = :id;
</entry>-->

that flag allows me to update a status but my database status is based on time, so, can you explain me how is it supposed to work? what field it has to update in which table of the database??
thanks

In original version it updates status and lastUpdate fields in the device table.


Using Header Tags within Tables

Header tags don't seem to work inside tables, is there a way to get them to work?
Example code:
# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
###### Header 6
**bold**
*italic*

| # Header 1 |
| --- |
| ## Header 2 |
| ### Header 3 |
| #### Header 4 |
| ##### Header 5 |
| ###### Header 6 |
| **bold** |
| *italic* |

Additionally, is there a way to create a table without it using the  for the first row which formats the data as a table header?

Using HTML directly inside tables.
|
header1
 |
| --- |
| **bold** |
| *italic* |

Ideally I don't want to tell our users to use HTML, that's the whole reason we're using markup 😄

To add to the explanation, there are 2 reasons why you can't use headers inside tables.
According to the HTML living standard, the th element's content model only allows
for "Flow content, but with no header, footer, sectioning content, or heading content descendants." This means h1 isn't allowed inside th elements. So, allowing:
| # Header 1 |
| --- |
| foo |

would result in non compliant generated HTML.
The other reason is that headings, in markdown, are treated as block elements (not span/inline elements). Block elements require, at least, one line break (\n) or a EOF at the end.
Due to the nature of markdown tables' syntax, this is not possible, and that's the reason why only inline/span markdown elements are allowed in markdown's table cells.
Please note that, concerning HTML spec, and contrary to th elements, heading elements are perfectly valid in table bodies (td elements). So you can "cheat" around this using HTML directly.
As a final note, I don't know of any other markdown specification or implementation that allows headings in tables.

Thank you for the reply, I hadn't realised having headers inside tables was a "bad" thing. Will have think around this.

I will be closing this issue. If you feel there's something else you wish to add, please feel free to reopen it.


[FEATURE] Add Dockerfile and automation

Is your feature request related to a problem? Please describe.
No problem
Describe the solution you'd like
Add dockerfile and build automation

Closed by #178


[ADAP-638] [Bug] dbt crashes if for nested fields (e.g. struct) both the parent and subfields are defined in the YAML file

Is this a new bug in dbt-bigquery?

[X] I believe this is a new bug in dbt-bigquery
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
While testing #738 in 1.5rc2, we managed to crash dbt when adding YML config to a struct, both at the parent and subfield levels at the same time.
The goal was to try:

providing constraints at the struct level in addition to the field level (e.g. the struct itself should be not null in addition to some of the subfields being not null
adding description at the struct level in addition to the subfield level

(the following was tried with and without data_type at the parent level but both failed, with different errors though. in an ideal situation, we wouldn't have to set the data_type at the parent level but still be allowed to add constraint and documentation)
- name: my_struct
  description: |
    My overall description
  data_type: |
    struct<
      field_1 string,
      field_2 numeric>
- name: my_struct.field_1
  data_type: string
  description: Desc for field_1
- name: my_struct.field_2
  data_type: numeric
  description: Desc for field_2

We were expecting this to either work or get a config error from dbt but instead dbt crashes. The code dump is listed below.
Expected Behavior
I would expect this config not to crash but instead to:

ideally work, allowing config at both levels, parent and subfield
or at least raise an error telling me what that having config at both levels is not allowed

Steps To Reproduce

use a struct in a model
configure the struct in YML with constraints and descriptions
a. at the subfield level
b. at the struct (e.g. parent level)

Relevant log output
2023-06-20 13:39:06.733916 (Thread-34): 13:39:06  Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/dbt/task/base.py", line 391, in safe_run
    result = self.compile_and_execute(manifest, ctx)
  File "/usr/local/lib/python3.8/dist-packages/dbt/task/base.py", line 340, in compile_and_execute
    result = self.run(ctx.node, manifest)
  File "/usr/local/lib/python3.8/dist-packages/dbt/task/base.py", line 439, in run
    return self.execute(compiled_node, manifest)
  File "/usr/local/lib/python3.8/dist-packages/dbt/task/run.py", line 291, in execute
    result = MacroGenerator(
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 108, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 42, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 104, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 58, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 31, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 62, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 19, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 20, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 31, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 20, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 330, in __call__
    return self.call_macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/clients/jinja.py", line 257, in call_macro
    return macro(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 763, in __call__
    return self._invoke(arguments, autoescape)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 777, in _invoke
    rv = self._func(*arguments)
  File "<template>", line 20, in macro
  File "/usr/local/lib/python3.8/dist-packages/jinja2/sandbox.py", line 393, in call
    return __context.call(__obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/jinja2/runtime.py", line 298, in call
    return __obj(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/dbt/adapters/bigquery/impl.py", line 280, in nest_column_data_types
    return get_nested_column_data_types(columns, constraints)
  File "/usr/local/lib/python3.8/dist-packages/dbt/adapters/bigquery/column.py", line 164, in get_nested_column_data_types
    _update_nested_column_data_types(
  File "/usr/local/lib/python3.8/dist-packages/dbt/adapters/bigquery/column.py", line 231, in _update_nested_column_data_types
    assert isinstance(remaining_column_data_types, dict)  # keeping mypy happy
AssertionError

Environment
- dbt-core: 1.5rc2

Additional Context
No response

@b-per Thanks for testing out, and for opening!
From some quick local testing:

This error only crops up when enforcing a contract. So this isn't a functional regression compared to earlier versions of dbt (v1.4)
Previously, contract enforcement didn't work with nested fields at all (https://github.com/dbt-labs/dbt-bigquery/issues/673). Thanks to https://github.com/dbt-labs/dbt-bigquery/pull/738, contract enforcement works if only the nested fields are defined. So v1.5.2rc2 still offers an improvement over v1.5.1, and no functional regression.

in an ideal situation, we wouldn't have to set the data_type at the parent level but still be allowed to add constraint and documentation

Agree that this is the ideal outcome!
repro case
This works:
-- models/model_a.sql
select struct("blue" as field_1, 100 as field_2) as my_struct

models:
  - name: model_a
    config:
      contract: {enforced: true}
      materialized: table
    columns:
      - name: my_struct.field_1
        data_type: string
        constraints:
          - type: not_null
        description: Desc for field_1
      - name: my_struct.field_2
        data_type: integer
        description: Desc for field_2

Desirable outcome:
models:
  - name: model_a
    config:
      contract: {enforced: true}
    columns:
      - name: my_struct
        description: My overall description
        constraints:
          - type: not_null
      - name: my_struct.field_1
        data_type: string
        description: Desc for field_1
        constraints:
          - type: not_null
      - name: my_struct.field_2
        data_type: integer
        description: Desc for field_2

Should template SQL like:
create or replace table `dbt-test-env`.`dbt_jcohen`.`model_a`
(
    my_struct struct<field_1 string not null, field_2 integer> not null
)
OPTIONS()
as (
    select my_struct
    from (
        select struct("blue" as field_1, 100 as field_2) as my_struct
    ) as model_subq
)


Add extra info on multi operation order

Not sure if this was worded most appropriately. Open to any criticism. Fixes #3578

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


Requires installing Python + Jupyter plugin each time after restart to select virtual environments

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.85.2 (Universal)
OS Version: Darwin arm64 21.6.0

Steps to Reproduce:

Open any Jupyter notebook
Click on 'Install Python + Jupyter plugin' to select virtual environments
Wait till installation is complete.
Restart VS Code and repeat

It sounds like the Jupyter extension isn't starting up successfully - can you check in the extensions tab if it is actually enabled?
The console in Developer: Toggle developer tools should have an error message about what went wrong.

I moved the application outside of download folder. It seems to be working
now. Thanks.
On Fri, 19 Jan, 2024, 10:58 pm Aaron Munger, @.***>
wrote:

It sounds like the Jupyter extension isn't starting up successfully - can
you check in the extensions tab if it is actually enabled?
The console in Developer: Toggle developer tools should have an error
message about what went wrong.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/202802#issuecomment-1900809282,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK3AUDATQXR25OUC47KBFHTYPKULXAVCNFSM6AAAAABCBS3MPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBQHAYDSMRYGI
.
You are receiving this because you authored the thread.Message ID:
@.***>


test: add more tests to throughput estimator

Verifies that getting the throughput when no updates have occurred for the size of the window should return 0.

lgtm!


Restructure Abstract UDF classes to allow for the future addition of EVA transforms

Create AbstractUDF base class and update AbstractClassifierUDF base class to inherit from it
Create AbstractTransformationUDF base class
Create PytorchAbstractTransformationUDF to combine torchvision transforms and  AbstractTransformationUDF
Rename PytorchAbstractUDF to PytorchClassifierAbstractUDF

do we need input format everywhere -- that is leading to a slight drop in coverage in #303 ?

@LordDarkula @gaurav274 Is it possible to use some kind of reflection to use torchvision transforms instead of writing a separate UDF for each transform? -- https://stackoverflow.com/questions/37628/what-is-reflection-and-why-is-it-useful

@LordDarkula @gaurav274 Is it possible to use some kind of reflection to use torchvision transforms instead of writing a separate UDF for each transform? -- https://stackoverflow.com/questions/37628/what-is-reflection-and-why-is-it-useful

I assume you mean allow the user to just use a torchvision transform directly in EVA instead of having to explicitly subclass PytorchAbstractUDF. Assuming we want EVA to be type-safe, we could use a Protocol (https://peps.python.org/pep-0544/). However, this feature was introduced in Python 3.8 and EVA supports earlier versions of Python.

This looks more like the approach I suggested:

https://docs.bentoml.org/en/v1.0.0-a7/frameworks/easyocr.html
https://docs.bentoml.org/en/0.13-lts/frameworks.html#bentoml.frameworks.easyocr.EasyOCRArtifact


Handle plain words, stacked relative times and prefixes

https://github.com/uutils/parse_datetime/issues/84

unlike the others, parse_datetime can handle plain expressions like week, fortnight, day and stacked relative times such as -1h1m, and handle a + prefix as well as last and next

I think + and in  as prefixes can basically be stripped away, but it is good to have them understood
plain words can be interpreted as being prefixed with 1

Also, yesterday at 14 should be equivalent to yesterday 2pm


Gh pages

Documentation update for 1.9.0 release

Hi @rnagpal, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;


HBASE-22373 Defined missing version for maven-eclipse-plugin

if you move those two maven-eclipse-plugin uses into the eclipse profile does everything work? that would be preferable, since we shouldn't need that plugin when we're building outside of eclipse.

Updated the PR to move the plugin to the eclipse-specific profile. Not an Eclipse myself, so not able to test if everything works. Without Eclipse everything builds fine.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
71
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

-0
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ master Compile Tests _

0
mvndep
17
Maven dependency ordering for branch

+1
mvninstall
330
master passed

+1
compile
93
master passed

+1
shadedjars
371
branch has no errors when building our shaded downstream artifacts.

+1
javadoc
55
master passed

_ Patch Compile Tests _

0
mvndep
17
Maven dependency ordering for patch

+1
mvninstall
347
the patch passed

+1
compile
95
the patch passed

+1
javac
95
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
3
The patch has no ill-formed XML file.

+1
shadedjars
374
patch has no errors when building our shaded downstream artifacts.

+1
hadoopcheck
685
Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0.

+1
javadoc
60
the patch passed

_ Other Tests _

+1
unit
53
hbase-zookeeper in the patch passed.

-1
unit
16133
hbase-server in the patch failed.

+1
asflicense
51
The patch does not generate ASF License warnings.

18841

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/222

Optional Tests
dupname  asflicense  javac  javadoc  unit  shadedjars  hadoopcheck  xml  compile

uname
Linux 7816264ba617 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / 67c937fa92

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

Default Java
1.8.0_181

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/1/artifact/out/patch-unit-hbase-server.txt

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/1/testReport/

Max. process+thread count
4662 (vs. ulimit of 10000)

modules
C: hbase-zookeeper hbase-server U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/1/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
43
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

-0
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ master Compile Tests _

0
mvndep
31
Maven dependency ordering for branch

+1
mvninstall
265
master passed

+1
compile
67
master passed

+1
shadedjars
256
branch has no errors when building our shaded downstream artifacts.

+1
javadoc
46
master passed

_ Patch Compile Tests _

0
mvndep
13
Maven dependency ordering for patch

+1
mvninstall
231
the patch passed

+1
compile
70
the patch passed

+1
javac
70
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
5
The patch has no ill-formed XML file.

+1
shadedjars
268
patch has no errors when building our shaded downstream artifacts.

+1
hadoopcheck
511
Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0.

+1
javadoc
44
the patch passed

_ Other Tests _

+1
unit
46
hbase-zookeeper in the patch passed.

-1
unit
16871
hbase-server in the patch failed.

+1
asflicense
60
The patch does not generate ASF License warnings.

18905

Reason
Tests

Failed junit tests
hadoop.hbase.client.TestSnapshotTemporaryDirectoryWithRegionReplicas

hadoop.hbase.client.TestFromClientSide

hadoop.hbase.client.TestAdmin1

hadoop.hbase.client.TestFromClientSide3

hadoop.hbase.client.TestFromClientSideWithCoprocessor

hadoop.hbase.client.TestSnapshotDFSTemporaryDirectory

hadoop.hbase.client.TestSnapshotTemporaryDirectory

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/222

Optional Tests
dupname  asflicense  javac  javadoc  unit  shadedjars  hadoopcheck  xml  compile

uname
Linux b4eed1a275b8 4.4.0-137-generic #163-Ubuntu SMP Mon Sep 24 13:14:43 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / 67c937fa92

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

Default Java
1.8.0_181

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/2/artifact/out/patch-unit-hbase-server.txt

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/2/testReport/

Max. process+thread count
5116 (vs. ulimit of 10000)

modules
C: hbase-zookeeper hbase-server U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/2/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
37
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

-0
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ master Compile Tests _

0
mvndep
25
Maven dependency ordering for branch

+1
mvninstall
317
master passed

+1
compile
81
master passed

+1
shadedjars
299
branch has no errors when building our shaded downstream artifacts.

+1
javadoc
50
master passed

_ Patch Compile Tests _

0
mvndep
14
Maven dependency ordering for patch

+1
mvninstall
258
the patch passed

+1
compile
77
the patch passed

+1
javac
77
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
10
The patch has no ill-formed XML file.

+1
shadedjars
309
patch has no errors when building our shaded downstream artifacts.

+1
hadoopcheck
869
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.0.0.

+1
javadoc
49
the patch passed

_ Other Tests _

+1
unit
64
hbase-zookeeper in the patch passed.

-1
unit
8945
hbase-server in the patch failed.

+1
asflicense
50
The patch does not generate ASF License warnings.

11543

Reason
Tests

Failed junit tests
hadoop.hbase.master.replication.TestRegisterPeerWorkerWhenRestarting

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/222

Optional Tests
dupname  asflicense  javac  javadoc  unit  shadedjars  hadoopcheck  xml  compile

uname
Linux ac064e59f7a9 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / fde025112b

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

Default Java
1.8.0_181

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/3/artifact/out/patch-unit-hbase-server.txt

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/3/testReport/

Max. process+thread count
5157 (vs. ulimit of 10000)

modules
C: hbase-zookeeper hbase-server U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/3/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

Mh, I think that the failing test is unrelated.

Re-running check.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
209
Docker mode activated.

_ Prechecks _

+1
@author
0
The patch does not contain any @author tags.

-0
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ master Compile Tests _

0
mvndep
32
Maven dependency ordering for branch

+1
mvninstall
324
master passed

+1
compile
89
master passed

+1
shadedjars
352
branch has no errors when building our shaded downstream artifacts.

+1
javadoc
58
master passed

_ Patch Compile Tests _

0
mvndep
17
Maven dependency ordering for patch

+1
mvninstall
315
the patch passed

+1
compile
89
the patch passed

+1
javac
89
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
xml
3
The patch has no ill-formed XML file.

+1
shadedjars
351
patch has no errors when building our shaded downstream artifacts.

+1
hadoopcheck
1009
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.

+1
javadoc
59
the patch passed

_ Other Tests _

+1
unit
54
hbase-zookeeper in the patch passed.

-1
unit
17887
hbase-server in the patch failed.

+1
asflicense
56
The patch does not generate ASF License warnings.

21302

Reason
Tests

Failed junit tests
hadoop.hbase.client.TestSnapshotTemporaryDirectoryWithRegionReplicas

hadoop.hbase.client.TestFromClientSide3

hadoop.hbase.client.TestFromClientSide

hadoop.hbase.client.TestFromClientSideWithCoprocessor

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/4/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/222

Optional Tests
dupname  asflicense  javac  javadoc  unit  shadedjars  hadoopcheck  xml  compile

uname
Linux a44f9f4ab8b9 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/testptch/patchprocess/precommit/personality/provided.sh

git revision
master / 2e9087bfb7

maven
version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)

Default Java
1.8.0_181

unit
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/4/artifact/out/patch-unit-hbase-server.txt

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/4/testReport/

Max. process+thread count
4830 (vs. ulimit of 10000)

modules
C: hbase-zookeeper hbase-server U: .

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-222/4/console

Powered by
Apache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

Test failures seem to be unrelated to the actual changes. Should we bring it in?

Should we bring it in? @HorizonNet

+1 from me for bringing it in.


Recursive keyrings and defaults

Currently in skeletonkey, the special keywords keyring and defaults only apply to the main config and not any subconfigs that are brought into it via defaults or keyrings.
Take for example the following set of configs loading different versions of the same keyring:
main.yaml
defaults:
    - "path/to/test_datasets.yaml"
    #- "path/to/train_datasets.yaml"

Where both train_datasets.yaml and test_datasets.yaml contain keyrings for the same set of datasets, but one has only testing datasets and the other has training datasets. train_dataset.yaml might look something like this:
keyring:
    datasets:
        dataset1: "datasets/train/dataset1.yaml"
        dataset2: "datasets/train/dataset2.yaml"

There are likely also scenarios in which it would be useful to used the defaults keyword in a sub-config to override values at that level. This sort of behavior would require that keyring and defaults be searched for and correctly parsed recursively in all sub-configs as well as the top-level config.

This is a bad idea and reflects a misunderstanding of how skeletonkey works I had at the time of suggesting it.


line comments in LP: ... :LP blocks break MIDI STAFF

Hi Silas,
I've found that using line comments inside an LP:  ... :LP block
affects the output in between BEGIN MIDI STAFF and END MIDI STAFF.
My guess is that jianpu-ly places the output in between BEGIN MIDI STAFF and END MIDI STAFF on a single line,
thus the % comment marker causes subsequent lines to be commented out as well.
Here's an example:
% input file
4/4

LP:
c' % comment1
d' % comment2
:LP

1  1 1 1

% output .ly file
% ...
% === BEGIN MIDI STAFF ===
    \new Staff { \new Voice="midi" { \time 4/4 c' % comment1 d' % comment2 c'4 c'4 c'4 c'4 } }
% === END MIDI STAFF ===
% ...

Perhaps this can be fixed by having each line inside an LP:  ... :LP block in the input file
to have a line ending char in the .ly output.
Best, Bertrand

Thanks Bertrand, well spotted, it's due to the lines:
if midi or western: out = ' '.join(out)
else: out = '\n'.join(out)

i.e. join the output items with newlines by default, but with spaces if outputting a MIDI or Western staff.  The original reason for this was that each "output item" is likely to be a note, and having only one note per line seemed excessive for MIDI or Western, but makes more sense for jianpu where there is rather a lot of Lilypond code for each note.  But it wouldn't actually hurt to unconditionally use '\n'.join(out) here if you don't mind lots of extra newlines in the .ly file.
As a temporary workaround, you might like to use Lilypond's %{ ... %} comment syntax (which can be used within a line, like C's /* ... */ ) instead of just %.  But I agree we really should preserve newlines within LP: blocks, and not just because of comments (there are other advanced Lilypond 'hacks' that may require newlines in some places).  I'll see if I can fix this properly later (I'm still not finished tinkering with bug #12 ....)


Add Power Input at GenPort on Microinverter Input use

I want to see what comes from Microinverter/Gen Input Port
Im using the deye_sg04lp3 and have my genport configured to be used as microinverter input for some small additional solar plants that push AC-Power to this port.
So it would be cool to see what comes from this solar-satelites
Im not sure if there is a modbus address, to read it out. if it is so, it should be easy to add.
The Volts + Watts are interesting here. (any data we can get)
I can easily test suggested modbus addresses.
the configuration to use the genport as microinverter input is in position 133

i didnt find any register that could match with the needed information.
Thank you in advance!
finfin

I'm reading the GEN port power from register 667, see deye-sun-12k-sg04lp3.yaml

platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${entity_name_prefix}Gen Power"
register_type: holding
address: 667
unit_of_measurement: "W"
accuracy_decimals: 0
device_class: power
state_class: "measurement"
value_type: S_WORD

Pretty Cool - maybe we just can add this to the main yaml so its available for everyone or guess an additional yaml would be helpful for different gen-port use-cases?
cheers andy

A new metric group deye_sg04lp3_gen it is. Are you gonna come up with a PR? @finfin82

Well I can give it a try, my fork is working for me, I'm not home at python... Some connections are still confusing me. Guess you would be way more faster... But there are other issues too...
May be I will be faster...

So it's your decision...
Hope I will meet your guidelines
Greetings Andy

No worries. I'm asking for the sake of clarity. Is there anything more I need to know besides of the information provided in https://github.com/kbialek/deye-inverter-mqtt/issues/160#issuecomment-2013777350 ?

Well guess, power volt etc. From the gen port would be great. Perfect would be, if you can find the KWh generated via gen port too, would be interesting how much came from the gen port. The inverter KWh includes the gen port as far as I know.

@kbialek as you can see here: https://github.com/kbialek/deye-inverter-mqtt/compare/main...finfin82:deye-inverter-mqtt:add-gen-powers
i added volt and power so when we add a new metric group we can catch as much as possible?

Thanks for your proposal @finfin82
I cannot use it directly, because the sensors implementation for this inverter model is generated automatically out of yaml descriptors. Meanwhile, I found the documentation of generator port registers. So, here is a beta image with the new metric group deye_sg04lp3_generator added. Try it out ghcr.io/kbialek/deye-inverter-mqtt:2024.04.1-beta-1
The documentation is here https://github.com/kbialek/deye-inverter-mqtt/blob/feature/sg04lp3-gen-metric-group/docs/metric_group_deye_sg04lp3_generator.md

hey @kbialek wow seems to working perfect, no sun atm, but looks like it should work properly. can confirm 100% tomorrow.
there does not seem to be an address for kwh dayly from gen-port only?!
didnt found one too...
guess /ac/generator/* could match more the actual topic convention?!
greetings

guess /ac/generator/* could match more the actual topic convention?!

yup, will do

New beta build is ready for testing ghcr.io/kbialek/deye-inverter-mqtt:2024.04.1-beta-2

well it would be nice to catch the kWh generated by genPort too

What do you mean? It's there. https://github.com/kbialek/deye-inverter-mqtt/blob/release/2024.04.1/docs/metric_group_deye_sg04lp3_generator.md

Sure but it's the actual power (w) not the daily generated (KWh) . This is the last value why I have to call the Solarman platform parallel.
Greetings Andy

Ah, you meant the energy, sorry, I didn't read carefully. Yeah, you'd have to calculate it on your own.

The daily generator production (energy) is available at address 536.

platform: modbus_controller
modbus_controller_id: ${modbus_controller_id}
name: "${entity_name_prefix}Daily Generator Production"
register_type: holding
address: 536
unit_of_measurement: "kWh"
state_class: "total_increasing"
device_class: energy
accuracy_decimals: 1
filters:

multiply: 0.1
value_type: U_WORD

Hey thanks! @kbialek let's try this... I will try to read it manually later today and confirm the source...
This would be awesome

bingo, thats it! just needs to be multiplied with 0,1 as @philipphenkel metioned.
Thanks to all!
in our paper its called generator working hours, guess it got lost in translation.
Greetings Andy

ac/generator/daily_energy metric is added in ghcr.io/kbialek/deye-inverter-mqtt:2024.04.1-beta-4

working perfect, think i cant drop solarman polling now ;-)

working perfect, think i cant drop solarman polling now ;-)

Sounds great!. As usual I kindly encourage you to support my work and to buy me a coffee :smile:


DevTools Copy context menu options are not working

Examples:

This appears to be blocked by policy due to iFrame permissions. Downgrading to P2 since cutting/copying/pasting via keyboard shortcuts is still functional


Incorrect icon when Alt+Tab switching on Windows

Start Inselect 0.1.6 on Windows. Alt+Tab to switch between programs - the popup showing all running applications show Windows' default application icon (a white and blue rectangle) rather than Inselect's icon.
Seen on Windows 7 32- and 64-bit.

Despite having a value .ico file in the .exe, the default application icon is shown because Qt has not been given an application icon.
Relevant resources

http://iconhandbook.co.uk/reference/chart/windows/
http://stackoverflow.com/questions/12432637/pyqt4-set-windows-taskbar-icon


test(cli): migrate sandbox to verdaccio

Non of the internal test are failing at the moment, just something related to the integration with github actions which is on an older version and the integration has a relationship with md reporting which then needs the new version.


javadocs

@h1alexbel thank you for reporting this. I'll assign someone to take care of it soon.

@h1alexbel Don't forget to close this ticket before the deadline (2023-06-11T13:32:23). You are past the first half of the allowed period.

@h1alexbel thank you for resolving this ticket. I've just added it to your active invoice. You can always check all your invoices and more on the Contributor Dashboard.


Add the crate publish of meilisearch-index-setting-macro  in the CI

We added meilisearch-index-setting-macro as a local crate in our project #358. Unfortunately, in order to publish this projects crate we also need to publish the local create.
This requires to update the publishing CI:
https://github.com/meilisearch/meilisearch-rust/blob/1603af3777125b8c90cd4e3ad7acb1b4d2fc196e/.github/workflows/publish.yml#L18-L23
To also include the publishing of local meilisearch-index-setting-macro crate.

fixed by #411


FEAT: PCB component

Close  #3717
Close  #4735

LGTM, thanks for taking into account my comments :)

Thanks to you for the review!


Clean up internals and run tests on miri

Pushed. Thanks!
I folded some commits and reformatted them using cargo fmt.

Pushed. Thanks!
I folded some commits and reformatted them using cargo fmt.


Switch between markdown and wysiwyg (page specific)

Describe the feature you'd like
Ability to toggle between markdown and wysiwyg for each page.
Describe the benefits this feature would bring to BookStack users
Some users prefer markdown and some prefer wysiwyg.

Hi @Luffyyy,
Thank you for your request.
I feel that this is already covered by the existing issues #119, #369 & #842.
Therefore I'm going to close this to reduce duplicates.


Change repo's 'crystal-language' topic to 'crystal'

The Crystal community has somewhat decided to use crystal as the language's topic.
To avoid fragmentation in the community, please change the crystal-language topic, that only has ~10 repositories at the moment, to crystal.
Any contributor can change it from the repo's homepage.
See crystal-lang/crystal#4241 for more context.
Thank you very much :)

Hi @matiasgarciaisaia ! That's fixed. Thanks !


Show score

I still Have  a bug here, I still work on it
the bug is: continue increment when clicking on right answer of the same question

its still conflicts with

public/style.css
src/views/questionView.js


Fix bug on GetDataLimits when plot is empty

When plot is empty meaning no plottable in GetPlottables() then the returned limits have the initial values:
https://github.com/ScottPlot/ScottPlot/blob/a214b94102c107db3799197655b5255c464c7eda/src/ScottPlot/Plot/Plot.Axis.cs#L355-L358
Now, if the user calls:
AxisLimits limits = formsPlot1.Plot.GetDataLimits();
formsPlot1.Plot.SetOuterViewLimits(limits.XMin, limits.XMax, limits.YMin, limits.YMax);

if is not possible to interract with the plot anymore (zoom, pan, etc.) beacause the limits set are flipped. This PR fixes the returned limits to the correct ones.

Good catch @EFeru!
Re-stating the problem to remind my future self, the GetDataLimits() method works by initially setting limits to extreme inverted values with the expectation that data points from plottables will pull them into an expected range
https://github.com/ScottPlot/ScottPlot/blob/a214b94102c107db3799197655b5255c464c7eda/src/ScottPlot/Plot/Plot.Axis.cs#L353-L358
...but if there are no plottables with data, the returned limits are wacky and inverted.
This PR detects if the initial values were never changed (as they would be expected to by data) and sets them to the opposite value


Create application to do updates from DynamoDB to ES

As we push new data into Calm, that will appear as new rows in DynamoDB. Our application needs to read these updates, and add them to our Elasticsearch index with the current mapping.
This task covers incremental updates after the initial ingest. Related: #54.

Closing as this is split to:
https://github.com/wellcometrust/platform-api/issues/68
https://github.com/wellcometrust/platform-api/issues/54


Adds field_unique_id to Repository Item and Collection Item

This PR adds a field called field_unique_id to the Repository Item and the Collection Object.
It adds these fields to the node migrations and metadata export.
It also updates applicable test suite cases.
Resolves: https://github.com/jhu-idc/iDC-general/issues/384
Two things extra that it does --

fixes a typo in the export where the column name for "alternative_title" was wrong.
removes node_id as a second key in the ingest files for nodes

One way to test this unique field (and export at the same time):

import a csv file (I ran the 10-migration-backend-tests and then used the data it created)
add a repository item by hand (which means it wasn't part of any ingest)

ensure Unique ID field exists and place a value in it.

export data via https://islandora-idc.traefik.me/export_items?query=(ss_type:islandora_object) which exports all the repository items in the system
tweak some of the items inside of the csv file, including the repository item you created
re-ingest that now edited csv file
ensure the items are updated and that nothing got newly created on re-import (as this is only an update of existing items)

It's okay with Katie and Michelle that the field is not case sensitive.  That means that uid:1243-BA07 and UID:1243-ba07 are equivalent strings


[Metrics] Matched order classification counts

Closes #1233
Adding new metric along side matched_but_unsettled. Specifically that is matched_but unsettled_liquidity_orders
Note that we probably also want to keep track of settled liquidity orders as well, but in order to have any meaningful values in the our metrics tile we would need both. The value is easily acquired from the code here as the difference
liquidity_order_ids.len() - matched_but_unsettled_liquidity_ids.len()
which can be computed directly in grafana
Test Plan

Run the solver pointed at the production orderbook

Navigate to the metrics API at http://localhost:9587/metrics and find logs for this new measure as

# HELP gp_v2_solver_orders_matched_liquidity Counter for the number of orders for which at least one solver computed an execution which was from a known liquidity provider
# TYPE gp_v2_solver_orders_matched_liquidity counter
gp_v2_solver_orders_matched_liquidity 0

It turns out this measure isn't going to be immediately useful, but does capture some insight as to single batch information when necessary. I would opt to keep this around for future use.


Example won't build without dynamic likers installed

Just tried to run the noise_terrain example on a fresh system install, and it didn't work out-of-the-box until I installed the dynamic linkers from bevy's quick start guide. It might be better if it worked without these assumptions...
Here's the error I encountered:
$ cargo run --example noise_terrain --features="noise"
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.78
   Compiling unicode-ident v1.0.12
   Compiling libc v0.2.153
   Compiling serde v1.0.196
   Compiling once_cell v1.19.0
   Compiling autocfg v1.1.0
   Compiling version_check v0.9.4
   Compiling pin-project-lite v0.2.13
   Compiling equivalent v1.0.1
   Compiling thiserror v1.0.61
   Compiling crossbeam-utils v0.8.16
   Compiling zerocopy v0.7.32
   Compiling hashbrown v0.14.2
   Compiling toml_datetime v0.6.5
   Compiling allocator-api2 v0.2.16
   Compiling tracing-core v0.1.32
error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

error: could not compile `serde` (build script) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `crossbeam-utils` (build script) due to 1 previous error
error: could not compile `proc-macro2` (build script) due to 1 previous error
error: could not compile `thiserror` (build script) due to 1 previous error
error: could not compile `libc` (build script) due to 1 previous error

I don't think this has anything to do with this library, or bevy for that matter. You need a linker installed and configured to compile and run any program, and Cargo uses cc by default.
I'm not sure there's anything I can do in this project to help with this, so I'm closing the issue, but feel free to reopen if you have suggestions. Either way, thanks for opening an issue!


Error HRESULT E_FAIL has been returned from a call to a COM component.

Hi, I am new to using FlaUI so apologies if this is something I am doing incorrectly.
I am using this to automate testing in a windows application on Windows 7 using FlaUI3 and core.
I have successfully used it to input login details and start the application.
I have been stumped by the menu bar as when trying to retrieve it I get the above error. I have tried various combinations of attempting to get this menu item and click it but all with the same result - "Error HRESULT E_FAIL has been returned from a call to a COM component.". I also can't see anything online that relates to this specific issue.
var Menu = MainWindow.FindFirstDescendant(cf.ByName("Trader")).AsMenuItem();

I need to be able to click the menu item in order to get the menu item that is under this and progress.
Any help is much appreciated, thanks

I have found the issue, when logging in, this then creates a new window which I had not set as the new main window hence the window that I tried to get the menu item object from no longer existed. Just added this code and all is well.
MainWindow = crimsApp.GetAllTopLevelWindows(automation3).FirstOrDefault();
MainWindow.FindFirstDescendant(cf.ByName("Trader")).AsMenuItem().Invoke();


Licensing is invalid

You cannot copy a file wholesale from another project with copyright and licensing written one way and then add your own license claiming copyright for something you did not implement. The License must reflect the actual copyright (Tom Christie)

Thank you for bringing this to my attention. So what should be the right way to fix it? Replacing this repo's license with DRF's license will do?

Right you would copy DRF's license and then you could tack your name on a new line for the setup.py.

#6 this sounds fine?

Does the MIT allow dual-licensing?

EDIT: Actually, the original license doesn't, so that's kind of moot, isn't it..

So I cannot have original license for status.py and my own for others?

If you want to be in the clear I would suggest contacting the original license holder.
I'm not a lawyer, though - just a detail that caught my eye, something to check on. Sigma probably has a better idea of that than I do.

 I should have given some thought into licensing. I usually fork and continue with the original license. And I think I should have included full license in status.py file.

#6 adds the originally copy right and disclaimer, as per the original licence, so it should be good.

@carltongibson "should" is a rats nest when it comes to copyright law and licensing. It's not clear to me what DRF's original license is and as such it may or may not be possible to dual license. @avinassh you're better off getting @ryansb to agree to change the license to be conformant with DRF and @ryansb should actually have sent his contribution to DRF in the first place.

@sigmavirus24 Indeed. :-) But it seems pretty liberal and met by #6. Tom has been told and can object if he doesn't agree.
https://github.com/tomchristie/django-rest-framework/blob/master/LICENSE.md

Eh, wouldn't it be better to not apply a possibly-incorrect license until we're sure it's okay?
Besides, @sigmavirus24 is correct, one would have to wait for @ryansb to agree to any license changes here.

Commented on #6 to accept the change in license so at the very least my consent isn't blocking resolving this.

Thanks @ryansb
I will wait to hear from Tom. And I think I cannot have dual licenses.

Tom has been told and can object if he doesn't agree.

Well, in this matter, I will ask for permission instead of asking forgiveness. (well I already committed a mistake, let me not repeat it ;))
I am reading upon OSS licensing. And also if I keep Tom's license, can I accept PRs on status.py file later?

I assume that said PRs would be contributed under the understanding that that file is under that license. Since this is a repackaging of that file though, Sigma is right once again - the PR should really be aimed at DRF.

First, I am not a lawyer.
The Free Software Foundation has a useful guide for choosing and understanding licenses here
I often reference the Software Freedom Law Center's Legal Primer for both practical and academic purposes (highly recommended) here
https://tldrlegal.com/ is quite a useful resource for comparing the various FOSS licenses out there once you have some context.
To get ahold of actual lawyers/advisors who help FOSS projects, you can reach out to the FSF, SFLC, and OSI at:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Seconding @ryansb's disclaimer.
@avinassh for now, any PRs that are made to status.py should be made to DRF and then pulled in here. Any new development done here (new APIs, modules, etc.) would then be your copyright but you should not dual license then either. You and (most importantly) your users would be best served by having one uniform license for the entire project and distribution. Until you start adding novel ideas, all PRs should be sent to DRF for them to accept/reject and then you should update this module as a result before making a new release. You're describing this as a repackaging of one submodule in DRF and as such you should develop this package that way.

I really don't mind having Tom's copyright and LICENSE. I think cannot have dual licenses too. And I am fine with that.
But what I want to know is, if there is any way, which is okay with Tom and OSS Licenses that let me accept PR on status.py. Or else there will be no point of this project.

I assume that said PRs would be contributed under the understanding that that file is under that license. Since this is a repackaging of that file though, Sigma is right once again - the PR should really be aimed at DRF.

So one cannot send a PR to a fork? That is... seems not right :/

So one cannot send a PR to a fork? That is... seems not right :/

Someone can, whether or not you should accept it is your choice. But then you need to stop advertising this as a repackaging of DRF's submodule and make sure that people understand this is a fork of that particular submodule and not of DRF as a whole.

I'm sure PRs would be permitted by the license, but that logically makes no sense. It would be better to have PRs on DRF's copy because having two separate versions will cause fragmentation and merging headaches.
Of course, you could declare this a fork rather than a repackaging and take it in your own direction too, as Sigma has said.

But then you need to stop advertising this as a repackaging of DRF's submodule and make sure
that people understand this is a fork of that particular submodule and not of DRF as a whole.

Of course, you could declare this a fork rather than a repackaging and take it in your own direction too, as Sigma has said.

So, I need to mention that:

This is a fork and independently maintained
And it is not a submodule of DRF
And has nothing do with DRF

Just to clarify, it was not my intent to 'advertise' this as DRF's submodule. I wanted to give credit, since I copied from it.

So then this is a simple fork.
It maintains the same license.
You can accept PRs and you might do the reasonable and preferable thing and offer any contributions you receive back to DRF.

Btw Tom replied and said he is okay with #6. However I don't like dual licensing and I have updated the PR #6:

No dual licensing. I hate dual licenses and neither I am allowed to have it since it doesn't comply with original Tom's license.
I have added copyright notice for every other file than status.py
I have updated the CREDITS section to make clear that it is not a submodule and is a fork.

Let me know what do you guys think

Okay guys, going ahead with the merge. Let me know if there's anything. Thanks!


Changing background color of a button?

Howdy,
I can see references to styleIdentifier and styleClass but can't seem to figure out what they do or how to use them... Any tips? I'm primarily looking for a way to customize the background color of a button (e.g. red for close)? Not sure if I should just inherit and make my own customized class or if you have a sanctioned way of doing it.
Maybe something like...
  lazy var closButton: ButtonFormItem = {
    let instance = ButtonFormItem()
    instance.title("Dismiss")
    instance.backgroundColor = UIColor.redColor()
    instance.action = { [weak self] in
      self?.closeMe()
    }
    return instance
    }()

Thank you!

Great idea, extending the ButtonFormItem class with a backgroundColor.
The styleClass is currently only used for alignment across table rows. In the future I like to code something CSS'ish for styling.

Would you be open to a PR for it (backgroundColor)? If so, are there any standards, etc you want followed I wouldn't be able to easily infer from the existing code?

PR is much appreciated. No hacks, clean code, etc.
Have a great day, @tehprofessor

Thanks to @Pizzo15 the background color is now customizable.
Example here:
https://github.com/neoneye/SwiftyFORM/blob/master/Example/Other/ButtonsViewController.swift


absl is leaking symbols into global namespace

Consider the following code:
#include <cmath>
#include <iostream>

int main() {
  std::cout << abs(1.5) << std::endl;
}

This code compiles, and produces 1 as the output due to abs in C not having a double overload: https://en.cppreference.com/w/c/numeric/math/abs
However, consider the following code now:
#include "absl/container/flat_hash_map.h"

#include <cmath>
#include <iostream>

int main() {
  std::cout << abs(1.5) << std::endl;
}

The only difference is addition of include line. This code produces the output as 1.5 because it finds C++ std::abs now.  https://en.cppreference.com/w/cpp/numeric/math/abs
This makes me believe that absl is doing a using declaration somewhere in a header file.

C++ does have a ::abs(double) overload. C++ STL adds additional overloads for math functions at the global scope as well as in namespace std. In your case, which appears to use libstdc++, the ::abs(double) overload is defined in <stdlib.h>.
The C++ standard library is also allowed to include <stdlib.h> from <cmath> or any other header it chooses. Meaning the original code is allowed to print either 1 or 1.5.
Abseil isn't involved here.

Thanks @EricWF for the answer!  like you said, this can be easily reproduced with stdlib.h only.
#include <cmath>
#include <iostream>

#include <stdlib.h>  # this has the ::abs(double) overload

int main() {
  std::cout << abs(1.5) << std::endl;
}


[SECURITY] aioquic may store an unlimited number of remote path challenges

Summary
aioquic may infinitely receive PATH_CHALLENGE frames and store challenge data in remote_challenges, resulting in unbounded memory usage. It may lead to a denial-of-service attack.
Tested Version
Latest git commit (9bc1e43)
Details
#483 appears to be the cause of this vulnerability. Although MAX_REMOTE_CHALLENGES is defined, the constant is not used. As a result, the remote_challenges queue can grow infinitely.
Suggestion
https://github.com/aiortc/aioquic/blob/9bc1e43d13be3f06339841aca7c8560825053371/src/aioquic/quic/connection.py#L2045
Check the length of remote_challenges before appending challenge data.

This issue is verified to be reproducible, by constantly writing path challenge frames, aioquic has consumed almost 10GB of memory and will eventually be killed by the OS.
https://github.com/aiortc/aioquic/blob/9bc1e43d13be3f06339841aca7c8560825053371/src/aioquic/quic/connection.py#L3040-L3041
Although connection.py's line 3041 empties network_path.remote_challenges, however, if the client chooses not to send an ACK message in response to the path response, aioquic does not go as far as this statement, causing the network_path.remote_challengesqueue to continue to accumulate.


Added sats support for lnurlpos extension

"sats" is intentionally lowercased and four characters long in the exchange_rate.py file.

🔥


Allow specifying ESM/CJS compat shim contents

This is related to my issue here: https://discord.com/channels/983865673656705025/996271841897349132
It's not really a solution because I don't want to have to essentially hardcore __dirname to /var/task but this is blocking me now and others may have a similar need for more robust/custom shims.

My issue is that SST doesn't put the bundle at the top level and prisma tries to look in __dirname for the schema.prisma file.

ideally i could either choose to use a flat bundle structure or have a way to copy a file into the same dir as the output bundle

The new banner option solves my immidiate need but I still would love the ability to copy a file to the bundle output dir @thdxr instead of hardcoding __dirname in my shim


Several stories are broken

The following stories need re-enabling:

[x] src/stories/components/pattern.disabledstories.tsx

[x] src/stories/components/path.disabledstories.tsx

[ ] src/stories/custom-grid/custom-grid.disabledstories.tsx

[ ] src/stories/pattern-swap/pattern-swap.disabledstories.tsx

And the following stories don't throw errors but don't work right:

[x] Template
[ ] Way of Life

#21

#26

#27


Fix the emission of open-existential-metatype l-values

rdar://32288618

@swift-ci Please smoke test and merge.

@swift-ci Please smoke test and merge.

Thanks for fixing this! There might be a simpler solution though, to have Sema coerce the base to an rvalue if its a metatype. You cannot have a mutating static method after all.

That's true, but the fix seems reasonable, and I'm reluctant to add any extra requirements to CSApply's treatments of member expressions. :)

@swift-ci Please smoke test.

Honestly, in general I feel a lot more comfortable with doing heroics in SILGen, where we implement most of Swift's evaluation semantics anyway, than in Sema, where we often have to come up with super-awkward abstractions just to make things fit the conceit of a syntax tree. It would be much simpler if CSApply just assigned each source expression a type and then, maybe, recorded how to do a particular implicit conversion in some way that didn't interfere so much with the expression tree.

Hmm.  The downside is that I can't really pull this change into swift-4.0-branch without pulling at least #9637.


Standardise auto-swapping of PHP versions

Hey,
I see there are a couple of PHP version managers out there and before this becomes an issue I would like to propose we look at standardising how auto-switching can work across the different solutions.
The idea would be that despite which PHP version manager a developer was using a single .php-version file would account for all of them and be able to be committed to a project. Here are some of the specifications I think would be a good start.
.php-version file
The file itself should contain a single string such as 5.6.22. Acceptable values would include:

5.6 (which would use the latest version for the 5.6 release that you have locally)
5.6-RC4 (which would use the RC4 of the 5.6 release)

Project specific
If a user puts a .php-version inside of a project, upon changing into that directory the PHP version is updated to use the requested version.
Global
Should a user want to change the global PHP version used, they can add a .php-version file to $HOME and it would be applied when a local .php-version could not be found.
What are your thoughts?

What are the other php version managers?

Here are some of the ones I've come across:

https://github.com/wilmoore/php-version
https://github.com/CHH/phpenv
https://github.com/phpenv/phpenv

Not sure how many of these allow a central configuration but it would be good to start somewhere!

I support this. It'll be a great feature for developers that need to make sure they write code that is going to run in their production environments. Also, can we check for required php version inside composer.json file'? I know that composer is not being used everywhere, but it'll be nice if we can detect the php version declared in that file and autoswap to it.

+1 this is a very useful feature for a bunch of developers and web-development agencies! ;-)
Auto-Swapping to a related php-version from the composer.json is not so good, because composer.json just requires the lowest-needed version of php. A better way would be to use a .php-version-file as jacob mentioned.

@kevindperezm as far as I see it's only for phpbrew the script.
The intention I understood different.


not able to update my composer for valet

Thanks for stopping by to let us know something could be better!
PLEASE READ: If you have a support contract with Google, please create an issue in the support console instead of filing on GitHub. This will ensure a timely response.
Please run down the following list and make sure you've tried the usual "quick fixes":

Search the issues already opened: https://github.com/googleapis/google-api-php-client/issues
Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+php

If you are still having issues, please be sure to include as much information as possible:
Environment details

OS:
PHP version:
Package name and version:

Steps to reproduce

...

Code example
# example

Making sure to follow these steps will guarantee the quickest resolution possible.
Thanks!

@johnkenny404 if you can provide some more details, I'd be happy to re-open this :). Not quite sure how to help.


Add 'UsernamePasswordAuth' 'UsernamePasswordAuthResponse' to SOCKS

Add UsernamePasswordAuth and UsernamePasswordAuthResponse to netlib.socks

I guess this only makes sense together with #1006 - or how and where would you actually use this code?

Yes - I asked @xhy940801 to factor out some smaller bits from #1006 so that we can work on it more iteratively. This PR looks great, thanks! :smiley:


feat(progress-bar): added numeric size values

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.005%) to 83.256%

Totals

Change from base Build<PHONE_NUMBER>:
-0.005%

Covered Lines:
8812

Relevant Lines:
9740

💛  - Coveralls


Can i send data from Android service and handle it in pwa ?

@geminixandroid Currently, it's only possible to pass the from the native part of the App into the PWA at launch time. Here's how to do it with query parameters: https://developers.google.com/web/android/trusted-web-activity/query-parameters
PS: https://stackoverflow.com/questions/tagged/trusted-web-activity is the best place to ask questions related to Trusted Web Activity.


Horizontal scrolling

Yep, that would be awesome!

Oops there was issue already :)

yup, I am unable to give time to improve it further. I hope someone will contribute it.


Remove all chains created by us and who have ref to ipset names that have changed

Description
Changes proposed in this pull request.
Test plan
Outline the test plan used to test this change before merging it.

Fixes #.

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "",
    "component": "enforcerd",
    "pr-id": "1371",
    "commit-sha": "71c718b3d630438b2d45aa55e1bf5f1d0af4dfc5"
  },
  {
    "project": "",
    "component": "trireme-lib",
    "pr-id": "873",
    "commit-sha": "92d5be5198d3a3e423c3fedfd91501c1e7da7da3"
  }
]


Update release script to update versions in docs

Which component is your feature related to?
Other (Please describe below)
Feature Request
There is a script (./scripts/release.sh) that is supposed to prepare the code in repo for the starknet-foundry release. It does a few things, amongst which are version bumps in Scarb.toml-s in crates and snforge/sncast stds.
It would be nice if the script could bump the versions in docs as well.
Proposed steps:

modify the script to search for a version to change in specified places

./docs/src/getting-started/first-steps.md
./docs/src/starknet/script.md
./docs/src/appendix/scarb-toml.md
.docs/src/appendix/cheatcodes.md
./docs/src/appendix/snforge-library.md
./docs/src/testing/contracts.md
./docs/src/testing/using-cheatcodes.md

change the versions to a new version

verify that the change works

Definition of done:

the release script correctly sets new starknet-foundry version in specified files

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
Hello I'm a front-end and a blockchain developer and will love to work on this issue please assign

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
Hello, I would love to do this
How I plan on tackling this issue
First, create a list of documentation files to update
DOC_FILES=(
    "./docs/src/getting-started/first-steps.md"
    "./docs/src/starknet/script.md"
    "./docs/src/appendix/scarb-toml.md"
    "./docs/src/appendix/cheatcodes.md"
    "./docs/src/appendix/snforge-library.md"
    "./docs/src/testing/contracts.md"
    "./docs/src/testing/using-cheatcodes.md"
)

Then, Add a function to update version in documentation files,
Then, Add a loop to process all documentation files,
Finally, Add a verification step to confirm the versions were bumped.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I am a web3 developer
@franciszekjob Can I be assigned to work on this?
How I plan on tackling this issue
I will Replace LegacyMap with starknet::storage in crates/forge/tests/data, update related code for compatibility, and ensure tests pass.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
hello @ i'm an experienced frontend developer and a blockchain developer  i would love to work on this issue
Pleasee kindly assign :)
How I plan on tackling this issue
i would make sure ito read and understand the issue well and then implement it

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
Hello, can I be assigned to work on this issue?
I'm a software developer with over 4 years experience
Here's my OnlyDust profile https://app.onlydust.com/u/raizo07
ETA: One day

Hi @raizo07 , hope everything's going well. Just wanted to touch base and ask if you have any updates on this? thanks

@THenry14 Working on it already, will make a pr soon.


Add manifest api for creating sidebar extension for Opera's browsers

How do you envision this feature/change to look/work like?
Is it possible to add option to create sidebar extension for opera like is describe here: https://help.opera.com/en/extensions/sidebar-action-manual/.
What is the purpose of this change/feature? Why?
If i'd like to create extension with will be display in sidebar instead of in popup (most extension created for Opera do it in this way).
(OPTIONAL) Example implementations
No response
(OPTIONAL) Contribution

[ ] I would like to contribute to this RFC via a PR

Verify canary release

[x] I verified that the issue exists in plasmo canary release

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

I encountered this problem and I don’t know how to solve it. I don’t understand the documentation very well.

Any update?

@louisgv ^

This should work I think? https://docs.plasmo.com/framework/ext-pages#adding-a-side-panel

@louisgv Not exactly because API for sidebar looks like this:
"sidebar_action": {
	// Required
	"default_icon": "icon.png",
	// Optional; shown in tooltip
	"default_title": "My Sample Extension",
	// Required
	"default_panel": "panel.html"
}


When using ActiveSupport::Cache::MemoryStore the NewRelic RPM Gem crashes with a NotImplementedError which slows down requests

Description
We have a web request which calls a service. The service module makes use of a ActiveSupport::Cache::MemoryStore. When called with the newrelic_rpm present and active it causes the Gem to raise a NotImplementedError. The effect of this is that it drastically slows down the web request. Takes about double the time to respond.
I struggled with whether this is a bug of feature request, but I feel the negative effects of the error constitutes it being a bug.
Expected Behaviour
The gem should notify in the logs that this is not supported but should fail gracefully and either still send to NewRelic or skip the send but not hold up the request.
Troubleshooting or NR Diag results
 ** [NewRelic][2023-04-13 13:13:53 +0000 web.1 (35)] INFO : Reporting to: https://rpm.newrelic.com/accounts/
 ** [NewRelic][2023-04-13 13:14:53 +0000 web.1 (35)] ERROR : AgentThread Worker Loop exited with exception. Re-raising in case of interrupt.
 ** [NewRelic][2023-04-13 13:14:53 +0000 web.1 (35)] ERROR : NotImplementedError: NotImplementedError
 #<Thread:0x0000555f2c8065e8 /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/threading/agent_thread.rb:11 run> terminated with exception (report_on_exception is true):
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/encoders.rb:47:in `dump'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/encoders.rb:47:in `encode'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/transaction/trace.rb:145:in `to_collector_array'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:12:in `prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `block in prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `map'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `block in prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `map'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/json_marshaller.rb:31:in `dump'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:656:in `marshal_payload'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:544:in `invoke_remote'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:157:in `transaction_sample_data'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:114:in `send_data_to_endpoint'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:31:in `harvest_and_send_from_container'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:70:in `harvest_and_send_transaction_traces'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:105:in `harvest_and_send_data_types'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/transmit.rb:54:in `block in transmit_data'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:249:in `session_with_keepalive'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:235:in `session'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/transmit.rb:53:in `transmit_data'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:66:in `block in create_and_run_event_loop'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:150:in `block in dispatch_event'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:148:in `each'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:148:in `dispatch_event'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:113:in `run_once'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:101:in `run'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:71:in `create_and_run_event_loop'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:132:in `block (2 levels) in deferred_work!'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent.rb:551:in `disable_all_tracing'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:129:in `block in deferred_work!'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:109:in `catch_errors'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:128:in `deferred_work!'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:29:in `block in start_worker_thread'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/threading/agent_thread.rb:17:in `block in create'
 ** [NewRelic][2023-04-13 13:23:50 +0000 web.1 (35)] INFO : Starting Agent shutdown
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/encoders.rb:47:in `dump'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/encoders.rb:47:in `encode'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/transaction/trace.rb:145:in `to_collector_array'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:12:in `prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `block in prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `map'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `block in prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `map'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/marshaller.rb:14:in `prepare'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service/json_marshaller.rb:31:in `dump'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:656:in `marshal_payload'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:544:in `invoke_remote'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:157:in `transaction_sample_data'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:114:in `send_data_to_endpoint'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:31:in `harvest_and_send_from_container'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:70:in `harvest_and_send_transaction_traces'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/harvest.rb:105:in `harvest_and_send_data_types'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/transmit.rb:54:in `block in transmit_data'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:249:in `session_with_keepalive'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/new_relic_service.rb:235:in `session'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/transmit.rb:53:in `transmit_data'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:66:in `block in create_and_run_event_loop'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:150:in `block in dispatch_event'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:148:in `each'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:148:in `dispatch_event'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:113:in `run_once'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/event_loop.rb:101:in `run'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:71:in `create_and_run_event_loop'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:132:in `block (2 levels) in deferred_work!'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent.rb:551:in `disable_all_tracing'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:129:in `block in deferred_work!'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:109:in `catch_errors'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:128:in `deferred_work!'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/agent_helpers/start_worker_thread.rb:29:in `block in start_worker_thread'
  from /app/vendor/bundle/ruby/2.7.0/gems/newrelic_rpm-9.1.0/lib/new_relic/agent/threading/agent_thread.rb:17:in `block in create'

Steps to Reproduce

In a Rails config initializer define an InMemoryCache (for testing)

InMemoryRailsCache = ActiveSupport::Cache::MemoryStore.new(
  expires_in: 30,
  size: 10.megabytes,
)

In a Rails controller action invoke the in-memory store

in_memory_store = InMemoryRailsCache
in_memory_store.fetch(key.to_s, force: force) do
  'Test Data'
end

We added a feature toggle for the in-memory cache and found the exception went away when we turned the in-memory cache off.

Navigate to the route which access the controller action with the NewRelic Gem activated

Your Environment
Ruby version: 2.7.7
Rails Version: <IP_ADDRESS>
newrelic_rpm version: 9.1.0
NEW_RELIC_INSTRUMENTATION_THREAD_TRACING is set to false
Additional context
For Maintainers Only or Hero Triaging this bug
Suggested Priority (P1,P2,P3,P4,P5):
Suggested T-Shirt size (S, M, L, XL, Unknown):

Hi @TRex22. Thanks for sharing this issue and the steps to reproduce it. We will take a look.
In the meantime, we were wondering if you recently upgraded your Ruby agent? We added additional support for ActionCable (specifically caching-related activities #1742), in 8.16.0 and are wondering if this is related.

Hi @hannahramadan we recently upgraded from 9.0.0 -> 9.1.0 but were experiencing similar issues on 9.0.0 although the Gem did seem to crash less. Was quite difficult to figure out what was going on.

Thanks @TRex22. We're still working on the reproduction. Do you still see the error if you turn off Active Support instrumentation?

Hey @hannahramadan Im currently on leave (for the next two weeks) but Ive forwarded the question to my colleague.
He is working on using the In-Memory cache and could possibly try that configuration setting.

Hi @TRex22 - have you (or your colleague) had a chance to try things out with Active Support instrumentation disabled or found any other leads on what could be causing issues?
Your stack trace points to a JSON dump operation that should work fine natively with all agent-supported Rubies (v2.4+), but unfortunately, a "not-implemented" error is happening. Any ideas on anything that could impact JSON functionality in the environment?

@TRex22 - we're unable to reproduce the issue after setting up a Rails <IP_ADDRESS> and Ruby 2.7.7 app that uses the provided initializer and controller code, with combinations of static and dynamic key values and force either true or false. We're currently thinking that there must be something else (a gem in Gemfile, additional usage workflow, etc.) needed to make the repro work. If you are able to set up and share a reproduction repository, we would love to take a look.
As for the question on JSON earlier, the stack trace seems to indicate that the (built-in) Ruby JSON library reports 'dump' as not implemented. But when we do require 'json'; ::JSON.methods(false).include?(:dump) it returns true for us. We're puzzled as to why the NotImplementedError is happening when the cache store is swapped out.
I'm going to remove the bug label for now for housekeeping.

Hi @TRex22 I'm closing this issue for now but please reopen it if there is anything we can do to help.

Sorry I missed your responses ... I think because we use the gem OJ that might explain this issue. But havent confirmed. We ended up not implementing this kind of cache store and going with a different solution.