Tweaking docstring of PyMaterialXCore.

This PR tweaks the docstring of the PyMaterialXCore module to be more descriptive.
Note that the docstrings for individual classes, methods, and functions are to be added in separate PRs.
Split from #1567.
Update #342.

@StefanHabel I'd be interested in more details as to how __doc__.md.h is generated.  Is this purely a derived product, which could become a generated artifact of our build process?  Or is it a new authored document that would need to be maintained over time as the MaterialX Python libraries evolve?

@jstone-lucasfilm  The latter:

a new authored document that would need to be maintained over time as the MaterialX Python libraries evolve

In https://github.com/AcademySoftwareFoundation/MaterialX/pull/1567, I had originally included the docstring content in PyModule.cpp itself, but that made that file a bit unwieldy to work with:
PYBIND11_MODULE(PyMaterialXCore, mod)
{
    mod.doc() = "Module containing Python bindings for the MaterialXCore library";
    mod.doc() = PYMATERIALX_DOCSTRING(R"docstring(
    Core MaterialX elements and graph traversal.

    All functions and classes that are defined in this module are available in
    the top-level `MaterialX` Python package, and are typically used via an
    `import` alias named `mx`:

    .. code:: python

        import MaterialX as mx

    Library Version
    ---------------

    .. autofunction:: getVersionIntegers
    .. autofunction:: getVersionString

    Document Element Tree
    ---------------------

    .. autofunction:: createDocument
    .. autofunction:: getConnectedOutputs
    .. autofunction:: prettyPrint

    Element Classes
    ---------------

    **Class Hierarchy**

    * `Element`
        * `TypedElement`
            * `InterfaceElement`
                * `GraphElement`
                    * `Document`
                    * `NodeGraph`
                * `Implementation`
                * `Node`
[...]

Original source: https://github.com/AcademySoftwareFoundation/MaterialX/pull/1567/files#diff-c07c3059ad8da7e96f14a432373a60a73b4b7cfb5708999dc9cf7ff827be3ba2
In this proposal here, the docstring contents live in separate header files named __doc__.md.h:

__doc__ for their closeness to Python docstrings
.md since the docstrings use markdown format
ending on .h since they are header files that define a macro

Since the filename starts with an underscore, editors like VS Code may list them at the top of the respective directory, helping to make it easy to find and make changes to the module docstring as the API evolves:

@StefanHabel Is there potentially an approach that would generate these documents at build time, so that we're not adding a new mandatory step for developers when they update the Python API of MaterialX?
As you might imagine, I'm concerned about adding overhead for developers contributing new features and improvements to MaterialX, where they would need to know about and update the text in these new files as well!

@jstone-lucasfilm The proposed __doc__.md.h files are intended only for the docstring of the respective module itself.
Documentation of individual classes, methods, and functions that may be defined in a module would still live in the PyModule.cpp files and other similar implementation files themselves.
The module docstring acts as an index of the module, allowing us to group classes and module-level functions into sections of related functionality, e.g.
Library Version
---------------

.. autofunction:: getVersionIntegers
.. autofunction:: getVersionString

Document Element Tree
---------------------

.. autofunction:: createDocument
.. autofunction:: getConnectedOutputs
.. autofunction:: prettyPrint

We can also use it for editorial style documentation such as in this example:
All functions and classes that are defined in this module are available in
the top-level `MaterialX` Python package, and are typically used via an
`import` alias named `mx`:

.. code:: python

    import MaterialX as mx

The module docstring may also contain documentation for module-level variables, e.g.
Module Constants
----------------

.. py:data:: DEFAULT_TYPE_STRING
    :type: str
    :value: "color3"

    The name of the default type that is used when no other specific type
    is given/available.

    :see: `InterfaceElement.addInput()`
    :see: `InterfaceElement.addOutput()`

.. py:data:: FILENAME_TYPE_STRING
    :type: str
    :value: "filename"

    :see: `StringResolver.resolve()`

.. py:data:: GEOMNAME_TYPE_STRING
    :type: str
    :value: "geomname"

    :see: `StringResolver.resolve()`

[...]

The presence of this more comprehensive and (hopefully) helpful documentation comes at a cost of having to keep it up to date with changes in the codebase, which is a concern indeed.
For example, when adding a new function, we'd add its definition including a docstring in PyModule.cpp, and would then also update the corresponding sections in __doc__.md.h, to include the new function in the relevant listings.

I've uploaded the generated docs to the live demo version here, if you'd like to have a look at the rendered output:
https://stefanhabel.github.io/generated/PyMaterialXCore.html

PyMaterialXCore is arguably the heaviest example.
In PyMaterialXRender, for example, this proposed editorial approach to delivering developer documentation allows us to offer a curated list of sections that are intended to be more helpful than a mere alphabetical listing:
https://stefanhabel.github.io/generated/PyMaterialXRender.html

(All this will look much better once docstrings for classes, methods, and functions have been added.)

Intended result with docstrings for functions added:

@StefanHabel Could there somehow be a way to extract these details from the associated Doxygen comments in our C++ classes, so that we don't need to manually keep the Python documentation in sync?
Selecting just one typical example, here's the class hierarchy that's automatically generated from the Doxygen comments for the Element class in MaterialXCore:
https://materialx.org/docs/api/class_element.html
And here's the corresponding text that you've proposed for the __doc__.md.h file for the Element class in PyMaterialXCore:
* `Element`
    * `TypedElement`
        * `InterfaceElement`
            * `GraphElement`
                * `Document`
                * `NodeGraph`
            * `Implementation`
            * `Node`
            * `NodeDef`
            * `Variant`
        * `ValueElement`
            * `PortElement`
                * `Input`
                * `Output`
            * `GeomProp`
            * `Property`
            * `PropertyAssign`
            * `Token`
        * `AttributeDef`
        * `GeomPropDef`
        * `Member`
        * `TargetDef`
    * `GeomElement`
        * `GeomInfo`
        * `MaterialAssign`
        * `PropertySetAssign`
        * `Visibility`
    * `Backdrop`
    * `Collection`
    * `CommentElement`
    * `GenericElement`
    * `Look`
    * `LookGroup`
    * `NewlineElement`
    * `PropertySet`
    * `TypeDef`
    * `Unit`
    * `UnitDef`
    * `UnitTypeDef`
    * `VariantSet`
    * `VariantAssign`

Since these class hierarchies are nearly identical, could there be a way to keep these two sets of derived data automatically in sync, perhaps extracting the required text from the same Doxygen comments in the C++ codebase?
I should note that I honestly don't know the answer to these questions, and this is an area where I clearly need to learn more!

Thanks @jstone-lucasfilm!
I'm sharing your concerns!
Another downside of the approach proposed here is that the docstring that is visible in interactive Python sessions would contain all of those markup instructions, which is not ideal.
Here's an example based on this branch:
Python 3.12.6 (main, Sep  6 2024, 19:03:47) [Clang 16.0.0 (clang-16<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyMaterialXCore
>>> print(PyMaterialXCore.__doc__)
Core MaterialX elements and graph traversal.

All functions and classes that are defined in this module are available in
the top-level `MaterialX` Python package, and are typically used via an
`import` alias named `mx`:

.. code:: python

    import MaterialX as mx

Library Version
---------------

.. autofunction:: getVersionIntegers
.. autofunction:: getVersionString

Document Element Tree
---------------------

.. autofunction:: createDocument
.. autofunction:: getConnectedOutputs
.. autofunction:: prettyPrint

Element Classes
---------------

**Class Hierarchy**

* `Element`
    * `TypedElement`
        * `InterfaceElement`
            * `GraphElement`
                * `Document`
                * `NodeGraph`
            * `Implementation`
            * `Node`
            * `NodeDef`
            * `Variant`
        * `ValueElement`
            * `PortElement`
                * `Input`
                * `Output`
            * `GeomProp`
            * `Property`
            * `PropertyAssign`
            * `Token`
        * `AttributeDef`
        * `GeomPropDef`
        * `Member`
        * `TargetDef`
    * `GeomElement`
        * `GeomInfo`
        * `MaterialAssign`
        * `PropertySetAssign`
        * `Visibility`
    * `Backdrop`
    * `Collection`
    * `CommentElement`
    * `GenericElement`
    * `Look`
    * `LookGroup`
    * `NewlineElement`
    * `PropertySet`
    * `TypeDef`
    * `Unit`
    * `UnitDef`
    * `UnitTypeDef`
    * `VariantSet`
    * `VariantAssign`
* `Edge`
* `StringResolver`

**Alphabetical Index**

.. autosummary::
    :toctree: elements

    AttributeDef
    Backdrop
    Collection
    CommentElement
    Document
    Edge
    Element
    GenericElement
    GeomElement
    GeomInfo
    GeomProp
    GeomPropDef
    GraphElement
    Implementation
    Input
    InterfaceElement
    Look
    LookGroup
    MaterialAssign
    Member
    NewlineElement
    Node
    NodeDef
    NodeGraph
    Output
    PortElement
    Property
    PropertyAssign
    PropertySet
    PropertySetAssign
    StringResolver
    TargetDef
    Token
    TypeDef
    TypedElement
    Unit
    UnitDef
    UnitTypeDef
    ValueElement
    Variant
    VariantAssign
    VariantSet
    Visibility

Value Classes
-------------

**Class Hierarchy**

* `Value`
    * `TypedValued` -- The class template for typed subclasses of `Value`
        * `TypedValue_boolean`
        * `TypedValue_booleanarray`
        * `TypedValue_color3`
        * `TypedValue_color4`
        * `TypedValue_float`
        * `TypedValue_floatarray`
        * `TypedValue_integer`
        * `TypedValue_integerarray`
        * `TypedValue_matrix33`
        * `TypedValue_matrix44`
        * `TypedValue_string`
        * `TypedValue_stringarray`
        * `TypedValue_vector2`
        * `TypedValue_vector3`
        * `TypedValue_vector4`
* `MatrixBase`
    * `Matrix33`
    * `Matrix44`
* `VectorBase`
    * `Vector2`
    * `Vector3`
    * `Vector4`
* `Color3`
* `Color4`

**Alphabetical Index**

.. autosummary::
    :toctree: value-classes

    Color3
    Color4
    Matrix33
    Matrix44
    MatrixBase
    TypedValue_boolean
    TypedValue_booleanarray
    TypedValue_color3
    TypedValue_color4
    TypedValue_float
    TypedValue_floatarray
    TypedValue_integer
    TypedValue_integerarray
    TypedValue_matrix33
    TypedValue_matrix44
    TypedValue_string
    TypedValue_stringarray
    TypedValue_vector2
    TypedValue_vector3
    TypedValue_vector4
    Value
    Vector2
    Vector3
    Vector4
    VectorBase

Material Node Utilities
-----------------------

.. autofunction:: getGeometryBindings
.. autofunction:: getShaderNodes

Iterator Classes
----------------

.. autosummary::
    :toctree: iterators

    GraphIterator
    InheritanceIterator
    TreeIterator

Predicate Classes
-----------------

.. autosummary::
    :toctree: predicates

    ElementPredicate
    NodePredicate

Unit Converter Classes
----------------------

**Class Hierarchy**

* `UnitConverter`
    * `LinearUnitConverter`
* `UnitConverterRegistry`

**Alphabetical Index**

.. autosummary::
    :toctree: unit-converters

    LinearUnitConverter
    UnitConverter
    UnitConverterRegistry

Exception Classes
-----------------

**Class Hierarchy**

* `Exception`
    * `ExceptionFoundCycle`
    * `ExceptionOrphanedElement`
    * `PyMaterialXFormat.ExceptionFileMissing`
    * `PyMaterialXFormat.ExceptionParseError`
    * `PyMaterialXRender.ExceptionRenderError`

**Alphabetical Index**

.. autosummary::
    :toctree: exceptions

    Exception
    ExceptionFoundCycle
    ExceptionOrphanedElement

Name/Path Utilities
-------------------

.. autofunction:: createNamePath
.. autofunction:: createValidName
.. autofunction:: incrementName
.. autofunction:: isValidName
.. autofunction:: parentNamePath
.. autofunction:: splitNamePath

String Utilities
----------------

.. autofunction:: joinStrings
.. autofunction:: replaceSubstrings
.. autofunction:: splitString
.. autofunction:: stringEndsWith
.. autofunction:: stringStartsWith
.. autofunction:: geomStringsMatch
.. autofunction:: targetStringsMatch

Module Constants
----------------

.. py:data:: DEFAULT_TYPE_STRING
    :type: str
    :value: "color3"

    The name of the default type that is used when no other specific type
    is given/available.

    :see: `InterfaceElement.addInput()`
    :see: `InterfaceElement.addOutput()`

.. py:data:: FILENAME_TYPE_STRING
    :type: str
    :value: "filename"

    :see: `StringResolver.resolve()`

.. py:data:: GEOMNAME_TYPE_STRING
    :type: str
    :value: "geomname"

    :see: `StringResolver.resolve()`

.. py:data:: STRING_TYPE_STRING
    :type: str
    :value: "string"

.. py:data:: BSDF_TYPE_STRING
    :type: str
    :value: "BSDF"

.. py:data:: EDF_TYPE_STRING
    :type: str
    :value: "EDF"

.. py:data:: VDF_TYPE_STRING
    :type: str
    :value: "VDF"

.. py:data:: SURFACE_SHADER_TYPE_STRING
    :type: str
    :value: "surfaceshader"

    The node type name used for surface shader nodes.

    :see: `getShaderNodes()`

.. py:data:: DISPLACEMENT_SHADER_TYPE_STRING
    :type: str
    :value: "displacementshader"

    The node type name used for displacement shader nodes.

    :see: `getShaderNodes()`

.. py:data:: VOLUME_SHADER_TYPE_STRING
    :type: str
    :value: "volumeshader"

    The node type name used for volume shader nodes.

    :see: `getShaderNodes()`

.. py:data:: LIGHT_SHADER_TYPE_STRING
    :type: str
    :value: "lightshader"

    The node type name used for light shader nodes.

    :see: `getShaderNodes()`

.. py:data:: MATERIAL_TYPE_STRING
    :type: str
    :value: "material"

.. py:data:: SURFACE_MATERIAL_NODE_STRING
    :type: str
    :value: "surfacematerial"

.. py:data:: VOLUME_MATERIAL_NODE_STRING
    :type: str
    :value: "volumematerial"

.. py:data:: MULTI_OUTPUT_TYPE_STRING
    :type: str
    :value: "multioutput"

.. py:data:: NONE_TYPE_STRING
    :type: str
    :value: "none"

.. py:data:: VALUE_STRING_TRUE
    :type: str
    :value: "true"

.. py:data:: VALUE_STRING_FALSE
    :type: str
    :value: "false"

.. py:data:: NAME_PREFIX_SEPARATOR
    :type: str
    :value: ":"

.. py:data:: NAME_PATH_SEPARATOR
    :type: str
    :value: "/"

.. py:data:: ARRAY_VALID_SEPARATORS
    :type: str
    :value: ", "

.. py:data:: ARRAY_PREFERRED_SEPARATOR
    :type: str
    :value: ", "

.. py:data:: GEOM_PATH_SEPARATOR
    :type: str
    :value: "/"

.. py:data:: UNIVERSAL_GEOM_NAME
    :type: str
    :value: GEOM_PATH_SEPARATOR

    :see: `GEOM_PATH_SEPARATOR`
    :see: `getGeometryBindings()`

.. py:data:: UDIM_TOKEN
    :type: str
    :value: "<UDIM>"

.. py:data:: UV_TILE_TOKEN
    :type: str
    :value: "<UVTILE>"

.. py:data:: UDIM_SET_PROPERTY
    :type: str
    :value: "udimset"

Further noting that Python already provides an auto-generated class hierarchy in the form of a tree in its generated help() text:
>>> help(PyMaterialXCore)
[...]
CLASSES
    builtins.Exception(builtins.BaseException)
        Exception
        ExceptionFoundCycle
        ExceptionOrphanedElement
    pybind11_builtins.pybind11_object(builtins.object)
        Edge
        Element
            Backdrop
            Collection
            CommentElement
            GenericElement
            GeomElement
                GeomInfo
                MaterialAssign
                PropertySetAssign
                Visibility
            Look
            LookGroup
            NewlineElement
            PropertySet
            TypeDef
            TypedElement
                AttributeDef
                GeomPropDef
                InterfaceElement
                    GraphElement
                        Document
                        NodeGraph
                    Implementation
                    Node
                    NodeDef
                    Variant
                Member
                TargetDef
                ValueElement
                    GeomProp
                    PortElement
                        Input
                        Output
                    Property
                    PropertyAssign
                    Token
            Unit
            UnitDef
            UnitTypeDef
            VariantAssign
            VariantSet
        ElementPredicate
        GraphIterator
        InheritanceIterator
        MatrixBase
            Matrix33
            Matrix44
        NodePredicate
        StringResolver
        TreeIterator
        UnitConverter
            LinearUnitConverter
        UnitConverterRegistry
        Value
            TypedValue_boolean
            TypedValue_booleanarray
            TypedValue_color3
            TypedValue_color4
            TypedValue_float
            TypedValue_floatarray
            TypedValue_integer
            TypedValue_integerarray
            TypedValue_matrix33
            TypedValue_matrix44
            TypedValue_string
            TypedValue_stringarray
            TypedValue_vector2
            TypedValue_vector3
            TypedValue_vector4
        VectorBase
            Color3
            Color4
            Vector2
            Vector3
            Vector4
[...]

With that in mind, I'd propose:

Removing these separate __doc__.md.h files again
Keeping the new single-line descriptions of the MaterialX Python API modules (as I think they're informative than only stating that the modules are bindings to underlying code, e.g.-    mod.doc() = "Module containing Python bindings for the MaterialXCore library";
+    mod.doc() = "Core MaterialX elements and graph traversal.";

Exploring ways of automatically generating additional contents in markdown pages of the main modules only at build time (when the Python API documentation is generated)

We would be keeping this information completely separate from the information that is provided in docstrings within the API itself
We could do this under a separate ticket and PRs later, after the core functionality of generating Python API documentation has been established

@StefanHabel Thanks for that excellent breakdown, and I think the path forward that you propose is the right one!

OK cool!
I've rebased the branch of this PR on top of main, and have added another commit to remove the separate __doc__.md.h again, leaving only the single change of the module's docstring: https://github.com/AcademySoftwareFoundation/MaterialX/pull/2039/commits/064a0758bca3014427a655925f38461bdc906715
As this is now the only change in this PR, perhaps we could combine a couple or all of these PRs into one, to reduce the overhead (and so as not to artificially inflate my contribution count 😅)?

https://github.com/AcademySoftwareFoundation/MaterialX/pull/2039
https://github.com/AcademySoftwareFoundation/MaterialX/pull/2040
https://github.com/AcademySoftwareFoundation/MaterialX/pull/2041
https://github.com/AcademySoftwareFoundation/MaterialX/pull/2042

As we've been using this PR to discuss these changes in general, I'm inclined to add the single-line docstring changes for the other modules to the branch of this PR as well, and to close the other 3 PRs as cancelled.

Sounds good!  I agree that's the most accurate way to document the evolution of this project, and feel free to combine all of those single-line changes into this PR.

Done:

Other module docstrings updated in https://github.com/AcademySoftwareFoundation/MaterialX/pull/2039/commits/b57a1413bac969f8de232401cf01cf72e22be1ca
Description of PR updated
Title of PR updated: Tweaking docstrings of PyMaterialX* modules.

The name of the branch in this fork remains as StefanHabel:#342-PyMaterialXCore-docstring. Hope that's OK

I've updated the live demo at https://stefanhabel.github.io to reflect these changes.

While here, we could take this opportunity to update the README.md file in the PyMaterialX directory accordingly, as it does not currently list all of these modules yet:

Python Support
A Python package is created from the following modules. The OSL and GLSL modules can
be conditionally built.

PyMaterialXCore: Python module for MaterialX core
PyMaterialXFormat: Python module for XML serialization support
PyMaterialXGenShader : Python module for core shader generation
PyMaterialXGenOsl : Python module for OSL shader generation
PyMaterialXGenGlsl : Python module for GLSL shader generation

https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/source/PyMaterialX/README.md
Then again, similar updates in other README.md files could perhaps be better grouped in a separate PR specifically for README.md files.


[DDW-569] Move ITN redemption to Daedalus application menu

This PR moved ITN redemption to Daedalus application menu
Jira Ticket
Todos

[x] Move ITN redemption to Daedalus application menu

Testing Checklist

Slack QA thread

App

[x] Click on menu item Daedalus => Redeem ITN rewards and make sure ITN redemption dialog is shown.

Screenshots
English

Japanese

Test Cases
Scenario 1 - Button greyed out and inactive before I accept terms and conditions
Given that I have Daedalus installed
And I launch Daedalus
When I am yet to agree to the Terms and Conditions
Then the Daedalus menu item for its rewards is greyed out and not active

Scenario 2 - Button active after I accept terms and conditions
Given that I launched Daedalus
And I have accepted the Terms and Conditions
When I open the Daedalus menu items
Then I see that the button is active
And when I click on it I get brought to the itn rewards redemption screen

Review Checklist
Basics

[ ] PR has been assigned and has appropriate labels (feature/bug/chore, release-x.x.x)
[ ] PR is updated to the most recent version of the target branch (and there are no conflicts)
[ ] PR has a good description that summarizes all changes and shows some screenshots or animated GIFs of important UI changes
[ ] CHANGELOG entry has been added to the top of the appropriate section (Features, Fixes, Chores) and is linked to the correct PR on GitHub
[ ] Automated tests: All acceptance and unit tests are passing (yarn test)
[ ] Manual tests (minimum tests should cover newly added feature/fix): App works correctly in development build (yarn dev)
[ ] Manual tests (minimum tests should cover newly added feature/fix): App works correctly in production build (yarn package / CI builds)
[ ] There are no flow errors or warnings (yarn flow:test)
[ ] There are no lint errors or warnings (yarn lint)
[ ] There are no prettier errors or warnings (yarn prettier:check)
[ ] There are no missing translations (running yarn manage:translations produces no changes)
[ ] Text changes are proofread and approved (Jane Wild / Amy Reeve)
[ ] Japanese text changes are proofread and approved (Junko Oda)
[ ] UI changes look good in all themes (Alexander Rukin)
[ ] Storybook works and no stories are broken (yarn storybook)
[ ] In case of dependency changes yarn.lock file is updated

Code Quality

[ ] Important parts of the code are properly commented and documented
[ ] Code is properly typed with flow
[ ] React components are split-up enough to avoid unnecessary re-renderings
[ ] Any code that only works in main process is neatly separated from components

Testing

[ ] New feature/change is covered by acceptance tests
[ ] New feature/change is manually tested and approved by QA team
[ ] All existing acceptance tests are still up-to-date
[ ] New feature/change is covered by Daedalus Testing scenario
[ ] All existing Daedalus Testing scenarios are still up-to-date

After Review

[ ] Merge the PR
[ ] Delete the source branch
[ ] Move the ticket to done column on the YouTrack board
[ ] Update Slack QA thread by marking it with a green checkmark

Hi @yakovkaravelov. Tested on build Mainnet 16676. Functionality works well although I found if the user changes the language to Japanese the button reverts back to being greyed out and inactive. See video. If Daedalus is closed and reopened the button is active again

Hi @yakovkaravelov. Tested on build Mainnet 16676. Functionality works well although I found if the user changes the language to Japanese the button reverts back to being greyed out and inactive. See video. If Daedalus is closed and reopened the button is active again

Good catch @ManusMcCole! This is obviously a bug that most likely affects develop and production builds too.
It affects ALL the links as far as I can see...
@yakovkaravelov please fix this 🙏

@yakovkaravelov please merge latest develop.

Hi @yakovkaravelov. Tested on build Mainnet 16676. Functionality works well although I found if the user changes the language to Japanese the button reverts back to being greyed out and inactive. See video. If Daedalus is closed and reopened the button is active again

Good catch @ManusMcCole! This is obviously a bug that most likely affects develop and production builds too.
It affects ALL the links as far as I can see...
@yakovkaravelov please fix this 🙏

This bus was not introduced by this PR actually. It is already existing in develop branch as well, anyway, will fix it.
CC @nikolaglumac @ManusMcCole

@yakovkaravelov please fix it regardless of it's origin.

@tomislavhoracek @nikolaglumac @daniloprates @miorsufianiohk @ManusMcCole Please review/test, thanks.

Reviewing this now

@yakovkaravelov The screen can be accessed while Daedalus is loading and it looks like it hasn't any wallet. It changes after the loading is complete, but I think it looks odd. Can this be improved? For reference, the settings and wallet settings screens can't be accessed in that state.

Good point @gabriela-ponce - I have modified the logic so that we show the "syncing" status message instead of no-wallets in case Daedalus is not fully synced.


Create a new DataReposCars package

Restructures the GitHub-repository to make room for DataReposCars next to DataRepos.

The tests are not running properly yet. I'm looking into it.

@iansedano I've updated the GitHub action so that it calls tox correctly after restructuring the folders.
I moved the cars dataset to its own package and added the classical iris dataset to still have one dataset in each format (CSV, JSON).
Let me know if this looks okay. Then I can merge in the PR.


doc: add meeting notes 2023-02-20 (#58)

Close #58

I just wanted to mention that the PR for #38 is already open and getting feedback (ref: https://github.com/nodejs/node/pull/46607). I'm planning to address feedback and adjust tests during this week 🙂
Sadly I cannot attend the meetings as it overlaps with other personal events at the time, but I'm keeping in sync through these docs, and I'll try to share updates of any in this form. Thanks! 🙂


How to deal with Field Aliases?

In a GraphQL query we can alias fields, which I’m wondering how one should deal with in TypeScript and a tool like this.
Seeing as it really is related to a query, rather than just the schema, I’m thinking that this should be dealt with by implementing something like #30.
The only other issue, in our case, is that we use Relay, so it would be ideal if we could somehow plug into the compiler, extract the query from the Relay fragments, generate the type interfaces, and then actually compile the rest of the file. (This may well be beyond the scope of this tool.)
(Filing this here for visibility, but my colleague @orta said he was going to take a look at this.)

i think we'd definitely need #30 to be done for this.
I've been slow to start working on it, but hopefully will find some more time soon.
as far as the relay stuff goes, I've been doing something kind of similar w/ webpack, (generating a d.ts for my .graphql queries). at this point it's super basic and doesn't make the interface; just allows the TS compiler to read the files.
whenever #30 gets done I'll probably add that to my webpack loader.
not sure if you guys use webpack, but i'm sure something similar can be done w/ babel

I’ve started looking at an implementation for #30, which I’ll use in a VSCode extension that dumps types for Relay fragments in the current file.

that'd be pretty sweet, if you get that working opensource it 😄

Totally 👍

I started looking at this, but it quickly became harder to make it work inside this project rather than standalone (needed TS & GraphQL parsers, plus our needs were around Relay), so in the end I went that route: https://github.com/alloy/relay2ts.
As the name implies, it’s currently tied to Relay, but it should be easy to generalise it to regular GraphQL queries. Let me know if/when you want to take another look at that.
(I’ll leave it to your discretion if you want to leave this ticket open or not.)

nice, I'm gonna take a look tonight or tomorrow.
I need to refactor this a bit and after that, maybe it'll be easy to combine the two efforts

making some progress in #46

@alloy should work now with #46 being merged. install gql2ts@next and let me know!
there's a new option to load a query and it will generate the interfaces based on that instead of the whole thing. Because of this, aliases work 👌

@alloy this should be fixed in 1.0.0. can you check? i'd like to close this issue if it's all good 😄


Update ILSpy link?

Hi. First of all, thank you for the page! Very useful.
I wonder if ILSpy link should be updated. It currently links to https://github.com/Zhentar/ILSpy/releases which was last updated 10 Jul 2017.
Would this be better? https://github.com/icsharpcode/ILSpy
Thanks in advance. 👍🏻

@ww9 did you test it? Does it work?

@sTiKyt I didn't sorry. I'm taking a break from Rimworld modding.
But I just noticed that https://github.com/Zhentar/ILSpy has a text that directs users to use  https://github.com/icsharpcode/ILSpy indead.
Good luck @sTiKyt ❤


Optional y in fit in general

NeuralNet.fit should use y=None by default to support arbitrary data loaders.
NeuralNetClassifier.fit should require y.

The first part is done. Do we want to override fit in NeuralNetClassifier and enforce y @benjamin-work?

Hmm, what do we lose if we don't?

Nothing. The user may (or may not) benefit from it because of additional error checking.
For example, sklearn SVMs do not allow for y=None.
OTOH making y optional allows for custom data loaders that extract y from X.
So I'm leaning towards leaving y optional in fit().

Yes, this sounds reasonable.
The only case where I can think of where it's detrimental is when the user forgets to pass y to fit, at which point the error will only be noticed when get_loss is called. Not sure what the error message will be. Are we fine with this?

Okay, so that means NeuralNetRegressor and NeuralNetClassifier´ should not have y=None` as default.

PR #27


Automated cherry pick of #5102

Cherry pick of #5102 on release-5.22.

#5102: - Fix drag and drop in desktop app

/cc  @nevyangelova

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: e9fb1335b2bd0442d05da8480ac915b22ac49c76

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.


fix: fmt cannot accept multiple fns

Currently , the following code will raise AttributeError: 'list' object has no attribute 'default'.
from great_tables import GT, exibble

(
    GT(exibble[["fctr"]])
    .fmt([lambda x: x], columns="fctr")
)

The main issue appears to be that fmt did not handle fns properly when it is a list. As a result, the callables are not wrapped in FormatFns. Additionally, Body.render_formats needs to be refactored to accommodate this change by retrieving the result of _set_cell for each call. Given the critical role of fmt within this project, while the proposed PR may not be flawless, it serves as a reference for our refactoring efforts. With some snapshot tests failing, I would greatly appreciate the team's assistance in reviewing the PR to ensure the failed tests are acceptable.

@machow , thank you so much for explaining the details to me. I believe making a small modification to the docs will make it easier for people who haven't used {gt} before (like me). Since I'll be out of town for a few days, would you mind taking over the PR to either close it or modify the docs?

I believe making a small modification to the docs will make it easier for people who haven't used {gt} before (like me)

That makes a ton of sense --- I can make sure to change the docstring Monday. I'll look back through to see if there are pieces to keep from the PR (since it seemed like there were some other improvements in here :)

@machow, thanks a lot.

@machow, this PR has been open for a while. Could you please help edit the docstring, and then we might be able to close it?
fns : FormatFn | FormatFns
    Either a single formatting function or a named list of functions.


Suggestion: Betterrollsfor5e compatibility

Would be super nice if this module could detect betterrollsfor5e and use those instead of "normal" rolls for skills.

Without vs With Betterrollsfor5e

I have a semi-working version that I just posted on the develop branch (commit 0f931c0), but I'll have to do more testing before I can release it. Thanks so much for the idea!


rename "number" to "pairProvider"

when migrating from numbers to more general formats, rename the number-attribute

need a more general approach - see #


⚠ Processors has degraded performance

In 2865d10, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 50 ms

Resolved: Processors performance has improved in b5234e6.


Return non-zero exit code when per-space config value cannot be read

Issue
Currently, querying a per-space config value prints -1 to stdout when there is no value configured and exits successfully.
yabai -m config --space 2 left_padding

Proposed fix
The function should return a non-zero exit code so a fallback value can easily be read by scripts. Error messages should also be printed to stderr.
# currently, this would be -1 instead of the desired value
default_left_padding=$(yabai -m config --space 2 left_padding || yabai -m config left_padding)

So  the config settings that modify space properties are different from all other settings. Space settings must be set before a space / view is created, and only then are they used.
All other config settings can be modified live at any time and their change will take effect immediately.
I don't like that these space settings differ in that way, and I'd rather try to solve that issue instead.
The reason they are -1 by default, is that is the default value that means this space uses the global space settings, in which I think rather than returning an exit code, or -1, yabai should simply return the global padding value for the given setting. However, this will not be relevant if I handle the underlaying issue that I mentioned before this paragraph.

That's fine by me. I was playing around with a script that increases left and right padding if there's only a single monitor available. The proposed fix is just what came to my mind first.

I don't like that these space settings differ in that way, and I'd rather try to solve that issue instead.

Do you think it makes sense to also allow a --display override then? With priority dynamically set > space > display > global?

Do you think it makes sense to also allow a --display override then? With priority dynamically set > space > display > global?

Might take a look at this in the future. I think the first step is to store space specific settings internally by using the CGSSpaceId rather than the mission-control index. After this has been resolved, and spaces are working properly - maybe there will be a simple way to extend that to support a display override.

All config settings can now be edited at runtime, and have their changes reflect immediately, except for status_bar settings.


Where are examples in catalog?

I'm struggling to find the correlation between examples listed in the example catalog and the actual examples themselves in ingress/examples.
Specifically, I'm looking for Algorithms > Weights nginx example.
Could someone point me in the direction of this example or provide guidance on how to locate examples listed in the catalog?
Thanks in advanced.

@joshrosso there are no examples for the features you mentioned.
The Algorithms can be configured at controller level (not annotations). If you use sticky session this setting is replaced https://github.com/kubernetes/ingress/blob/master/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl#L231
https://github.com/kubernetes/ingress/blob/master/controllers/nginx/configuration.md#allowed-parameters-in-configuration-configmap
Just in case there is no weight feature, all the servers are considered equal.

Closing. Please reopen if you still have questions.


HMR fix, better global/local style path matching, updated readme

Fixes #182

Is there a reason why you've picked ejs over html here?

yep, please pull the .production change as well. The reason is that if .html is used and you have a html loader defined, it will kick in and HtmlWebpackPlugin won't process ejs <%= %> tags in the template source. More details https://github.com/ampedandwired/html-webpack-plugin/blob/master/docs/template-option.md It's probably not "required" in your starter as you don't seem to have any html loader defined but it's safer (i got into that issue with my angular starter).

Alternatively we could not use any templating (no template tags), and use plain index.html, that would also work. html-webpack-plugin would just append script bundle and css bundle in that case. So it's matter of taste. ;)

well actually... let's use plain html, it's clearer, will make a new PR


Estimated Date is all over the Place

I think you are only using the current block time to calculate the estimate, which doesn't work due to the random nature of mining.
Since you already store blocks in-browser for the chart and list, I would suggest to average their Block time for a more stable estimate.

Looking at the code, it seems you are actually using 5 block for an average, I guess that's just not enough to make a nice estimate.

May I suggest to use the etherscan api for a better estimate? https://api.etherscan.io/api?module=block&action=getblockcountdown&blockno=12965000

@InvisibleSymbol it is because it is impossible to know how fast each block is. It will still be the same if we use etherscan API, what they do differently  is that they don't update the webpage if you did it request it once so its not real-time. But if you refresh etherscanAPI, they will have the same jump.
What I should do is increase that estimate the number of blocks you have already seen most likely to increase precision and make it less bumpy.

I deployed the one without any block count limitation, it is a bit more stable, but when the bursts happen it might scale back more

But if you refresh etherscanAPI, they will have the same jump.

But it doesn't, because they use a very large time frame for their average Block time, somewhere in the thousands of Blocks I assume.
I wrote a simple Script that calculates the Block Time they use based on the estimate they return, and it's pretty stable while still not being a naive 13sec.
seconds_per_blocks = response["EstimateTimeInSec"] / response["RemainingBlock"]
Block 12897169: Api used an average of 13.4002211378s/Block
MH
Block 12897171: Api used an average of 13.4002211443s/Block
MMMMMMMH
Block 12897172: Api used an average of 13.4002211476s/Block
H
Block 12897174: Api used an average of 13.4002211541s/Block
MMMMH
Block 12897175: Api used an average of 13.4002211574s/Block
MH
Block 12897176: Api used an average of 13.4002211607s/Block
H
Block 12897177: Api used an average of 13.4002211639s/Block
H
Block 12897179: Api used an average of 13.4002211704s/Block
H
Block 12897180: Api used an average of 13.4002211737s/Block
MH
Block 12897181: Api used an average of 13.4002211770s/Block
MH
Block 12897182: Api used an average of 13.4002211802s/Block
MMMMMMMH
Block 12897183: Api used an average of 13.4002211835s/Block
H
Block 12897184: Api used an average of 13.4002211867s/Block
H
Block 12897185: Api used an average of 13.4002211900s/Block
MH
Block 12897186: Api used an average of 13.4002211933s/Block
H
Block 12897187: Api used an average of 13.4002211965s/Block
H
Block 12897188: Api used an average of 13.4002211998s/Block
H
Block 12897190: Api used an average of 13.4002212063s/Block
MH
Block 12897191: Api used an average of 13.4002212096s/Block
...

From Nick on Twitter:

An easy option that works better is with n blocks to go, fetch the timestamp of the block n blocks ago and add that to the current time.

https://twitter.com/nicksdjohnson/status/1419498696085889024


Provide some kind of grouping mechanism in the additional facet selection popout

When dealing with a large set of facets (e.g., hundreds) there are some usability issues in the facet selection pop-out.  Lack of a "grouping" mechanism is a big one.  Having an optional, collapsible header around facets at the entity level would be a big help here. This header could default to the currently annotated display value for the parent entity.
This would also help with the presentation of "duplicate" facet values in the selection pop-out, which can happen when more than one table entity has a column with the same name.  Simply annotating these duplicate column names differently (e.g., by prepending the table name) is less preferable than having a grouping mechanism that properly reflects the source entity.
This is also a very common UI feature in filter selection components of large-scale ecommerce sites.

@hongsudt i suggest we see about scheduling this for the next sprint or moving this item to wishlist.

This enhancement is badly needed for BDDS. Putting it off for a while longer is probably fine but closing it and sending it off to languish in the wishlist is not. We need to either implement it or come up with a reasonable alternative.

@hongsudt okay, so let's see if it can be schedule for the next milestone then. it sounds generaly useful.

this should eventually be included in the recordset app.

track this on the recordset app feature.


V emoji picker next

support vue3 composition api
add flex layout support

Thanks for you contribution! 😄

my pleasure


Update knn 1.2 to tag in manifest

Signed-off-by: John Mazanec<EMAIL_ADDRESS>Description
Release for k-NN was created for 1.2 and tag was set to <IP_ADDRESS>: https://github.com/opensearch-project/k-NN/releases/tag/<IP_ADDRESS>.
Check List

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1138 (489a8f5) into main (c0490fb) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #1138   +/-   ##
=========================================
  Coverage     93.49%   93.49%
  Complexity       10       10
=========================================
  Files           100      100
  Lines          2551     2551
  Branches          7        7
=========================================
  Hits           2385     2385
  Misses          158      158
  Partials          8        8

Continue to review full report at Codecov.

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


No diagnostics in JSON

Might be similar to https://github.com/microsoft/vscode-languageserver-node/issues/1128

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

VS Code Version: 1.78.2 (also insiders)
OS Version: Windows/macOS

This problems exists from 1.68.0. in 1.67.0 everything seems to be fine.

Extension code to reproduce:

// most probably you want to register it to some command
const testContent = '{test: 5}'

vscode.workspace
    .openTextDocument({
        content: testContent,
        language: 'json',
    })
    .then(async doc => {
        await vscode.window.showTextDocument(doc)
    })

Run the code

Actual: Diagnostics are present
Expected: Both editors have diagnostics
Text changes doesn't produce diagnostics in these editors. Of course, after reload diagnostics will be there.
### Tasks

Fixed by https://github.com/microsoft/vscode-languageserver-node/pull/1251

@dbaeumer Was it published? If not do you an eta? (I can still see it happens in current release.)

And by the way thank you for the fix!

Sorry, now. I will prepare a new next release.

I release new next version. client is 8.2.0-next.2


Traefik --api.address argument not implemented

Do you want to request a feature or report a bug?
Feature
What did you expect to see?
I use arguments to create my traefik setup in docker so that I don't have to use a traefik.toml file. The option to change the api address via command line (--api.address) is not implemented. Request it is added so that the api address can be changed via arguments.
I can't find the ticket where I found the full list however I made my own copy. Could this be readily added to the traefik website so that it easily referable? The only other way I know of accessing this list is to provide a bad argument to the traefik container.
https://github.com/Artiume/docker-swarm/blob/master/traefikflags.txt
I haven't set up consul yet so that I can make a frontend/backend traefik so that the docker socket isn't exposed, however, I was hoping my example could be added to the website. It took a while to get it working and I feel that others could benefit from it.
https://github.com/Artiume/docker-swarm/blob/master/traefik-swarm-mode.yml

https://docs.traefik.io/configuration/api/#address-port

Yes, if I use a file.toml or traefik.toml, I can modify the port.
I tried to use
--entrypoint.foo
--api.entrypoint.foo=8080
but --entrypoint.var is also not enabled or I don't have the correct via commandline arguments so I was not able to provide a workaround the lack of --api.address without using a toml file.
That's another reason, I would like a full list in one single area so that I don't have to dig through several different pages to find the answer I am looking for.

The documentation for entrypoints with the CLI: https://docs.traefik.io/configuration/entrypoints/#cli
The transcription of the TOML example https://docs.traefik.io/v1.7/configuration/api/#address-port for the CLI:
--defaultEntryPoints="http"
--entryPoints='Name:http Address::80'
--entryPoints='Name:foo Address::8082'
--entryPoints='Name:bar Address::8083'
--ping.entryPoint=foo
--api.entryPoint=bar

Take a look to the documentation of Traefik v2 :wink:  https://docs.traefik.io/v2.0/reference/static-configuration/cli/

thanks, that works :) i'll close the ticket since there's a work around.
and wow! i'll have to start looking at v2 soon enough :)


nixpkgs-review: Use gitMinimal instead of git to reduce download size

Description of changes

Since command used by nix-review are basic git command it doesn't need full git and thus reduce closure size.
Things done
I tried to use Nixpkgs-review on itself: nix shell .#nixpkgs-review -c nix run .#nixpkgs-review rev HEAD
1 package marked as broken and skipped:
nix-review

2 packages built:
nix-update nixpkgs-review

it seem to be ok

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

If you have a normal git already installed this will actually increase system closure size because then you have both installed. gitMinimal is more useful when being used inside of nixpkgs fetchers and similar.
@Mic92 Isn't this git also used in the review shell? If so we can't change this because then we would be missing git ssh support.

If you have a normal git already installed this will actually increase system closure size because then you have both installed.

You would need to use the same channel for your shell and your system. I am on unstable so from time to time it fetch different version of git. for instance I have 2.37.3 and 2.37.2 each downloading perl + my system git (I am on Darwin)

If so we can't change this because then we would be missing git ssh support.

With this I am able to clone from ssh url.
nix shell -i nixpkgs#gitMinimal nixpkgs#openssh
Also I don't understand for which feature perl is pulled in gitMinimal -i and -p works fine so I think this comment is outdated https://github.com/git/git/blob/45c9f05c44b1cb6bd2d6cb95a22cf5e3d21d5b63/INSTALL#L122-L130

If you have a normal git already installed this will actually increase system closure size because then you have both installed.

You would need to use the same channel for your shell and your system. I am on unstable so from time to time it fetch different version of git. for instance I have 2.37.3 and 2.37.2 each downloading perl + my system git (I am on Darwin)

If so we can't change this because then we would be missing git ssh support.

With this I am able to clone from ssh url. nix shell -i nixpkgs#gitMinimal nixpkgs#openssh
Also I don't understand for which feature perl is pulled in gitMinimal -i and -p works fine so I think this comment is outdated https://github.com/git/git/blob/45c9f05c44b1cb6bd2d6cb95a22cf5e3d21d5b63/INSTALL#L122-L130

I think it's more common for people to have channels in sync or use nixpkgs-review installed via home-manager/nixos. If you don't like the default, you can still override nixpkgs-review.override { git = gitMinimal; }. That's why I am closing this.


Add bounding box to state

looks good to me. placing the bounding box in the kinematic state feels weird to me but it could prove helpful for different backends that specialize in soft bodies.


when i open camera app crashes

Can you please provide me below info:

ImagePicker Version
Device Info
Device Android OS

@ArunkumarAdhash Can you please help me out here. Any crash log will be great to help.
Thank you!

@ArunkumarAdhash Do you have any crash logs? That would be a great help.
Thank you!


Service editing is not working in Windows

Description:
$subject in Windows. I am trying to edit a simple resource and the diagram editor is getting freezed when doing that.
The sample code:
import ballerina/http;

listener http:Listener httpListener = new (8080);

service / on httpListener {
    resource function get greeting() returns string {
        return "Hello, World!";
    }

    resource function get greeting/[string name]() returns string {
        return "Hello " + name;
    }
}

Windows version
Windows 10 Enterprise
Ballerina Version
Plugin version V4.5.3

See the recording below
https://github.com/wso2/ballerina-vscode/assets/16300038/d16ea446-94e0-4d13-a5a5-7299409b640d

@axewilledge FYI. I will try to reproduce.

@anupama-pathirage Can you please confirm the VSCode version you are using?
I tried to reproduce this with VSCode 1.83.1, on windows 10 pro. But could not reproduce it.
https://github.com/wso2/ballerina-vscode/assets/1505855/05bd2996-eed1-412b-8a37-5648138d78e8

I tried with windows 11 and VSCode 1.83.1 and there is a delay in showing the form. Didn't get a freeze but the delay it self seemed like a freeze. Will try to debug the delay.


Preview2: Inconsistent Use Of Deadline In Monotonic Clock Subscription

It appears that there is an inconsistent use of absolute versus relative time in Subscription::MonotonicClock.
Specifically, if you look at how a subscription is constructed here we have:
    pub fn subscribe_monotonic_clock(
        &mut self,
        clock: &'a dyn WasiMonotonicClock,
        deadline: u64,
        absolute: bool,
        ud: Userdata,
    ) {
        let deadline = if absolute {
            // Convert an absolute deadline to a relative one.
            deadline.saturating_sub(clock.now())
        } else {
            deadline
        };
        self.subs.push((
            Subscription::MonotonicClock(MonotonicClockSubscription { clock, deadline }),
            ud,
        ));
    }

This clearly indicates that the deadline is supposed to be a relative duration from the current time, so if we are at t = 2s and want to resume at t = 3s the deadline should be 1s.
However, if you look at how we determine whether a subscription is ready here we do:
    pub fn result(&self) -> Option<Result<(), Error>> {
        if self.now().checked_sub(self.deadline).is_some() {
            Some(Ok(()))
        } else {
            None
        }
    }

Here we are checking if the subscription is ready by looking at whether the current time is after the deadline, assuming that the deadline represents an absolute point in time, which it doesn't as we saw above.
So if in the same example as above we check whether the result is available at t = 2.5s we will get that it is available, since 2.5s is greater than 1s, when it is really not.

Good catch! I've now submitted #6597 to fix this.

Fantastic!


How to use webpack in server

I'm making a webpack plugin for the Socketstream server. It is run with one or more client view definitions. For each a single JS bundle is created. At dev time they are kept up-to-date and served from memory. In production they are saved to disk.
Should I make one webpack instance per client, or a single common one?
I had the idea that I could create a webpack compiler instance without an entry point specified and with a MemoryFileSystem as the output fs, and then call compiler.run each time I need to generate a client view JS bundle to serve. I do not see any way to specify the entry point when calling compiler.run, so I assume this is not a supported use case.

If both clients are completely separate, you should separate the webpack bundles too. If both contain common modules and the user is likely to switch from one to the other, it would make sense to use a common webpack bundle to benefit from caching.

Is there a good example of how to output to an in-memory buffer? I've tried to emulate how other projects have done it, but I seem to get path errors rather than results.

The webpack-dev-middleware does this: https://github.com/webpack/webpack-dev-middleware/blob/master/middleware.js#L18

set outputFileSystem to a memory-fs instance
set options.output.path to "/"

@thepian Did you figure this out?

Not as I recall, I tried what sokra suggested and it didn't work for me.
https://github.com/thepian/ss-build/blob/master/lib/webpack/index.js

@thepian Any update?


Move the options into the hash

As it stands now, the options are stored in the query, and those options are sent to the server when the chart is accessed directly. If the options were moved to the hash, not only would some bandwidth be saved, but also the whole website could be cached client side (except for /get). No server-side processing is done to the options, so this seems like a safe change.
For example:
This http://www.charted.co/?%7B%7D would turn into this http://www.charted.co/#%7B%7D

Closing. We load URLs through the server.


doc: fix copy command for running manager locally

The command fails to execute because the directory "/tmp/adminconfig" does not exist.
cp -R ../charts/fybrik/files/adminconfig/* /tmp/adminconfig/

cp: target '/tmp/adminconfig/' is not a directory

So I try to change this command to
cp -R ../charts/fybrik/files/adminconfig /tmp/

Hi @ityuhui , thanks for the fix.


Fix serial check for BCM2838 / BCM2711

The second stage can/will support file-server so don't force
bootcode.bin for 2711. The second stage will (probably) reply
with SerialNumber==1 when it wants the file-server as on Pi3.

Thanks !


fix NR zip code display

PR checklist:

[ ] Changes previewed and QC'ed
[ ] In PR, mention team member for FYI, review, or approval

New content (if applicable):

[ ] Date updated
[ ] Tags and keywords updated
[ ] Feature box updated

New data (if applicable)

[ ] Added to Recently Updated
[ ] Added to 311-crosswalk

@etorem, I just revised a part of the NR output that fixes how the ZIP Codes are displayed here. Previously there was no space after the commas, so the overflow would spill out and it wouldn't wrap to a new line (which you can see on the live site now). I've done a little bit of testing to make sure I haven't introduced anything unexpected, but could you also please click through the NRs on this branch (hotfix-NR-ZIPs) to ensure that this ZIP printing bit is working? Thanks!

I clicked through NRs for an entry with a lot of zip codes, and it seems to wrap well. @mmontesanonyc

Thanks! Always helpful to have an extra set of eyes before a merge.


schema editor syntax highlighting is not working

I added graphql ace editor mode by loading the js build directly using a script tag.
I cannot reproduce this issue on my dev too will investigate.
No syntax highlighting for time being in the node config - use the built-in GraphQL Graphical Editor - a nice app to create GraphQL schemas visually if you like.

fixed with node-red version 1.3 making use of the resources folder feature


Multiple Homebridge instances with PM2

Hi! I've been using homebridge successfully using PM2 to auto start. Now I wanted to use multiple homebridges and apply pm2 as well. Would someone be so kind as to tell me how to do this process? I've been looking but I don't know which homebridge files to duplicate or how to use pm2 with a second bridge. I appreciate any help.

I've been trying to do this as well for the past few days.  I've created a homebridge.config.js in /home/pi  and have been trying to run pm2 start homebridge.config.js.  PM2 will start things and say they're "online", but essentially restarts them continuously.   Each folder in the "args" section has its own config.json file for each plugin, specifically only whitelisting that plugin.  Each individual instance works on its own running "homebridge -U /home/pi/.homebridge/XXXXX" perfectly either individually or in different terminal windows.
Homebridge.config.js file:
'module.exports = {
"apps": [
{
"script": "/usr/lib/node_modules/homebridge/bin/homebridge",
"name": "Homebridge-Alarm",
"args": [ "-U /home/pi/.homebridge/alarmdotcom" ]
},
{
"script": "/usr/lib/node_modules/homebridge/bin/homebridge",
"name": "Homebridge-HomeSeer",
"args": [ "-U /home/pi/.homebridge/homeseer" ]
},
{
"script": "/usr/lib/node_modules/homebridge/bin/homebridge",
"name": "Homebridge-DysonFan",
"args": [ "-U /home/pi/.homebridge/dysonfan" ]
}
]
}
'
The log file shows the following:
`  Usage: ProcessContainerFork [options]
Options:
-h, --help                      output usage information
-V, --version                   output the version number
-C, --color                     force color in logging
-D, --debug                     turn on debug level logging
-I, --insecure                  allow unauthenticated requests (for easier hacking)
-P, --plugin-path [path]        look for plugins installed at [path] as well as the default locations ([path] can also point to a single plugin)
-Q, --no-qrcode                 do not issue QRcode in logging
-R, --remove-orphans            remove cached accessories for which plugin is not loaded
-T, --no-timestamp              do not issue timestamps in logging
-U, --user-storage-path [path]  look for homebridge user files at [path] instead of the default location (~/.homebridge)

It seems like each argument isn't being sent on to homebridge, but I'm relatively new to setting up multiple instances.  Anyone have any thoughts?

I did it! Let me write it like I did and I'll soon write it here!

I was able to get this to work as well, in an easier fashion than my earlier post.  I made each instance have a new folder in the /home/pi/Desktop/Homebridge directory with individual config.json files.  The key for those config files is whitelisting the plugins you want to use in each instance (plugins section in the config), along with having a different name, username, and port for each instance as well.  An example is below for the node-alarm-dot-com plugin.
Then to run it in pm2, I ran the following command:
pm2 start homebridge --name Homebridge-Alarmdotcom -- -U ./.homebridge/alarmdotcom
Just repeat for each instance that you need, changing the name and location of the config file.  Hope that helps someone in the future!
Sample config to whitelist the plugins for each instance.
`{
"bridge": {
"name": "Homebridge Alarmdotcom",
"username": "BC:44:3D:E3:3E:12",
"port": 51829,
"pin": "987-65-432"
},
"description": "Homebridge config stuff",
"plugins": [
"homebridge-node-alarm-dot-com"
],
"platforms": [
{
"platform": "Alarmdotcom",
"name": "Security System",
"username": "XXXXXXXXXXX",
"password": "XXXXXXXXXXX",
"armingModes": {
"away": {
"noEntryDelay": false,
"silentArming": false
},
"night": {
"noEntryDelay": false,
"silentArming": false
},
"stay": {
"noEntryDelay": false,
"silentArming": false
}
},
"logLevel": 3
}
]
}


Make libpod build on 32-bit systems

Add a version of getFinishedTime that does not blow up on 32-bit systems

@rhatdan @baude @TomSweeneyRedHat @umohnani8 PTAL

LGTM

LGTM

@rh-atomic-bot r+


Refactor the initial setup commands and env setup

Not sure why though tests are failing for generate-erd.


Normalizer: interference between joined branches in match

It seems there's a bug in the reduction for matches when two branches are joined. The following code should verify, since f (B 5 3) should evaluate to 3, but it evaluates (apparently) to -1, indicating that the A pattern is interfering since its names are backwards.
type t =
    | A : int -> int -> t
    | B : int -> int -> t
    | C : int -> int -> t

let f (x : t) : int =
    match x with
    | A j i
    | B i j ->
        (i - j) + 1
    | C i j ->
        i + 1

let _ = assert_norm(f (B 5 3) == 3)

If one splits the A pattern from the B pattern (defining the A one in whatever way, it's not relevant), the file verifies. It also verifies if one uses assert instead of assert_norm.

Also there is something wrong when the amount of wildcard patterns differ between two joined branches. In this example:
type t =
    | S : t -> t -> t
    | C : int -> t

let f (x : t) : int =
    match x with
    | S (S (C i) _) j
    | S (C i)       j ->
        i
    | _ -> 42

let _ = assert_norm (f (S (C 8) (C 9)) == 8)

The equality should hold (and does without norm), but somehow f (S (C 8) (C 9)) reduces to S (C 8) (C 9) instead of 8, which is ill-typed!. From the SMT query:
(assert (! (not
;; def=/home/guido/fstar/bin/../ulib/prims.fst(183,37-183,74); use=./A.fst(14,8-14,19)
(or label_13

;; def=/home/guido/fstar/bin/../ulib/prims.fst(183,37-183,74); use=./A.fst(14,8-14,19)
(= (A.S (A.C (BoxInt 8))
(A.C (BoxInt 9)))
(BoxInt 8))
)
)
:named @query))

This is super ugly. I'm trying to fix it ASAP. Clearly, it is a soundness bug.
In most places in the compiler we work with pattern matching after opening the terms and using a named representation. So, in the SMT encoding for instance, this is handled correctly. The normalizer is trying to be smart (ha) and stay in de Bruijn representation and I screwed it up here.


Organisation specific security and customisations configuration

Hi there,
Is there any way to configure:

The branding of repman to use a organisation specific logo
Where the terms & conditions link on the login page goes
The allowed domains for/disable fully the ability to sign up?

Thanks!

Hi, out of these three things at the moment it is possible to enable / disable registration / logging (you can choose form or oauth).

The rest of the points make the most sense and we will gladly accept PR with such functions. I am available for further questions.


Tray icon with menu

Needs research

https://www.npmjs.com/package/systray

System tray implemented, it is turned on by default on all OS's except Linux.
Linux users that want the system tray will need to do:
sudo apt-get install libgtk-3-dev libappindicator3-dev

And start PimpMyStremio with --linux-tray


Seems to not work with the newest Xbox update

Tried to use it with a save from the latest Xbox update but it just wasn't loading it in, tried it with an older backup save from the previous update and that one ended up working fine

also on PC game pass, Am Able to load and save, but the save doesnt stick, no changes are there when loading the game back up


Merge recent changes on master to dev branch to resolve merge conflicts

…branch
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of “no breaking changes
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

To initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

/azp run automation - sdk

This pr is to get the last changes on custom-words.txt, in order to resolve the merge conflicts in this PR (merge dev branch to master): https://github.com/Azure/azure-rest-api-specs/pull/11588, @bowang-666 @paulgmiller could you please take a look? (please help double check, :) if I made any minor mistake, we will need another pr)

please let me know when it ready to merge.

@ChenTanyi should be good to go this will unblock the dev branch to merge to master


Update README.md

Added the CC3D and CC3D-Ops datasets.

Hi @elona-dup,
Thanks for your PR. Glad to merge it.
Best,
Jia


📃: Add a project to propose your crush

🔴 Title : propose your crush
🔴 Tech stack : CSS, HTML, js
🔴 Objective : to propose your crush
🔴 Summary : this use drag feature and some flattery lines to propose her
📸 Screenshots

✅ Details to Include When Taking the Issue:
Name :
Participant Role (Specify the Open Source Program name, e.g., GSSOC, Hacktoberfest, etc.):

Happy Contributing! 🚀
Wishing you all the best on your open source journey. Enjoy! 😎

please assign this task to me


Layout issue on cart page in mobile view arabic locale

Bug report
Title
Layout issue on cart page in mobile view arabic locale
Preconditions

framework Version. Master

Expected result
everything should be inside box like in en- https://prnt.sc/uv995g
Actual result
https://prnt.sc/uv8s5a

even in web also-https://prnt.sc/uvetn8

fixed in master


YQ-2892 support emulate YT in KqpRun

Changelog entry
Support emulate YT in KqpRun
Changelog category

New feature

Additional information

Added emulate YT in KqpRun
Added tables mapping in KqpRun
Supported YT file gateway

мне ок, но нужно согласовать с командой kqp


Ocean fishing shows many catchable fish as uncatchable

When Ocean Fishing many of the fish on the list are colored red when they are actually catchable.
I did a lot of ocean fishing the past summer so I had lots of catch data saved (and I remember how the fishing catch timer window used to look). Took a fishing break for a few months but now when in ocean fishing 4-5 of the fish are always marked red but I can still catch them (like the spectral fish to trigger a current). Also since they are marked red my saved catch times are not displayed.
Took some screen snips to show the issue (both in a normal current and a spectral current):

That's because they have no associated catch data for their limits (the game has information that they are weather- or time-restricted, but not what the concrete restrictions are).
GatherBuddy knows they should have restrictions, but not what they are, so they're displayed as unavailable.
This will be changed in the next version so that all oceanfish should always be displayed as available, since they also depend on  ingame weather that's not based on server time, which I don't intend to support.


Pixel value in view always linked to first layer

The pixel value in a layered view of medinria is always linked to the first layer. Even if the second layer of a view is selected.
Example:

drop the 3D T1 image from Head_Data
drop the Moteur_Droit image (same folder) on the same view
select the upper most layer on the right (Moteur_Droit)
move the mouse over the image, the pixel value annotation displays the values of the first layer

This bug takes place into VtkImageView.cxx line 1150 on the function GetValueAtPosition.
m_poInternalImageFromInput is not the good reference or is not updated on change layer.
This bug is due to refactoring of SetInputData->SetInputConnection and/or refactoring about medVtkImageInfo, but more probably the 1st refactoring.


tigera operator fails kyverno policy / validating webhook once bigbang is installed

If the calico addon is deployed as currently configured, it will be blocked by a kyverno policy once big bang is deployed.
Since Calico or a similar CNI addon is needed to enable netpol enforcement on EKS, we should do one of the following.

Use the iron bank image for the tigera operator (requires IB creds in IaC pipeline... we currently don't need them)
Move tigera-operator to DUBBD-AWS
Leave it as is but specify an optional variable use-ib-images: true for IB creds & IB image

I think we'd like to go with the first option for now so long as the tigera-operator iron bank image is being actively managed

team voted to leave it as is but specify an optional variable use-ib-images: true for IB creds & IB image (# 3)

calico has been removed


Redirect takes too long

If I knew how to optimize it, I would definitely do it, but I don't know how, and it would be very confusing, so if possible, some optimization would be appreciated.

Problems caused by the network have nothing to do with the project


Header links useless

This consolidated page of breaking changes would be useful, but every same-text header on the page is assigned the same id.
This means all the header hyperlinks point to the first instance on the page.
Per HTML spec please make id attributes unique on the page.

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

ID: d5971107-0c8c-13d3-b48a-96f9bf4ea6ea
Version Independent ID: 802d3628-64eb-fb23-a258-af523b536bd2
Content: ASP.NET Core breaking changes
Content Source: docs/core/compatibility/aspnetcore.md
Product: dotnet-core
GitHub Login: @scottaddie
Microsoft Alias: scaddie

I'm considering a proposal where each breaking change is its own article, which would resolve this issue.

At least for the .NET 5 breaking changes that are listed on separate pages now, this is fixed.
I don't think it's high enough priority to go back and add anchors to all these links for the .NET Core 3.1 and earlier versions, so I'm going to close the issue.


sitePicker does not display initialsites until you click the dropdown to select

Category
[ ] Enhancement
[x ] Bug
[ ] Question
Version
Please specify what version of the library you are using: [ latest  ]
Expected / Desired Behavior / Question
When you set the initialsites option the title of the in ititialsite should appear as the selected site on the initial display.
Observed Behavior
the picker appears blank until you hit the dropdown, then the site you selected as the initiualsites displays.
Steps to Reproduce
        <SitePicker
            initialSites={[{ id: item.siteId, url: decodeURIComponent(item.siteUrl), title: "sd" }]}
            context={parentContext.webPartContext}
            label={'Select site to capture'}
            mode={'site'}
            allowSearch={false}
            multiSelect={false}
            onChange={(sites) => {
                setItem((temp) => ({ ...temp, siteUrl: sites[0].url, captureToSiteId: sites[0].id, siteId: sites[0].id }));
                console.log(sites);
            }}
            placeholder={'Select sites'}
            searchPlaceholder={'Filter sites'} />

Thanks @russgove for reporting this! Good catch!
The fix has been implemented and will be included in the next release.


fix adding middleware to test route

resolves #60
What does this pull request change or introduce
Updates the way the middleware is added to routes. It was using an outdated method on the Kernel class.
Switched to declaring it on the route itself, which (I think) is common practise.
Also updated the Rector config, as it was not updated after the upgrade to v1
What is the impact of these changes
Mostly tests & static analysis
Checklist

[x] An issue was created before proposing this change
[ ] Tests for the changes have been added
[ ] Tests are passing

Steps to reproduce / test

run tests (vendor/bin/phpunit)
run PHPStan (vendor/bin/phpstan analyse --no-ansi --verbose)
run Rector (vendor/bin/rector process --no-ansi)

Thanks!

@mazedlx I was not done yet 🤣 🤣

Whoops 😅


onInstallConversionData dosen't return onAppOpenAttribution when mounting

I get a success callback from onInstallConversionData every time opening the app. I can get both callbacks of type  onInstallConversionDataLoaded and onAppOpenAttribution.
But I don't get the  onAppOpenAttribution  when mounting the app for the first time even if I pressed a referal-link.
If I have the app running in background and pressing the referallink I get an onAppOpenAttribution callback. If I open the app with the link and then open it from the background I get the onAppOpenAttribution when opening from background.
Do you now if this is how it suppose to be?

hey @katjastrof , are we talking about Android or iOS (+ OS version)? also please provide relevant code snippets of integration with AppsFlyer SDK.
Thank you,

I'm using Android. I'm using the react-native-appsflyer 1.2.13 and the Android OS I've tested on is 7 and 8.
  appsFlyer.onInstallConversionData(result => {       if (         result.status == 'success'       ) {         console.log(result)       }     })     const options = {       devKey: AF_DEV_KEY,       isDebug: true,     }     appsFlyer.initSdk(       options,       result => {         console.log(result)       },       error => {         console.error(error)       }     )
It's the appsFlyer.onInstallConversionData(result => {}) which gives a success callback when opening app. But the result type differs between being an  onInstallConversionDataLoaded  and onAppOpenAttribution.   The problem I have is when I mounting the app from an referal link I get the type  onInstallConversionDataLoaded . If I put the app in background and reopen it I get the onAppOpenAttribution.  If I have the app running from start in background and open from the same referallink I get onAppOpenAttribution directly.

I'm also experiencing this issue. When clicking a deeplink, onInstallDataLoaded event is consistently fired on launch/foreground, but onAppOpenAttribution only seems to be fired when the app is already running in the background prior to deeplink click, and NOT if the app is started up fresh. Also can confirm that backgrounding/foregrounding does then trigger onAppOpenAttribution in the fresh launch case. I have reproduced this behavior on both Android and iOS. Has anyone figured out a resolution or work-around for this?
Here's my implementation along with some log outputs for the various cases:
https://gist.github.com/bfinamore/a5e5c2f94861b7d49ee5f05f91223ae0

@af-fess is there any update on v1.4.0?

@santiph we have a fix on the native side of SDK. So we are going to release Android 4.8.20 and next after - RN 1.4.0.
We already tested it with the beta version and everything works as expected.
Thank you,

@katjastrof we tested a staging version, so far you can try this branch:
$ react-native install https://github.com/AppsFlyerSDK/react-native-appsflyer#dev/RD-16299/deeplink-oaoa-fix

#71 solved, https://github.com/AppsFlyerSDK/react-native-appsflyer/blob/master/CHANGELOG.md

I am not sure if it's solved I am facing that issue already:
When the app is already installed I get a succesful callback from onAppOpenAtrtribution method but if I do the test mentioned here there's no callback: https://support.appsflyer.com/hc/en-us/articles/208874366-OneLink-Deep-Linking-Guide#urls-testing-testing-deferred-deep-linking-for-scheme-uris. Which basically consists on uninstalling the app click the deep link and launch the app from the simulator.
DeepLink: https://goin.onelink.me/xcGq/1977c4de
react-native-appsflyer: 1.4.1
react-native: 0.55.4

This is happening on android sdk as well, and I believe they don't have fix for it yet.


istio: Update to release 1.4.6

Signed-off-by: Jarno Rajahalme<EMAIL_ADDRESS>Istio 1.4.6

This change is

test-me-please

Coverage decreased (-0.007%) to 45.626% when pulling 3d12c6914637df1a7b5e2e84e3bbc3eada1215b7 on pr/jrajahalme/istio-1.4.6 into 647a43c7953fd44521ddfdde7877bc9c4c6d03f1 on master.

@joestringer Yes, manually validated the doc changes.

test-me-please

test-me-please


unexpected end of macro invocation when passing no parameters to debug macro.

When I pass no parameters to debug!(), like so,
debug!();

the program will exit with the error unexpected end of macro invocation. The expected behavior is that an empty line should be printed, as it is with println!().

I think the situation is a bit different here compared to println as different log lines are more separate than standard output is. Why do you want to log no information?

It's an easy way of printing a line break.

This might be of more obvious value with #296, e.g. logging with structured values only, and no unstructured message?
Also an obvious workaround with current log is debug!(""), which works as expected.
Logging implementations could still decide, or be configured, to filter both debug!(""), any future supported debug!(), and debug!("\n") for that matter, if these log messages are viewed more an an abuse of the logging system.

Also the error message for an empty log macro invocation, is now even stranger then the OP's title, see below. I would imagine, if this should remain a compile time error, that a PR would be favorable considered to improve the error message:
Link to playground:
error: expected identifier, found `,`
 --> src/main.rs:9:5
  |
9 |     info!();
  |     ^^^^^^^^
  |     |
  |     expected identifier
  |     help: remove this comma
  |
  = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)


Render emails in Next JS client component throws at renderToStaticMarkup

Describe the Bug
I have a bug since upgrating to Next JS 14.x with @react-email/render on client side.
I already saw similar issues but none of them really address my use case scenario.
I have monorepo project with an @email package full of react-email components exported as react. I need to render them at runtime to pass dynamic props.
With react-hook-form onSubmit I send as POST body to my mailer api the stringified html of my emails templates rendered on the spot. I will share later usage example, but see simple reproducing repo.
Since next 14 I have this error:
Error: Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.
    at Object.r [as renderToStaticMarkup]

Maybe it was not intended for render to be used in the client bundle, but until now it was working fine. Advice on my usage is welcome.
Note: I can't revert to next 13 as there is serious issues with ISR cache.
Thanks for your awesome work to make email templating world easier 👍🏼
Which package is affected (leave empty if unsure)
@react-email/render
Link to the code that reproduces this issue
https://github.com/RomainGueffier/react-email-next-14
To Reproduce
Install and run project
In home page, visit server page => will work
In home page, visit client page => click show/hide template see console error shows error, crash
Expected Behavior
Be able to render emails as string in client side
What's your node version? (if relevant)
20

I think this might be the same issue that I'm having here #1054 . There's a PR for a fix, that should be released pretty soon. #1079

I think this isn't a duplicate of #1054. This is a client side-issue, #1054 was a server-side one.

From what I've gathered of this issue what's happening is that Next stubs the renderToStaticMarkup and renderToString react-dom/server functions to throw this error for them to avoid usage of these functions on their code but it causes this error for us as well.
On the server we can use other functions to avoid this issue but on the client there is really no alternative unless we use something that is not React specific for rendering. Maybe we should consider opening an issue on the Next repo for this

@RomainGueffier What happens if you use renderAsync for this instead?

Didn't think about it, it just works 😱. If so, it is a life saver alternative as this bug is show-stopper for us.
I did push in a secondary branch the same code with renderAsync usage :

code: https://github.com/RomainGueffier/react-email-next-14
preview: https://romaingueffier.github.io/react-email-next-14/

I put 6 use cases including server and client with both render and renderAsync

Edit: it does not work for both case in safari
[Error] TypeError: ReadableByteStreamController is not implemented — 833-c8e66b6a37b3d4b4.js:21:208229
	(fonction anonyme) (472-0a5a1881c82c5cac.js:1:3789)
	ig (833-c8e66b6a37b3d4b4.js:21:170551)
	iS (833-c8e66b6a37b3d4b4.js:21:171813)
	iW (833-c8e66b6a37b3d4b4.js:21:194735)
	(fonction anonyme) (833-c8e66b6a37b3d4b4.js:21:209461)
	Promise
	(fonction anonyme) (833-c8e66b6a37b3d4b4.js:21:204775)
	(fonction anonyme) (833-c8e66b6a37b3d4b4.js:29:82208)
	s (833-c8e66b6a37b3d4b4.js:29:81311)

Seems like using a polyfill can fix it in safari for now: https://github.com/MattiasBuelens/web-streams-polyfill

Seems like using a polyfill can fix it in safari for now: https://github.com/MattiasBuelens/web-streams-polyfill

That's really helpful, we'll probably use something like that for the renderAsync to be supported better.

Edit: it does not work for both case in safari
[Error] TypeError: ReadableByteStreamController is not implemented — 833-c8e66b6a37b3d4b4.js:21:208229
	(fonction anonyme) (472-0a5a1881c82c5cac.js:1:3789)
	ig (833-c8e66b6a37b3d4b4.js:21:170551)
	iS (833-c8e66b6a37b3d4b4.js:21:171813)
	iW (833-c8e66b6a37b3d4b4.js:21:194735)
	(fonction anonyme) (833-c8e66b6a37b3d4b4.js:21:209461)
	Promise
	(fonction anonyme) (833-c8e66b6a37b3d4b4.js:21:204775)
	(fonction anonyme) (833-c8e66b6a37b3d4b4.js:29:82208)
	s (833-c8e66b6a37b3d4b4.js:29:81311)

Seems like using a polyfill can fix it in safari for now: https://github.com/MattiasBuelens/web-streams-polyfill

How did you use polyfill in your project to fix it?

How did you use polyfill in your project to fix it?

I use next js layout.tsx file to import polyfill directly:
import Script from 'next/script'

type RootLayoutProps = {
  children: React.ReactNode
}

export default function RootLayout({
  children
}: RootLayoutProps) {
  return (
    <html>
      <body>
        {/*...code...*/}
        {/* distant cdn */}
        <Script src="https://unpkg.com/web-streams-polyfill/dist/polyfill.js" />
        {/* OR local file */}
        <Script src="/js/polyfill.js" />
      </body>
    </html>
  )
}

This has been fixed ever since<EMAIL_ADDRESS>

For reference ReadableByteStreamController isn't supported in Safari, so stilling getting ReadableByteStreamController is not implemented on version 1.0.2. This issue is tracked at  #1732

Still getting ReadableByteStreamController is not implemented on Safari!, renderAsync and polyfill doesn't fix.


1.10.8 broke ParkingAI :-(

Cars are stopping in the middle of the highway and other roads, "Thinking of a parking spot"
The Pathfinding stats never seems to go near zero... which did happen with previous version. as a result CPU gets overloaded, making the game unable to play anymore. For now I've disabled Parking AI.
Could you roll back to previous version for now?

Thanks for the update! Just to inform you, the ParkingAI is still bugged, it's a real strain on the CPU now, while in 1.10.7 it wasn't! could you please revert to that while a better solution might be in the pipeline....

I am looking into this issue now.

Fixed


Replace Response class with PSR-7 Response class

This is big PR. I recommend to try reviewing the single commits here.
The Response class will be replaced with an that implements the PSR-7 ResponseInterface.
So the callback function only needs the request object to be called. A PSR-7 Response object will now be returned. Alternatively a Promise can be returned in this function, but this promise MUST resolve a PSR-7 Response. If the response need time be created, a promise must be used (checkout examples/04-stream-request.php).
The new Response extends from RingCentral\Psr7\Response but adds the possibility to add an ReadstreamInterface implemnation as body.
Refs #28
Builds on top of #146

@clue yeah can't wait for v0.7.0 to be released and start adapting my work for v0.8.0 🎉 . This, v0.7.0, will be a huge milestone on it's own 👍

Thank you for all your rewievs! I rebased the branch. This didn't really changed the code much, but I hope this will make clearer what really changed.
Happy to hear your opinons about this.

Ping @clue . I fixed the README, also found some mistakes myself :) . Have a look.


[Question] Possible to remove events when viewing event

Would it be possible to include functionality to remove events afer opening/viewing them?
For example if I would like to add a "remove" button to the events which triggers the deletion. For this the object ID would need to be known by the custom remove() function, also to remove events from the backend.

Hey there. First of all thanks for taking interest in improving this library 😊
Here's a part of an answer to an almost identical question on Discord from the other day:

...
there is also a task in the project backlog, for enabling the usage of a custom component in the event-modal:
https://github.com/orgs/schedule-x/projects/3. With a custom component injected in the place of the modal, you could
implement a trash button, edit button or anything else related to updating events.

Basically, there are so many different use cases one could want to implement in a modal like that. What I want to avoid is having every single one of them flow into the library, and instead offer stronger customization options, like being able to define the content of the modal 100%. So it's in the pipeline of being made possible, just a little differently to how you would picture it.

But since it's a great question, and we've had twice in a couple of days now, I would suggest we leave this issue open until the custom component feature for the event modal has been implemented.

Great to hear and thanks for the quick response! In the mean time I found your other project Qalendar which already has this feature and it works great

Now a custom component for the event modal is available: https://schedule-x.dev/docs/calendar/vue & https://schedule-x.dev/docs/calendar/react
Glad to hear you like Qalendar 😊 Just bear in mind: that project is not in development anymore, merely maintained for bugs and dependency updates.


Error running "flutter run"

When i try to run "flutter run", i get the error message:
Error (Xcode): lib/core/auth/signup/privacy_policy.dart:52:27: Error: No named parameter with the name 'tagsList'.
Running on macOS with newest flutter and dart installed, trying to run on iPhone simulator for iPhone12-iOS 17.
How can i fix this?

Hello @Kneidl18!
Are you still facing this issue?

Closed due to lack of response. Please reopen if the issue is still relevant to you.
@Kneidl18.


Ownership card gives no routeRef error after upgrading

I have used the latest org plugin, and with the OwnershipCard there is additional implementation showing the url's for the catalog
For example in OwnershipCard.tsx we see const catalogLink = useRouteRef(catalogRouteRef); which gives the below error
Uncaught Error: No path for routeRef{type=absolute,id=Catalog}
at useRouteRef (index.esm.js:347)
at OwnershipCard (OwnershipCard.tsx:134)
meaning it was unable to establish the route url. Is this a known defect? Do I need to upgrade any other component?

I expect you'll need to use yarn backstage-cli versions:bump to update catalog-related packages that produce this routeRef. The org plugins lists the appropriate dependency, but with a monorepo you can sometimes get referential issues from having different versions of the same package. You can check which versions are present with yarn why @backstage/catalog-react.

Ok you can close this as I have resolved this by bumping the version


Build Intro video

[ ] Leverage : https://studio.d-id.com

Hiro how do you want me to do the vid? Like do I show off the presentation
and record myself?
On Sun, 29 Oct 2023 at 10:15 PM Hiro @.***> wrote:

Assigned #5 https://github.com/AIFame/boteach/issues/5 to @Hala3720
https://github.com/Hala3720.
—
Reply to this email directly, view it on GitHub
https://github.com/AIFame/boteach/issues/5#event-10800350847, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BBXSRYG6SY2S24L2YSEE3ETYB2ML5AVCNFSM6AAAAAA6VAIL46VHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJQHAYDAMZVGA4DINY
.
You are receiving this because you were assigned.Message ID:
@.***>

Ok, thanks. I might be unable to use AI. However, I’ll record it and let
you know
On Mon, 30 Oct 2023 at 5:46 PM Hiro @.***> wrote:

@Hala3720 https://github.com/Hala3720 yes, use studio-id - ai if
possible
—
Reply to this email directly, view it on GitHub
https://github.com/AIFame/boteach/issues/5#issuecomment-1785236615, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BBXSRYA4LZZOJ7LB6UZ7PODYB6VTDAVCNFSM6AAAAAA6VAIL46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBVGIZTMNRRGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hiro can we make a zoom meeting at around 9pm GST. I’ll screen record and
talk I just want you to record please
On Mon, 30 Oct 2023 at 5:47 PM Hala Karakany @.***> wrote:

Ok, thanks. I might be unable to use AI. However, I’ll record it and let
you know
On Mon, 30 Oct 2023 at 5:46 PM Hiro @.***> wrote:

@Hala3720 https://github.com/Hala3720 yes, use studio-id - ai if
possible
—
Reply to this email directly, view it on GitHub
https://github.com/AIFame/boteach/issues/5#issuecomment-1785236615, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BBXSRYA4LZZOJ7LB6UZ7PODYB6VTDAVCNFSM6AAAAAA6VAIL46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBVGIZTMNRRGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Hala3720 okay lets have a call at 9pm GST


Fraction_Class.cpp

this is amazing @Romi904
thanks for the contribution in my repo and please share this in social media and tag me on twitter


Migrate from Poetry 1.1 to Hatch

Description
This PR will migrate fastenv from Poetry 1.1 to Hatch. See br3ndonland/inboard#56 for more details and context around the motivations for this change.
Changes
Update configuration files for Hatch

Remove poetry.lock
Remove poetry.toml
Remove [tool.poetry] sections from pyproject.toml
Update [build-system] section in pyproject.toml for Hatchling
Move version number to inboard/__init__.py, which allows Python projects to import it with import inboard then inboard.__version__
Add project metadata to new [project] section in pyproject.toml, bringing this project in line with Python project metadata standards
Add optional dependencies to [project.optional-dependencies] groups
Add environments to [tool.hatch.envs.*] tables, using features for optional dependency groups, and path = ".venv" for an in-project virtualenv in the same location as a Poetry in-project virtualenv
Add Hatch environment names to .gitignore

Update GitHub Actions workflows for Hatch

Update test that ensures pipx installs correct version of Hatch
Update test for consistent in-project virtualenv directory (.venv)
Update caching for pip so that GitHub Actions caches dependencies
Update poetry run commands for Hatch, ensuring correct environment is selected with the HATCH_ENV environment variable or by prefixing each command with the environment name
Update package build and PyPI publish commands for Hatch

Update docs for Hatch

Add Hatch description and instructions to contributing.md
Update Poetry references in docs for Hatch
Move instructions for code quality checks below instructions for Hatch so that contributors understand how to set up the project prior to running code quality checks

Related

br3ndonland/inboard#56
[x] I have reviewed the Guidelines for Contributing and the Code of Conduct.

The Sourcery report from @sourcery-ai[bot] suggests that adding __version__ to fastenv/__init__.py decreases code quality. It actually increases code quality, because the version number is now available directly.


fix: [Parser] ! does not work if delimiters are changed

Description
From https://forum.codeigniter.com/showthread.php?tid=86155

fix ! does not work if delimiters are changed

Checklist:

[x] Securely signed commits
[] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[] User guide updated
[x] Conforms to style guide

@MGatner Thank you for reviewing!
Few members seem interested in Parser.


$ make runtime gets Rust core libs if they aren't there

It would be nice if the Makefile makes sure that the Rust core lib submodules (lib/libcore, lib/liballoc, lib/libcollections, and lib/librustc-unicode) are present when running $ make runtime for the first time. Right now, it doesn't, and if they aren't present, it fails.
I think the relevant part of the Makefile is here. If those directories are empty, the Makefile should run git submodule update --init.

This is wontfix as of #41


Assign minimum width to editor panes

Currently, it's possible to drag an editor pane all the way to the edge of the screen so that it is no longer visible

Addressed in #583

#583 has been merged. Closing.