feat($rootScope): allow suspending and resuming watchers on scope

This is a rebase of @shahata's original PR at #10658.
We need to think about @lgalfaso's concerns (https://github.com/angular/angular.js/pull/10658#issuecomment-75211793 and https://github.com/angular/angular.js/pull/10658#issuecomment-78611215) before merging...

I have added some additional comments to the docs to indicate some of the dangers of using this feature.

Added another test, the isSuspended() method, and some more notes to warn developers.

I'm very heartened that none of the warnings raised so far and/or added to the docs are surprising or problematic to me.
I see this being used in my project and by most people simply to "turn off" whole sub-trees, eg in a version of ng-show that simply stops the $digestion of hidden content, and I don't think any of the mentioned edge cases will cause problems in such an implementation.
But the proof is in the pudding. I'll test it soon in my app and give feedback on how it goes in practice.

Thanks for the review @gkalpak - I am wary of using names that are too similar to Angular, since this is different enough that could end up being more confusing when migrating to Angular.

OK, I think I have found a problem with this implementation from my early testing.
I started by creating my most desired perf feature since one-time binding.  At the moment it's just a hack of ng-show. I call it p-show ("p" for "performance"! :D).  The idea is to disable the descendants' scopes upon hide, and re-enable upon show.
angular.module('myApp').directive('pShow', ['$animate', function($animate) {
  return {
    restrict: 'A',
    multiElement: true,
    link: function(scope, element, attr) {
      scope.$watch(attr.pShow, function pShowWatchAction(value) {
        // ADDED poshest
        var NG_HIDE_CLASS = 'ng-hide'; // to remain compatible with original ng-show code
        var NG_HIDE_IN_PROGRESS_CLASS = 'ng-hide-animate'; // ditto

        if (value) scope.$resume(); // TODO: probably add scope.$digest after resuming
        else scope.$suspend();

        console.log('pShow:', value, '$isSuspended:', scope.$isSuspended());
        // END: ADDED poshest

        // we're adding a temporary, animation-specific class for ng-hide since this way
        // we can control when the element is actually displayed on screen without having
        // to have a global/greedy CSS selector that breaks when other animations are run.
        // Read: https://github.com/angular/angular.js/issues/9103#issuecomment-58335845
        $animate[value ? 'removeClass' : 'addClass'](element, NG_HIDE_CLASS, {
          tempClasses: NG_HIDE_IN_PROGRESS_CLASS
        });
      });
    }
  };
}]);

I realised the problem pretty early on... in almost all the use cases for .$suspend() that I can think of, the .$resume() code will be located INSIDE a $watch or $onChanges on that very suspended scope!  The result is that hiding works, but showing doesn't.
I read back to vahan-hartooni's version of this and he, I think rightly wrote this as a suspension of child scopes only.
I don't see how also suspending the current scope could be workable, unless anyone has other ideas about how I can trigger .$resume() in an "Angular"-way or if I've mis-used or mis-understood scope.$suspend.

I think you want to make the directive create a new scope, e.g. scope: true in the declaration...
Then you can watch the attribute value which will be bound to the parent scope.

I added scope: true to the declaration. That caused this error in multiple places Multiple directives [pShow, myComponent] asking for new/isolated scope..., so I changed all of these
<my-component p-show="$ctrl.showMe"></my-component>
to these

<my-component></my-component>

and I still get the same result.
I've got a deadline til Sunday night on something else, but I'll get a codepen going on Monday so we're on the same page and can eliminate the possibility that I messed something silly up. Enjoy your weekends! :)

Ahah! Of course, the component is requesting an isolate scope, so you can also ask for a new scope :-(

Another quick observation while I think of it is that $scope.$digests which are manually called on descendant scopes are still firing despite an ancestor having been suspended.  I expect this based on my understanding of the implementation (.$$suspended isn't propagated down the tree), but it might be confusing to others in cases when they do stuff outside Angular and then call a $digest on the descendant to get Angular back in sync. They may expect that $digest not to fire because of the suspended ancestor. Maybe just another note for the docs, perhaps as a clarification to the note...

If a parent scope is suspended then all its descendants will be excluded from future digests...

Those digests need to be initiated from the parent or above, right?

Thanks @poshest for doing the tests! I think you are right with your concerns.
But first, here's a directive that would make "suspend scope on hide" work: http://plnkr.co/edit/5Ci3xUAmEduroFUF31LK?p=preview
It uses transclusion into a child scope (instead of the parent scope) to make it work.
The problem is that we'd have to ship such a directive as part of core, as it would need to be implemented anyway if someone wants to use this feature.
So in general, I think it makes sense to suspend the child scopes when calling suspend on a scope.
I assume a general use case will be to cut of whole parts of an application from digesting if they are hidden, e.g. if a modal is open, you don't need to digest the rest of the UI. That means most of the time the control of the suspension does not lie with the scope owner ( e.g. component), but with the parent. For example, if I want to use a third party component, I should be able to put a "suspender" directive on the element, that will toggle digestion on the component's scope (template) (the part which I don't own), while still allowing the component element (which might have other bindings) to digest. At the moment, this seems like it's unsupported.
Manual $digests will digest the scope on which they are called, and all descendant scopes. This is to be expected. You should use scope.$apply anyway, which does not have this problem - it digest the rootScope and will stop on the suspended scope.

Awesome directive @Narretz :) I learned something! It seems to me that has the same effect as if we simply suspended the child scopes only, and I agree not having to ship another directive is better.

I assume a general use case will be to cut of whole parts of an application from digesting if they are hidden

Absolutely, that and the even more general case "...if they are not displayed on the viewport", which could include the display: nones, elements scrolled off screen and elements as you say, covered by modals.
One question is are we losing anything by NOT being able to suspend the current scope? It seems to me that the only problem is if the current scope is a "heavy" one and its descendants are relatively light, you'd get the desired perf gains from suspending the current scope.
However, in that case, you either suspend from its parent (assuming the parent had no other children that needed to continue digesting) OR using that same trick from your directive, you could transclude the current directive/component into a child scope, which would then be suspended by calling scope.$suspend() instead of nScope.$suspend() (from your plunker). Loss mitigated.

Yes, it should be possible to create a "wrapper" scope around the scope you want to suspend in either case.
We could also create another method / add a parameter that allows you to suspend the current scopee or only the children.
Technically I think suspending only the children is a bit more difficult because you cannot be sure that the scope you call it on has a child scope at the moment. So we would probably still mark the current scope, and in the digest code, ask if the parent scope has the marker. Should work.
Btw, @gkalpak and @petebacondarwin are at Angular Connect this week, so updates by them will probably follow later.

We could also create another method / add a parameter that allows you to suspend the current scopee or only the children.

That would be awesome, but only if it's easy and doesn't slow the progress of this effort too much, it's a nice to have for me.  Disable descendants is sufficient for me.
Thanks for the update about the guys going to Angular Connect.  I wish them well. :)

Is there actually anything wrong with @Narretz's example directive? Does it work if there is an isolate component on the element being transcluded?

The problem is that we'd have to ship such a directive as part of core, as it would need to be implemented anyway if someone wants to use this feature.

Why would this need to be shipped with core?

Because of

I realised the problem pretty early on... in almost all the use cases for .$suspend() that I can think of, the .$resume() code will need to be located INSIDE a $watch or $onChanges on that very suspended scope! The result is that hiding works, but showing doesn't.

i.e. you need one scope that handles the watch that suspends / unsuspends another scope. You can't have both on the same scope, because the watch won't fire on a suspended scope.

Here is a directive that appears to work as I would expect: http://plnkr.co/edit/N0w01zkzUPugUJ10wRUp?p=preview
Can you comment?

The transclusion trick works for me and so do your directives @Narretz and @petebacondarwin. They resolve my issue of $watch disabling, albeit in a way that I wouldn't easily come to myself. The suspend children/descendants method might be more intuitive for less experienced developers, but then as you said, this feature isn't for them :)

Since it is a bit tricky to get it to work just-so, how about we do implement an ngSuspend directive, that is similar to what @Narretz and I have been suggesting? But lace its documentation with a lot of warnings...
Alternatively we just create a separate module that contains this directive and release it as a third party library and then link to it from our documentation?

@petebacondarwin I'm happy either way. :)
But I'm curious why not just go with the suspend children option?  I don't really understand @Narretz

Technically I think suspending only the children is a bit more difficult because you cannot be sure that the scope you call it on has a child scope at the moment.

Why does that matter? If there are no child scopes there's nothing to suspend (works as expected).  The suspension will still work if that scope later acquires children, no?

I guess. I haven't looked into the implementation. I think it's easy to break the scope traversion loop when we find a scope that whose children are suspended.
@petebacondarwin directive has the advantage that you can put it on the same element.
However, the directive also suspends the host element, not only the component contents. I find that a bit unflexible. My previous example: if I include a 3rd party component which I want to suspend, but still be able to change bindings on the host element, e.g. http://plnkr.co/edit/xEkRBjswFMrcdEF5SG0x?p=preview
You can see that the color only changes if I digest the component. To me, that's a least unexpected. I'd find it easier to understand if only the child (isolate) scope was suspended.

I think it's easy to break the scope traversion loop when we find a scope that whose children are suspended.

vahan-hartooni's version of this simply omits the watchers = !current.$$suspended &&  bit from
if ((watchers = !current.$$suspended && current.$$watchers)) {

So that effectively only the change to this line
if (!(next = ((!current.$$suspended && current.$$watchersCount && current.$$childHead)

remains.  Does that effectively target only the child/descendent scopes?  Or is this a naive approach?

As a thought experiment consider the following situation where there is a directive suspendOn that doesn't create a scope of its own but toggles the suspended state of the current scope.

{{ a }}

    {{ b }}
    <some-component></some-component>

{{ c }}

The scope at the suspendOn directive is the one defined by the controller.
a) If we go with the current implementation then such a directive would suspend updates to all the interpolations and the someComponent component.
b) If we go with suspending children only then {{ b }} will not be suspended but the someComponent will be suspended.
In both cases this is crazy and confusing.
So, our suspend-on directive must create a scope of its own in order to work in an intuitive sense. As @poshest pointed out, you cannot simply insist on suspendOn asking for a new scope since that prevents it from being put on an element that is also a component. This leaves us requiring that suspendOn uses the transclusion approach to ensure that a new scope is created. Further by using transclude: 'element' we get the bonus that we can put it on an element that has a component and that component will either appear inside or outside the suspended scope depending upon its priority. If the component has a lower priority then it will be part of the transclusion, if it is higher then the suspendOn directive will be part of the component's transclusion.
For me, this makes sense. I believe that changing to suspend children rather than suspending the current scope is not more intuitive.

I agree that suspending only children is tricky/not ideal (but probably for different reasons than @Narretz :grin:).
Basically, change detection should be a responsibility of the component that contans the bindings, not the user of the component. The primary (only) reason for suspending a scope is performance and only the implementor should be concerned with when is an appropriate time to suspend/resume. The user of the component should not know anything about that and not care.
For example, imagine a component that displays user info and only cares to update its view when the logged-in user changes. It suspends its scope once the use logs in and temporarily resume once the UserService emits a user change. This is an internal implementation detail that should not leak outside of the component. The consumer should just drop the component on a page/template and not care what the component does to keep itself efficient and when it needs to be resumed.
By suspending children only we make it essentially impossible for a component to control its own change detection (unless every components that needs that adds an extra wrapper in its template and creates a new scope for it).
This is also the reason why I don't particularly like the transclude directives posted above.

Furthermore, this approach deviates from how things work in Angular (2+). Although we can't get a 1-to-1 match in bahavior, keeping the concepts and usage patterns as similar as possible would make sense to me.

Still, I don't have a brilliant alternative suggestion :grin: Maybe the $suspend()/$resume() primitives are just too low-level to bake into the component pattern and we can instead build on top of them.
Ideally, I would like an easy way to comfigure this on the CDO (Component Definition Object) - similar to Angular's changeDetection: ChangeDetectionStrategy.OnPush - and an easy way to request a one-off change detection (or automatically set it up when $onChanges() fires).
But I think these can be built on top of $suspend()/$resume() as non-breaking features.

In any case, I wouldn't go too far recommending an alternative usage pattern (e.g. as shown with the transclude directives).

Woohoo! I monkey-patched my way to (a naive implementation of) ChangeDetectionStrategy.OnPush 🎉
Demo

Looks like you and I look at this from 2 different perspectives @gkalpak :>
I agree that it makes sense for components to decide on their update strategy.
But if the component owner wants to cut off a part of the page from the digest cycle, why shouldn't he? If he knows that this component won't need to be updated, then it should be possible to do that. Ofc a component could use onPush, but what if you are using a component that is unlikely to get updated with this new API? Then you want to be able to suspend it completely yourself.
So I think both are valid use cases. Yours, because it makes it easier to write Angular2 style apps, and mine because it makes it easier to perf-tune existing apps.
So maybe we

keep it so that the actual scope gets suspended
add the transclude-suspend directive
add an "onPush" option

@petebacondarwin
Darn, you're absolutely right. $suspend either way without some kind of scope transclusion makes no sense. I'm really warming to an ngSuspend. How would that work if you had

?  Do they both create their own scope?  Does it matter if you have multiple transcluded scopes cascading from the same element?  I guess it's no different from something like

 and the priority determines the order of transclusion?
Oh, and that just made me think... in the case of

, I would expect ng-suspend to suspend all of the ng-repeat scopes. Is that how it would work (given the appropriate priority)?
@gkalpak
My problem with your "user info" example is that your use case is a simple component with no children appearing once on the page.  This is not a situation calling for perf optimisation. AngularJS suffers in situations when you have massive ng-repeat lists. So a better example is a "report" component, which has many table rows. Even if the parent report isn't scope-suspended, all of its ng-repeated child scopes will be, which gives you the orders of magnitude perf improvement you're looking for.  In any case, I believe Pete's thought experiment renders this thread redundant.
On the other hand, ChangeDetectionStrategy.OnPush? AMAZING DUDE!  That is way beyond expectations, but would be an equally, if not more important perf feature for me. Would it be possible to add a markForCheck() equivalent? That would work best with my architecture where I'm using something like observables, but if I have to change everything to immutables to take advantage, I won't be unhappy.
@Narretz
Maybe...?  Definitely! :)  Oh, it's gonna be a great Christmas :)

@poshest regarding usage of ng-suspend with ng-if and ng-repeat it comes down to priority. All three directives use transclude: 'element' which passes lower priority directives down to the transcluded content.

@poshest, @gkalpak, @Narretz and @mgol are we agreed that merging this PR with just the suspend functionality is an acceptable start? We can discuss building on top of it later?

@petebacondarwin sure, let's merge now and make some progress with this.  With all that I've learned here, $suspend as implemented in this PR is plenty enough for me to use for everything I'd hoped.
Do you mean will the later adding of $broadcast suspension be a breaking change? Yes, I think so. I prefer to resolve that now and not create expectations of future changes.
I'm happy to go with not suspending $broadcasts as the "final" solution.
I still argue that some developers might find this confusing, but with appropriate warnings in the documentation it can work.  On the other hand, not suspending $broadcasts gives the developer more options, as @gkalpak argues

keep state up-to-date where events change component state
potentially use events to trigger suspends/resumes

And we can always manually "ignore" broadcasts on suspended tree branches by checking for ancestries' .isSuspended().

I think suspending the events would be a breaking change. I also don't think we should suspend / stop the events because they are independent from the digest cycle.
Otherwise, 👍 for merging with just the suspend functionality.

Sorry for the late replies 😞 Here you go:
@Narretz

But if the component owner wants to cut off a part of the page from the digest cycle, why shouldn't he? If he knows that this component won't need to be updated, then it should be possible to do that.

The point is that they don't know if a component needs to be updated or not and they shouldn't know imo. (There are implementation details that only the component author should know and care about.)

but what if you are using a component that is unlikely to get updated with this new API? Then you want to be able to suspend it completely yourself. So I think both are valid use cases.

Oh, good point (sadly) 😞 Fair enough then 😄

@poshest

My problem with your "user info" example is that your use case is a simple component with no children appearing once on the page. This is not a situation calling for perf optimisation. AngularJS suffers in situations when you have massive ng-repeat lists. So a better example is a "report" component, which has many table rows.

It was just an example. The exact same applies to a super-heavy table component with hundreds of ngRepeated rows and cells. The component itself should be in charge of whether/when the scopes can be suspended' i.e. the component author, not the component consumer.
But there is the point @Narretz made about applying this feature to existing 3rd-party components.

In any case, I believe Pete's thought experiment renders this thread redundant.

Did it? 😛

On the other hand, ChangeDetectionStrategy.OnPush? [...]
Would it be possible to add a markForCheck() equivalent?

In my PoC, I add the checkOnce() method on the Scope prototype, which I think is the equivalent of markForCheck(). I.e. it temporarily resumes parent scopes and re-suspends them after one digest.
But being a PoC, it is just a naive implementation that doesn't account for scopes being otherwise resumed during the digest (i.e. it will always re-suspend them after the digest and this might not be what you want).
In the "real thing", we should properly handle these edge-cases.
I am still pretty happy with how easy-ish it was to implement an OnPuch PoC on top of this PR :tada:

TODO:

[ ] - change comment to reflect that digests and broadcasts are no longer in sync

Thank you Pete and everyone for all your work on this. It will make a big difference to me and I hope others will find it useful.


__typename in query for interface isn't a union when named fragments are used

Sorry the title is a bit of a mouthful. :)
Describe the bug
When generating types for a query for an interface, the __typename field is set to just the interface name, which means you can't switch on its implementors. This only happens when the subtypes are in named fragments, it works fine with inline fragments.
To Reproduce
Schema:
type Query {
  task: Task
}

interface Task {
  id: ID!
}

type A implements Task {
  id: ID!
  a: String
}

type B implements Task {
  id: ID!
  b: String
}

Query:
query {
  task {
    id
    __typename

    ...AFrag
    ...BFrag
  }
}

fragment AFrag on Task {
  ... on A {
    a
  }
}

fragment BFrag on Task {
  ... on B {
    b
  }
}

Generated types (line 18):

Note: I would've copied the generated code in here, but the playground on your site doesn't allow copy and paste :(

Expected behavior
I expect __typename on Task to be "A" | "B".
Environment:

Codegen: 0.15.2

Additional context
Compare the above behaviour to the behaviour of inline fragments...
Schema:
type Query {
  task: Task
}

interface Task {
  id: ID!
}

type A implements Task {
  id: ID!
  a: String
}

type B implements Task {
  id: ID!
  b: String
}

Query:
query {
  task {
    id
    __typename

    ...AFrag
    ...BFrag
  }
}

Generated types:

And you can see the __typename of Task is correctly the union of the fragment's __typename.

Fixed in the recent refactor. we now override __typename and we are using brackets with | when fragments for different types are used, it also means that you can get better fragments matching and the correct __typename.

Fix available in 1.0.0 👍


Very slow replication for databases with attachments

Expected Behavior
Between bigcouch host replication take not more 3-4 hours for 1500 databases (25Gb total size).
I expects replication from couchdb 2.0 host to bigcouch will be similar
Current Behavior
Some databases cannot be replicated for several hours.
Possible Solution
Not knows
Steps to Reproduce (for bugs)

Create 1500 databases about 25Gb total size on couchdb 2.0 hosts;
Start replication to bigcouch host from couchdb, curl command is send to couchdb host;
Check Active Tasks screen on coucudb host.

Context
I want replicate database to other host.
Your Environment

Version used: 2.1.1
Browser Name and version: Google Chrome Version 63.0.3239.132 (Official Build) (64-bit)
Operating System and version (desktop or mobile): CentOS 7 on bare metal server.
Link to your project: none

@sergey-safarov please follow apache/couchdb#745, this is likely a known issue with replication of documents with attachments.

@sergey-safarov have you tried the latest master to see if this is resolved? Multiple patches have landed since 25 January.

This page may key for understanding of slow performance of containerized app
https://sysdig.com/blog/container-isolation-gone-wrong/


Fix CWE 330

Upgraded sprig from v2 to v3 which states no Go API changes for v3 major release upgrade in order to upgrade vulnerable dependency goutils to 1.1.1.
Snyk report: https://snyk.io/vuln/SNYK-GOLANG-GITHUBCOMMASTERMINDSGOUTILS-1296313
This operator doesn't seem vulnerable to this packages vulnerability, but I am trying to maintain a clean snyk scan.
Steps taken to reproduce and fix:

snyk test
manually change sprig to v3 in pkg/render/render.go
go mod tidy
go mod vendor

/lgtm


php8 issue

i got error php 8
Gettext\Utils\FunctionsScanner::Gettext\Utils{closure}(): Argument #1 ($carry) must be passed by reference, value given

The pull request was already merged, kudos to @oscarotero reactivity!
The dependencies are updated and https://github.com/translation/laravel/releases/tag/v1.14 is now compatible with PHP 8


Forking boost::intrusive_ptr and adding it as hpx::intrusive_ptr

Also creates a module hpx_memory
Incidentally, this removes the dependency on boost::intrusive_ptr.

GCC 9 seems to want braces for the HPX_ASSERT in case it's empty over here: https://github.com/STEllAR-GROUP/hpx/blob/master/libs/logging/include/hpx/logging/writer/named_write.hpp#L337. How it's not complaining about that on master is odd since you haven't changed that line...


Implementing Design Guidelines and User Interactions

Pull Request Description
In this pull request, we have implemented design guidelines and user interactions as specified in the project requirements. The key highlights include:

Design Guidelines: We have adhered to the provided design guidelines, focusing on colors, typography, layout, and elements' spacing. The project incorporates an original design idea by Gregoire Vella, as required, with proper attribution in the README.
Interactions: The user can experience a seamless interaction with the application through the following key features:

Splash Screen: A simple start page with the app's name, and links to the sign-up and login pages.
Sign-up and Login Pages: Users can register with their full name, email, and password, or log in with their email and password. Unauthorized users are restricted from accessing specific pages.
Home Page (Categories Page): Upon logging in, users are directed to the categories page. They can view categories, their icons, and total transaction amounts. Clicking on a category navigates to the transactions page. Users can also add new categories.
Transactions Page: Displays transactions for a category, ordered by the most recent. Shows the total category amount and offers an option to add new transactions. Users can easily navigate back to the home page.
"Add a New Category" Page: Users can create new categories, specifying names and icons, and return to the home page upon success.
"Add a New Transaction" Page: Allows users to create new transactions with names, amounts, and at least one category selection. After creation, users are taken to the transactions page.

Testing: I've included comprehensive unit and integration tests for essential components of the Ruby on Rails application, ensuring robust functionality.
Technical Stack: The application utilizes Postgres as the database, Devise for authentication, and thorough user input validation for security. We support multiple view template engines (.erb, .slim, .haml) and have successfully deployed the project online.
Database Schema: Our database schema aligns with the specified structure, providing a structured foundation for data management.

This pull request encompasses the core functionalities and design elements of the project, promoting a user-friendly and secure experience.
Video Demo

Hello @joel-kalema, I wanted to express my sincere gratitude for your review and feedback.
Added Test Scenarios

keep doing a good job 🥇


Feature request: re-use $... meta variable in rewrite expression

Since the $... expression can capture a number of nodes it would be useful if this could in one way or another be re-used in the re-write expression.
Right now the docs say "Spread metavariables are anonymous, so they cannot be bound to a name.", so anything captured there can't really be used.
The workaround I guess would be to use regex patterns.

$... on its own doesn't have a name, so it wouldn't be possible to bind them with the current syntax, I don't think it would be too hard to add something like $...name where $name binds to whatever $... would have matched

That would be lovely!


How to detect on an image using C# language after loaded model

I am a C# engineer. My project uses keras in Python to detect image. I know tensorflowsharp but it doesn't have C# api of keras. How to detect on an image using C# language in keras environment. Any suggestions will be greatly appreciated.

Hi ,
I am not a contributing author to this project. But, I did develop a sample project which demonstrates training a CNN using Python to recognize MNIST digits and then detect the test pictures using TensorFlowSharp C# library.
If this is what you are looking for then , this sample code is hyperlinked here:
[https://github.com/migueldeicaza/TensorFlowSharp/issues/347](MNIST - From Python to C# using TensorFlowSharp)
This is a very simple C# console application. All the hardwork is done by TensorFlow and TensorFlowSharp
Cheers

here is a (not mine)
https://engineering.matterport.com/splash-of-color-instance-segmentation-with-mask-r-cnn-and-tensorflow-7c761e238b46


[Bug]: OLMoForCausalLM not supported

Your current environment
Collecting environment information...
 Supported architectures: ['AquilaModel', 'AquilaForCausalLM', 'BaiChuanForCausalLM', 'BaichuanForCausalLM', 'BloomForCausalLM', 'ChatGLMModel', 'ChatGLMForConditionalGeneration', 'CohereForCausalLM', 'DbrxForCausalLM', 'DeciLMForCausalLM', 'DeepseekForCausalLM', 'DeepseekV2ForCausalLM', 'ExaoneForCausalLM', 'FalconForCausalLM', 'GemmaForCausalLM', 'Gemma2ForCausalLM', 'GPT2LMHeadModel', 'GPTBigCodeForCausalLM', 'GPTJForCausalLM', 'GPTNeoXForCausalLM', 'InternLMForCausalLM', 'InternLM2ForCausalLM', 'JAISLMHeadModel', 'LlamaForCausalLM', 'LLaMAForCausalLM', 'MistralForCausalLM', 'MixtralForCausalLM', 'QuantMixtralForCausalLM', 'MptForCausalLM', 'MPTForCausalLM', 'MiniCPMForCausalLM', 'NemotronForCausalLM', 'OlmoForCausalLM', 'OPTForCausalLM', 'OrionForCausalLM', 'PersimmonForCausalLM', 'PhiForCausalLM', 'Phi3ForCausalLM', 'PhiMoEForCausalLM', 'Qwen2ForCausalLM', 'Qwen2MoeForCausalLM', 'Qwen2VLForConditionalGeneration', 'RWForCausalLM', 'StableLMEpochForCausalLM', 'StableLmForCausalLM', 'Starcoder2ForCausalLM', 'ArcticForCausalLM', 'XverseForCausalLM', 'Phi3SmallForCausalLM', 'MedusaModel', 'EAGLEModel', 'MLPSpeculatorPreTrainedModel', 'JambaForCausalLM', 'GraniteForCausalLM', 'MistralModel', 'Blip2ForConditionalGeneration', 'ChameleonForConditionalGeneration', 'FuyuForCausalLM', 'InternVLChatModel', 'LlavaForConditionalGeneration', 'LlavaNextForConditionalGeneration', 'LlavaNextVideoForConditionalGeneration', 'MiniCPMV', 'PaliGemmaForConditionalGeneration', 'Phi3VForCausalLM', 'PixtralForConditionalGeneration', 'QWenLMHeadModel', 'UltravoxModel', 'BartModel', 'BartForConditionalGeneration']

I tried removing vllm, reinstalling, and also upgrading it to the newest version but nothing works so far.
I also have installed the required files for olmo https://github.com/allenai/OLMo (and tried building it via source as well), to no avail.
vllm works fine for other models like llama instruct though.
Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

There is an error in the config for allenai/OLMo-7B introduced in https://huggingface.co/allenai/OLMo-7B/commit/e3131094a01dfd83915c06d1bd3411b1f2327b86. OlmoModelForCausalLM was replaced with OLMoForCausalLM.
As you can see from https://github.com/huggingface/transformers/blob/13749e8edbc158dba463cd96d65e9d95a6851743/src/transformers/models/olmo/modeling_olmo.py#L1026 there is no such class as OLMoForCausalLM, the correct class name is OlmoForCausalLM.
See https://huggingface.co/allenai/OLMo-7B/discussions/18.

The checkpoint you are using is for an old version of transformers.
At the top of the README for https://huggingface.co/allenai/OLMo-7B it says

For transformers versions v4.40.0 or newer, we suggest using [OLMo 7B HF]> (https://huggingface.co/allenai/OLMo-7B-hf) instead.

Hi, I tried switching to OLMo 7B HF. but im still getting the following error. I tried it with different step sizes and the error is the same.

olmo = vllm.LLM(model=model_name,
...                 trust_remote_code=True,
...                 max_model_len=2048,
...                 revision="step320000",
...                 tensor_parallel_size=1)
Traceback (most recent call last):
File "", line 1, in
File "/home/mila/y/yash.more/.conda/envs/vllm/lib/python3.10/site-packages/vllm/entrypoints/llm.py", line 214, in init
self.llm_engine = LLMEngine.from_engine_args(
File "/home/mila/y/yash.more/.conda/envs/vllm/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 561, in from_engine_args
engine_config = engine_args.create_engine_config()
File "/home/mila/y/yash.more/.conda/envs/vllm/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 874, in create_engine_config
model_config = self.create_model_config()
File "/home/mila/y/yash.more/.conda/envs/vllm/lib/python3.10/site-packages/vllm/engine/arg_utils.py", line 811, in create_model_config
return ModelConfig(
File "/home/mila/y/yash.more/.conda/envs/vllm/lib/python3.10/site-packages/vllm/config.py", line 183, in init
self.hf_config = get_config(self.model, trust_remote_code, revision,
File "/home/mila/y/yash.more/.conda/envs/vllm/lib/python3.10/site-packages/vllm/transformers_utils/config.py", line 141, in get_config
raise ValueError(f"No supported config format found in {model}")
ValueError: No supported config format found in allenai/OLMo-7B-hf

allenai/OLMo-7B-hf doesn't have training step revisions. However, allenai/OLMo-7B-0724-hf does. If you read the README for that model they explain how to find the names of the revisions, by running:
from huggingface_hub import list_repo_refs
out = list_repo_refs("allenai/OLMo-7B-0724-hf")
branches = [b.name for b in out.branches]

The list is very long so I won't replicate it all here, but the format is as follows:
['step650650-tokens2729B', 'step69500-tokens291B', 'step69000-tokens289B', 'step50000-tokens209B', ...]

Hi i tried loading the branches, with the above code but keep getting the following error:
[rank0]: ValueError: Loading this model requires you to execute custom code contained in the model repository on your local machine. Please set the option `trust_remote_code=True` to permit loading of this model.
The code I'm using
Note: I tried removing the trust_remote_code argument, and it still persisits.
model_name = 'allenai/OLMo-7B-0724-hf'

out = list_repo_refs(model_name)

branches = [b.name for b in out.branches]

for branch in branches:
    if modelstep in branch:
        modelstep = branch
        break

olmo = vllm.LLM(model=model_name,
                max_model_len=2048,
                revision=modelstep,
                trust_remote_code=True,
                tensor_parallel_size=1)


⚠ Secret Website 3 has degraded performance

In 72c8e03, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 9227 ms

Resolved: Secret Website 3 performance has improved in 1418d77.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Generation for following Graph

Description of Issue
The Wiki and the manual does not specify how to use Twint as a "following graph browser" i.e. Given a list of users find all the users that are followed by them and draw a graph, and can flexibly add users to the list in order to expand the graph.
Might want to clarify this a bit since the CLI is seperate from the GUI.

There's a "Twint Graph Explorer" and here is explained how to use it.
It needs to be considered as deprecated. Also you can't manually add nodes or links.
The library that I used for that project might not be the best one, there are others around that might fit your needs.


add a scroll to top button

adding a scroll to top button for better navigation
please assign this issue

@ShrishtiSingh26 sure go ahead make sure to star the repo and join the discord server for communication.
Ink is there in contributing.md

I would like to take up the issue of adding a "scroll to top" button to the application. This feature will enhance user navigation, especially on pages with long content, allowing users to easily return to the top without manually scrolling.
Please kindly assign this issue to me,if it's not done yet and I will ensure it is implemented efficiently.
Thank you for considering my request! I look forward to your positive response.


Remove database credentials from the repo

Although the db can only be access through certain ip address with the given database credential, the better practice is to not include the password in the file but rather have an environment file that won't be uploaded to git to store the credential and parse from it.

Completed


error sigploit.py

root@kali:~/SigPloit# python sigploit.py
Traceback (most recent call last):
File "sigploit.py", line 16, in
from ss7.tracking import *
File "/root/SigPloit/ss7/tracking.py", line 14, in
import sigploit
File "/root/SigPloit/sigploit.py", line 21, in
from gtpmain import *
File "/root/SigPloit/gtpmain.py", line 12, in
import gtp.info
File "/root/SigPloit/gtp/info.py", line 18, in
from attacks.info import discover_gtp_nodes
File "/root/SigPloit/gtp/attacks/info/discover_gtp_nodes.py", line 39, in
from gtp_v2_core.utilities.configuration_parser import parseConfigs
File "/root/SigPloit/gtp/gtp_v2_core/utilities/configuration_parser.py", line 38, in
from configobj import ConfigObj, ConfigObjError
ImportError: No module named configobj

please run
sudo pip2 install -r requirements.txt

root@kali:~/SigPloit# python sigploit.py
Traceback (most recent call last):
File "sigploit.py", line 16, in
from ss7.tracking import *
File "/root/SigPloit/ss7/tracking.py", line 14, in
import sigploit
File "/root/SigPloit/sigploit.py", line 21, in
from gtpmain import *
File "/root/SigPloit/gtpmain.py", line 12, in
import gtp.info
File "/root/SigPloit/gtp/info.py", line 18, in
from attacks.info import discover_gtp_nodes
File "/root/SigPloit/gtp/attacks/info/discover_gtp_nodes.py", line 39, in
from gtp_v2_core.utilities.configuration_parser import parseConfigs
File "/root/SigPloit/gtp/gtp_v2_core/utilities/configuration_parser.py", line 38, in
from configobj import ConfigObj, ConfigObjError
ImportError: No module named configobj

its same error..

root@kali:~/SigPloit# ls
gtp          init.py  requirements.txt  ss7          Testing
gtpmain.py   LICENSE      sigploit.py ss7main.py
gtpmain.pyc  README.md    sigploit.pyc      ss7main.pyc
root@kali:~/SigPloit#

please run
sudo pip2 install -r requirements.txt

its done but still error

please make sure you have the latest version of the requirements.txt

Try python2

kali@kali:~/SigPloit$ sudo pip3 install -r requirements.txt
Requirement already satisfied: colorama>=0.3.9 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (0.4.3)
Requirement already satisfied: pyfiglet>=0.7.5 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (0.8.post0)
Requirement already satisfied: termcolor>=1.1.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (1.1.0)
Requirement already satisfied: configobj>=5.0.6 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4)) (5.0.6)
Requirement already satisfied: IPy>=0.83 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 5)) (1.0)
Collecting pysctp>=0.6
Downloading pysctp-0.6.1.tar.gz (32 kB)
Building wheels for collected packages: pysctp
Building wheel for pysctp (setup.py) ... done
Created wheel for pysctp: filename=pysctp-0.6.1-cp38-cp38-linux_x86_64.whl size=68787 sha256=1d508f09845fa0d1807fe8242b0cfbd11514ac07867873a3d774d5029fac3886
Stored in directory: /root/.cache/pip/wheels/a7/79/cf/5e65fa01197e20b3b9b33b0b85eadc426c72976c14323a955a
Successfully built pysctp
Installing collected packages: pysctp
Successfully installed pysctp-0.6.1
kali@kali:~/SigPloit$ python sigploit.py
Traceback (most recent call last):
File "sigploit.py", line 16, in
from ss7.tracking import *
File "/home/kali/SigPloit/ss7/tracking.py", line 14, in
import sigploit
File "/home/kali/SigPloit/sigploit.py", line 21, in
from gtpmain import *
File "/home/kali/SigPloit/gtpmain.py", line 12, in
import gtp.info
File "/home/kali/SigPloit/gtp/info.py", line 18, in
from attacks.info import discover_gtp_nodes
File "/home/kali/SigPloit/gtp/attacks/info/discover_gtp_nodes.py", line 39, in
from gtp_v2_core.utilities.configuration_parser import parseConfigs
File "/home/kali/SigPloit/gtp/gtp_v2_core/utilities/configuration_parser.py", line 38, in
from configobj import ConfigObj, ConfigObjError
ImportError: No module named configobj

sudo pip3 install configobj
Requirement already satisfied: configobj in /usr/lib/python3/dist-packages (5.0.6)
kali@kali:~/SigPloit$ python sigploit.py
Traceback (most recent call last):
File "sigploit.py", line 16, in
from ss7.tracking import *
File "/home/kali/SigPloit/ss7/tracking.py", line 14, in
import sigploit
File "/home/kali/SigPloit/sigploit.py", line 21, in
from gtpmain import *
File "/home/kali/SigPloit/gtpmain.py", line 12, in
import gtp.info
File "/home/kali/SigPloit/gtp/info.py", line 18, in
from attacks.info import discover_gtp_nodes
File "/home/kali/SigPloit/gtp/attacks/info/discover_gtp_nodes.py", line 39, in
from gtp_v2_core.utilities.configuration_parser import parseConfigs
File "/home/kali/SigPloit/gtp/gtp_v2_core/utilities/configuration_parser.py", line 38, in
from configobj import ConfigObj, ConfigObjError
ImportError: No module named configobj

I also am getting this error what’s happening


new app

Hi Gordon, can you please merge only the "SWL Clock" ? Thanks

Ok, thanks! Just done. I had to copy out the files manually though.


Not able to play gblorb file

The boot process stops with: "Quixe init: glk_put_jstring: invalid stream"
The gblorb file is: http://caad.es/baltasarq/if/visitantes/visitantes.gblorb [spanish IF]
I've tried converting it to JavaScript with and without --giload.

This is almost certainly a bug in the game.

The game runs fine both in git and glulxe.

The game is writing to an invalid stream or window. Not all Glk libraries report this error, but it is an error.

All right, so you have two choices: fix that so your interpreter is able to
play a lot of games with an unnoticed (till now) error, or be the author of
a righteous interpreter unable to play a lot of games.
-- Baltasar
El lun., 5 dic. 2016 19:03, Andrew Plotkin<EMAIL_ADDRESS>escribió:

The game is writing to an invalid stream or window. Not all Glk libraries
report this error, but it is an error.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/erkyrath/quixe/issues/28#issuecomment-264928254, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAMRNOMp243OrJtDK_r1Qq-EYu9id0ACks5rFFH3gaJpZM4LESn6
.

I regret the current situation, but it should be fixed in the development tools.
I can only recommend you support https://inform7.uservoice.com/forums/57320-general/suggestions/1933277-the-ide-interpreter-should-reject-invalid-glk-call .

I should note that it's not just Quixe. I support several Glk libraries, and other people support yet more. Merely saying "fix my interpreter" does not solve the problem.
The choice before me are to leave the spec and say the games are wrong, or change the spec and say the interpreters are wrong. Either of them involves telling people to do work. It's not just me being lazy.

Just to clarify a little: with this kind of error it doesn't matter if you use Git or Glulxe, what matters is the Glk implementation. If you use a lax Glk implementation (like Windows Glk I think?) then both will say nothing, but if you use a strict one then both will show the error.
@erkyrath What are some other strict Glk implementations which @Baltasarq could use to test this? Is cheapglk?

CheapGlk is strict, but this game uses graphics and multiple windows so it's never going to run under CheapGlk. (Really it should check those capabilities too, but that's a different fight.)
RemGlk is also strict, but again, it doesn't support graphics. Ask again next month.

Interesting. Are you saying that I cannot play this game in Linux? Because I can.
It also works in Zag, a completely diferent (Java) implementation.
Alas, I have a ulx (text-only, working in all interpreters but producing the same error just in Quixe) and z5 versions, produced from the very same code base (BTW, the z5 works flawlessly in all interpreters, even Parchment). The game was developed with Inform6.
Nevermind. I'm just tired of taking the effort of reporting a bug just to find the (childish attitude, INMHO) of the author(s) defending themselves with the "it's not my fault". You have the info, do whatever you want.

The situation is frustrating for me too, but I cannot resolve it by changing one line of code or even one library.
I am hoping that with Lectrote out, authors will be able to test this case more easily.
(I am also hoping that the IDE interpreter is updated to be more strict, of course.)

I'm going to second @Baltasarq here. This seems like a case of ignoring the spirit of the spec in favor of strict adherence to its wording. The effect is that it surprises the end user, which should be the target audience of a library like this.
As a player of interactive fiction, I want to be able to load a well-known game into any interpreter that claims to run these games. Quix fails to provide this for certain games, such as "Everybody dies." This game works in every other interpreter I've tried.
Most other platform developers recognize this. Operating systems, programming languages, etc. all include quirks for backwards compatibility. It's annoying, but it's the right thing to do in order to adhere to the principle of least surprise. "Everybody else is doing it wrong" may be true, but that doesn't mean this is the right way to address the issue.

I think this was finally fixed by https://github.com/erkyrath/quixe/commit/6e2fc27c438c537419c1ae24acaae8bfa7f4275b

Sorry, it is a different bug. Parchment was giving me unrelated troubles, so I couldn't verify the file at the top. But now that I check it, I see the same error.


Add/Update GitLab System Emails

Summary
Add/Update GitLab System Emails
Background
This task is to add/update the system emails generated by the EasyCLA system. These emails should be reviewed and updated to support GitLab vocabulary.
Tasks

[ ] Review and update the system emails generated for the approval list updates. Ensure these updates include the GitLab username and GitLab Group approval list entries.
[ ] REview and update the system emails generated/sent to Project Managers when GitLab Groups/Orgs and/or Repositories/Projects are added/updated/removed.

Acceptance Criteria

[ ] System emails are generated correctly and have the correct content.

References

Closing issue due to inactivity.


Allow CSP child-src blob from 'self' to fix Dashboard in Safari

Coverage remained the same at 53.009% when pulling bc3a3f2dcfc43b5004122d3d865a872a83c819e8 on fix-dashboard-in-safari into 959d2a29f70c019673a8d01b51e9bc7251a90a3b on master.


Bump minimum tyro version

https://github.com/huggingface/trl/pull/897 uses tyro.conf.arg(constructor=...), which is only available in 0.5.11!
@vwxyzjn

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


An Event Webpage

You can make a static page holding an event. People who are interested in attending the conference create a register button for them. Mention different links for speaker, venue and schedule at the top in the header section. Describe the purpose of the conference or the category of people who can get benefit from this conference. Add an introduction and images of the speaker, venue detail and the main purpose of the conference on your webpage. Divide the page into sections, add header and footer showcasing the menu. Use proper background color that can go well with each other for various sections. Choose a descent font style and font color that matches the theme of your web page. It requires HTML/HTML5 and CSS knowledge in depth.
There is no limit in using various tech stacks just remember it would not going to mess up with our project 😅
Write I am working on this and start working.

I'm interested. Please assign


[VS Code] Starting collaboration session: Invalid root scheme: vsls, expected 'file'

Error:
Starting collaboration session: Invalid root scheme: vsls, expected 'file'
Steps to Reproduce:

Version Data

extensionName
VSLS

extensionVersion
0.3.1151

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.30.2

platformName
MacOS

platformVersion
18.2.0

@ericxtang We're tracking this issue via #1568, so I'm going to close this as a duplicate. If you could run the Live Share: Export Logs command, and attach the resulting zip to #1568, that would be hugely appreciated. Thanks!


Error message in any make commands

$ make f
cp: preserving times for '/home/.kube': Read-only file system
make[1]: *** No rule to make target 'f'.  Stop.
make: *** [Makefile:46: f] Error 2

Fixed by https://github.com/istio/tools/pull/968


2d plots may fail for some choices of x and y

What happened:
When making a 2d plot with a 1d x argument and a 2d y, if the two dimensions have the same size and are in the wrong order, no plot is produced - the third plot in the MCVE is blank.
What you expected to happen:
All three plots in the MCVE should be identical.
Minimal Complete Verifiable Example:
from matplotlib import pyplot as plt
import numpy as np
import xarray as xr

ds = xr.Dataset({"z": (["x", "y"], np.random.rand(4,4))})

x2d, y2d = np.meshgrid(ds["x"], ds["y"])

ds = ds.assign_coords(x2d=(["x", "y"], x2d.T), y2d=(["x", "y"], y2d.T))

fig, axes = plt.subplots(1,3)

ds["z"].plot.pcolormesh(x="y2d", y="x2d", ax=axes[0])
ds["z"].plot.pcolormesh(x="y", y="x", ax=axes[1])
ds["z"].plot.pcolormesh(x="y", y="x2d", ax=axes[2])

plt.show()

result:

Anything else we need to know?:
The bug is present in both the 0.17.0 release and current master.
I came across this while starting to work on #5084. I think the problem is here
https://github.com/pydata/xarray/blob/ddc352faa6de91f266a1749773d08ae8d6f09683/xarray/plot/plot.py#L678-L684
as the check xval.shape[0] == yval.shape[0] doesn't work if the single dimension of x is actually the second dimension of y, but happened to have the same size as the first dimension of y? I think it needs to check the actual dimensions of x and y.
Why don't we just do something like
xval = xval.broadcast_like(darray)
yval = yval.broadcast_like(darray)

if either coordinate is 2d before using .values to convert to numpy arrays?

IIRC the "resolving intervals" section later will break and is somewhat annoying to fix. This is why the current ugly code exists.


Not able to run Litestar app with lifespan

Describe the bug
lifespan crashes without any interesting info
To Reproduce
Steps to reproduce the behavior:
run that simple app, it runs ok with lifespan=False and crashes with lifespan=True
ERROR - 2023-08-24 16:04:36,385 - root - asgi - Uncaught Exception: unknown async library, or not in async context
from contextlib import asynccontextmanager
from functools import partial
from typing import AsyncGenerator

from litestar import Litestar, get, Request
from socketify import ASGI

@asynccontextmanager
async def lifespan(_app: Litestar) -> AsyncGenerator[None, None]:
    print(1)
    yield
    print(2)

def get_app() -> Litestar:
    @get("/")
    async def index(request: Request) -> int:
        return 1

    app = Litestar(route_handlers=[index],
                   lifespan=[partial(lifespan)]
                   )

    return app

if __name__ == "__main__":
    app = get_app()
    ASGI(app, lifespan=True).listen(8000).run(1)

Expected behavior
well it should not crash
Desktop (please complete the following information):

OS: [debian11]
Browser [chrome]
Version [Version 116.0.5845.96 (Official Build) (64-bit)]

seems like it has to do with TaskGroup creation
is there anything we can provide to help on this ?

Fixed in the main branch


Several cosmetic problems on organization detail page

Related to #34 and #35

[ ] Same issues identified in #34 and #35 apply to button and card styling
[ ] Even though I do have to make the screen really small, I can make text overflow on top of other text
[ ] I think we should re-style the Org ID in the top left. Probably this gets resolved by adding breadcrumbs, but maybe there's an icon we can use

Hi @Ned-oleary,
I’m interested in working on this issue. Could you please assign this to me?

Yep @Ravindra283, all yours!

Hi @Ned-oleary,
Please check the UI changes
https://www.loom.com/share/7076643569a44f45abcc58f1526c7c6b


Green Screen feature

Would be great to have a green screen feature similar to Ansel, having similar controls to the DOF in terms of moving it further or closer from the point of focus

Unlikely to be worked on any time soon. ReShade has a green screen filter, so you'll have to use that for now.


Add recommendations back to side bar after restore

Fixes #52989.

As a side note, this file is starting to be in want of a refactoring. Debt week?

As a side note, this file is starting to be in want of a refactoring. Debt week?

Definitely!


RSS Feed Not Working

it appears the news RSS feed doesn't work anymore.

@jtv7 Thanks for bringing this to my attention. Looks like when I added https support, there was an accident that caused another s to be placed after thehttps in the url causing it to be httpss, thus causing the feed to not properly be serialized. This is now fixed in the latest release. Simply run pod update BigBoard and you should be good to go!
Thanks! 😃


how to accelerate the speed of dectecting?

I train my own dataset with faster-rcnn, and there is only on class,but it cost 8 to 9 seconds on every image.That's too slow for me project.Is this because that I use cpu to train? Can anyone help me ?Thank you very much.

Yes, of course using CPU instead of GPU slows you down
If you are worried about the fact the it is a lot, it is normal, the process is really intensive


[Bug]:  Broken evaluation on action trigger when self-referenced

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Observed on Eval/Linting split DP (https://appsmith-git-feat-split-evaluation-and-linting-get-appsmith.vercel.app/)
Root cause
EVAL_WORKER_ACTIONS.EVAL_TRIGGER faster than EVAL_WORKER_ACTIONS.EVAL_TREE (this requires transfer of data between threads). EvalTree is getting mutated during the setup phase of EVAL_WORKER_ACTIONS.EVAL_TREE, causing wrong data to be sent to the triggerExecutor.
Steps To Reproduce

Drag an input widget to the canvas (Input1)
Add the following code to the onTextChanged property  {{showAlert(Input1.isValid)}}
Observe unevaluated value in the toast message shown.

Public Sample App
No response
Version
DP (https://appsmith-git-feat-split-evaluation-and-linting-get-appsmith.vercel.app))

Now fixed


Build publish

Create build task:

The generated bundle requires React and PropTypes
The bundle is placed at /dist/reflex.js
Storybook uses the built bundle instead of src/index
Export only lodash modules used

yarn start initiates 2 watch tasks (1 for /src and one for /stories)

Transform flow to PropTypes for test, dev and prod

Set up semantic release on CI for passing master builds

Closes #36

Merging to test deployment and semantic release but there's still some work to be done


Check using Rust instead of Java

I want to check Rust to use instead of Java since it seems like there are already a lot things available we currently do by ourselves (math typesetting, CSL, ...). Only PDF writing might not work as well, but we need to check it.
Additionally there are libraries available that support OpenType fonts.

Math typesetting: https://github.com/ReTeX/ReX

Math typesetting: https://github.com/ReTeX/ReX

Syntax highlighting (python no more needed!): https://crates.io/crates/syntect

Syntax highlighting (python no more needed!): https://crates.io/crates/syntect

Citation support (CSL): https://github.com/cormacrelf/citeproc-rs (MPL 2.0 License -> should be ok)

Citation support (CSL): https://github.com/cormacrelf/citeproc-rs (MPL 2.0 License -> should be ok)

PDF writing:

https://github.com/pdf-rs/pdf (MIT-License, but can only be used if the writer is working again)
https://crates.io/crates/printpdf (MIT-License, but no PDF reading needed for including PDF as figures?)

PDF writing:

https://github.com/pdf-rs/pdf (MIT-License, but can only be used if the writer is working again)
https://crates.io/crates/printpdf (MIT-License, but no PDF reading needed for including PDF as figures?)

Knuth-Plass Line Breaking Algorithm: https://crates.io/crates/paragraph-breaker (MIT License)

Knuth-Plass Line Breaking Algorithm: https://crates.io/crates/paragraph-breaker (MIT License)


Opening links in markdown preview tries to open the browser to vscode-webview-test.com

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

VS Code Version: 1.56.2
OS Version: Mac OS 11.4

Steps to Reproduce:

Same steps as this issue: https://github.com/microsoft/vscode/issues/115812
Open markdown preview and press a link

Does this reproduce in the latest VS Code insiders build with all extensions disabled?

Regular markdown links ( [test](./path.md)) do work.
What is no longer working is navigation for wikilinks provided by the Foam extension.
Foam parses wikilinks in the markdown document and creates proper links in the html preview.
This was working without problems up until 1.55.2, but it no longer works afterwards.
Has something changed between those versions in how preview links are handled?
You can see https://github.com/foambubble/foam/issues/648 for more details.

Does this reproduce in the latest VS Code insiders build with all extensions disabled?

Hi,
Just tried it in VSCode insiders without any other extension. The wiki-links in the preview whose path is the same as the link itself do work, but as soon as a wiki-link points to a file that is not in the same folder as the previewed one, clicking the link results in the opening of my default browser.

hi @mjbvz, is there anything that could have caused this issue in the latest releases? I haven't found anything glaring, but maybe there is something else might I might have missed?

hi @mjbvz, is there anything that could have caused this issue in the latest releases? I haven't found anything glaring, but maybe there is something else might I might have missed?

vscode update broke Dendron wikilinks as well. we ended up using command urls to open links instead. see here for what we did


Boilerplate support for .NET Core 3.0

The current Kentico Kontent .NET Core boilerplate only supports .NET Core 2.1. Some of our systems may have limitations for versions of .NET Core under version 3.0 (.NET Core 3.0 added some connectivity functionality for a legacy database system that we use), so an upgrade to .NET Core 3.0 would make using Kentico Kontent simpler in our case. Plus it would keep it in line with our current development plans to implement .NET Core 3.0.

hi @ewomack2000 ...yes. we'll be porting our samples to netcore3 and making libraries compatible with it soon.

Released: https://github.com/Kentico/kontent-boilerplate-net/releases/tag/4.0.0


led-relay: demo application for led and relay.

Example application for flashing leds and enable/disable bypass relays.
Signed-off-by: Andreas Egeberg<EMAIL_ADDRESS>

Just a minor thing, for future reference, I noticed you replaced a few printf()'s with fprintf(" ... E:%s", strerror(erno)); that's fine, but there exist C-library APIs already for this that are very useful for command line applications like yours:
#include <err.h>

     err(1, "Print this error message, followed by: strerror(errno), and exit with code: 1\n");
     errx(1, "Same as err(), but doesn't append any: strerror(errno)");

    warn("Similar to err(1,) but doesn't exit.");
    warnx("Similar to warn() but does append any: strerror(errno)");

Take care! :heart:


Groups of agents

Thanks for your great work.
Is it possible to use this simulator to simulate a playground where the agents can form groups and play games together ?

Hi,
Thank you!
Yes it is possible. There is no limit on the number of agents.
I am currently working on a new versions where agents and entities can be assigned to teams. And interactive elements can only be activated by members of their own team.
Cheers
Michael


New version: Nullpomino.Nullpomino version 7.5.0

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115927&drop=dogfoodAlpha

Close with reason: Duplicate; Existing package has correct ARP


Custom framerate?

The frame rate I don't believe is changing if I pass in a custom value in config, I am trying:
  recorder = p5Gif.capture({framerate: 60});

But the GIF appears to stick with the 10 FPS default?
Full code: https://editor.p5js.org/codingtrain/sketches/WfEih8mL7

I found a way to overwrite settings :
After you initialized the recorder, set custom settings like this
`recorder = p5Gif.capture({framerate: 60});
recorder.settings.width = 200;
recorder.settings.height = 200;
recorder.settings.framerate = 12;`
This will work, until changes are made by the developers

Actually, we currently forbid the framerate going beyond 20 fps. It is a concern of the run-time performance. If the fps is large, the time for saving gif will be quite long. We will see if we can tune up the fps restriction.

@shiffman @fffiloni  Thanks for your help. The custom framerate problem has been solved. I limited the upper framerate to 30 right now. Do you think it is still small? We originally thought a large framerate will make the browser crash.

Hello !
It seems that the custom framerate is still not changing. In the recorder.settings.framerate we see it has changed, but then the gif that is created do not take this number.
My gif, once downloaded, are always at the same rate : 10.
Thanks for your help !

maybe it is something involved with the delayvalue  on the gif export ?

i moved my last question into a new issue : #16
because i think its a new features request  ;)


Cofig on the server does not work

Whenever i run beans backpack on a server the config does not show up in either the config folder or the world/serverconfig folder, whenever you add the config manually into the server it just completely ignores it

Config hasn't been really tested on servers, I'll check this out and see what I find

New version 0.4-beta is live!


Support output to XML

Right now the generator can only output to CSV. We should add support for generating fake XML files.

Initial work to output XML is now directly in main branch.


PHOENIX-6546 BackwardCompatibilityIT#testSystemTaskCreationWithIndexA…

…syncRebuild is flakey

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m  1s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
16m 22s
the patch passed

+0
hbaserecompile
26m 44s
HBase recompiled.

+1 :green_heart:
compile
1m  6s
the patch passed

+1 :green_heart:
javac
1m  6s
the patch passed

+1 :green_heart:
checkstyle
1m  1s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
javadoc
0m 51s
the patch passed

+1 :green_heart:
spotbugs
3m 31s
the patch passed

_ Other Tests _

-1 :x:
unit
124m  2s
phoenix-core in the patch failed.

+1 :green_heart:
asflicense
0m 36s
The patch does not generate ASF License warnings.

196m 13s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/phoenix/pull/1307

Optional Tests
dupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile

uname
Linux b8fd98dba072 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev/phoenix-personality.sh

git revision
master / 3bd4feb

Default Java
Private Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08

unit
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/1/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt

Test Results
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/1/testReport/

Max. process+thread count
11746 (vs. ulimit of 30000)

modules
C: phoenix-core U: phoenix-core

Console output
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/1/console

versions
git=2.7.4 maven=3.3.9 spotbugs=4.1.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 22s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
19m 14s
the patch passed

+0
hbaserecompile
31m 51s
HBase recompiled.

+1 :green_heart:
compile
1m 18s
the patch passed

+1 :green_heart:
javac
1m 18s
the patch passed

+1 :green_heart:
checkstyle
1m  9s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
javadoc
1m  2s
the patch passed

+1 :green_heart:
spotbugs
4m 19s
the patch passed

_ Other Tests _

-1 :x:
unit
135m 52s
phoenix-core in the patch failed.

+1 :green_heart:
asflicense
0m 36s
The patch does not generate ASF License warnings.

219m 19s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/2/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/phoenix/pull/1307

Optional Tests
dupname asflicense javac javadoc unit spotbugs hbaserebuild hbaseanti checkstyle compile

uname
Linux 7600b5d3c92e 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev/phoenix-personality.sh

git revision
master / 3bd4feb

Default Java
Private Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08

unit
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/2/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt

Test Results
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/2/testReport/

Max. process+thread count
8203 (vs. ulimit of 30000)

modules
C: phoenix-core U: phoenix-core

Console output
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1307/2/console

versions
git=2.7.4 maven=3.3.9 spotbugs=4.1.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


Fix symbol and map glitches

Fixes #380 - or at least, patches up the most glaring problem and adds a bunch of symbols by monkey-patching plotly. The symbols are glyphs from fonts, so size depends on which font is picked that seems to be browser dependent.  Also tackles a couple of small glitches when switching back and forth from 3D/2D

Sorry I didn't get a chance to check this before you merged, but so far it looks like it fixes the problem for me as well.


Config file settings not applied in neovim

I have setup typos-lsp like this:
local xdg_config_home = vim.env.XDG_CONFIG_HOME or (vim.env.HOME .. "/.config")
local nvim_lsp = require("lspconfig")
local capabilities = vim.lsp.protocol.make_client_capabilities()

local on_attach = function(client, bufnr)
  -- A bunch of keybindings and autocommands
end

nvim_lsp.typos_lsp.setup({
  on_attach = on_attach,
  capabilities = capabilities,
  init_options = {
    diagnosticSeverity = "hint",
    config = xdg_config_home .. "/typos.toml",
  }
})

This works great, and using inotifywait I can see that the config file is indeed opened when the lsp server starts.
The config file looks like this:
[default]
extend-ignore-re = ["snd-hda-intel"]
locale = "en-gb"
[default.extend-identifiers]

[default.extend-words]

When I run typos --config ~/.config/typos.toml on my project directory, snd-hda-intel is ignored as it should, however in neovim it's still shown as a typo.
Is typos-lsp somehow not passing the config file to typos?

Hello, I had the same problem. Setting root_dir like https://github.com/tekumara/typos-lsp/issues/29#issuecomment-1888524584 fixed it.

I set root_dir as suggested in that comment but the config is still not being applied.
I also see that the config file is actually being opened when the language server starts, but the settings are not actually applied.
It does work when running typos directly though.

Thanks for raising this, support for extend-ignore-re was missing and has now been added!


Docs feedback: Review guidance for sending OTel to Grafana

URL
https://grafana.com/docs/alloy/latest/collect/opentelemetry-to-lgtm-stack/
Feedback
We currently have a Collect OpenTelemetry data and forward to Grafana doc, which advises users to translate their telemetry to Loki-native and Prometheus-native formats prior to sending it to Grafana Cloud. Now that Grafana Cloud has OTLP endpoints which are Generally Available, there is no need to do these translations. In fact, it's not even recommended to do the translations anymore since the way they are done in the cloud gateway might be different from the way it's done in Alloy.
We could do a few things:

Delete the Collect OpenTelemetry data and forward to Grafana page.
Update the Collect OpenTelemetry data doc to mention some more things:

That Grafana Cloud has OTLP endpoints and users could send OTLP to them directly.
It's possible to translate data between OTLP and Prometheus, and between OTLP and Loki. Users are free to do so whenever they like, but their experience with Grafana Cloud might be best if they avoid doing translations. That way the original data will be preserved as much as possible, and Grafana Cloud will have a chance to translate the telemetry in the best way. E.g. it might use structured metadata when converting OTLP resource attributes in logs.

cc @cyrille-leclerc

Looks great.
One minor comment

That Grafana Cloud has OTLP endpoints and users could send OTLP to them directly.
We have consensus to call it the "Grafana Cloud OTLP Endpoint", singular

@Clayton, FYI for visibility.

FYI the following docs update will improve the guidance for sending OTLP to Grafana:

https://github.com/grafana/website/pull/21511


Nest binary sensor fixes

Make sure the Nest binary sensors wait with initialization until the component has been set up.
Also add hvac_heater_state as a sensor type so that we can see when the heating system is active.

Looks good :dolphin: Thanks!


invite member modal fits on screen for small screen

Summary
The PR fixes the squashed invite member modal which happens on smaller screens.
Ticket Link

https://mattermost.atlassian.net/browse/MM-44799
Screenshots

before
after

Release Note

NONE

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

@salmanmanekia looks great! Can we center the modal vertically please?

Thank you team. I have made the suggested changes in the PR.


Wrapping text generated from the Text model

Is there a way when converting text to an SVG using the Text model to word-wrap the text at a certain width, rather than the output being the entire sentence spanning continuously?

Hi @gpmcadam - it would be nice if the underlying library opentype.js provided this. I've opened an issue in their repo.
You could also do it yourself, by measuring each glyph in a Text model. Things to watch out for would be:

What is the line height (this could be passed in)
Where should glyphs be left aligned (this might require more work.)

Another approach, if you  are in a browser environment, is to load the same font into your web page, and render each character as a span into a DOM element which had a max-width setting. Then you could get the location of each span.

According to the OpenType team, guidance would be to try to use the opentype-layout project. As a step to support opentype-layout, I've exposed a new function makerjs.models.Text.glyphToModel() which accepts a glyph and returns a model.
We should then be able to call the computeLayout, and from the result then convert glyphs to models. I haven't tried it yet, but I will try to put a proof together when I get some time.

Hi @gpmcadam , finally got some time to try opentype-layout, it works well!
Code is here: https://github.com/danmarshall/makerjs-wrap-text
Live demo: https://maker.js.org/playground/?script=makerjs-wrap-text


Change esp32 builds to use the tflite-micro-esp-examples repo instead of building natively from tflite-micro sources

Espressif is actively maintaining the https://github.com/espressif/tflite-micro-esp-examples repository which is the Tensorflow for Microcontrollers build for esp32 using C/C++ using ESP-IDF.
Instead of depending on tflite micro directly we can depend on it as an esp-idf component which will reduce the amount of maintenance on our side and duplication.
I'm also interested in changing the build system from being submodule based to using shallow clones like ulab does it.  That will allow nightly builds to run against the latest version of the different dependencies and let me notice problems earlier.
As part of this I want to upgrade to the latest micropython master (>1.20.0) to address #125 and #111.

I was having trouble getting the github action build to work due to hitting the ARG_MAX limit in ubuntu.  Essentially there is a limit on the character buffer for command line arguments and because of the nested depth of the checked out code it was hitting the limit and failing the QSTR generation.
I found a fix in that I can just move the checked out sources up a level which reduces the text usage for each path by 25ish characters and comes in under the limit.


[INFRA-2651] Replace Accountapp by Keycloak

What this PR does / why we need it:
This pull request replaces the old account app with keycloak. Keycloak will also use url accounts.jenkins.io instead of beta.accounts.jenkins.io. Once approved I'll manually remove the old accountapp and apply changes from this pull request then everything will get back to normal
Which issue this PR fixes

fixes # INFRA-2651

should you delete accountapp as part of this pr? you can always revert in the future.


"osm install" should show warning msg about single-mesh-enforcement preventing multiple installs

Bug description:
When an existing osm mesh is already installed with single mesh enforcement (default true), and “osm install” is run again, the cli should warn that installation cannot proceed because of single-mesh-enforcement.
As of now, the cli does not make this fact clear, and instead prevents installation by prompting the user to run the install command again with a new mesh name and mesh namespace. It should instead warn users that installation cannot proceed because of single mesh.
Affected area (please mark with X where applicable):

Install                    [X]
SMI Traffic Access Policy  [ ]
SMI Traffic Specs Policy   [ ]
SMI Traffic Split Policy   [ ]
Permissive Traffic Policy  [ ]
Ingress                    [ ]
Egress                     [ ]
Envoy Control Plane        [ ]
CLI Tool                   [X]
Metrics                    [ ]
Certificate Management     [ ]
Sidecar Injection          [ ]
Logging                    [ ]
Debugging                  [ ]
Tests                      [ ]
Demo                       [ ]
CI System                  [ ]

Expected behavior: Appropriate prompt
Steps to reproduce the bug (as precisely as possible):

Install osm with single mesh enforcement (default true). Installing again with various options show incorrect prompt.

How was OSM installed?: See above.
Anything else we need to know?:
Bug report archive:

Environment:

OSM version (use osm version): v1.0.0-rc.3
Kubernetes version (use kubectl version):
Size of cluster (number of worker nodes in the cluster):
Others:

picking up this issue

@shalier are you currently working on this? If not, please unassing yourself


Add 7.0 as acceptable login interface version

Purpose
https://github.com/folio-org/mod-login/pull/81 includes a breaking change (removal of GET /authn/credentials).  This requires a major interface version bump (login 6.0 -> login 7.0).  In order to prevent dependency issues we need to coordinate this change across several modules and edge APIs.
Approach
Unless this endpoint is used by a module it's safe to just add 7.0 to the list of allowable versions for the login interface.

@craigmcnally We got almost the same PR: https://github.com/folio-org/edge-oai-pmh/pull/49/files
It also aligns the version of oai-pmh, which was bumped up due to massive API rework.
https://github.com/folio-org/mod-oai-pmh/pull/73/files


[stable/external-dns] add cloudflare-proxied option to enable the proxy feature

What this PR does / why we need it:
Hi! I added cloudflare-proxied option to enable the proxy feature of Cloudflare! This is the main feature of it and should be there.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/assign @linki

Is this the same as https://github.com/helm/charts/pull/10141 ?

Yes, this is the same.


RetryPolicy should be harder to use wrong

I suspect most people want their retry policies to eventually complete.  In my service we got burned because we used a retry policy without a maxRetries or maxDuration, so a bad call was tried over and over indefinitely.  (We mistakenly thought a maxDelay would imply a retry termination criteria.)
I propose that the API for RetryPolicy be changed such that a Retry policy cannot be used without specifying one of

setMaxDuration()
setMaxRetries()
setUnlimitedRetries()   // New method which would reset maxDuration and maxRetries

This would require the user to explicitly choose whether they want a policy that must terminate or one that may not, while not losing the current unlimited retries capabilities.
One of my driving API design principles is "make it hard to do the wrong thing" (while still being designed to be as easy to use as possible).  Today, I think the API makes it too easy to do the wrong thing (i.e. unexpected infinite loop).

Hi David,
You are right that right now, by default, new RetryPolicy() will retry forever unless a max retries or duration are specified. I'm open to changing this behavior, but it could/would be a breaking change for some users, so I'd be interested to get more feedback on whether this is a good thing. I'm also interested to see what precedent there is in other similar technologies libraries around this issue (FWIW).
Your principle makes sense. The current behavior is based on wanting to make the API as simple as possible, where performing retries is as simple as using a new RetryPolicy() and where additional constraints can be added from there.

This could also apply to CircuitBreaker, which by default, has no delay, and therefore transitions from open to half-open on the next execution attempt.

what precedent there is in other similar technologies/libraries around this issue (FWIW).

FWIW, in Polly for .NET, we avoid providing invisible defaults for key dimensions: we force users to provide key config explicitly when constructing a Policy.  Where there isn't an obvious/dominant-choice default, I prefer users to have to think about what they want, than provide a default which they may unthinkably fall back on, and which may not suit all.  Avoiding invisible defaults also makes the calling code less opaque to subsequent devs who come along, and may not know the library.
We don't operate however with Failsafe's (lovely) syntax which allows a no-args ctor followed by postfix, accumulating configuration.  The huge disadvantage with Polly's configure-everything-in-one-shot approach (which I inherited on the project) is burgeoning numbers of overloads, and richest overloads with lots of parameters.  I love Failsafe's syntax, to the extend that we've considered converting Polly to it.  If I was starting Polly again ... ... best compromise might be a syntax which forces key dimensions explicit, but allows optionals to be added by accumulation.


FLUO-768 Improve Oracle log message

This commit and change is an effort at making the log statement understandable to the user, based on user feedback.

Thank you for the catch! Dyslexic mistake for sure. Just opened a corrected
PR.
On Dec 26, 2017 10:35 AM, "Mike Walch"<EMAIL_ADDRESS>wrote:

@mikewalch requested changes on this pull request.
Code change looks good to me but the issue number should be #786
https://github.com/apache/fluo/issues/786
This isn't required but I think it's a nice practice. If you use 'Closes
#786 https://github.com/apache/fluo/issues/786' or 'Fixes #786
https://github.com/apache/fluo/issues/786' in commit messages rather
than 'FLUO-786' the '#786 https://github.com/apache/fluo/issues/786'
becomes a link to the issue and the issue will be closed automatically by
GitHub when the commit gets into the master branch.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/fluo/pull/989#pullrequestreview-85579615, or mute
the thread
https://github.com/notifications/unsubscribe-auth/Acg-LPkXU4ES8JjjT2I9siwI96PR3gPgks5tETyGgaJpZM4RM7PI
.


"Using workflow templates" not fully translated in Korean

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/ko/actions/writing-workflows/using-workflow-templates
What part(s) of the article would you like to see updated?
This page's language is Korean, but mixed with English.
So hard to understand.

Additional information
No response

@chocoPenguin Thanks for reaching out, and flagging this! Since we us an internal, automated solution for our translated docs, I will flag your request for our team 💛
For more information on translations, please see https://github.com/github/docs/blob/main/contributing/types-of-contributions.md#earth_asia-translations ✨

Thank you for your feedback. We will review the issue (ICX ADO Tracking Reference: 1002636).

Resolved as Fixed & Verify.


[SATURN-1887] Ensure that the Upload In Progress modal cannot be dismissed

…except by explicitly aborting the upload with the Red button.
This disables all of the other means of dismissing the modal, such as pressing the Esc key or clicking outside, but it ensures that the user can't do anything else in their project while the upload is still going on.
In general it would be better to allow uploads in the background in order to not block the user when uploading large files. However, the Metadata Table functionality, the next step, expects all of the files to already be present in the bucket, so there's not really anything else we'd want users to be able to do while waiting anyway.
On the other hand, it's not necessary that all of the bytes actually be in Google so long as we can match filenames in the bucket. Perhaps a better future approach could be to use Google's streaming APIs instead and start all of the uploads synchronously, but then stream them in the background. The Streaming API requires significantly more local state management, though...

Could someone get themselves in trouble if they start interacting with the data in another window that is not blocked by a non-dismissible modal?

That's a good question. I will argue that it isn't a problem; here's why.
For someone using the new /#upload interface, the only step remaining after they upload all their files is to upload their metadata file. That process looks for filenames in the Google bucket and replaces them in the upload TSV with full bucket paths.
If the files aren't there yet, it won't do the substitution, so they could end up with Data tables which don't reference actual files in the Google bucket. However, this can be corrected by importing the same metadata file a second time once all the files are in place.

Tests fail because this is a fork. Merging with failing tests since risk is low.


Doc: add parenthesis aroud type signatures, for clarity.

To clear up confusion around operator precedence. Coming from JS/TS, the syntax was really confusing. It looked like 'string => string = "dirname"' was a function that took in a string and in its body assigned 'dirname' to a string. Which didn't make sense (but hey, it's a new language, so maybe there is some magic there, I thought). But now, it should look more trivial and unscary. Like variable type annotations in TS. It makes it clearer that it is the ReScript variable dirname which is actually assigned the string 'dirname'.

Our convention for writing docs is mostly using the formatted version of the code.
If you reformat your version, it will drop the parentheses again, so I am not sure if it's a good idea to provide an example that could potentially change on any reformat operation.

I would do it, nonetheless. Because when the reformatting will drop it, then the user will already have learnt the semantics.

Another thing to consider is if the code formatting convention should be a little more explicit and actually include the parentheses. It would be ever so slightly more to type, but it would be in line with the principle of favoring explicity over implicity.

Another thing to consider is if the code formatting convention should be a little more explicit and actually include the parentheses

I  think we are getting in bikeshed territory here, and can't really tell which version is "more readable". The external syntax is quite extra-ordinary, and something a user has to learn anyways.
From a TS perspective, adding parenthesis doesn't help much, because function type syntax is very different. For example, a let statement with explicit type annotation would look like this:
let foo: (a:string) => string = (str) => {return str}

They also don't use any wrapping parenthesis there?

It could alternatively be pointed out in the docs that normally the convention is to leave them out.

Extra sentences like this cause a lot of noise, and it would break consistency with the rest of all our docs that don't follow the () wrapping convention. Not sure if I like that too much, but I am also not sure what others say.

They also don't use any wrapping parenthesis there?

True. But, imho, that reads horrible. Compare:
// (1)
let foo: (a:string) => string = (str) => { return str }

// (2)
let foo: ((a:string) => string) = (str) => { return str }

With (1) then I get confused by the operator precedence. When reading LTR it looks like let foo: (string) => string makes sense on its own, due to the uncanny valley to the common plain JS syntax: let foo = (thing) => thing. But when visually scanning (1) from LTR, then the = suddenly comes and invalidates that perception, and I have to start all over. So I start to just frantically scan such lines for the = at first, because it will determine how I have to interpret the rest of the line. I'm not the only one who finds this confusing. The fact that such TypeScript syntax annotations gets into the code and makes it harder to read, was one of my initial motivations for switching away from TypeScript in the first place. ReScript's full inference promises to reduce/eliminate that, so I could read the typed code as delightfully as reading dynamic code.
On having parentheses in the docs:

Extra sentences like this cause a lot of noise, and it would break consistency with the rest of all our docs that don't follow the () wrapping convention.

Then I would consistently add parentheses in the rest of the docs.
It relieves some uncertainty at a critical point of onboarding. It would be comparable to writing docs with semicolons, but the compiler stripping them out later on (you'd then get an "oh, that's nice, I don't even have to write that"). Which would have made sense, if semicolon-free JS hadn't been so prevalent. Because then people might have become uncertain how a compiler would divide up code without semicolons.
FWIW, a simple set of parentheses would have saved a newcomer like me a good while of confusion and googling, at least. Newcomers like me perceive bindings as one of the main barriers to adoption, and naturally look to investigate them first. So, imho, bindings shouldn't feel scary or magical.

I will close this PR for now since all ReScript formatted code will omit the parenthesis, and we prefer consistency over subjectively easier to read bindings just for the docs. It's quite laborious changing all the existing instances within the docs, and then I'd need to instruct every contributor to go through this arbitrary format, while everyone will submit ReScript formatted code, which is unnecessary friction for contributors and maintainers.
If you feel strongly about the way ReScript prints type signatures, please elevate this discussion to the syntax parser / printer itself: https://github.com/rescript-lang/syntax
Given the printer gets adapted, we'll be happy to reformat all codesnippets to the new format.


How to collapse the panel to its minSize

Something like panel.collapse but having option to only change the size to its minSize

I assume you're looking for the imperative API:
https://react-resizable-panels.vercel.app/examples/imperative-api
You can call:
panelRef.current.resize(10); // Or whatever the min size is

If you update to 0.0.52, Panel supports a new collapsedSize prop that could be used for this. See it in action here:
https://react-resizable-panels.vercel.app/examples/collapsible


Migrating from glide to dep

Thanks and congrats for this cool and useful project!
Are you considering migrating to dep?
From the glide README.md:

The Go community now has the dep project to manage dependencies. Please consider trying to migrate from Glide to dep. If there is an issue preventing you from migrating please file an issue with dep so the problem can be corrected. Glide will continue to be supported for some time but is considered to be in a state of support rather than active feature development.

@dinedal it could be closed once the project is using go modules, right ?


Allow Variables to be SecureString / Credentials

Is your Enhancement request related to a problem? Please describe
The title says it all.. :D

Done in the latest. We are using the secret management module and that supports storing these things.


Update Remove-DlpKeywordDictionary.md

Suggested change to examples to show piping between the Get and Remove Cmdlets.   The challenge is Get uses 'Name' and Remove uses 'identity' for the target.  As such they do not pipe data properly.

Docs Build status updates of commit aff3e0d:
:clock10: Full build: the average full build time is 17 min(s) 31 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit aff3e0d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Remove-DlpKeywordDictionary.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 277dff0:
:clock10: Full build: the average full build time is 17 min(s) 31 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 277dff0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Remove-DlpKeywordDictionary.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Create an alias for diego_docker feature flag

Issue
Since Cloud Controller NG now runs for both cf-for-k8s and cf-for-vms the diego_docker feature flag name makes no sense for cf-for-k8s. I suggest to make an alias for this flag called something like docker or container and also rewrite documentation for it so it becomes platform agnostic.
I'm happy to help to contribute this change.

closing, as cf-for-k8s is deprecated


does it support 64 bit?

I'm trying to build this on windows 10 with mingw-w64
there is no lib/def file and the dll fails to load.
any help will be highly appreciated.

It builds successfully in Visual C++ with a 64-bit target though I haven't tested it extensively.

Thank you. With 2.9.0 shipped dll, windows work fine. Having a problem with linux flavour 64bit with 2.9.0, will open a new issue for that.


feat: add search concept page

Description

add search concept page

Testing required outside of automated testing?

[x] Not Applicable

Screenshots (if appropriate):

[ x] Not Applicable

Rollback / Rollforward Procedure

[ ] Roll Forward
[ ] Roll Back

Reviewer Checklist

[ ] Description of Change
[ ] Description of outside testing if applicable.
[ ] Description of Roll Forward / Backward Procedure
[ ] Documentation updated for Change

:tada: This PR is included in version 1.14.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


User customization of the default frontmatter

Is your feature request related to a problem? Please describe.
At the moment the default markdown Dendron note frontmatter template is not customizable.
It can be changed manually, however the modification of the template to add a specific key (e.g bibliography:) and have this user customized frontmatter added to each new note is not possible.
Describe the solution you'd like
The possibility to define frontmatter templates.
Describe alternatives you've considered
Modify the frontmatter manually.

Thanks for the submission. This fits nicely with two existing issues:

setting frontmatter defaults using schema: https://github.com/dendronhq/dendron/issues/253
refactoring existing frontmatter: https://github.com/dendronhq/dendron/issues/251

Both are items we're slating to do in October

We made an update in October that let schema templates add their schema values to the frontmatter. It's not as flexible as issue 253 but its a step there


Pass in form styling - DO NOT MERGE YET

This extension to the TT-1143 pull request would add the ability to pass in a wrapper function for the saml form, so that the relying party can add their own stylesheet/headers/footers etc. This seems good, because this page is still on their domain so it makes sense that they can make it match their styling. (Done in this form in order to have minimal changes to the api). But it feels like it has more potential for mistakes.
See stub relying party pull request
Opinions desired...

Maybe we could ask the user to provide a template name and do something like:
if (options.samlTemplate) {
  res.render(options.samlTemplate, {formContent: blah})
  // or
  res.render(options.samlTemplate, {ssoLocation: blah, samlRequest: blah})
}
else {
  // do the thing we do at the moment
}

All the template engines in express follow the same pattern - https://www.npmjs.com/package/consolidate#api - so as long as the service is using a normal express templating engine they could just use that.
Feels maybe a bit more standard?

I'm going to close this until someone needs the feature. When they do we can consider the right way to do it.