New hierarchy find functions

This PR add various functions to find entities, components and script instances either through parents or children. It completes the already existing functions to find through children and can be used the same way.
List of new functions:

GraphNode.findDescendants
GraphNode.findDescendant
GraphNode.forEachDescendant
GraphNode.findAncestors
GraphNode.findAncestor
GraphNode.forEachAncestor
Entity.findScript
Entity.findScripts
Entity.findComponentInDescendants
Entity.findComponentsInDescendants
Entity.findScriptInDescendants
Entity.findScriptsInDescendants
Entity.findComponentInAncestors
Entity.findComponentsInAncestors
Entity.findScriptInAncestors
Entity.findScriptsInAncestors

It also simplifies some already existing functions in GraphNode.
I hope I documentated them correctly. I also added unit tests inspired by the existing ones.
I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

Personal take as an end user. I think Entity.findScript and Entity.findScripts could be very useful but the in parent don't seem as useful given that you can get the parent and then call find functions on that?

@yaustar What if you don't know if the script or component you want is the direct parent or higher in the hierarchy? What if the parent doesn't have the script or component you want but a child do?
For instance, as I love having generic scripts, I have some to tint, scale, etc. elements based on a parent button state (the button component can only tint OR change sprite of a single element) thus my scripts can simply find the closest button in its ancestors (which can be itself) and I don't need to write specific scripts each time a button doesn't have the same hierarchy.

Does Entity.findComponentsInParent search all the parents? Or just the immediate parent?

All the parents, same as Unity though "*InParents" would be more accurate indeed.

On a side note, does anyone know how to fix the errors in TypeScripts declarations? I wanted to documentate findScript[s]* functions so the first parameter show as string, typeof(ScriptType) like in ScriptComponent documentation but I can't find a way to make it work:

typeof ScriptType passes the check but the documentation can't be generated anymore
@typedef {...} doesn't work
import { ScriptType } from ... doesn't work

I included the suggestion to avoid empty arrays, and also applied it to find function.
However, using a this[] type feels really off. In your example, it would indeed return a TestNode[] but nothing prevents you from having a hierarchy mixing different subtypes of GraphNode, most of them being Entity in real use cases, so it would be wrong to say it returns a TestNode[] in this other example:
class TestNode extends GraphNode {
    // Nothing yet.
};
const rootNode = new GraphNode("hai");
const testNode = new TestNode("hai");
rootNode.addChild(testNode);
const ret = testNode.findInParent("name", "hai");

Moreover, that would be way beyond the initial objective of this PR because every properties and functions to get, add and remove nodes are documented as returning or expecting GraphNode thus they would all need to be changed accordingly.

Function are now pluralized as *InParents for clarity and are also non-recursive so the results parameter is now removed again.
find is now like findByTag to also remove the results parameter but still have a single array where matching nodes are pushed only when necessary.
I also added findByNameInParents to have the findByName equivalent.
By the way, about whether current node can be returned or not, I noticed that findByTag and findByPath are excluding it while find, findOne and findByName are including it. Shouldn't all those functions behave the same way? Though changing any of those might break some projects...

Your GraphNode#find is duplicating quite some lines of code now, but using a closure is of course a good idea to not add results = [] as default value argument.
You can just reuse GraphNode#forEach:
    find(attr, value) {
        const results = [];
        if (attr instanceof Function) {
            this.forEach((node) => {
                if (attr(node))
                    results.push(node);
            });
        } else {
            this.forEach((node) => {
                let testValue;

                if (node[attr] instanceof Function) {
                    testValue = node[attr]();
                } else {
                    testValue = node[attr];
                }
                if (testValue === value)
                    results.push(node);
            });
        }
        return results;
    }

I am also contemplating more helper functions for code like this:
        while (current) {
            if (current.name === name)
                return current;

            current = current._parent;
        }

GraphNode#forEachParent (inspired by GraphNode#forEach)
GraphNode#findOneParent (inspired by GraphNode#findOne)
Then there is also more code duplication regarding:
            // ...
            if (this[attr] instanceof Function) {
                testValue = this[attr]();
            } else {
                testValue = this[attr];
            }

Usually its called resolve. But yea, I guess you didn't plan to refactor all of these other methods.

I added forEachParent and used it in findParents the same way find is now using forEach.
I already did findOneParent but it was named findOneInParents, I changed its name for clarity as well as findInParents is now findParents and findByNameInParents is now findParentByName. I'm wondering about doing findParentsByTag but I can't think of relevant examples where it could be useful.
I'm not sure I understood correctly what you meant with the duplicated code to get the test value, but I added a const function at the beginning of the file to directly check if an attribute matches a value and all four functions are now using it. Is this what you had in mind?

I'm not sure I understood correctly what you meant with the duplicated code to get the test value, but I added a const function at the beginning of the file to directly check if an attribute matches a value and all four functions are now using it. Is this what you had in mind?

Thank you for the quick implementation, yes, that is what I had in mind and you can even go a step further:
/**
 *
 * @param {Function | string} attr
 * @param {*} value
 * @returns {Function}
 */
function createTest(attr, value) {
    if (attr instanceof Function) {
        return attr;
    }
    return (node) => {
        let x = node[attr];
        if (x instanceof Function) {
            x = x();
        }
        return x === value;
    };
}

If you do not "hardcode" node, but return a function which takes said node, other code just "melts" away, because its unified into one test function:
For example, GraphNode#find you can rewrite into:
    find(attr, value) {
        const results = [];
        const test = createTest(attr, value);
        this.forEach((node) => {
            if (test(node))
                results.push(node);
        });
        return results;
    }

That boils this method from 37 lines down to these 9 lines and makes it more reusable aswell. You can simplify/shorten the other methods with the same technique.

Those are useful, but might be overly specific and subject to memorizing due to quantity and naming.
Current naming convention uses "findBy".
In graphs, "parent" - is immediate node above, if you want to go all they way, then it is "ancestors", as opposing to "descendants".

In graphs, "parent" - is immediate node above, if you want to go all they way, then it is "ancestors", as opposing to "descendants".

Strictly I agree with you and in practice programmers prefer parents to refer to the ancestors of a node in an out-tree (as its called in graph theory).
For example in jQuery: https://api.jquery.com/parents/
.parents( [selector ] ): Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector.
What bugs me most is that I am supposed to be my own parent in the current implementation. This is aligned with Unity, but would that make any sense in practical usage?

Imo, what's more important than aligning with another game engine (or even with a javascript library) is both the consistency and the symmetry between finding among descendants and finding among ascendants.
In Unity, both GetComponent[s]InChildren and GetComponent[s]InParent are returning components of the current node (Unity doesn't have a lot of find functions anyway).
In jQuery, current node can't be returned in both find and parents (nor in children and parent as there are specific functions for searching through a single level).
But at the moment in PlayCanvas, as noticed already, findByTag and findByPath can't return current node while find, findOne and findByName can. It means for instance that node.findByName('SomeNode') might not return always the same node as node.findByPath('SomeNode'). That should be addressed whatever happens with this PR.

Also, about naming, findByName and findByPath are both returning a single node while findByTag returns an array, that's another inconsistency at the moment.

Good point which I would like to add to: find (ES6/2015) and filter (ES5/2009) suggest certain return values:
[10, 20, 30].find(x => x >= 20); // 20

[10, 20, 30].filter(x => x >= 20); // [20, 30]

In short:

find is associated with a single/the-first returned element that fits the bill
filter is what a JS dev associates with a returned array

So the outlier in your example is GraphNode#findByTag, which should return a single element based on established JavaScript and PlayCanvas methods.
But that would also mean that GraphNode#find is wrong, as it returns an array currently. From a purist point of view there shouldn't be any findOne method, as find is used for that. And the current find should be filter. forEach is already forEach in the engine and GraphNode#map is missing altogether.
IMO it would be nice/intuitive that GraphNode would follow the rest of the JS world, but it would also break a bunch of projects in the meantime...

IMO it would be nice/intuitive that GraphNode would follow the rest of the JS world, but it would also break a bunch of projects in the meantime...

Is there really any shared convention? I mean, there are find and filter for arrays, but the DOM API defines querySelector and querySelectorAll for DOM tree, jQuery find returns an array-like object, and it seems each library has its own naming anyway. Also, some people might expect calling filter (or map) will return an array of filtered/mapped direct children (JS array functions aren't recursive after all, except the ES10 flat and flatMap).
Moreover, I don't really want to be the root cause of breaking lots of projects if many functions end up being renamed 😄

Also, some people might expect calling filter (or map) will return an array of filtered/mapped direct children (JS array functions aren't recursive after all, except the ES10 flat and flatMap).

You would just write app.root.children.forEach instead of app.root.forEach. The developer can just think "forEach/map/filter/find will exhaust the underlying type". If you only want the direct children... pick the array instead.
jQuery messes this simple principle up, mixing find(), filter() and children() and people start to wonder what the actual difference is: https://stackoverflow.com/questions/10378757/difference-between-find-and-filter-in-jquery
But yes, I agree that JavaScript API's have disagreement, its the meme of having 14 standards and you are going to make the 15th to fix them all. I am not sure what will last longer, ES6 or jQuery. jQuery is actually 9 years older and gaining more downloads on NPM month after month.

Moreover, I don't really want to be the root cause of breaking lots of projects if many functions end up being renamed 😄

It would be another PR and people would actually need to share what their preference would be.
Possible stances I see regarding ES6 naming conventions:

Just keep everything as it is, mix and match conventions
Gently align naming with ES6 (e.g. a PR which slowly deprecates GraphNode#findByTag into GraphNode#filterByTag)
Hard align with ES6 and tell everyone to immediately fix their projects after update
Make use of OOP and just introduce class GraphNodeES6 extends GraphNode which follows ES6 naming conventions... every purist nagger like me can of course do that without any change in the engine aswell

And then the entire issue with "include current node in ancestors/parents or children"...

But at the moment in PlayCanvas, as noticed already, findByTag and findByPath can't return current node while find, findOne and findByName can.

To make it even stranger, yes, sometimes GraphNode#findByPath can return the current node:
const root = app.root.findByPath([]);

GraphNode != Array
There is no unified convention between standards/languages on such methods.
Also, including own node in search, with returning a single result - will lead to unwanted cases where in order to ignore own node - need to start from parent/each child. While not checking own node in filter/find methods - gives simpler choice to developer if need to check for self.
Again, GraphNode - is not an array. Its an individual node.
So node.filter

Also, including own node in search, with returning a single result - will lead to unwanted cases where in order to ignore own node - need to start from parent/each child. While not checking own node in filter/find methods - gives simpler choice to developer if need to check for self.

Problem is find, findOne and findByName have been always including current node since their creation many years ago so how not to break anything? Though I agree it must be avoided as much as possible, breaking projects happened in the past so it's always an option.
However, as people never had the choice of ignoring current node, I'm now wondering about the actual usage of the different find functions and in how many cases people are relying on the fact these functions can return self node (or self component). Because maybe the behaviour can be changed without actually breaking many projects but just a few ones? For instance, most people using findByName are probably calling it on nodes which can't be returned because its name is never the searched one.

Removing current node from GraphNode#find is going too far, as that behaviour is expected and relied upon.
But removing self from GraphNode#findAncestors makes sense to me (after all its called GraphNode#findAncestors and GraphNode#find isn't called GraphNode#findDescendants).
You also need to test your changes against non-trivial projects to find the special cases. SeeMore for example is doing this:

You can do so by e.g.:
    findByName(name) {
        if (this.name === name) {
            console.log("findByName", this, name);
            debugger;
        }
        return this.findOne('name', name);
    }

So let's try another solution by adding a parameter to let the user choose to include self node in the search. It's true by default for GraphNode.forEach, GraphNode.find, GraphNode.findOne, GraphNode.findByName, Entity.findComponent[s] and Entity.findScript[s] and false for all the other so old functions keep their default behaviour.
However, I'm faking overloading so the second parameter of some functions can be skipped when irrelevant (or not used) and I'm not sure if it respects PlayCanvas standards.

However, I'm faking overloading so the second parameter of some functions can be skipped when irrelevant (or not used) and I'm not sure if it respects PlayCanvas standards.

I can't speak for others obviously so my personal objection is increased code complexity. I liked to simplify the methods, they are shorter and (at least for me) easier/clearer to read.
_getIncludeSelf and if (typeof query[query.length - 1] === 'boolean') { includeSelf = query.pop(); } etc. is doing the opposite now.
The initially reduced complexity is back and it is hard to understand/track and just harder than necessary.
You are basically trapping into flag argument code smell, when you just want e.g. GraphNode#findExcludeSelf:

https://medium.com/@amlcurran/clean-code-the-curse-of-a-boolean-parameter-c237a830b7a3
https://martinfowler.com/bliki/FlagArgument.html

And then the question is: how many people need that method or in which context do you require it?

Speaking from an end user: I think the Entity.findScript and Entity.findScripts are the most useful out of the list and I'm thinking about pulling that out in a separate PR, keep them as consistent as possible with the out find functions (which from this thread seem to be inconsistent as it is).
The find in parents/ancestors would need an engine team call about whether they should be core engine functionality. It's not something I've seen asked about on the forums but wonder how many teams/developers have written their own variant 🤔

Our team made a similar one to .findScript, as some members prefer to access the script instance of a child entity for one reason or another. We don't have "find in parents/ancestors", as we never had a need in such.

You can also notice how the current version of findByTag is using flag argument, though in an anonymous function (when it actually wasn't before that change 8 months ago).

Good point, a helper function could be:
    findExcludeSelf(attr, value) {
        const results = [];
        const test = _createTest(attr, value);
        this._children.forEach(child => {
            child.forEach((node) => {
                if (test(node))
                    results.push(node);
            });
        });
        return results;
    }

And then it just becomes:
    findByTag(...query) {
        return this.findExcludeSelf(node => node.tags.has(...query));
    }

No flag arguments
Reusable
Not pushing checkNode/includeSelf into every stack frame and removing if (checkNode ...)
Keeps method signatures as they are

And then we can also wonder why find and findOne can take either a function or an attribute name and a value, instead of having findByAttribute and findOneByAttribute for the latter? Most of the complexity comes from that weird overloading in the first place.

I agree, so why create even more overloading?

Anyway, I don't see how adding tons of functions for every single variant would help reduce complexity for the user. And that's worse if adding as you're suggesting functions like map, some and every for which one can ask the same btw: how many people need these methods or in which context are they required?

Technically you already used GraphNode#some without calling it so:
This code:
    isDescendantOf(node) {
        return !!this.findAncestor(parent => parent === node);
    }

Is semantically this:
    isDescendantOf(node) {
        return this.someAncestor(ancestor => ancestor === node);
    }

    someAncestor(attr, value) {
        const test = _createTest(attr, value);
        let parent = this._parent;
        while (parent) {
            if (test(parent))
                return true;
            parent = parent._parent;
        }
        return false;
    }

So now I'm thinking of simply closing this PR and just keep the new functions for myself. The real usefulness relies in the new Entity functions I've been using in all of my projects for quite some time but it seems more important to focus on GraphNode details which weren't even the point of the PR.

Right, I definitely see the point for your includeSelf code and maybe that should be considered in a follow-up PR while this PR refactors and adds new methods and keeping the function signatures as they are (once the signatures are changed, its hard to go back).

We don't have "find in parents/ancestors", as we never had a need in such.

@LeXXik Just regexing a bit (via while \([a-zA-Z0-9 &&\.]+\)) and there is e.g. this code:
https://github.com/playcanvas/engine/blob/b17180c12adabc4a24740aa92e5e25144b7b3fe8/src/framework/components/collision/system.js#L102-L113
This looks like this could be expressed way shorter via GraphNode#findAncestor(untested):
                    const isTypeCompound = entity => entity.collision && entity.collision.type === 'compound';
                    component._compoundParent = entity.findAncestor(isTypeCompound);

@kungfooman ah, I meant in our team's custom code, not the engine 😅

So, last try to make everyone happy. I considered find, findOne and forEach as legacy, so the only changes in them are now the refactoring.
There are now findDescendant[s], findAncestor[s], forEachDescendant and forEachAncestor for traversing tree except the current node, and most importantly all of the findComponent[s]* and findScript[s]* helpers in Entity deriving from them.
I kept findByName and findByTag refactorings but because one is including current node while the other don't, I'm not adding any descendant/ancestor variant. If anyone want to add other GraphNode functions, then it shoud be done in another PR to keep this one focused on the main GraphNode find functions and the new Entity component/script finding functions.

Thank you for the changes @NewboO !
I had no time to test it yet, just looking it over. Two notes:

_createTest is missing type information through JSDoc, a nice example is e.g.:
https://github.com/playcanvas/engine/blob/b17180c12adabc4a24740aa92e5e25144b7b3fe8/src/framework/components/element/text-element.js#L50-L71

JSDoc that should work:
/**
 * Helper function that handles signature overloading to receive a test function.
 *
 * @param {Function | string} attr - Attribute or lambda.
 * @param {*} [value] - Optional value in case of `attr` being a `string`
 * @returns {Function} Test function that receives a GraphNode and returns a boolean.
 * @ignore
 */

I would also remove the underscore, it is private by default if you don't export it in in ES6 file scope, but I've seen it with and without underscore, so it doesn't really matter I guess.

I don't see your Contributor License Agreement:

I confirm I have read the contributing guidelines and signed the Contributor License Agreement.

We had a quick discussion, and agreed it's a great PR from many points of view, but it's so large, including the follow up discussion, that it's becoming hard to continue the work on this.
The suggestion is to break it down into small issues, addressing individual improvements / new APIs. The discussion should take place on those separate issues, and a relevant PR should be created when an agreement is reached there.
If there are some optimizations to existing done here for example, it'd be awesome to move those to a separate PR, as that would be valuable to have reviewed and merged.

Finally took time to break down this PR.
So 2 new PR :
#5850 for the optimization
#5851 for the most consensual new feature
And a discussion #5852 for the main debate about ancestors/descendants.


use asyncio in launch_notebook

The launch_notebook function is synchronous -- this will eventually lead to a terrible user experience. Should be using asyncio.

this is being resolved by other means in #24


Lag spike when block update

When pairing Optifabric with Ferrite Core, whenever a block updates it causes a massive lag spike. The fps quickly goes down but back up so f3 doesn't notice but while playing in-game, whenever you break a block or a block updates like water or sand, then lag spikes occur. Everything else is normal with tiny lag spikes when loading chunks or placing blocks

What version of MC, FerriteCore, Optifine and Optifabric are you using? Is the lag spike definitely worse than without FC? You can see a graph of the time per frame by pressing Alt+F3.

I'm unable to reproduce this in a clean superflat world with default settings. Did you change any settings? Are you using shaders or resource packs? Is there anything special in the chunks this happens in?

I am using a default world and a render distance of 13-27. I am also experiencing this issue when I am on my minecraft server that has the terra world generator. I have my own resource pack that is based off of the Stay True texture pack. The settings I am using is 9-11 simulation distance, 13-27 render distance, all settings turned on in performance tab, and nothing else is changed that i can think of. I am currently not on my computer but when I can go on it I can provide a screenshot.

Please upload screenshots when you can. The only scenario where I get that level of lag spikes is with chunk building set to blocking and a chunk filled with fences, but the lag is about the same with and without FC.
Also, please install Spark. Run /sparkc profiler start --thread *, cause as many of the laggy block updates as quickly as possible, then run /sparkc profiler stop and post the link generated by that.

Alright I will. I will also include a list of mods that are with Optifine/Optifabric. I have included other mods like voicechat and memory leak fix and others. I will also include pc specs


Operator Paused Flags

Allow to pause reconcilation of operator managed instances.
This feature is intended for debugging and troubleshooting in KubeCarrier installations.
Acceptance Criteria:

Managing Controllers (DerivedCR/ServiceCluster/etc) MUST not change the pause flag/MUST not change it back to paused: false
Controllers MUST skip reconciling objects with paused: true
Controllers MUST still update the status
Controllers MUST assume the component is in Ready state
Controllers SHOULD report the object to be paused

Example Fields:
spec:
  paused: true
status:
  conditions:
  - type: Paused
    status: "True"
    message: "Reconcilation is paused"
    reason: Paused
  - type: Ready
    status: "True"
    message: "Reconcilation is paused, assuming component is ready."
    reason: Paused
  phase: Paused

Controllers MUST assume the component is in Ready state.

Why controller should assume the component is in Ready state? How about controller just respects the Ready status of the component? For example, if the component is Unready then it remains Unready after Paused, and if the component is Terminating then it remains Terminating after Paused.

Well if a component is crashing for debugging and you start a replacement locally (just as an example) the Operator instance will stay unready and thus also the DerivedCR etc instances.
This will most likely prevent you from actually debugging stuff, because everything will wait for your component to be ready first.

Allow to pause reconcilation of operator managed instances.
This feature is intended for debugging and troubleshooting in KubeCarrier installations.

Could you describe what use case the currently implemented solution doesn't satisfy for you? Here's the situation as it's implemented right now:

The operator's deployment isn't changing the replicas subresource (that is true for all our components)
This allows telepresence to highjack the running deployment, and start one anew locally in a debugging mode
You can place breakpoints in the operator's controller loops, thus achieving the intended pause effect.

Furthermore, if you'd like you could scale concrete deployment down to 0 replicas, effectively pausing that microservice as well.

Could you describe what use case the currently implemented solution doesn't satisfy for you?
The current implementation works very nice for Telepresence, but you can still not touch any related configuration (ConfigMaps,Secrets,RBAC) without shutting down the Operator completely, which is something you usually don't want to do on your whole KubeCarrier installation.

Kubermatic has feature and it was invaluable in debugging configuration mistakes and when restoring backups, while keeping as much of the platform operational as possible.


Fatal error: Method VcoZfMinify\View\Helper\HeadLink::__toString() must not throw an exception

I got the vco-zf-minify from here -  https://github.com/vcomedia/vco-zf-minify and followed the read me file for configuration, and installed the vco-zf-minify in the 'ZendSkeletonApplication - https://github.com/zendframework/ZendSkeletonApplication' , the module is not working, I am getting the following error - "Fatal error: Method VcoZfMinify\View\Helper\HeadLink::__toString() must not throw an exception in /var/www/html/public/ZendSkeletonApplication/module/Application/view/layout/layout.phtml on line 0"
can you please help me to fix the error ?

Can you please pull the latest and see if you get a more helpful error?

Now I am getting this Error : Fatal VcoZfMinify Error: Zend\View\HelperPluginManager::get was unable to fetch or create an instance for mediapath

Ok, that's very helpful!  I'm out of the office this morning and will address when I get back in this afternoon.

Any luck with this issue ?

I apologize this wasn't clear in the readme.  But this module has a dependency on mediaPath module.  https://github.com/vcomedia/vco-zf-mediapath.  I believe all you have to do is enable the module in application.config.php:
return array(
'modules' => array(
'VcoZfMediaPath'
)
);


module resources not public

Describe the bug
CheckoutSession::retrieve_line_items(...) uses param &RetrieveCheckoutSessionLineItems which is not public and can't be used.
To Reproduce
Using RetrieveCheckoutSessionLineItems can't build:
use stripe::resources::checkout::checkout_session_ext::RetrieveCheckoutSessionLineItems;
Expected behavior
RetrieveCheckoutSessionLineItems would be available outside library like
use stripe::resources::checkout::checkout_session_ext::RetrieveCheckoutSessionLineItems;
Code snippets
No response
OS
macos
Rust version
v1.81.0
Library version
0.39.1
API version
2024-06-20
Additional context
No response

:tada: This issue has been resolved in version 0.40.0 :tada:
The release is available on:

v0.40.0
GitHub release

Your semantic-release bot :package::rocket:


[Feature] Translate README.md into Chinese version.

Summary
There are many Chinese novice programmers who want to get start to use GitHub but can't read pure English docs.So I'd like to write a new file called "README_CN.md" translated the origin file into Chinese version and make a hyperlink to it.
Changes
I would translate this README.md file into Chinese version and add the hyperlink to the origin README.md file.
Additional context
Hope you can permit me to do so, many Chinese beginner can't start to use GitHub because of the pure English environment.If we provide the "introduction-to-github" project a Chinese version's README.md, it's perfect for the Chinese beginners to get touch with this platform.So I wanna lower the barrier for these beginners even reading barrier.

you are permitted

希望大家能夠允許我這樣做，很多中國初學者因為純英文環境而無法開始使用GitHub。如果我們提供中文版的README.md「introduction-to-github」項目，非常適合中文初學者熟悉這個平台。所以我想降低這些初學者的閱讀障礙。希望大家能夠允許我這樣做，很多中國初學者因為純英文環境而無法開始使用GitHub。如果我們提供中文版的README.md「introduction-to-github」項目，非常適合中文初學者熟悉這個平台。所以我想降低這些初學者的閱讀障礙。

I would translate this README.md file into Chinese version and add the hyperlink to the origin README.md file.

I would translate this README.md file into Chinese version and add the hyperlink to the origin README.md file.

https://github.com/skills/introduction-to-github/issues/862#issuecomment-2437971226

希望大家能夠允許我這樣做，很多中國初學者因為純英文環境而無法開始使用GitHub。如果我們提供中文版的README.md「introduction-to-github」項目，非常適合中文初學者熟悉這個平台。所以我想降低這些初學者的閱讀障礙。希望大家能夠允許我這樣做，很多中國初學者因為純英文環境而無法開始使用GitHub。如果我們提供中文版的README.md「introduction-to-github」項目，非常適合中文初學者熟悉這個平台。所以我想降低這些初學者的閱讀障礙。

Hello!
What can I help with?
On Fri, 13 Dec, 2024, 11:48 pm lopezdanni559, @.***>
wrote:

hey
—
Reply to this email directly, view it on GitHub
https://github.com/skills/introduction-to-github/issues/862#issuecomment-2542003636,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BNUVTKQRSFLVOYUPA7YO3432FMQGVAVCNFSM6AAAAABPAU7BVCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBSGAYDGNRTGY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

to unblock the app

Please describe properly
On Sat, 14 Dec, 2024, 12:25 am lopezdanni559, @.***>
wrote:

to unblock the app
—
Reply to this email directly, view it on GitHub
https://github.com/skills/introduction-to-github/issues/862#issuecomment-2542060026,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BNUVTKTGOBR7RNZEPYAQ22L2FMURNAVCNFSM6AAAAABPAU7BVCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBSGA3DAMBSGY
.
You are receiving this because you commented.Message ID:
@.***>

what

Is this issue

This a comment to an issue

its great


setState can only update a mounted or mounting component warning

Hi,
I'm trying to use this boilerplate with react (react branch) but when I try to set a state (this.setState) I keep getting this warning in the console:
warning.js?8a56:33 Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the ReactComponent component.
The component isn't unmounted, even with the easiest state change I get the same warning. Maybe this has something to do with the fact that it's a chrome extension?
I hope someone can help me out here.
Thanks in advance,
Giel.

Can you share some minimal scenario to reproduce this error? I made a quick test here and everything looks fine.

export default class extends React.Component {
  constructor () {
    super(...arguments)
    this.state = { name: 'samuel' }
  }

  onClick () {
    this.setState({ name: `other name ${Math.random()}` })
  }

  render () {
    return (
      <div>
        {this.state.name}
        <button type='button' onClick={this.onClick.bind(this)}>
          Change name
        </button>
      </div>
    )
  }
}

Hmm that's weird, I have the same code the only difference is that I put something like: this.onClick = this.onClick.bind(this); in the constructor. When you do that you get the error. When I do the binding in the render everything works like expected.

I was investigating this and I found something curious. The problem that you related in fact exists and it is related to the React Hot Reload, I don't know exactly what is happening, but if you include the es2015 babel preset, everything works fine.

I also ran into this problem. If you need a quick fix, remove the binding in the constructor and bind it when you call it in the JSX part.
Do this:
<form className='uk-grid-small' data-uk-grid onSubmit={this.updateResults.bind(this)}>
Don't do this:
this.updateResults = this.updateResults.bind(this)

Just a heads up that using bind() on the jsx in the render function might cause some performance degradation, as explained here https://medium.freecodecamp.org/why-arrow-functions-and-bind-in-reacts-render-are-problematic-f1c08b060e36
But yeah, if you just need a fix it is a workaround.

Upgrading the react hot loader to the latest version (f0c9042215d8aa061fa6302d8be09f4ae7f7da76) fixes this problems. 👍


add code completion for functions from imported packages

From<EMAIL_ADDRESS>on January 25, 2012 17:26:41
What steps will reproduce the problem? 1. 2. 3. What is the expected output? What do you see instead? What version of the product are you using? On what operating system? Please provide any additional information below.
Original issue: http://code.google.com/p/r4intellij/issues/detail?id=23

fixed in v1.0


Bug with the face position

If the face found in previous frame, but not found in curent frame, it seems that the rectangle still exist.(try
to block the face and move)

Yes. When the face isn't detected using the face detector it uses template matching to track the face. Read the readme file to see how the algorithm works. You can lower the template matching max time variable to something like 0.5 to "fix" this.


Exception when action method is missing HttpVerb

The following action method works perfectly in ASP.NET Core and responds correctly on all http verbs (GET/POST/PUT/DELETE). However, swagger throws an exception while attempting to connect to /swagger/v1/swagger.json endpoint. The exception is
Connection id "0HKSMBFU44VRR": An unhandled exception was thrown by the application.
System.NotSupportedException: Unbounded HTTP verbs for path 'health'. Are you missing an HttpMethodAttribute?
I was able to resolve by adding the [HttpGet] attribute. However, it looks like it should not have thrown an exception?
public class HealthController
    {
        [Route("health")]
        public IActionResult GetHealth()
        {
            return new OkResult();
        }
    }

This is by design because Swashbuckle maps one action to one Swagger "operation" which in turn maps to a single HTTP verb. This hasn't really been an issue because the typical use of Web API is to bind specific verbs to specific actions.
May I ask why you want to overload a single method in this way?

I am getting the same message and all the methods of my controller do have just one HTTP verb. All except the controller constructor which (I believe) seems to be why the error is being thrown. Is it possible to have the document generator ignore constructors?

Be sure to check the controller and base class for any public methods.
I had a public method in my base class that I had to change to protected.

@aaronralls Your comment above (while old) is the only reference I can find about the protection level of methods (I am obviously missing something). I've added swashbuckle.aspnetcore to an api with only a single controller, and I get the 500 error described here if any method (in this case, there is only one method) is not protected. But if I make it protected, the documentation is blank. Are documented methods supposed to be public, and others protected?
This is the version that gives me an empty swagger doc. Changing the method to public causes the 500 error loading the swagger.json.
[HttpGet("")]
[Route("{id}")]
protected IActionResult GetBasic(string id)
{
    ....
    return Ok();
}


Function values not working as expected with react-transition-group

Good morning!
Recently I was migrating a component from using the imperative sheet.addRules API in its render method in order to pass dynamic styles to the classnames used by CSSTransition to one which uses function values. The old way still works, but
Demo here:
https://codesandbox.io/s/4j1q5y86q0
Here they are side by side in the tree:

One thing I noticed is that the function values version appears to be receiving 2 sets of classnames, although I would expect the the styles from at least one of them to be visible.
versions used:
    "react": "16.2.0",
    "react-dom": "16.2.0",
    "react-jss": "8.4.x",
    "react-scripts": "1.1.0",
    "react-transition-group": "2.3.0",
    "tinycolor2": "1.4.1"

Can you please simplify the example  by removing dependencies that are not necessarily to reproduce? Mb without transition group, just updating etc.

Sure, here is a verison which does not use transitions. I thought they might be the culprit, but I guess not: https://codesandbox.io/s/7mwvp914l0

Oh, damn, you got me here http://cssinjs.org/json-api?v=v9.8.1#support-of-important
Important inside of a string value doesn't work. It is not a JSS limitation, it is the CSSOM setProperty API.
Please send a PR to the docs where it needs to be documented additionally, where you would have found that information.

Array syntax fixed it, thanks!

And seeing as how the main readme links to the detailed function values documentation, that's my own fault.

Sorry to spam this issue, but do you think it would it make sense to preprocess return values from function values like so?
const transformIfSuffix = suffix => val =>
	typeof val === "string" && val.endsWith(suffix)
		? [val.slice(0, val.indexOf(suffix)).trim(), suffix]
		: val;

const transformIfImportant = transformIfSuffix("!important");

will cost you performance, function values in jss are high performance and work for animations as well

I think also array syntax is nice… so the only problem is to make sure people read it

I'm not sure how you feel about adding a warning in debug mode but people might read it there ;)

oh yeah, good idea, in dev mode we could totally warn!

Please create a separate issue!


Tests

Hi,
I've previously worked on a Conan-package for Catch myself, but never published it. I've added some of my stuff here, most importantly package tests. Let me know what you  think!
Cheers,
Björn

I've update to version 1.5.6 as well.


Chat GPT Eduaction (Moodle)

Describe the feature or improvement you're requesting
Moodle, Quality Matters, and other online templates are nowadays provided to create MOOCs, the problem is that generating the template involves time and advanced IT expertise (Yaml, JSON), in addition to domain expertise.
It would be very useful to have an implementation in Python or similar that allows through chatgpt and raising the theme of the course, generate the template to load in moodle, which meets the highest international quality standards, which serves as a basis for the teacher to worry only to load the template and begin to customize the content.
This would help to accelerate the speed with which knowledge is shared, going one step further.
Additional context
https://docs.moodle.org/403/en/Course_restore
https://www.qualitymatters.org/qa-resources/rubric-standards

Are you saying you'd like to be able to just ask ChatGPT to generate moodle config for you? If so, I think that this is something that would be best provided as a third party library and not as part of the core OpenAI SDK.


Fix cart functionality using Redux toolkit

hey @codervivek5 ,
Could you please assign the #1710 issue to me ??

First conduct a meeting regarding the issue then start working on it ...let me kno the timing and also join discord

hey @codervivek5  Please let me know the timing for the meeting. Also, I will join the Discord server for further communication.


Document things in README for new update

Instructions about the csv file inputs and outputs (how to pass in inputs, when outputs are generated and where, etc)
Instructions for passing in a custom grib with -g or what happens if you don't (creates new data.grb file and uses that)
Detailed info about what should be passed into the code and how to run the big while loop (run ./runpathfinder, how long it typically takes, how to use network table vs. coordinates, what happens if network table connection not made or gps not found on table)
Details about printing nth coordinate)
Trim all the useless stuff (at least, put it somewhere else OR delete)
In README: cut out land/waves, move setup to different .md file, move linting and tests and contributing and problems to a details .md, and replace with these more important documentation, probably some example pictures, lots of example code (commands to run to get different outputs, files to change to get differnet results, where files will be created)

Also about how the planner works, which files are most important, and how planet size and csvs work

Resolved, with some TODOs left in the README


js version of salesgpt documentation

js version of salesgpt

Hi @jacoblee93 , this pr is from my webcast audience, hope it fits. :)

Thank you!


Bulk Entry Form

Closes #245
Closes #246
Description

Adds a create route for the Bulk Entry create form
Adds a test for the new route
Adds a new link on the Character Detail page to open the bulk entry form
Adds components BulkEntryCreate and BulkEntryCreateForm

Lets go ahead and merge this!


Tuning GRU performance for batch size > 1

GRU with batch size >1 is implemented on the assumption that Lotus use single-thread Eigen Gemm. The assumption doesn't hold anymore. MLAS, MKLDNN and MKLML support multi-thread. We don't rely eigen gemm anymore.
This PR implements batch size > 1 as batch size ==1. With this change, we have about 2x performance gain for GRU.Please refer to the performance test below:
(ms)
Batch_size | Seq_length | input_size | hiddden_size |       Old |     New
8 |         30 |        512 |          512 |     19.16 |    10.47
16 |         30 |        512 |          512 |     28.13 |    15.15
32 |         30 |        512 |          512 |     36.97 |    26.89
8 |         30 |       1024 |         1024 |   142.853 |    55.67
16 |         30 |       1024 |         1024 |   184.397 |    72.32
32 |         30 |       1024 |         1024     236.364 |   112.78

MLAS, MKLDNN and MKLML support multi-thread. We don't rely eigen gemm anymore.

We don't, but does that mean nobody will? Would it be better to leave the batch parallel option in there, and only set it when we are using Eigen GEMM?

I assume a similar change will benefit the two LSTM implementations as well given those use the same batch parallel approach.

I will do the same change for LSTM. I just curious in what kind of scenario user will use eigen. I don't see any benefit from that.

I will do the same change for LSTM. I just curious in what kind of scenario user will use eigen. I don't see any benefit from that.

https://github.com/Microsoft/onnxruntime/pull/620 strongly suggests it happens.

MLAS, MKLDNN and MKLML support multi-thread. We don't rely eigen gemm anymore.
We don't, but does that mean nobody will? Would it be better to leave the batch parallel option in there, and only set it when we are using Eigen GEMM?

Adding more macros into the code makes it hard to maintain. What's more, if customers build onnxruntime with single-thread eigen explictily, i don't think performance is their concern. Their main interest is to run onnxruntime with single thread? If so, we should not run GRU with multi-thread implicitly.

#620 strongly suggests it happens.
The concern for this PR is that ONNXRuntime should be able to run without MLAS. For GRU, removing the batch parallel code doesn't change the ground.


contain: invert -> zoom out moves image inside, then jumps on drag

Subject of the issue
When using contain:invert, zooming out moves the image away from the border of the container. Then, when starting to drag the zoomed out image, it suddenly jumps into the correct position, aligning itself inside of the container.

Your environment

version of jquery.panzoom: 3.2.2
version of jquery: 1.12.4 or 3.1.0 (same problem)
which browser and its version: chrome 61, Safari 11

Steps to reproduce
Can be reproduced using the original demo. Example 4 for contain:invert
http://timmywil.github.io/jquery.panzoom/demo/

Click Zoom In
Pan image to a corner
Click Zoom Out -> Image moves away from the border
Try to pan the image -> jumps into corner

Expected behaviour
While zooming out, the image should stay aligned with the border. It should not move inside. In other words, the background should not become visible. It should end in the position in which it currently jumps when trying to drag.
BTW, @timmywil, is this repository still under active maintainance?

Same issue


Validate against conflicting options on the same type

Consider the following queries:
# @genqlient(omitempty: true)
query Q1(input1: MyInput) { ... }

query Q2(input2: MyInput) { ... }

In this case, we generate a type MyInput which we use for both input1 and input2.  But there's actually a conflict here: omitempty is set to true on input1 and false (by default) on input2.    The same problem is even more likely to happen with different queries in a package, and also applies to options set via the forthcoming input-field options setting (see #124), or output type-names reused via typename.
Right now we don't check for that; we just use whichever one we see first.  Instead, similar to how we validate that if you use typename on several fields, they all have the same selections, we should validate that in any case where we use the same type-name in two places, they have the same options.  So in this case, we would error, and advise the user to either set omitempty: true on input2, or set a different typename for either input1 or input2.
In principle we could do this by extending the existing naming-collision validation (selectionsMatch).  But doing that in the obvious way will require some annoying plumbing as well as parsing directives twice (once in type-generation then again in validation).  The best thing to do is probably to parse all the directives in a preprocessing step upfront rather than as we generate types, and somehow attach them to nodes (perhaps just via a global map of node to genqlient directive).  Then we can just read from that map in both type-generation and validation.  (It would probably simplify the conversion code, too, since we could skip plumbing the options everywhere inline.)
Note that this will be a breaking change, but it will be going from silent confusing behavior to an explicit error, so I think that's totally fine and worthwhile.

Another issue here, surfaced in #247, is that if you're using globbing this can even result in nondeterministic behavior since the order we see the various references to the type potentially depends on the order we get the files from the file system.


Environment installation error

Hello, why do it report errors when downloading some libraries when I configure the environment according to your instructions

I encountered the same issue during setup. After some investigation, I found that the line specifying install==1.3.5 in the dependencies is unnecessary and may cause conflicts. Simply removing this line resolved the problem for me. I recommend trying this adjustment to see if it resolves your issue as well.

I encountered the same issue during setup. After some investigation, I found that the line specifying install==1.3.5 in the dependencies is unnecessary and may cause conflicts. Simply removing this line resolved the problem for me. I recommend trying this adjustment to see if it resolves your issue as well.

@Morss1 Thanks for the reply!


Support for array tuple-typing (array schema list)?

Hello,
I see in the docs that this library currently doesn't support array tuple-typing, i.e. arrays with a list of ordinal schemas (http://spacetelescope.github.io/understanding-json-schema/reference/array.html#tuple-validation).
Is there any plan to support this going forward?
Thanks!
Example:
{
  "tuple": {
    "type": "array",
    "items": [
      { "type": "string", "title": "Some String" },
      { "type": "integer", "title": "Some Int" },
      { "type": "integer", "title": "Another Int" }
    ]
  }
}

Not currently, no. What kind of form should be used to represent it do you think?

I believe this is similar to something I'm running into. I have 3D translate data, which looks like this:
{
  "position": {
    "type": "array",
    "items": [{ "type": "number" }, {"type": "number"}, {"type": "number"}]
  }
}

I intend to display it using a three row, four column table with the label being the first column, and then x, y and z being the other three columns. I realize that this is a pretty specific use, but maybe tuples represented by a table is general enough? My current workaround, since I just need numbers, is to make it a normal array and set minItems and maxItems to 3. Another work around I've considered is to get an object rather than an array, but I thought it was bad taste to force the other engineer on the team to change his data structure to fit my form generator. ;)

David, thanks for the response. I am, for now, using Scott's last workaround (using an object) and post-transforming the data.
As for what kind of form to use for this, I imagine that it would look similar to what an array of objects produces (e.g. the Comments array in the Array bootstrap example). Each item in the array would have multiple input fields, one for each index in the tuple.

@golfmat1 and @scotttrinh you make valid points, handling of tuple type is probably needed!


removed hard calls on json blobs

Stop harding json blobs in eyre; clam them instead. Mitigates the problem of eyre choking on large json blobs that landscape passes.

I thought clams got removed from hoon?
On Monday, 4 March 2019, ixv<EMAIL_ADDRESS>wrote:

Stop harding json blobs in eyre; clam them instead. Mitigates the problem
of eyre choking on large json blobs that landscape passes.
You can view, comment on, or merge this pull request online at:
https://github.com/urbit/arvo/pull/1094
Commit Summary

removed hard calls on json blobs

File Changes

M sys/vane/eyre.hoon
https://github.com/urbit/arvo/pull/1094/files#diff-0 (4)

Patch Links:

https://github.com/urbit/arvo/pull/1094.patch
https://github.com/urbit/arvo/pull/1094.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/1094, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABxXhnUjEmGjDAH-7KZ6GQzduJaCtk32ks5vTaD9gaJpZM4bdW6w
.

We use "clam" to refer to irregular ,, which apparently expands to $; now.  It's not a clam in the old sense of "don't crash", but it uses the same syntax and you use it in most of the same instances.  It should be semantically equivalent to hard but faster.  In practice, bugs.

Huh, what is hard(or just calling json as a gate) doing that $; isn't?
On Monday, 4 March 2019, ixv<EMAIL_ADDRESS>wrote:

Merged #1094 https://github.com/urbit/arvo/pull/1094 into next.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/1094#event-2179488383, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABxXht3rJrUk-Au0hmJbjkEeyoUxC2Wzks5vTbPTgaJpZM4bdW6w
.

Equality check at the end.  This can be very expensive.
"calling json as a gate" is equivalent to $;.  It's just that "calling a mold as a gate" is a really bad syntactic antipattern, and I think it should be disallowed.  It makes you have to think about why ((list [@ @]) ~) doesn't work.  We can't at parse time distinguish a mold from a value, so we need to apply Philip's Comma Rule[0].  Much better to simply prefix all clams with , which has the added benefit of being more explicit about what you're doing.
[0] If (1) it's not a function (unlike pair), (2) you can't tell by context that it's a type (unlike the first argument to |= ), and (3) it's ambiguous as context-free as to whether it's a type (unlike * or @ or ^), then you need to prefix it with a comma.

Interested in the documentation strategy for that proposal: "a hoon
type(mold) is just a gate. You are not however allowed to call this gate"
It sounds like the equality check should just be removed from hard? Unless
2019 clams are inconsistent about whether they'll crash on mistyped values
On Monday, 4 March 2019, Philip Monk<EMAIL_ADDRESS>wrote:

Equality check at the end. This can be very expensive.
"calling json as a gate" is equivalent to $;. It's just that "calling a
mold as a gate" is a really bad syntactic antipattern, and I think it
should be disallowed. It makes you have to think about why ((list [@ @])
~) doesn't work. We can't at parse time distinguish a mold from a value,
so we need to apply Philip's Comma Rule[0]. Much better to simply prefix
all clams with , which has the added benefit of being more explicit about
what you're doing.
[0] If (1) it's not a function (unlike pair), (2) you can't tell by
context that it's a type (unlike the first argument to |= ), and (3) it's
ambiguous as context-free as to whether it's a type (unlike * or @ or ^),
then you need to prefix it with a comma.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/1094#issuecomment-469483685, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxXhpNo-W8kY_IGP71PZ7DAYvtfzA_aks5vTbpGgaJpZM4bdW6w
.

"You are not however allowed to call this gate"

I mean, calling it a gate has always been a lie, it's just a question of degree.  You can't just do (,|=(* +<) 5) for example.  OTOH you can do:
=+  m=|=(* ?^(+< +< +(+<)))  (,m 5)

It may be implemented as a gate somewhere deep down, but you shouldn't pretend it's just a gate to the user.

Unless 2019 clams are inconsistent about whether they'll crash on mistyped values

Bingo: ((list) [1 2 3 ~])

Sorry, I don't have a repl at hand; are you saying that shouldn't crash,
but does? Crashes but doesn't crash if you put a , on the (list)? Generally
behaves any differently from (list *)?
On Monday, 4 March 2019, Philip Monk<EMAIL_ADDRESS>wrote:

"You are not however allowed to call this gate"
I mean, calling it a gate has always been a lie, it's just a question of
degree. You can't just do (,|=(* +<) 5) for example. OTOH you can do:
=+  m=|=(* ?^(+< +< +(+<)))  (,m 5)
It may be implemented as a gate somewhere deep down, but you shouldn't
pretend it's just a gate to the user.
Unless 2019 clams are inconsistent about whether they'll crash on
mistyped values
Bingo: ((list) [1 2 3 ~])
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/1094#issuecomment-469489622, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxXhksogt5neh03UFGWQFzRW4dd7UWNks5vTcA6gaJpZM4bdW6w
.

> ((list) [1 2 3 ~])
~[0 0 0]
> (,(list) [1 2 3 ~])
~[0 0 0]
> ((list *) [1 2 3 ~])
~[1 2 3]
> ((list *mold) [1 2 3 ~])
~[1 2 3]
> (,(list ,*mold) [1 2 3 ~])
~[1 2 3]
> (,(list *mold) [1 2 3 ~])
[1 2 3 0]

Thanks!
That definitely looks like a bug yeah; is it filed? It does not however
seem related to ++hard, though using hard certainly downgrades it to a less
severe "it is detected that the new mold system is corrupting data"; I'm
guessing +* is putting in a hardcoded compile time equivalent of *gate
instead of *mold? (And the last one is just weird, though I definitely
wouldn't describe it as "using , is a good idea")
On Monday, 4 March 2019, Philip Monk<EMAIL_ADDRESS>wrote:

((list) [1 2 3 ~])
~[0 0 0]
(,(list) [1 2 3 ~])
~[0 0 0]
((list *) [1 2 3 ~])
~[1 2 3]
((list *mold) [1 2 3 ~])
~[1 2 3]
(,(list ,*mold) [1 2 3 ~])
~[1 2 3]
(,(list *mold) [1 2 3 ~])
[1 2 3 0]

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/1094#issuecomment-469493343, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxXhkXVTP0ODheu5uOFpuT_B_xUs8Eoks5vTcQ4gaJpZM4bdW6w
.

This is definitely a bug.  As for whether all ++hard calls should turn into clams, the question is "do you trust that clams don't corrupt data, given that nobody's ever checked it very well and we know it does in at least one case"?

I mean, either it gets checked very well, or should be reverted to the old
system known not to be broken and with identical semantics in the ++hard
case
On Monday, 4 March 2019, Philip Monk<EMAIL_ADDRESS>wrote:

This is definitely a bug. As for whether all ++hard calls should turn
into clams, the question is "do you trust that clams don't corrupt data,
given that nobody's ever checked it very well and we know it does in at
least one case"?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/urbit/arvo/pull/1094#issuecomment-469499214, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxXhm7U6aCDlp2mseIULiVV8VYSpgJkks5vTcpvgaJpZM4bdW6w
.


Revised README.

Fixed some important links and references in the README.

@basarat @Bartvds

Thanks @fullflavedave!

@fullflavedave owns the meteor-typescript. Would be great if you became a public member listed under people : https://github.com/meteor-typescript


Morning session - peer to peer review

Pull request: make desktop version
https://github.com/ayaderaghul/portfolio/pull/6
Project requirement:
https://github.com/microverseinc/curriculum-html-css/blob/main/portfolio/4_desktop_version.md

kindly please check your CSS because there are some linter issue.
Kindly try to follow figma design as much as possible

on mobile version kindly check your div/section of about me if is separated from div/section of contact me


package management

Apart from package.el, I use el-get to manage packages as there are some packages only in github or those forked at my page,
so I can add those by
(setq el-get-sources
  '( (:name blahblah :type github :pkgname "magichowl/blahblah")
)

As to the advantage of package.el, I can use function
package-install-file
without el-get some large packages, and I can install the stable version of some package.
Do you have any different point?  Can one (package.el, el-get) replace the other?
Recently, I found another management package called "quelpa"
https://github.com/quelpa/quelpa
It combines some features of el-get and package.el. Seems interesting, but I'm careful to try it as it require reconfigure a lot in emacs.
Any suggestions? Thanks in advance. :smile:

If there are officially-maintained packages in github which you think should be installable with package.el, please submit recipes to MELPA (http://melpa.org/)
For personal forks, by all means use quelpa. It is based on the code we use for MELPA, which I help to maintain. I've never used it myself, so I can't really provide any advice in that area, sorry.
Hope that helps!


chore: Correct the docs location

Description of changes:
Correct location is docs/*
Checklist

[X] Meet tenets criteria
[X] Update tests
[X] Update docs
[X] PR title follows conventional commit semantics

Codecov Report

Merging #289 (fb364aa) into develop (3d9ffb0) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #289      +/-   ##
===========================================
- Coverage    99.75%   99.68%   -0.07%
===========================================
  Files           79       79
  Lines         2859     2859
  Branches       119      119
===========================================
- Hits          2852     2850       -2
- Misses           5        7       +2
  Partials         2        2

Impacted Files
Coverage Δ

aws_lambda_powertools/utilities/parser/types.py
71.42% <0.00%> (-28.58%)
:arrow_down:

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 3d9ffb0...fb364aa. Read the comment docs.

Sorry @heitorlessa  I added the GitHub ui for this patch :)

I did al from the UI. We’re even :)
On Sun, 14 Feb 2021 at 18:11, Michael Brewer<EMAIL_ADDRESS>wrote:

Sorry @heitorlessa https://github.com/heitorlessa I added the GitHub ui
for this patch :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/aws-lambda-powertools-python/pull/289#issuecomment-778807482,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZPQBB3UC5HLDCJXTQD4GDS67733ANCNFSM4XTNBWYQ
.


Fighting Spirit not detected

Importing a pokemon with fighting spirit will lead into the slot in which fighting spirit was on to be blank. I'd imagine it's because every instance of Fighting Spirit in calc/sr/data/species.ts is misnamed as "Fight Spirit", so maybe changing those instances to "Fighting Spirit" should fix it?
The online dex shows the ability as Fight Spirit if it's an innate, but in game it's treated as Fighting Spirit regardless of being an ability or an innate, that's probably where the confusion started.

Same thing seems to be happening with Electro Surge, which is being referred by the calc code as Electric Surge instead

quick note: The dex and my tooling for importing are two separate codebase.
my tooling for automatically importing pokemon is https://github.com/ForwardFeed/pokeemerald_to_smogoncalc
And the issue originate from the fact that both ydarissep dex and my script for the internal pokedex use the same file for abilities but the script that import from savefile use another game file.
I have implemented a systematic fix to abilities, thank you  for reporting.


Allow accounts to exit the system

Once #14 is done with its most minimal basic functionality, we need to teach the reward streamer the notion of "exiting" the system.
In the previous protocol, this was done via a leave() function.
We probably want a similar one in the StakeVault that lives in this repository.

Realized that leaving the system only makes sense when there's upgradeability in place.
So this is somewhat blocked by #20

Related to https://github.com/logos-co/staking/issues/148


SolrCloud Support

To support SolrCloud - similar to SolrCloudServer in SolrJ.
This is a top level issue which can be broken down to smaller ones.

ability to talk to ZK to get current cluster state
ability to send updates directly to leaders
ability to load balance requests between replica
ability to send query directly to correct shard when custom routing is working

Here's a WIP how it may look in the end
var zkHost = "localhost:9983";
var collectionName = "myconf";
var num = 1000;
        var solr = new SolrCloudServer2<TestEntity>(zkHost, collectionName);

        solr.Delete(SolrQuery.All);
        solr.Commit();

        // send one by one to test sharding distribution and sending to leaders only
        foreach (var ent in GenerateTestData(num))
            solr.Add(ent);

        solr.Commit();

        var results = solr.Query(SolrQuery.All);
        Assert.AreEqual(num, results.Count, "results count");

Development is taking place here https://github.com/Denis-Vlassenko/SolrNet/commits/master, after we will settle down the architecture we'll start beautifying\cleaning up the code and submitting pull requests.

Great! Would it be easier to follow if you already make a pullrequest and link it to this issue?
How can I help?

Here's a WIP commit for Collections API, looks very minimalistic , tested via integration tests against local solr.
https://github.com/Denis-Vlassenko/SolrNet/commit/571e74258033d64cbe9dfb754faa6bd5221a1d2b

@mausch could you please have a look at our WIP branch and share your thoughts?
https://github.com/Denis-Vlassenko/SolrNet/commits/master,
We are on final phase, passed several iterations of archtiecture rewriting, adding more unit\integration tests, polishing. Documentation will follow also soon after we will settle with approach.

I have been asked to help on a Solr project where I believe SolrNet is ideal. I proposed SolrNet as the way to go to use Solr instead of manually coding Solr commands and sending to /select and /update. You know what I mean :)
However, I was told that "No SolrNet because it does not support Solrcloud".  So then I see this issue and the reference to https://github.com/Denis-Vlassenko/SolrNet/commits/master.'
So I get asked if the changes in this fork will be added into this repository.
So my question is, does anyone know if it is in the plan to do the pull requests and merge back here? Apologies for being direct, just that I believe SolrNet will make a difference in this project.

@xaviermorera I encourage you to try @AlexeyKozhemiakin 's bits and report back here with any feedback. In my opinion OSS development should be as distributed as possible, not everything must go through the maintainer. Also, I think it's best that features be developed by people actually using them, and I don't have a use for this now. I could only offer general advice.
Moving to a different continent while juggling two jobs has cut down my OSS time significantly, so I'll be slower to reply.

Thanks @mausch I will talk to @AlexeyKozhemiakin on this matter. I indeed have a need and good luck to wherever you are going!  And you are completely right on OSS, just that I wanted to check first here.

Hello @xaviermorera and @mausch . We're running new solrnet with cloud support on several projects for customer and internal ones. We'll create push-request in nearest future, after adoption to solr5 (way of managing cluster state in zookeeper changed dramatically).
@mauch - i've sent you several email, unfortunaly didnt get any reply. In order to commit the changes and bring more users to solrnet we will need your support or at least some effort to review architecture and changes. Do you think you could help us and community? As an alternative I can serve as commiter\reviewer for solrnet - since I have resources to support it now.

Pardon the interruption...
What is the status of this SolrCloud Support effort?
We have been running on SolrNet for a couple of years now, and are getting to the point where we need to distribute the load.  I haven't seen much development in 8 months, and was hoping to incorporate this effort.
Thanks in advance,

Hi @DarrenJohn, most effort was incorporated back to solrnet master branch. Let me come back to you on Monday with detailed instructions how to use it.

Hi @DarrenJohn,
I'm @AlexeyKozhemiakin's subordinate and I'll help you with SolrCloud.
First of all, if you need to add SolrCloud support to your application, you have to fetch our pull request into your fork of @mausch SolrNet repository. Here the link to cloud's pull request. Branch name is "dkupnou/cloud" and heading of this pull request is "Solr cloud support draft version".
After that you will be able to use SolrNet in cloud mode. The usage of SolrNetCloud is similar to basic SolrNet. You can find the documentation of usage in "Documentation/Basic-usage-cloud.md" and "Documentation/Collections-api.md" or read it on my fork.
[Basic cloud usage] (https://github.com/dkrupnou/SolrNet/blob/cloud/Documentation/Basic-usage-cloud.md)
[Collections api] (https://github.com/dkrupnou/SolrNet/blob/cloud/Documentation/Collections-api.md)
Please, feel free to ask if there are any questions.
Thank you

Hi @AlexeyKozhemiakin @mausch - any idea on when this can be merged into the master?

Hi! Also curious about this...

Hi.
Do you have more information abot the merge into the master branch?
I am very interesting about this feature too.
Thank you.

Hi,
I have seen that it just need to be merged into the master branch. Sounds good.
Do you jnow when it could be merged ? I am really interested about the SolrCloud Support.
Thanks

@gquaire @JeffPalmier @perzzon @maggon have you tried this code? I haven't needed SolrCloud myself yet so I was looking for feedback from other users. Cheers.

Thank you @mausch. I will try the code and give you some feedback about it.

Hi @mausch, We have not tried the code yet . But, we will do it. We will keep you updated.
Thanks for your reply.

Hi,
I am trying to integrate SolrCloud to my asp.net application. How to integrate and we need to integrate it. Can anyone help me please.
I am new with solr technology.
Thanks

Which solution are suitable in order to use solrcloud with solrnet?

Making direct solr REST Http request using Zookepeer.Net to ask for availables nodes and manually make something like a round robin?
Using some stuff which support zookeper.net as external proxy/load balancer?
evaluate the use of Elasticsearch instead of Solrcloud?
Try to use the fork suggested ? (I tried with little luck)

I will appreciate any suggestion, I've invested time studing, configuring and testing solrcloud discovering that Apache does not provide any client for .net environements.
dr

@shivendra31 @richetdan
Hi guys,
We're using this SolrCloud implementation in production and it seems okay.
Did you have a chance to read and follow [basic cloud usage] (https://github.com/dkrupnou/SolrNet/blob/cloud/Documentation/Basic-usage-cloud.md)?
In case of any question please feel free to ask me.
Thank you.

Thank you @dkrupnou,
do you mean this implementation? https://github.com/vladen/SolrNet
I've tried, downloaded the inline sourcecode, compiled, referenced into my test project those libraries:

SolrNet
SolrNet.Cloud
SolrNet.Unity
SolrNet.Cloud.Unity

SolrCollectionsAdmin works but I can't get an instance of ISolrOperations in order to do queries because the line
Startup.Init<Product>(new SolrCloudStateProvider(zookeeperConnectionString), collectionName);

throws error.
I am using solrcloud 5.5.1 with one external zookeper.

@richetdan
here is the latest version https://github.com/mausch/SolrNet/pull/187.
Also, ensure that "Startup" is used from SolrNet.Cloud instead of SolrNet project, for now both of these projects have the same name for startup class and it could be confusing.

Thank you.
I will try version 187 ASAP, however I am sure to call "Startup" method from SolrNet.Cloud namespace.

It would be great if you could post the exception with stack trace to investigate

Ok guys, thank you so much for helping!
with the version suggested by @dkrupnou it works.... but it works on first attempt, the second one cause a crash on the primary node of the cluster . Maybe the reason is I have done "Startup" 2 times, however seems quiet unstable to adopt this solution on a critical production environement.

@richetdan
Please look at @mauch initialization document - https://github.com/mausch/SolrNet/blob/master/Documentation/Initialization.md, Startup should be called once at application startup, next Startup calls will be failed. The same situation is here

I've placed Startup on global.asax, but this not changed.
However the greatest problem is not the error on the client side but is the crash of the solr server!

Could you share solr server logs please?

There are no entry related the last 2 hours in the solr.log.
However:
http://pastebin.com/iGpm03GN

Actually, I can't see any exceptions in your log file which led to crash your solr server as you mentioned before. What kind of crash did you mean?

I mean I've got a SolrConnectionException on the client side when executing the Query.ALL and the leader server node result "gone"

I am working on a project with SolrNet + SolrCloud. We are only allowed to use mausch's and no forks so here is what we did:

At index time, we make a call to clusterstate.json and using Json.Net I parse and extract the leader so I submit all updates to that node.

It works without too much hassle.

thank you very much xaviermorera, now I am gonna test elasticsearch which has native .net client and then I will choose between your solution and elastic.
Which kind of loadbalancer are you using?
Thank you very much for all contributions from all users

Ok, guys, the fork it works, I think it was just a memory problem (running default settings on server).
It is still not clear beacause there wasn't any OutOfMemoryException.
However, brutally killing one of the solr node's process cause problem on solrnet.cloud client routing (some requests continue to be forwarded on dead node).

Thank you  @dkrupnou
I have downloaded source code from this location: https://github.com/vladen/SolrNet but it have lot of directories so, please guide me which directory useful for me as I am trying to implement in asp.net application.
I have installed Solr-5.3.1 on two machine and Zookeeper-3.4.8 on single machine, created a collection and two shards.
Please let me know what I have needed and what step need to follow to configure solrcloud in asp.net application.
Thank you very much

Hello @Shivendra, I can only suggest to adopt the @xaviermorera 's solution with external loadbalancer or adopting java on the client side or change the server side system. Solrnet does not support solrcloud, the fork that has been mentioned is very unstable and buggy. Considering that the last pullrequest to the original project was made more than a year ago, I would not do much reliance on the fact that in the nearest future solrcloud will be supported by solrnet.

@richetdan it is hardware load balancer.

@mausch Could you tell us please what is necessary for you to merge this fork? I would like to use SolrNet in a large project with installations around the world and therefore SolrCloud is kind of crucial to us. Thanks.

Hello @richetdan and @xaviermorera , Is it possible to implement SolrCloud for .net client without hardware load balancer.
If it is possible, please suggest
Thanks!

@shivendra31, this fork already has this feature, to loadbalance using code instead of specific hardware

@dkrupnou thanks for such a quick reply. Can you please provide me link of right fork.

@shivendra31 here is the link to active SolrCloud Pull Request . And here you can find right fork, branch name is "cloud".
By the way, at this moment this implementation has simple replicas load balancer based on random node index generation. If it's not enough, we can extend this solution with RoundRobin balancer if needed.
Thank you.

@dkrupnou I have downloaded fork and build it and added dlls into my application but not get instance of zookeeper.
Startup.Init(new SolrCloudStateProvider("<IP_ADDRESS>:2181"), collectionNames, true);
throws error.
The type initializer for 'ZooKeeperNet.ZooKeeper' threw an exception.

@shivendra31 please ensure that external zookeeper is started and running on port 2181. If you are using internal zookeeper which is embedded into solr, please change the port number (default port is 9983).

Hello @dkrupnou,
What is "/clusterstate.json" in SolrCloudStateProvider class. Is it need to change following variables?. Because ran into issue on line
state = GetInternalCollectionsState().Merge(GetExternalCollectionsState());
throws error.
The request /clusterstate.json timed out while waiting for a resposne from the server.
public const string ClusterState = "/clusterstate.json";
public const string CollectionState = "state.json";
public const string CollectionsZkNode = "/collections";
private void Update(bool cleanZookeeperConnection = false)
{
  if (zooKeeper == null || cleanZookeeperConnection)
  {
    if (zooKeeper != null)
    {
      zooKeeper.Dispose();
    }
    zooKeeper = new ZooKeeper(zooKeeperConnection, TimeSpan.FromSeconds(10), this);
  }
  state = GetInternalCollectionsState().Merge(GetExternalCollectionsState());
}

Thanks!

@shivendra31
The cluster state variable is used for supporting old version of solr (< 5.0), when all collections information was stored in a single clusterstate file. Since 5.0 version of solr, each collection has it's own state, which is called state.json. This code tries to get all possible states and merge them.
According to the exception, I can see only two possible reasons of it, first - your connection string to zookeeper is wrong, second - maybe your cluster state file is big enough so the time to receive it from zookeeper is more than 10 seconds timespan.
Could you please verify that zookeeper is reacheable by your connection string (try to connect by zkCli command line), if so, try to increase the timespan and rebuild the solution. This timespan was choosen experementally so it's ok if we should increase it by default or make it configurable.
Hope it'll help.
Thank you.

Thanks @dkrupnou
SolrCollectionsAdmin works and Startup is used from SolrNet.Cloud also working showing zookeeper connected: Is following line is correct?
Startup.Init(new SolrCloudStateProvider(zookeeperConnectionString), collectionName);
But, I can't get an instance of ISolrOperations in order to do queries because the line. using ISolrOperations from SolrNet.Cloud.
var solrCloudMode = ServiceLocator.Current.GetInstance<ISolrOperations>();
When using .ISolrOperations from SolrNet
var solrCloudMode = ServiceLocator.Current.GetInstance<SolrNet.ISolrOperations>();
threw error:
The given key was not present in the dictionary.
Also not getting instance of SolrQueryByField for SolrNet.Cloud
var results = solrCloudMode.Query(new SolrQueryByField("in_website_id", "1"));
Please suggest
Thank you.

Hello @dkrupnou,
Configured Single node Zookeeper- <IP_ADDRESS>:2181
Configured Solr :

When I am trying to call ISolrOperations from SolrNet
var solrCloudMode = ServiceLocator.Current.GetInstance<SolrNet.ISolrOperations>();
var results = solrCloudMode.Query(new SolrNet.SolrQueryByField("id", "SP2514N"));
Threw Error on following function:
File --solrnet.unity\container.cs
protected override object DoGetInstance(Type serviceType, string key)
{
if (key == null)
       return componentsByType[serviceType][0](this);
        return componentsByName[key](this);------------componentsByName.count is 0

}
Error:
The given key was not present in the dictionary.

Hi, @richetdan,
I am also facing same problem as you mentioned previous for ISolrOperations instance please suggest what i have need to do.
Please see previous two comments.
Thank you very much.

Hello Shivendra, this is the code I used to test that fork:
`string zookeeperConnectionString = "<IP_ADDRESS>:2181";
var collectionName = "your_collection_name";
SolrNet.Cloud.Startup.Init(new SolrCloudStateProvider(zookeeperConnectionString), collectionName);
var solrCloudMode = ServiceLocator.Current.GetInstance<ISolrOperations>();
var results = solrCloudMode.Query(...);
`
In addition, to avoid the solr server to crash I had to raise the heap memory on the server; which it is totally unreasonable because with solrj I have not had this need for the same load.
In any case, as I have said repeatedly, I strongly advise against using this fork in the production environment, because it simply does not handle correctly falut tolerance and because it is very unstable and can not have any kind of support.
you can just hope that it will be merged into a stable release on the master project.
Personally I switched to Elasticsearch since it has a .net client natively supported and perfectly working on cluster mode. Other chance is to use external loadbalancer.
good luck.

Thanks @richetdan,
It was issue with document now it working.
Please let me know how to get current node details from which zookeeper get data.
Because I have to call HttpWebRequest with "Solr node + query".
HttpWebRequest oWebRequest = (HttpWebRequest)WebRequest.Create(Solr node + query);
Thanks!

I could really use cloud support.  Any idea when this will be available?
Thanks!

Hi, everyone!
I've recently joint @AlexeyKozhemiakin's team and made commits into this fork (completed collection api and fixed cluster state update issue - not capturing all clusterstate events).
@gquaire @JeffPalmier @perzzon @maggon @serbrech @DarrenJohn @blmille1 @shivendra31  , have you tried latest/any version of this fork and, if you please, can you provide some feedback?
maybe, after that, @mausch will consider to merge it to master.
Glad to help and fix code. if needed

@RageRabbit @AlexeyKozhemiakin @mausch Is this thread still alive?
Would really appreciate your thoughts on when will SolrCloud be part of the NuGet package (or at least merged into this repo).
Thanks!

Hi @AlexeyKozhemiakin, would you like to talk about adding SolrCloud as part of SolrNet? SolrNet has been moved to an organization and so we can collaborate to bring new life to this great project

hi, sure!
We were looking to finally push that and update nuget packages long time
ago. How can we help now?
On 3 April 2017 at 01:35, Xavier Morera<EMAIL_ADDRESS>wrote:

Hi @AlexeyKozhemiakin https://github.com/AlexeyKozhemiakin, would you
like to talk about adding SolrCloud as part of SolrNet? SolrNet has been
moved to an organization and so we can collaborate to bring new life to
this great project
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SolrNet/SolrNet/issues/174#issuecomment-291020111,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABsTybU8I8TViCcHqfcKe3CU_MwnKdQoks5rsCKrgaJpZM4DLlEm
.

Hi @AlexeyKozhemiakin how much testing have you done with SolrCloud?  Is working fine, in production, rock solid? Or does it still require a bit of extra work?
Also, I would like to test myself as well. I can see pull request Solr cloud support draft version #187, which I want to confirm it is the latest version that you were working on. I can see the comment of it being the latest version of vladen's branch too, but want to check what else has changed.
Including @dkrupnou  and @janhoy

I'm happy that the project is set free from its former state of inactivity. It's simply depressing to see 26 open PRs.. Hope you manage to attract a solid number of committers so this does not die again should @xavier-morera switch jobs or lose interest.
Also wanted to let you know about the recent effort in https://issues.apache.org/jira/browse/SOLR-10446 which will ship with next version. It means you can get cluster state over HTTP from one of the Solr nodes and don't need to talk to ZK at all.

@janhoy I will most definitively not lose interest nor participating in this project is because of my job. I am tight on time though and there are a few things I need to get up to speed here, so I will try my best with the available time I have.
Regarding the JIRA, it targets Solr 6.6 but we still need to support 4.x (at least), 5.x and 6.x so that is what I am trying to determine what will be the best way, including multiple .NET platforms. Once I get confirmation of the solrcloud fork with the latest bits I will merge into solrcloud branch for testing.

Closing this one to continue in issue 187
Just a note, I have pulled dkrupnou/SolrNet:cloud into https://github.com/SolrNet/SolrNet/tree/solrcloud which is ready to merge after some testing. This will add SolrCloud support.


Don't require application_helper anymore

Some of the helper specs required application_helper as of baf3a89933b.
Because these tests were moved to ui-classic and ui-classic requires
application_helper in it's spec_helper, this main repo does not need
to require application_helper, a file from the ui-classic repo.
Removing this allows us to run the tests locally without access to the
manageiq-ui-classic repo via BUNDLER_GROUPS=manageiq_default.
Pull apart that :spaghetti: one change at a time.

I am absolutely blown away that there really wasn't anything left in this repo that uses application helper. 👍

I am absolutely blown away that there really wasn't anything left in this repo that uses application helper. 👍

head asplode


Change type pb when drag & drop beetween multiple trees

First thanks a lot for your plugin and all your efforts.
I use jstree with dnd plugin.
I also use type plugin to set/change node icon when node are dropped.
Everything is working when I drag/drop in a single tree (with move_node event).
But it seems there is a problem if between 2 trees (with copy_node event). set_type as no effect in this case.
Here is a jsfiddle to see the pb, with some comments.
https://jsfiddle.net/julien738/qzc1zvod/
it seems it occurs if type is not known in the first tree.

Yes, indeed, even after copying a node and moving it (again) it will not get the star icon. Thanks for the report, I will fix this ASAP.

I made some changes but your example will still not work - it is an edge case. jsTree will now always apply the icon if the old node type is not available in the tree, but in your example the default node type is used, which is always available. If the type is available jstree will check if the current node type matches the current icon, and will not change the icon if the type icon and the current icon do not match (assuming custom icon). This is why your example still does not work - you have the default type in both locations (altough not explicit in the second) but with different definitions.
TLDR; if you have the same type in both instances (or default), make sure the definitions are the same to ensure proper icons.

Thank for your research.
I understand that the old icon (in tree1) with default type "cloud icon" was drag and drop in tree2.
Tree2 has implicit default type with different definition (no custom icon defined).
So the icon is not changed. An edge case i understand.
But in my example, there is a second step :
After copying (and indeed at this moment, icon is not changed as you explained above), i do a set_type on copied node to change type to 'star' explicitly.
Is this another bug ?
Maybe I misunderstood what you meant ?

I have updated jsfiddle with a new "Tree 1b" where default type was replaced by a distinct type which is not in destination tree. There is no change.

You misunderstood what I meant - if there are types that are shared between trees (like default) they should have the same definition. Otherwise jstree will treat the icon as a custom one. As for an updated fiddle - share that link but make sure you use the latest source from github, as I have not released a new version yet.

Ok, I have updated jsfiddle example to latest version of jstree.
https://jsfiddle.net/julien738/qzc1zvod/
Between "Tree 1b" and "Tree 2", no types are shared.


Update package version to 1.3.0

Purpose
Examples
Checklist

[ ] Linked to an issue
[ ] Updated the changelog
[ ] Added tests
[ ] Updated the spec

Lets update the changelog

Changelog already has the info of the new APIs: https://github.com/ballerina-platform/module-ballerina-os/blob/master/changelog.md

Changelog has only 2 entries. Are these going both for 1.3.0? What about lower versions, didn't we maintain the changes?

Changelog has only 2 entries. Are these going both for 1.3.0? What about lower versions, didn't we maintain the changes?

Yes, both are going with 1.3.0. These are the first and only API changes in the OS module since the Changelog was created.


fix: dev server resolve plugin for win32

Fixed a slash check in plugins/resolve.ts resolved() that was causing the dev server to fail for paths in windows.

I don't think this is the right fix. The double slash was intentional. Will need a proper repro for windows.

I don't think this is the right fix. The double slash was intentional. Will need a proper repro for windows.

FWIW, in my win machine, fsPaths at that point were like /C:/.../dist/client/app/index.js.
Let me know if there is a way I could provide more information.

FWIW, in my win machine, fsPaths at that point were like /C:/.../dist/client/app/index.js.
Let me know if there is a way I could provide more information.

Oh I think I know now, this is in VitePress where it directly feeds a non-normalized fs path after /@fs/.
I think we should handle that in Vite core though. So the proper fix here should be something that can handle all the following cases:

/@fs/C:\foo\bar -> /foo/bar
/@fs/foo/bar -> /foo/bar
/@fs//foo/bar -> /foo/bar

Oh I think I know now, this is in VitePress where it directly feeds a non-normalized fs path after /@fs/.
I think we should handle that in Vite core though. So the proper fix here should be something that can handle all the following cases:

/@fs/C:\foo\bar -> /foo/bar
/@fs/foo/bar -> /foo/bar
/@fs//foo/bar -> /foo/bar

Got it. I moved this logic to a helper in utils so it could be tested independently later

Got it. I moved this logic to a helper in utils so it could be tested independently later


Multiple Z-Wave locks only first one works

I have 3 Schlage Z-Wave locks (all same model) which the homeseer integration successfully created in Home assistant as:
lock.door_lock
lock.door_lock_2
lock.door_lock_3
The third lock works fine and I can lock/unlock from Home Assistant, and the status updates correctly in the UI and appropriate messages appear in the Homeseer log. The other two (lock.door_lock and lock.door_lock2) do not update status, nor do they appear to contact homeseer when their lock/unlock button is pressed in the UI. The lock history also does not update when the lock status is changed in homeseer.
When I click the "Lock" toggle in the home assistant UI, I get the following in the Home Assistant log:
2020-11-11 13:55:00 ERROR (MainThread) [pyhs3.const] HomeSeer HTTP Request error: Invalid variable type: value should be str or int, got None of type <class 'NoneType'> 2020-11-11 13:55:13 ERROR (MainThread) [pyhs3.const] HomeSeer HTTP Request error: Invalid variable type: value should be str or int, got None of type <class 'NoneType'>
There are no messages in the Homeseer log.

Can you set debug logging for both pyhs3 and homeseer and then try to toggle the locks? Need to see what’s happening under the hood.

I've posted the logs to the Home Assistant thread here: https://community.home-assistant.io/t/hello-from-a-homeseer-hs4-refugee/181820/295
It does indeed appear that there's an error occurring is pyhs3 before communication is even attempted to from HA to HS3.
What's strange is that all locks are the same make/model. The only thing I can think of is that in the case of multiple locks, when the devices are created in HA something is getting incremented too early and that borks the configuration of all locks except the last one created.

This should now be fixed in the latest version of the custom component (0.7) - I've posted an explanation in the Home Assistant community here: https://community.home-assistant.io/t/hello-from-a-homeseer-hs4-refugee/181820/302?u=marthocoo. Please delete the current homeseer directory and reinstall and all should work!


weex vue-router跳转闪动，页面加载内容偶尔缺失

weex vue-router跳转闪动，页面加载内容偶尔缺失

感谢你的反馈，Weex目前是隶属于Apache Software Foundation的项目，因此在Gtihub渠道我们鼓励使用英文反馈问题。下面我将使用Google Trasnlate将你的问题翻译成英语，并以英语回答。

Question Description: Weex vue-router jumps flashing, page loading content is occasionally missing

Please follow the issue template and provide your demo as I really can't help you with such little information.
I will just close the issue, feel free to reopen with your demo and the latest of weex.

Hello, here is the question demo address.：https://github.com/sawadazina/weex-demo
The problem demo video is demo. MP4 in the address.

Hello, here is the question demo address.：https://github.com/sawadazina/weex-demo
The problem demo video is demo. MP4 in the address.

Hi, sawadazina
do you solved this bug, i have the same bug in android mobile

It is recommended that you use navigator to switch between the Android side. Since a single js file represents an active activity window on the Android side, the vue-router mode switch is to refresh the current window, so there will be flashing, and the page missing problem is not there. Solve, hope to help you a little


Oracle - Cannot create table that contains a column named "DELIMITER"

Running the following script against an Oracle database:
CREATE TABLE "FOO"
(
    "DELIMITER" VARCHAR2(30 BYTE)
);

Fails with this error:
Oracle exception has occured in script: '001_TABLES.sql'
Oracle error code: 0; Number -2147467259; Message: 904
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-00904: : invalid identifier
   at OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone)
   at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, OracleException& exceptionForArrayBindDML, OracleConnection connection, OracleLogicalTransaction& oracleLogicalTransaction, Boolean isFromEF)
   at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()
   at DbUp.Oracle.OracleScriptExecutor.ExecuteCommandsWithinExceptionHandler(Int32 index, SqlScript script, Action excuteCommand)

Looks like it something to do with this? https://github.com/DbUp/DbUp/blob/e874234e8d320dc37c272e5137092da0b89d72f3/src/dbup-oracle/OracleCommandReader.cs#L9

I'm running into this as well. is there a work around or do we have to wait for merging the fix.


 Perhaps ignore what's written out, but at least test files are found, globbing works, processing works, ...
--files currently modifies in-place, so testing before vs. after would be pretty nasty. Perhaps extend with a functionality like --files-ext so users can optionally specify an additional file extension of produced files?

Done by 5651134.