componentWillMount used to register component into MVC, deprecated in react 16.3 / 17.x

Hi,
in react 16.2 and older we used componentWillMount "event" to register component into the MVC framwork. That appeared as a perfect option to pass additional framework data as state into the component (doing it in componentDidMount caused extra render and flicker). Considering componentWillMount deprication in 16.3+, what is the suggested event to register component into the framework?
cheers

Please provide a full minimal example. It’s  not very clear what exactly you were doing.
Calling setState in componentDidMount applies the update synchronously and cannot cause flicker.

Hi Dan,
what we are doing is hard to present with minimal example, but hopefully you can understand the important bits from the following:
class User extends React.Component {
  render() {
    return
{this.state.user}
;
  }
  componentWillMount(){
    this.props.myFramework.register(this);
  }
}

ReactDOM.render(
  <User myFramework="..."/>, document.getElementById('container')
);

class MyFramework {
  register(component){
    component.setState({user:"John"})
  }
}

Switching to the new version of React would enforce us to move component registration into componentDidMount and would cause extra renderings. Please consider its also about to re-render the whole tree of components when setState is called inside componentDidMount.
I wonder if you have any recommendation how this can be optimized. Or there is really no option to avoid performance degradation (extra renderings) when using async version?

Can you do this instead?
class User extends React.Component {
  state =  this.props.myFramework.register()
  render() {
    return
{this.state.user}
;
  }
}

ReactDOM.render(
  <User myFramework="..."/>, document.getElementById('container')
);

class MyFramework {
  register(){
    return {user:"John"}
  }
}

I'd need more details about what the "framework" does to provide a better example but so far this is equivalent.

Also, if you need to subscribe something (and update state in response to it) then this should help (don't miss the section on create-subscription package).

Thanks for the suggestion Dan, but unfortunately this would lead to complete rewrite of our framework. Hopefully this can be avoided. Our framework is based on MVC pattern, more specifically on robotlegs / haxe-react-mmvc. The component can not really see the methods available on framework side, its the other way around, so framework class needs to control the component... I do not want to go into details as it might be way to much context for this issue.
Basically, from the framework side, we need setState to be available on component. What would be the earliest event in react 17 when setState is available? Is it really past the initial render?
cheers

A small self-contained example that fully illustrates the problem would be necessary to continue. It's very hard to discuss this in abstract terms.

Dan, here is a little more demonstration.  Language is haxe but should look familiar to you.
class User extends React.Component implements IUser {
  public var username(defaul, set):String;

  function set_username(value:String):String {
    setState({username:value});
  }

  function componentWillMount() {
    props.onViewAdded(this); // framework creates UserMediator and calls onRegister on it
  }

  function componentWillUnmount() {
    props.onViewRemoved(this); // framework calls onRemove on existing mediator and disposes it
  }
}

// Mediator is created by the framework for specific view components and has component instance available in property called view. Mediator can access other framework objects like models (data storage etc) and binds the data between view component and these objects.
class UserMediator extends Mediator<IUser> {
  @inject public var userModel:UserModel;

  function onRegister() {
    view.name = userModel.username;
    userModel.usernameChanged.add(onUsernameChanged);
  }

  function onRemove() {
    userModel.usernameChanged.remove(onUsernameChanged);
  }

  function onUsernameChanged() {
    view.name = userModel.username;
  }
}

interface IUser {
  var username(defaul, set):String;
}

In current implementation, concerns are separated and mvc side has no dependency over view component being used, just like view component has no idea what mvc framework is in use (just very thin layer onViewAdded/onViewRemoved). From mediator, we can set data without being interested in what lifecycle phase the view component is, so we do not need to distinguish if state is to be defined or setState called and yet the performance is optimal as there is only single initial render even for data passed from mediator.
Back to the original question, do you see any option how we can replace componentWillMount phase (used for mvc registration) by some other, where setState would be available already but at the same time would not cause additional initial rendering?

As far as I can see you are trying to register a component instance in componentWillMount and subscribe it to some kind of external updates. This is exactly the pattern we encourage you to avoid because it will lead to memory leaks with async rendering. A single instance may be created and later “discarded” without any cleanup hook.
Just because componentWillMount fired isn’t a guarantee that this instance will get mounted in the future (yes this is confusing, which is why we’re deprecating this lifecycle 🙂). The only appropriate place to make initial subscriptions is componentDidMount.
So in any case you’d need to separate the “registration” phase (for which both constructor and componentWillMount are too early) and “initialization” (which should assign initial state and can happen in constructor). Does this help?

Thanks Dan, that helps me understand an extra phase is needed for subscribing to external updates.
One more question regarding the topic. So if the life cycle is as following:

contstructor (define initial state)
async phase
render (consumes state)
setState is available

Considering some external updates happens right during this async phase (2), how to propagate these changes into the component? Should state be reinitialized or should setState() be called? Or there is no such option and new react is not capable of handling it?

In your library you could have a helper that either assigns this.state when it doesn’t exist, or calls setState when it does.
But you’d still need to separate it in two stages.

You’re right there may be an external update between the first render and mounting. I encourage you to look at create-subscription implementation (even if you don’t plan to use it) to see how to handle all edge cases. The recommendation here is to check if an external value changed in componentDidMount, and if it did, call setState. You don’t need to call it if the external value hasn’t changed.
https://github.com/facebook/react/blob/7a833dad95b3059ebfdfba44d3fa68e1301d8e6a/packages/create-subscription/src/createSubscription.js#L143

Will do. Thanks!
I will close this issue now, I have collected all the info I wanted. Although, I think the new version does complicate things a bit more then it used to be, we will need to find a way around it on our side.

We hope the benefits of async rendering will make it up for you 🙂
If you haven’t watched my talk yet, check it out: https://reactjs.org/blog/2018/03/01/sneak-peek-beyond-react-16.html


Support Linux / Non-Apple platforms

First of all: thanks for creating this package!
A few commands (mainly around GraphicField/image conversion) rely on CoreGraphics, which is only available on Apple platforms.
It would be great to only conditionally depend on these, and maybe add "raw" support for images on other platforms (without automatic conversions).

Thanks!
I have no experience reading images on other platforms, I can only add some compilation conditions for Apple platforms.
Please feel free to create a pull request if you know how to implement this feature.

I see you already added conditional imports! 🙏
If you are ok with a breaking the public API a tiny bit I would suggest keeping the GraphicField type free of non-portable types, and only provide a bunch of (conditional) convenience initializers.
That way the same type can live on all platforms, but if CoreGraphics is available you can use your awesome conversion magic from CGImage.
Another benefit this potentially has is that we could have an initializer with just Data and size, and I would even offer one with the pre-encoded string that is used in ZPL instead of raw bytes.
I think the use case exists where it makes sense to just hard-code a pre-converted ZPL-string of a logo or something.
On the type itself I would simply store size and stringified data.
Let me know what you think, I am happy to provide a PR if you agree (might take a few weeks though).

You are welcome to create a PR.
Our apps only use UIImage to create GraphicField, so I didn't think of it.
It would be great to make all commands available on all platforms.


contracts: Fix account counter isn't persisted

When a contract is instantiated from a transaction the incremented account counter wasn't persisted to storage. While the account counter is needed and used to generate the child trie for a contract it is difficult to trigger an actual bug from this defect. Still we:

Add a regression test
Fix the bug

bot merge


Help me

*Hello,
2 days ago I made a wrong transaction from my blockchain.com wallet
with 100 STX coins in a wallet that appears on your website and I would like to know if the coins can be returned to me... I have already contacted and talked to the blockchain people about this problem and I would like to know how is it processed for return?
https://explorer.hiro.so/txid/0xb3a87ace8905e91784627da62f7042646ad8468fcc34e98caa17859b6de9b007

This isn't an Explorer issue.
Please ask for community support on the #support channel in Discord.


AIP-123: Alternating collection identifiers and singletons

I believe that this PR introduced a bug: https://github.com/googleapis/api-linter/pull/1151
As stated in AIP-122:

Resource name components should usually alternate between collection identifiers (example: publishers, books, users) and resource IDs (example: 123, les-miserables, vhugo1802).

Note the word "usually"
As stated in AIP-156:

Singleton resources may parent other resources.

And...

Singleton resources must not have a user-provided or system-generated ID; their [resource name][aip-122] includes the name of their parent followed by one static-segment.

While, this is not explicit in the documentation, I would expect the singleton pattern, with the ability to be a parent of other resources, to take precedent and put "usually" to the test.
(very contrived) Example of the problem:
// Each user can only have a single library
message Library {
  // The pattern indicates that a user is the canonical parent for library
  option (google.api.resource) = {
    type: "library.googleapis.com/Library"
    pattern: "users/{user}/library"
    singular: "library"
    plural: "libraries"
  };

  // The resource name for the user's library
  // Format: "users/{user}/library"
  string name = 1 [(google.api.field_behavior) = IDENTIFIER];

  // Resource names for books in the library
  // Format: "users/{user}/library/books/{book}
  repeated string books = 2  [
    (google.api.resource_reference) = {type: "library.googleapis.com/Book"},
    (google.api.field_behavior) = REQUIRED
  ];
}

// Each user's library can have many books
// (-- api-linter: core::0123::resource-name-components-alternate=disabled
//     aip.dev/not-precedent: sad panda --)
message Book {
  // The pattern indicates that a library is the canonical parent for book
  option (google.api.resource) = {
    type: "library.googleapis.com/Book"
    pattern: "users/{user}/library/books/{book}"
    singular: "book"
    plural: "books"
  };

  // The resource name for the book in a user's library
  // Format: "users/{user}/library/books/{book}"
  string name = 1 [(google.api.field_behavior) = IDENTIFIER]
}

Curious to hear your thoughts?

Yes I think you are right - a child resource of a singleton would have sequential static segments.
What we could probably do is first lop off the last two segments e.g. /books/{book} and see if the remaining parent pattern exists as a resource i.e. a Singleton, and allow that case.
@liveFreeOrCode do you have any interest in working on this?
(sorry for the late reply!)

@noahdietz yeah, I don't mind working on it, but I'm taking some PTO the next couple of weeks, so it wouldn't be until early/mid September I can look at it.


Top Navbar Uncaught Error: Collapse is Transitioning

Uncaught Error: bootstrap.min.js:6
Collapse is transitioning
at l.show (bootstrap.min.js:6)
at l.toggle (bootstrap.min.js:6)
at HTMLDivElement. (bootstrap.min.js:6)
at Function.each (jquery-3.1.1.slim.min.js:2)
at r.fn.init.each (jquery-3.1.1.slim.min.js:2)
at r.fn.init.l._jQueryInterface [as collapse] (bootstrap.min.js:6)
at HTMLButtonElement. (bootstrap.min.js:6)
at HTMLDocument.dispatch (jquery-3.1.1.slim.min.js:3)
at HTMLDocument.q.handle (jquery-3.1.1.slim.min.js:3)

This bug is going to be fixed on the next release of Bootstrap 4
https://github.com/twbs/bootstrap/issues/22256

Any workaround to slove this issue temporarily ?

Hi,
is this issue fixed ?
i facing the same problem " Uncaught Error: Collapse is transitioning "
Thanks

This is a breaking bug and still exists in the CDN.

It would be good to know if someone has found a way to go around this issue.


Integrating spring-cloud-gateway with spring-security 5.1.0.RELEASE

Hi,
Is there are a plan to integrate spring-cloud-gateway with the latest spring security 5.1.0.RELEASE? If so do you have an estimate for the release?
I am trying to secure a sample spring gateway project with Keycloak oAuth provider. With the latest changes in spring security 5.1, https://docs.spring.io/spring-security/site/docs/5.1.0.RELEASE/reference/htmlsingle/#new it has oAuth 2 resource server support in webflux. So I would like to enable that in gateway.
I did try to add all the spring security 5.1.0 jars in the pom disabling  spring-boot-starter-security but facing a lot of incompatibility issues.
OAuth2Config.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.security.web.server.SecurityWebFilterChain]: Factory method 'springSecurityFilterChain' threw exception; nested exception is java.lang.VerifyError: Cannot inherit from final class
Is there a way we can incorporate security 5.1 changes until gateway is oAuth2 ready?
This is my pom file
<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
			<version>5.1.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
			<version>5.1.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
			<version>5.1.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-oauth2-client</artifactId>
			<version>5.1.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-oauth2-resource-server</artifactId>
			<version>5.1.0.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-oauth2-jose</artifactId>
			<version>5.1.0.RELEASE</version>
		</dependency>

@EnableWebFluxSecurity
public class OAuth2Config {

    private static final String[] AUTH_WHITELIST = {
            // swagger ui:
            "/swagger-ui.html",
            "/swagger-resources",
            "/swagger-resources/**",
            "/v2/api-docs"
    };

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(final ServerHttpSecurity http) {
        http

                .authorizeExchange()
                .pathMatchers(AUTH_WHITELIST).permitAll()
                .anyExchange().authenticated()
                .and()
                .oauth2ResourceServer()
                .jwt();

        return http.build();
    }

}

application yml
server:
  port: 8083

spring:
  cloud:
    gateway:
      routes:
        - id: test-service
          predicates:
            - Path=/paths/**
          filters:
            - StripPrefix=1
          uri: "https://httpbin.org"
  security:
    oauth2:
      resourceserver:
        jwt:
          jwk-set-uri: ${kc.realm-url}/protocol/openid-connect/certs

kc:
  base-url: http://localhost:8080/auth
  realm: demo
  realm-url: ${kc.base-url}/realms/${kc.realm}

I have tried this using the the sample for spring-security 5.1 and it works as expected
https://github.com/spring-projects/spring-security/tree/5.1.0.RELEASE/samples/boot/oauth2resourceserver-webflux

What version of spring-cloud-gateway are you using?
Spring Security 5.1 will only work with spring 5.1, boot 2.1 and spring cloud Greenwich (which has had a milstone).
See https://github.com/spring-cloud/spring-cloud-security/issues/141 for the issue to track and
https://github.com/spring-cloud/spring-cloud-release/milestones?direction=asc&sort=due_date&state=open
for the dates.

What version of spring-cloud-gateway are you using?
Spring Security 5.1 will only work with spring 5.1, boot 2.1 and spring cloud Greenwich (which has had a milstone).
See spring-cloud/spring-cloud-security#141 for the issue to track and
https://github.com/spring-cloud/spring-cloud-release/milestones?direction=asc&sort=due_date&state=open
for the dates.

Thanks

@tatharoy @spencergibb any news about this issue?

The issue is closed, not sure what kind of "news" you are expecting.

@ryanjbaxter sorry, for disturbing you. I forgot to write that I found a solution to my problem.


Refactor ClusterParameterGroup

Issue #, if available:
Description of changes:

Change the auto-gen primary identifier functionality
improve the parameter applying functionality
code improvement

Test passed

Unit test
Integ test
CTv2

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Approve. General question: did you run any test to verify that these refactor changes will not break anything?

Approve. General question: did you run any test to verify that these refactor changes will not break anything?

Yes, as described in overview, the new change passed:

Unit test
Integ test
CTv2


notify until resolved

Is your feature request related to a problem? Please describe.
if you have alot of notification requirements, keeping track of them all can be confconfusing as well as get you killed at times.
Describe the solution you'd like
Have the option to keep warning if the issue hasn't been resolved. for example if your health goes below a set point, it will keep notifying you not until it's cancelled, but until your health exceeds the set value.
Describe alternatives you've considered
Additional context
should have a ui that tells you what it is that needs to be resolved, as well as a button to ignore (for a certain amount of time, or until it's been resolved. (for example if you've teleported out and don't need to eat)
for example;

Your hitpoints is low
Your potion recently used has expired
Your stamina is low
Your special attack is now avalible

We send notifications through your OS to be displayed. You can change your OS notification settings to behave this way.


Removed duplicate strings

@yaichenbaum Could you resolve conflicts?

@yaichenbaum instead of removing duplicated english strings is there any way with MAT to translate automatically all duplicated strings when one is translated?
If this is merged for example in spanish we'll have a wrong translation, since here "Unknown" is translated as "Desconocido":
<trans-unit id="DriveCapacityUnknown" translate="yes" xml:space="preserve">
          <source>Unknown</source>
          <target state="translated">Desconocido</target>
        </trans-unit>

and here as "Desconocida":
<trans-unit id="FileTagUnknown" translate="yes" xml:space="preserve">
          <source>Unknown</source>
          <target state="translated">Desconocida</target>
        </trans-unit>

@yaichenbaum instead of removing duplicated english strings is there any way with MAT to translate automatically all duplicated strings when one is translated? So you only have to check that it's the same translation on all the strings.
If this is merged for example in spanish we'll have a wrong translation, since here "Unknown" is translated as "Desconocido":
<trans-unit id="DriveCapacityUnknown" translate="yes" xml:space="preserve">
          <source>Unknown</source>
          <target state="translated">Desconocido</target>
        </trans-unit>

and here as "Desconocida":
<trans-unit id="FileTagUnknown" translate="yes" xml:space="preserve">
          <source>Unknown</source>
          <target state="translated">Desconocida</target>
        </trans-unit>

@BanCrash not that I know of.

@yaichenbaum instead of removing duplicated english strings is there any way with MAT to translate automatically all duplicated strings when one is translated? So you only have to check that it's the same translation on all the strings.
If this is merged for example in spanish we'll have a wrong translation, since here "Unknown" is translated as "Desconocido":
<trans-unit id="DriveCapacityUnknown" translate="yes" xml:space="preserve">
          <source>Unknown</source>
          <target state="translated">Desconocido</target>
        </trans-unit>

and here as "Desconocida":
<trans-unit id="FileTagUnknown" translate="yes" xml:space="preserve">
          <source>Unknown</source>
          <target state="translated">Desconocida</target>
        </trans-unit>

@BanCrash not that I know of.

:(
In any case, I suggest to revert a1fae4d5ece30026b51bf6bf03d95073f9e0bada commit. The others seems to refer to the same context so I think there shouldn't be any issue with translation differences.

@BanCrash the idea is to reduce the workload for new translators.

@BanCrash the idea is to reduce the workload for new translators. Considering the context is the same, I'd expect the translation to be the same across the board and this shouldn't have an impact.

But like I've said the a1fae4d5ece30026b51bf6bf03d95073f9e0bada commit introduces a changes that makes a difference in some languages.
Checking the changes not only Files.es-ES.xlf is affected, but also Files.bg.xlf, Files.pl-PL.xlf, Files.pt-BR.xlf, Files.sk-SK.xlf and Files.tr-TR.xlf. On those files Unknown is not always translated with the same word. I know there should be less strings but IMO that shouldn't sacrifice the language gramatical rules.

@BanCrash the strings are used in the same context in all places, if you want, I can reset those strings but we shouldn't let that prevent us from improving the workflow for new translators.

@BanCrash the strings are used in the same context in all places, if you want, I can reset those strings but we shouldn't let that prevent us from improving the workflow for new translators.

But the point is that those strings are not in the same context. Some of them are refering to male nouns, and others to female nouns, and so the translation will be affected in languages that have differences between male and female nouns, like Spanish.
In any case, since I've saw that @d2dyno1 's language is also affected, let's see what he thinks about this.

@BanCrash those translations need updating regardless of this change since the strings were already being used in the same context. Removing duplicate strings will actually improve the translation since the translations will be consistent throughout the app.


Change Airlock open timer to use TimerComponent

The door currently uses Timers for opening and closing, but not the delay while open.
Keep in mind that the delay should be changeable for that wire that removes the open delay.

Done in https://github.com/space-wizards/RobustToolbox/pull/1358, closing.

Done in https://github.com/space-wizards/RobustToolbox/pull/1358, closing.


Update the Typescript Definitions

Please update the d.ts files. The files are 3 months behind the javascript and are absolutely useless.

Which d.ts files are you referring to? The latest definitions are available here https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/applicationinsights-js and they should be up to date.

I'm closing this issue. Please re-active if you're still experiencing issues with d.ts files.


24 hours format on field

Hello.
I have a problem with 24 hours format on Datetimefield.
There is my code:
$field = DatetimeField::create('MyDatetime', 'MyDatetime');
$field->setCalendarConfig([
    'time_24hr' => true,
    'dateFormat' => 'd. m. Y H:mm'
]);

Problem is, that even when timepicker has 24 hours format, SS field after choosing time is displaying date and time still in 12 hours format.

Am I doing anything bad, or it is not supported?
Thanks.

I experience the same issue. Have you already found a solution?

No, still same problem :(

Hi @brasileric and @pmacinec - thanks for reporting this issue, I will have a look into it and see if I can figure out what is going wrong.

Thanks @Chaofaa, this is what I have been looking for! Working as expected.
Note: For other users, be careful, 'dateFormat' = 'd. m. Y H:mm' is not completely correct, you should use i for minutes instead of mm. Even after that, SilverStripe will not work correctly and will save another datetime, because calendar will show correct date, but SS will expect year to be first, so you have to format it by yourself.


Add logging agent support

Add support for the logging agent.

LGTM. Adjusted the PR title so that the commit message does not include user name. Side note: Looks like it needs rebasing off master / resolving the conflicts.


Assign partitions to consumers using a consistent hash ring

Still a work in progress – the distribution is too uneven at the moment.
This strategy is based on the assumption that each consumer will have to allocate resources (file handles, database connections, memory, etc.) for each specific partition it has been assigned. When we rebalance the group we therefore want to minimize the number of partitions that are reassigned, thus preserving as many of the allocated resources as possible.
One way to go about this is using a consistent hash ring. Each group member gets a set of points on the ring; each partition is deterministically mapped to a point on the ring; we assign each partition to the nearest neighbor, clock-wise.
The main downside is that it's more difficult to guarantee even distribution. I have a few ideas for alleviating this:

Reassign partitions over time based on some metadata representing the speed of each member. The faster the member is at processing messages, the more points it gets on the ring. This hasn't been fully though out.
Include a "seed" value when hashing keys, and increment this until there's a somewhat even distribution. Store the seed in the assignment metadata for the next round.

Closes #103.

@osheroff what's your thinking on this? I probably won't merge this until I have some concrete use cases that would benefit. Did you use the high level Java consumer in Maxwell? Would partition stickiness make sense?

Guys any update on the feature ? Is it in any plan to merge ?
Will not it be more better if we leave it to the user how the partitions are assigned to the consumer , which can be based on some specific strategy and which could be extendible as well . Just like data partioning strageies available in Kafka Connect , we have set od defined strategies and user can also have its custom strategy for the partioning.


Javascript tests bypass

Describe the bug
Some katas use chai library to verify a solution. But there is a way to override the behaviour of methods used for verification.
To Reproduce
require('chai').assert.strictEqual=()=>{}
I've used this for fun to bypass verifcation in the following katas:
https://www.codewars.com/kata/5fad08d083d5600032d9edd7
https://www.codewars.com/kata/56a73d2194505c29f600002d
Expected behavior
Codewars infrastructure checks that validation methods have been modified
Additional context
And also I do not know how to cancel my solutions that are using bypass

Please see https://github.com/codewars/codewars.com/issues/1970#issuecomment-552014145
Closing as a duplicate.


Image for Azure Edge zone with Carrier is grainy

The image for Azure Edge Zones with Carrier is very grainy and doesn't look professional.

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

ID: cb13f1e4-bb01-d483-2397-5dc4bba18033
Version Independent ID: 1d16a67b-95c1-0772-bee4-989f97d33141
Content: About Azure Edge Zone Preview
Content Source: articles/networking/edge-zones-overview.md
Service: vnf-manager
GitHub Login: @ganesr
Microsoft Alias: ganesr

@MirzaSikander Thanks for the feedback! We have assigned this issue to the content author to review and update accordingly.


Move common no_std runtime bits to a common macro

Make it a bit easier to define a new segment, using this new macro that
will define the boilerplate pieces for defining a module.
Signed-off-by: Mike Waychison<EMAIL_ADDRESS>

Pushing a new commit with a variety of changes.  See notes re two open questions re no_mangle use. One where it makes the test links happy, the other where it seems required for being called from the main() defined by the macro.  Hopefully you can shed some insight into what is going on there.

Pushing a new commit with a variety of changes. See notes re two open questions re no_mangle use. One where it makes the test links happy, the other where it seems required for being called from the main() defined by the macro. Hopefully you can shed some insight into what is going on there.

Off the top of my head, I don't know. I'll poke at this, but I'm going to merge as-is right now; I confess I'm not super in-love with the names, but it's more than worth it to get rid of this amount of open-coded boilerplate!


HDDS-4329. Expose Ratis retry config cache in OM.

What changes were proposed in this pull request?
Expose Ratis retry cache. Followed new config approach and also used same config name as RatisServer config.
And also with this Jira if any config is prefixed with "ozone.om.ha" and after that users try to use same the RatisServer config it will be used by OM RaftServer. (This allows if any configs need to be tuned and in OM we don't have a config, this capability can help in such scenarios)
Used 5 minutes as default value. As with default leader election time out and with retry 15 count, this value should be more than enough to catch retry requests and return from the cache.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4329
How was this patch tested?
Added a test

@bharatviswa504 Thanks for working on this! The changes look good to me.
What is the total retry duration for a om client request? I mean what is the retry policy used right now. The cache duration should be >= time for which a request can be retried.

We have 15 retries currently, and if same om is contacted again after failure it doubles the duration.
And the double of the time is not for the first round of failovers until we find leader.
And for any other errors, we don't have sleep between retry.
So basically first 3 to find leader OM no time wait. And next, we have detected leader then if it fails over to a new OM, we don't wait. So at best case it would be less than a minute (as for any n/w error we immediately failover). And if we continuously get LeaderNotReady, we try to contact same OM after first round, then it will be (2+4+8+16+ .... +2^12) = 8190 duration, this is the worst time. If OM has taken so long to become Ready after failover and finally in last iteration it became ready.
So, in the worst case, we wait for 150 minutes. But setting at 150 mts, will be taking too much heap on wellbehaved OM. As in most cases, if OM's are up/down the total time if the same OM is not contacted will be less than a minute.

Thank You @lokeshj1703 and @szetszwo  for the review

Sorry! Missed the update. I think we are good with 132 seconds of total retry duration.


score2perf ; t2t_datagen generates files with size zero

First of all, thanks for the release of music transformer. I love it!
Before getting the script to generate the zero sized files, I hit the following error.
IOError: No files found based on the file pattern /bigstore/magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_test.tfrecord

WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:

https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
https://github.com/tensorflow/addons
If you depend on functionality not listed there, please file an issue.

INFO:tensorflow:Generating problems:
score2perf:
* score2perf_maestro_language_uncropped_aug
INFO:tensorflow:Generating data for score2perf_maestro_language_uncropped_aug.
Traceback (most recent call last):
File "/home/kangmo/.conda/envs/gcp-p27/bin/t2t_datagen", line 10, in
sys.exit(console_entry_point())
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/magenta/tensor2tensor/t2t_datagen.py", line 34, in console_entry_point
tf.app.run(main)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 125, in run
_sys.exit(main(argv))
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/magenta/tensor2tensor/t2t_datagen.py", line 29, in main
t2t_datagen.main(argv)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/tensor2tensor-1.12.0-py2.7.egg/tensor2tensor/bin/t2t_datagen.py", line 198, in main
generate_data_for_registered_problem(problem)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/tensor2tensor-1.12.0-py2.7.egg/tensor2tensor/bin/t2t_datagen.py", line 260, in generate_data_for_registered_problem
problem.generate_data(data_dir, tmp_dir, task_id)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/magenta/models/score2perf/score2perf.py", line 157, in generate_data
absolute_timing=self.absolute_timing)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/magenta/models/score2perf/datagen_beam.py", line 404, in generate_examples
for split_name in split_names
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/transforms/ptransform.py", line 840, in ror
return self.transform.ror(pvalueish, self.label)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/transforms/ptransform.py", line 491, in ror
result = p.apply(self, pvalueish, label)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/pipeline.py", line 479, in apply
return self.apply(transform, pvalueish)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/pipeline.py", line 515, in apply
pvalueish_result = self.runner.apply(transform, pvalueish)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/runners/runner.py", line 193, in apply
return m(transform, input)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/runners/runner.py", line 199, in apply_PTransform
return transform.expand(input)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/magenta/models/score2perf/datagen_beam.py", line 63, in expand
pcoll |= beam.io.tfrecordio.ReadFromTFRecord(self._tfrecord_path)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/io/tfrecordio.py", line 259, in init
validate)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/io/tfrecordio.py", line 170, in init
validate=validate)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/io/filebasedsource.py", line 121, in init
self._validate()
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/options/value_provider.py", line 137, in _f
return fnc(self, *args, **kwargs)
File "/home/kangmo/.conda/envs/gcp-p27/lib/python2.7/site-packages/apache_beam/io/filebasedsource.py", line 181, in _validate
'No files found based on the file pattern %s' % pattern)
IOError: No files found based on the file pattern /bigstore/magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_test.tfrecord

So I had to mount the magentadata bucket to get the script run.

$ gcsfuse magentadata /bigstore/magentadata
Using mount point: /bigstore/magentadata
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.

After running t2t_datagen on google cloud, I get files with size zero.(attached screenshot)

How can I resolve this issue?
-- here are list of software versions I use --

magenta version 1.0.2
tensorflow version 1.13.0rc1
python 2.7.8
CentOS 7.5

-- here is the t2t_datagen command I use --

PROBLEM=score2perf_maestro_language_uncropped_aug
BUCKET=aa
PROJECT=bb
PIPELINE_OPTIONS=
"--runner=DataflowRunner,"
"--project=${PROJECT},"
"--temp_location=gs://${BUCKET}/tmp,"
"--setup_file=/data/ai/magenta-source/setup.py"
t2t_datagen
--data_dir=gs://${BUCKET}/datagen
--problem=${PROBLEM}
--pipeline_options="${PIPELINE_OPTIONS}"
--alsologtostderr

The console output after running the command is attached as console-output.txt
console-output.txt.txt

It seems these three lines are the root cause of the issue. After changing /bigstore/ to gs:// the problem is gone.
magenta/models/score2perf/score2perf.py

MAESTRO_TFRECORD_PATHS = {
'train': 'gs://magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_train.tfrecord',
'dev': 'gs://magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_validation.tfrecord',
'test': 'gs://magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_test.tfrecord'
'train': '/bigstore/magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_train.tfrecord',
'dev': '/bigstore/magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_validation.tfrecord',
'test': '/bigstore/magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_test.tfrecord'
}
pylint: enable=line-too-long

This should now be fixed on master as of commit 4a6041c.


vscode fails to start

VSCode Version: Latest downloaded from the site.
OS Version: MacOs Catalina 10.15.4

Steps to Reproduce:

Open VsCode
Vscode bounces in the dock once and kills itself

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

Can you provide the output of code --verbose

Same issue on macOS Catalina after updating to the October 2020 release.

If I open Visual Studio Code.app, the icon in the dock bounces and then kills itself.

If I do code . from the terminal, VS Code opens but the dock icon does not show it as active nor is the icon visible while doing CMD + Tab. Also, once it is open, it does not accept any input from my keyboard but navigating using the mouse works fine.

Output:
❯ code --verbose

[main 2020-11-09T06:30:14.152Z] Sending env to running instance...
[main 2020-11-09T06:30:14.206Z] Sent env to running instance. Terminating...
[main 2020-11-09T06:30:14.206Z] Lifecycle#kill()

Can you provide the output of
* codesign -vvvv <path-to>/Visual\ Studio\ Code.app/
* spctl --verbose --assess --type execute --v <path-to>/Visual\ Studio\ Code.app/

❯ codesign -vvvv '/Applications/Visual Studio Code.app'

--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Squirrel.framework/Versions/Current/.
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Squirrel.framework/Versions/Current/.
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (GPU).app
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (GPU).app
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/Current/.
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/Current/.
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper.app
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper.app
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Mantle.framework/Versions/Current/.
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Mantle.framework/Versions/Current/.
--prepared:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app
--validated:/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app
/Applications/Visual Studio Code.app: valid on disk
/Applications/Visual Studio Code.app: satisfies its Designated Requirement

❯ spctl --verbose --assess --type execute --v '/Applications/Visual Studio Code.app'

/Applications/Visual Studio Code.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: Microsoft Corporation (UBF8T346G9)

Can you restart user session and try launching the app with open -a /Applications/Visual Studio Code.app


Convert hours to minutes

Why:
Created a file "ConvertHoursToMinutes.js" and wrote a program that converts hours to minutes.
Title: Convert hours to minutes
Closes #4644

Hello, @watacodes I have a question, with the code you wrote what happens when the input time/ test case is 18:45?

Hello, @watacodes I have a question, with the code you wrote what happens when the input time/ test case is 18:45?

Hey @BlossomDugbatey
You can raise a separate PR to update this file
Thanks


fix: AVWriter status 1 crash - follow up

This is a follow up for #995 and #930
My last PR did not fix the issue and I found the main cause.
I realized this by watching the logs:
2022-04-15 12:13:02.933455+0200 app[840:267779] [native] VisionCamera.finish(): Finishing Recording with AssetWriter status "writing"...
2022-04-15 12:13:02.940310+0200 app[840:267779] [native] VisionCamera.finish(): Finishing Recording with AssetWriter status "writing"...
2022-04-15 12:13:02.942954+0200 app[840:267779] DevLauncher tries to handle uncaught exception: *** -[AVAssetWriter finishWritingWithCompletionHandler:] Cannot call method when status is 1

When you spam start/stop, you might end up calling "finish()" twice. I don't now exactly how it can happen, but it does happen.
So the "real deal" would be to prevent calling finish twice in the first place, but this little boolean check is sufficient to prevent the crash. This time, I've tested it more intensively.

You are never setting it to true.

I do, line 208

Ohhh. I do locally (I just patched my stuff using the Github editor).

Do you think my fix is ok or would you like to go another route?

After reading through this a couple of times I think I want to go another route.
The problem here is that an additional binary state value can be out of sync because it's not volatile and we're dealing with concurrency here. There might be cases where writing is happening but we are not aware of it and therefore can't stop it anymore.
The ideal solution to this problem would be to make the Queue serial (I think it should be already?) and have the result here be blocking. We can delegate this blocking up to JS so JS knows when it's recording frames and avoid calling stop if we are currently recording. I think this would be the ideal way, I'll investigate this more with Fabric/TurboModules migration.
Thank you for your PR though @hirbod, this is definitely a complicated issue.

Will migrating force us to enable Fabric? This would be a blocker, since I am pretty sure that the vast majority will not be able to enable Fabric in the next 1-2 years.
I was not able to detect any side effects with this fix, and it was only reproducible on older devices. Devices with more CPU/GPU etc never printed this log line.

since I am pretty sure that the vast majority will not be able to enable Fabric in the next 1-2 years.

disagree

I was not able to detect any side effects with this fix

well obviously this takes a lot of time and testing to find edge cases. The code, as is, is able to reproduce states that are out of sync. Maybe we can use an atomic boolean

btw. - the CI is failing anyways - you need to read the CONTRIBUTING guidelines and make sure you ran the Swift formatter

Ok, done. And your linter is happy now :)
Sorry for NOT reading the contribution guide.

sorry just a minor codestyle nitpick

You see.. I added whitespace and the job is failing now :D

Ok, linting passes. I hope thats fine now

@mrousavy anything holding back?

Thank you for your PR!
Ideally I'd love to not have a separate boolean managed by my lib, but instead check that on the assetWriter instance directly. But apparently the .status prop does not expose if it's currently finishing, and the Thread is not blocking either, which is weird but I guess that's the only solution 🤷


[RFC] Upstream Chunked Prefill

Progress

2D -> 1D query refactoring https://github.com/vllm-project/vllm/issues/3130
Scheduler refactoring
Chunked prefill scheduler
Chunked prefill attention update
logprob

Chunked prefill chunks prefill requests into multiple chunks and batch them with decoding requests. See the linked papers for more details.

https://arxiv.org/pdf/2401.08671.pdf
https://arxiv.org/pdf/2308.16369.pdf

We are planning to upstream chunked prefill internally used at Anyscale to OSS Vllm repo. We turned on this feature in the Anyscale production endpoint.
Benchmark Result
The following diagram is the benchmark result of Llama 13B x 2 A100 for different QPS (it is the result from Anyscale forked vLLM). Chunked prefill greatly improves latency when QPS is high, but has competitive performance at low QPS. The detailed benchmark results for different parameters with OSS vLLM is in progress (ETA end of this week).

Design
Kernel
For chunked prefill, we are internally using flash attn with paged attention enabled. so we will also upstream flash attn integration first. We decided to go with existing context attention first, and migrate to flash infer. Note that the kernel choice is not finalized, and we are actively investigating other kernels like FlashInfer.
Scheduler & Batch Layout

Since chunked prefill mixes the prefill and decoding, having 2D query with batch dimensions is inefficient. To get around this, we will move 2D query back to 1D query.
We change Sequence so that it keeps track of the number prompting tokens have been prefilled.
In Scheduler, if chunked prefill is enabled, it will first prioritize decoding requests, and then pick prompting request. If prompting request is too long, the prompting request will be chunked.
The worker now will create metadata for both decoding requests and prompting requests, including their block tables, context lengths, and number of decoding and prefiling tokens and requests.

    Chunked Prefill support:
    If chunked prefill is enabled, the input will include both prompt tokens
    and generation tokens. The layout is as follows:
    |<---------------------- num_valid_tokens -------------------------->|
    |<--------- num_prompt_tokens ----->|<--- num_generation_tokens >|
    |<-prompt_0->|<-prompt_1->|...............|<-gen_0->|<-gen_1->|..............|
    Notice that both num_valid_tokens, num_prompt_tokens and num_generation_tokens
    includes padding.
    The actual prompt length and offeset are stored in cum_prompt_context_lens.
    The actual num generation tokens are stored in num_generation_tokens_tensor.
    To support chunked prefill, where the prompt and context might have different
    length, we stored the context's length in cum_prompt_context_lens.

Once request is processed and sampled, the result belongs to chunked prefilling requests will be ignored.

Cuda Graph
Cuda graph won't be supported for chunked prefill because the performance benefit of cuda graph only happens with smaller # of tokens.
Following is how we make everything cuda-graphable. We pad both prompt_tokens and generation tokens, and the cuda-graph is cached based number of prompt-tokens, number of generation tokens, and prompt batch size. Following are the details.
        # The key for caching cuda-graph.
        # We ensure that with the same total number of tokens,
        # same number of prompts, and same number of prompt tokens,
        # the intermediate tensors have the same shapes thus can be
        # replayed.
        #
        # Refer to following layout for the shapes of intermediate tensors.
        # during attention calculation.
        #
        #|<---------------------- padded_num_tokens ------------------------->|
        #|<--------- num_prompt_tokens ----->|<--- num_generation_tokens----->|
        #|<-prompt_0->|<-prompt_1->|...|<pad>|<-gen_0->|<-gen_1->|......|<pad>|

The "Benchmark Result" screenshot links directly to anyscale's private fork of vllm, and thus is not viewable by the general public.

@tdene thank you for pointing that out! I believe it is fixed

For kernel, we will try using context_attention_forward and then switch to flash infer once it is available

I got e2e working. Benchmarking result with OSS will be displayed very soon. I am also start focusing merging PRs starting from https://github.com/vllm-project/vllm/pull/3236.

Here's the initial benchmark result for chunked prefill. For the fairness of the benchmark, I used context attention in the default path.
I only had a throughput benchmark. As expected chunked prefill greatly improves the e2e throughput. Based on our internal benchmark, it works better as there is more load.
Note that chunked prefill has innately slower e2e latency as called out in this blog.

ITL (inter token latency) as decoding tokens are batched with prefill tokens. We alleviated it by always batching decoding tokens first when scheduling.
TTFT is supposed to be a bit slower because we chunk prefill (which adds per step overhead and KV cache memory load overhead).

We can alleviate this by not chunking prefill when there are no decoding requests.
In Anyscale’s internal benchmark we found it slower when QPS is 1 specifically. We will need more tuning and profiling for the optimal performance in this case.
The benchmark was performed on A100, 80GB, TP8, llama 70B
python benchmark_throughput.py --backend vllm --model "meta-llama/Llama-2-70b-hf" --dataset ../../data/ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 2000 -tp 8

Default OSS (on a 1dquery branch)
Throughput: 6.61 requests/s, 3198.02 tokens/s

Default OSS + use context attention (on a 1dquery branch)
Throughput: 6.51 requests/s, 3149.89 tokens/s

Chunk size 512 (cuda graph is decoding only)
Throughput: 7.72 requests/s, 3736.73 tokens/s

Chunk size 768 (cuda graph is decoding only)
Throughput: 7.51 requests/s, 3632.23 tokens/s

In Anyscale’s internal benchmark we found it slower when QPS is 1 specifically. We will need more tuning and profiling for the optimal performance in this case.

@rkooo567 does this mean one request at a time i.e. batch size 1? I would expect there to be no latency impact for this case if we're not chunking prefill when there are no decoding requests? Or does QPS 1 still entail overlapping requests since they take > 1 sec each?

It means 1 request per 1 second. So if e2e takes more than 1 second, BS can be > 1.
We haven't taken a deep look here (I think we will after this PR is merged to oss) for the root cause. But it could be becasue for longer prompt they are chunked when they don't have to be when QPS == 1.

Also, depending on scheudling strategy, you can optimize perf/throughput. For example, if you only allow to chunk 1 prompt per batch, it can actually improve ITL (because there's less interrupt from longer prompt for decoding). Or if you maximize chunk batches, it can maximize throughput (which is the benchmark above)

Update: these two tasks are going to be done as a follow up;

Enable cuda-graph on prefill path
Refactoring model runner

https://docs.google.com/document/d/1W6t6wouQKgl1QivS7gbkkY5xtR9Q6wvXbmOL-1onMmk/edit#heading=h.8um4c511b0b0
this is the initial benchmark result of chunked prefill!
TL;DR: chunked prefill improves ITL/e2e latency about 10~20% when QPS is sustainable. And almost 2X improvement at high QPS. It has small throughput improvement (less than 10%). It has comparable ITL at low QPS. However, it has higher TTFT compared to the default vLLM policy because the default vLLM policy is optimized for TTFT. There is still room for improvement such as enabling cuda graph for prefill or use better attention kernel for prefix prefill

The performance of Chunked Prefill is better than no Chunk prefill with xformers. But when use flash-attn, with chunk prefill is worse than not use chunk prefill.
So do you have plan to use flash infer or other kernel for chunk prefill? @rkooo567 @WoosukKwon

Hmm @mpjlu can you tell me your benchmark environment? All of benchmark was done with flash-attn.
It is possible it is not as fast as it could because the chunked prefill kernel is notably slower than flash attn. We are planning to migrate this, but the progress has been stuck for a while iiuc

Btw, the issue itself can be closed. All PRs are upstreamed and merged

I saw that chunked-prefill improves ITL/e2e latency almost 2X improvement at high QPS from https://github.com/vllm-project/vllm/issues/3130. But in vllm-0.5.3 and two A100, I only almost improves 10~20%. Please tell me more test information, such as server-launch instruct 、client-request instruct、GPU setting el.

Please summarize the changes in overall latency (TTFT + ITL). I tested it many times and the highest improvement was 18%.

Please tell me how to set different QPS for experiments

in prefill stage, with chunk-prefill, vllm groups 16 prefill tokens together with priority in batches to compute with Flash attention:
batch 0 ： decode  decode            decode
batch 1 :                  chunk-prefill    chunk-prefill

to reduce inter-token latency, imporve overall throughput with cost of slightly larger average of TTFT

While in default schedule all prefill tokens will be scheduled with priority so that you cannot batch
batch 0 : docode decode                                    decode
batch 1 :              P            R      F      i    L      L    decode

Where both TTFT and overal thoughput are worse than chunked-prefill.


'string' only refers to a type, but is being used as a value here.

HI, I am adding on my component just as the documentation says as is, followed each step :
https://www.npmjs.com/package/ngx-slimscroll
ngOnInit() {
this.scrollEvents = new EventEmitter();
this.opts = {
position?: string; // left | right
barBackground?: string; // #C9C9C9
barOpacity?: string; // 0.8
barWidth?: string; // 10
barBorderRadius?: string; // 20
barMargin?: string; // 0
gridBackground?: string; // #D9D9D9
gridOpacity?: string; // 1
gridWidth?: string; // 2
gridBorderRadius?: string; // 20
gridMargin?: string; // 0
alwaysVisible?: boolean; // true
visibleTimeout?: number; // 1000
scrollSensitivity?: number; // 1
};
this.play();

}
}
However getting the same error for each property "'string' only refers to a type, but is being used as a value here."
How can I modify this without errors please?

Checking demo sample would also be helpful.


Getting error in each second step in model training in gcloud tensorflow2.3 python 3.7, error - model_lib_v2.py:651

Hi while running a training job in gcloud, continuously getting following error in each step, why this is occurring and how to resolve it
I 2021-03-23T10:34:36.455145835Z master-replica-0 Step 20900 per-step time 11.124s loss=1.705 master-replica-0
E 2021-03-23T10:34:36.455868005Z master-replica-0 I0323 10:34:36.455145<PHONE_NUMBER>64352 model_lib_v2.py:651] Step 20900 per-step time 11.124s loss=1.705 master-replica-0
{
insertId: "1m02xqjg250xpg0"
jsonPayload: {
created:<PHONE_NUMBER>.455868
levelname: "ERROR"
lineno: 328
message: "I0323 10:34:36.455145<PHONE_NUMBER>64352 model_lib_v2.py:651] Step 20900 per-step time 11.124s loss=1.705"
pathname: "/runcloudml.py"
}
labels: {…}
logName: "projects/tuberculosis-240217/logs/master-replica-0"
receiveTimestamp: "2021-03-23T10:34:39.125659068Z"
resource: {…}
severity: "ERROR"
timestamp: "2021-03-23T10:34:36.455868005Z"
}

@vmishra2019
Please provide minimal code such that we can reproduce the issues, can you first try to upgrade to stable version 2.4 and let us know if you face the issue.


Enable portmap CNI plugin

Makes hostPort: setting to work when specified in Pods

This is covered in https://github.com/kubernetes-incubator/bootkube/pull/711


Adding unit test for custom entity strip checking

Fixes #2649

Pull Request Test Coverage Report for Build 154806

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

Totals

Change from base Build 154766:
0.0%

Covered Lines:
14835

Relevant Lines:
17010

💛  - Coveralls


Conflicting options: 'override' and 'cascade'

The override option introduced in https://github.com/entropitor/dotenv-cli/pull/87 by @jfairley conflicts with the cascade option when both are used together.
Example
.env
MY_NAME=Bob

.env.local
MY_NAME=Joe

Command
> dotenv -c -- bash -c 'echo $MY_NAME'
Joe
> dotenv -co -- bash -c 'echo $MY_NAME'
Bob

I would expect Joe from .env.local to override Bob from .env based on how cascade works, but when the  override option is present Bob prevails because .env is processed last (see here and here).

That's interesting. You raise a valid point, but I'm not sure how to easily make both work together. The problem is dotenv doesn't support "cascade" natively. There's probably no way to avoid edge cases without dotenv supporting cascade natively.

What if we reversed the paths array if override is set before iterating through it? I'm trying to think if that will cause any negative side effects.

Yeah, there was an earlier discussion: https://github.com/entropitor/dotenv-cli/pull/63#discussion_r787101557
I think it's just incompatible. Feel free to make a PR to update the README to document this but this is not really solvable.
I think the best solution is just erroring out if using override together with multiple files, ...

Ooh man, this one bit me in the butt the other day.
Like @llovett2 found, when you run override with cascade, the order of files is effectively inverted such that values in .env will override .env.test.
We need to do something about this, because of the potential impact. In my case, a dev on my team ran unit tests that blew away our QA database.
I'm available to submit a new pull-request, but @entropitor, I'm looking to discover what you're likely to accept, considering this issue was closed before.

Invert the files array when argv.c && argv.o.

I actually believe this is a pretty simple and readable change. I have it ready to go locally.

Prevent "cascade with override".

Literally throw a runtime error if argv.c && argv.o saying it's not supported.

I think it's best to throw. I knew this was a problem when merging that's why I pushed back so hard on cascade. The other solution has a problem with expanding variables so I don't think that's valid either. I guess throwing is the most elegant solution! Happy to merge such a pr


[Sample Onboard Request] Teams Chef Bot

Owner:
Corina Gum<EMAIL_ADDRESS>GH Account: https://github.com/corinagum
ID:
teams-chef-bot
Title:
Teams Chef Bot
Description:
This is a conversational bot for Microsoft Teams that impersonates a Chef to help you cook Teams apps.
Tags:
You can give your samples a set of tags so that users can easily locate your sample from a group of samples. Those tags can be:

TS
Bot
Teams AI Library

Time:
5mins to run
Configuration:
Ready for local debug
Thumbnail:
assets/TeamsChef002.jpg
(Source code NOT in this Repo) Sample URL:
https://github.com/microsoft/teams-ai/tree/main/js/samples/04.ai.a.teamsChefBot

PR: #1165
@MuyangAmigo The image is not compatible with current TTK because it uses GIT LFS. Could you please help to upload a new screenshot with new Teams UI?

@MuyangAmigo The sample has been onboarded. You could check it in latest daily build.


Find a way to improve templates

When studying the possibility to wrap an eventHandler into a promise, I came up with the template below that would encapsulate some functions exposing eventHandler.
/*global __LAST_PARAM_INDEX__*/
function _gpfEventsPromiseWrapper () {
    /*jshint validthis: true, unused: false*/
    var method = arguments[0];
    return function __NAME__ (__PARAM_LIST__) { //eslint-disable-line no-unused-vars
        var args = _gpfArraySlice(arguments),
            deferred;
        if (undefined === args[__LAST_PARAM_INDEX__]) {
            deferred = new _GpfDeferredPromise();
            args[__LAST_PARAM_INDEX__] = function (event) {
                if (_GPF_EVENT_ERROR === event.type) {
                    deferred.reject(event);
                } else {
                    deferred.resolve(event);
                }
            };
        }
        method.apply(this, args);
        if (deferred) {
            return deferred.promise;
        }
    };
}

In the end, I inverted the logic (the caller does the wrapping) but I faced these issues:

Some variables are defined to be replaced (such as LAST_PARAM_INDEX) and this leads to linter errors
The function being built with new Function (), it does not have access to internal functions of the GPF library (such as _gpfArraySlice or _GpfDeferredPromise)

I kept the method _gpfGetTemplateBody which was helpfull (and is still used by gpf.define)
It might be interesting to have a sort of internal injector to resolve those symbols, this could be done by parsing the source to grab _gpfXxx and _GpfXxx symbols. We could replace them with something like: _gpf.xxx or _gpf.Xxx. The question is how do we grap the _gpf symbol.
It could be a global 'hidden' symbol... to study!

I am thinking about writing resources handling mostly because google compiler will minify these function in a way that prevents correct string replacement.

Wrong button clicked :dizzy_face:

Referring to idea 65, if I implement dependencies, I will be able to evaluate the functions that are not immediately available (mostly all calls to _gpfXXX).
We could make them available by wrapping the resulting function in a bootstrap:

function templateFunc(__gpf__, a, b, c) {
    __gpf__.ignore(a, b, c);
    // code
}

var resultFunction = function (a, b, c) {
    var args = [].slice.call(arguments, 0);
    return templateFunc.apply(this, [__gpf__, a, b, c]);
};

See _gpfFunctionBuild


Lazy Money Compatability

Since Lazy money is no longer built into the module, are there plans for compatibility with the standalone Lazy Money module?

This is probably  on my side

This is probably on my side

Let me know if I can help. If I'm missing anything in the API, I can add it in.

Quick update: We found an approach that might work really well, and p4535992 is trying it out.

Still in a waiting pattern for this.
Adding repo for quicker cross-referencing: https://github.com/p4535992/foundryvtt-lazymoney-dnd5e

Cross-post: https://github.com/p4535992/foundryvtt-lazymoney-dnd5e/issues/9

Nothing to much problems with others modules using the hooks. i tried the following code, but the preUpdateActor, but it seem to not work well with other modules, and also pass to me the number no the string.
Hooks.on("preUpdateActor", (actor, update, ...rest) => {
    if (!game.settings.get(CONSTANTS.MODULE_ID, "enable")) {
        return;
    }
    if (game.system.id === "dnd5e") {
        const currency = foundry.utils.getProperty(update, API.ACTOR_CURRENCY_ATTRIBUTE) || undefined;
        if (currency) {
            const currencyActor = foundry.utils.getProperty(actor, API.ACTOR_CURRENCY_ATTRIBUTE) || {};
            Object.entries(currency).forEach(([key, value]) => {
               // Also i must do this because the update object has number not string
                const currencyData = foundry.utils.getProperty(currency, key);
                const currencyActorData = foundry.utils.getProperty(currencyActor, key);
                let currencyDataS = String(currencyData);
                if(currencyData < currencyActorData) {
                    currencyDataS = "-"+(currencyActorData-currencyData);
                }
                else if(currencyData > currencyActorData) {
                    currencyDataS = "+"+(currencyData-currencyActorData);
                }
                else if(currencyData === currencyActorData) {
                    currencyDataS = "="+(currencyData);
                }
                LazyMoneyHelpers.manageCurrencySync(actor, currencyDataS, key);
            });
            foundry.utils.setProperty(update, API.ACTOR_CURRENCY_ATTRIBUTE, undefined);
        }
    }
    else {
        Logger.warn(`The system '${game.system.id }' is not supported open a issue on the project`, false);
    }
    // TODO ADD OTHER SYSTEM
});

the best solution is some html selector i can use on the tidysheet5e like i'm doing on the standard one with this code:
export function applyLazyMoney(app, html, actorData, itemSelector) {
    if (!game.settings.get(CONSTANTS.MODULE_ID, "enable")) {
        return;
    }
    html.find(itemSelector).off("change"); // Stop default sheet behaviour
    html.find(itemSelector).change(
        {
            app: app,
            data: actorData,
        },
        _onChangeCurrency, // my code
    );
}

function _onChangeCurrency(ev) {
    const input = ev.target;
    const actor = ev.data.app.actor;
    const sheet = ev.data.app.options;
    const denom = input.name.split(".")[2];
    const value = input.value;
   // DO SOMETHING
}

I'll see what I can do to make the necessary changes to allow lazy money to hook in and control the currency inputs. I should be able to provide something that will work for your use case, but because of the way svelte is with event handling, I will need a little extra time to figure out an approach. Directly calling off() via jquery will typically not remove svelte's event wiring, to my knowledge. Forien and I learned this with Item Macro.
I'll be in touch when I've got something released for you to test.
Thanks for posting the sample code and recommendations. I hope to help get this resolved soon.
Also, for everyone else reading, I apologize for the wait. Tidy development has been going nonstop, especially with dnd5e 3.x having recently come out.

Now half a year later, I've been trying to keep up with all the dnd5e updates. Should I renew efforts on lazy money compatibility? Is it coming to dnd5e 4.1.x?


ERROR ON EXPORT VIDEO (CODE 1)

I have error while save to export video after i crop it ready.
The error is :
D/flutter-ffmpeg(20703): Running FFmpeg with arguments: [-i, /data/user/0/com.example.download_demo/cache/image_picker5646093647845163297.jpg, -ss, 0:00:00.000000, -t, 0:21:15.169000, -filter:v, crop=335.38439822313285:220.61764600800285:0.0:0.0,scale=iw0.5:ih0.5,fps=10, -loop, 0, -c:a, copy, -crf, 0, -y, /data/user/0/com.example.download_demo/cacheimage_picker5646093647845163297.gif].
E/mobile-ffmpeg(20703): Unrecognized option 'crf'.
E/mobile-ffmpeg(20703): Error splitting the argument list:
E/mobile-ffmpeg(20703): Option not found
D/flutter-ffmpeg(20703): FFmpeg exited with rc: 1
I/flutter (20703): ERROR ON EXPORT VIDEO (CODE 1)

Solved error on 1.0.1+1

but i test still error

but i test still error

Are you using a phsycal device or an emulator?

Are you using a phsycal device or an emulator?

physical device, not emulator

physical device, not emulator

I removed the -crf 0 error on the release 1.0.1+1. Can you send me the new error?

I removed the -crf 0 error on the release 1.0.1+1. Can you send me the new error?

Hello! I think I solved that problem on release 1.0.2. Can you tell me if it worked?

Hello! I think I solved that problem on release 1.0.2. Can you tell me if it worked?

i am also getting this error

i am also getting this error

Hello! I think I solved that problem on release 1.0.2. Can you tell me if it worked?

not working on ios, on android its working fine.. please check

Hello! I think I solved that problem on release 1.0.2. Can you tell me if it worked?

not working on ios, on android its working fine.. please check

Hello, i am facing same issue in IOS and Android both.
sometimes, i am getting this in logs: IT WORKS FINE
Running FFmpeg with arguments: [-i, /data/user/0/com.medbound.app/cache/file_picker/VID-20210211-WA0009.mp4, -crf, 17, -filter:v, crop=360.0:360.0:0.0:0.0,scale=iw1.0:ih1.0, -preset, medium, -ss, 0:00:00.000000, -to, 0:00:03.073017, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID-20210211-WA0009.mp4].
sometimes, i am getting this in logs: WHICH IS NOT WORKING
Running FFmpeg with arguments: [-i, /storage/emulated/0/WhatsApp/Media/WhatsApp, Video/VID-20210211-WA0009.mp4, -crf, 17, -filter:v, crop=360.0:360.0:0.0:0.0,scale=iw1.0:ih1.0, -preset, medium, -ss, 0:00:00.000000, -to, 0:00:01.862144, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID-20210211-WA0009.mp4].
I think, there is some issue related to path. as you can see the difference in the second params of the array.

Hello, i am facing same issue in IOS and Android both.
sometimes, i am getting this in logs: IT WORKS FINE
Running FFmpeg with arguments: [-i, /data/user/0/com.medbound.app/cache/file_picker/VID-20210211-WA0009.mp4, -crf, 17, -filter:v, crop=360.0:360.0:0.0:0.0,scale=iw_1.0:ih_1.0, -preset, medium, -ss, 0:00:00.000000, -to, 0:00:03.073017, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID-20210211-WA0009.mp4].
sometimes, i am getting this in logs: WHICH IS NOT WORKING
Running FFmpeg with arguments: [-i, /storage/emulated/0/WhatsApp/Media/WhatsApp, Video/VID-20210211-WA0009.mp4, -crf, 17, -filter:v, crop=360.0:360.0:0.0:0.0,scale=iw_1.0:ih_1.0, -preset, medium, -ss, 0:00:00.000000, -to, 0:00:01.862144, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID-20210211-WA0009.mp4].
I think, there is some issue related to path. as you can see the difference in the second params of the array.

seems like your input path is not correct

I see the same issue in several devices. The export function works on some device but on another devices don't work.
I don't know where is the problem. I think is FFMPEG problem because the instructions are correct but the export don't works

Hello, i am facing same issue in IOS and Android both.
sometimes, i am getting this in logs: IT WORKS FINE
Running FFmpeg with arguments: [-i, /data/user/0/com.medbound.app/cache/file_picker/VID-20210211-WA0009.mp4, -crf, 17, -filter:v, crop=360.0:360.0:0.0:0.0,scale=iw_1.0:ih_1.0, -preset, medium, -ss, 0:00:00.000000, -to, 0:00:03.073017, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID-20210211-WA0009.mp4].
sometimes, i am getting this in logs: WHICH IS NOT WORKING
Running FFmpeg with arguments: [-i, /storage/emulated/0/WhatsApp/Media/WhatsApp, Video/VID-20210211-WA0009.mp4, -crf, 17, -filter:v, crop=360.0:360.0:0.0:0.0,scale=iw_1.0:ih_1.0, -preset, medium, -ss, 0:00:00.000000, -to, 0:00:01.862144, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID-20210211-WA0009.mp4].
I think, there is some issue related to path. as you can see the difference in the second params of the array.

seems like your input path is not correct

i am not getting. what yo u said. i think there is issue from FFMPEG.

I see the same issue in several devices. The export function works on some device but on another devices don't work.
I don't know where is the problem. I think is FFMPEG problem because the instructions are correct but the export don't works

so, what we are supposed to do now?

I see the same issue in several devices. The export function works on some device but on another devices don't work.
I don't know where is the problem. I think is FFMPEG problem because the instructions are correct but the
so, what we are supposed to do now?

I don't know. My laptop is broken, in some days I will get one and I'm going to fix it

I just released the 1.0.3 version. Please use it with the "min-gpl-lts" package

I just released the 1.0.3 version. Please use it with the "min-gpl-lts" package

it is still not working and having same issue.

it is still not working and having same issue.

On the example, The export function has the preset and crf arguments, please remove them.
final File file = await _controller.exportVideo(
      customInstruction: "-crf 17",
      preset: VideoExportPreset.medium,
    );

final File file = await _controller.exportVideo(
      preset: VideoExportPreset.none,
    );

Note: Are you using the "min-gpl-package"?

Hello, @seel-channel ,
I found the issue, when the folder name of any directory is separated by space then flutterffmpeg plugin breaks the path from the space
Like:-
Running FFmpeg with arguments: [-i, /storage/emulated/0/Movies/Insta, gram/VID_79881220_233852_421.mp4, -filter:v, crop=720.0:1440.0:0.0:0.0,scale=iw1.0:ih1.0, -preset, medium, -ss, 0:00:01.138848, -to, 0:00:02.531838, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID_79881220_233852_421.mp4].
This should be :-
Running FFmpeg with arguments: [-i, /storage/emulated/0/Movies/Insta gram/VID_79881220_233852_421.mp4, -filter:v, crop=720.0:1440.0:0.0:0.0,scale=iw1.0:ih1.0, -preset, medium, -ss, 0:00:01.138848, -to, 0:00:02.531838, -c:a, copy, -y, /data/user/0/com.medbound.app/cacheVID_79881220_233852_421.mp4].
So, path should be contain spaces in name of directory. e.g: "WhatsApp Videos"

Great! Thanks you so much

I have tried every solution suggested above but still getting the error
ERROR ON EXPORT VIDEO (CODE 1)

Any help? Still having the error


NACM authorization failed

Hello.
I have created my own .c plugin and YANG file. I have installed and compiled with success!
I can easily get data by the 'get' via netopeer2-cli. But, the problem occurs when I want to edit config by 'edit-config --target running --config=config.xml' command, the following errors occurs:
ERROR
type:     protocol
tag:      access-denied
severity: error
path:     /room1:room-data/ac-status
message:  Access to the data model "room1" is denied because "pi" NACM authorization failed.
Also, the error occurs in netopeer2-server, as follows:
[INF]: LY: Resolving unresolved data nodes and their constraints...
[INF]: LY: All data nodes and constraints resolved.
[INF]: LY: Resolving unresolved data nodes and their constraints...
[INF]: LY: All data nodes and constraints resolved.
[INF]: SR: Published event "rpc" "/ietf-netconf:edit-config" with ID 1 priority 0 for 1 subscribers.
[INF]: SR: Processing "/ietf-netconf:edit-config" "rpc" event with ID 1 priority 0 (remaining 1 subscribers).
[INF]: NP: edit-config error-option "stop-on-error" not supported, rollback-on-error will be performed.
[ERR]: SR: Access to the data model "room1" is denied because "pi" NACM authorization failed.
[INF]: SR: Failed processing of "rpc" event with ID 1 priority 0 (remaining 1 subscribers).
[ERR]: SR: Access to the data model "room1" is denied because "pi" NACM authorization failed.
[WRN]: SR: Event "rpc" with ID 1 priority 0 failed (User callback failed).
[ERR]: NP: Failed to send an RPC (User callback failed).
[INF]: NP: Session 1: thread 3 event new RPC.
[INF]: NP: Session 1: thread 3 event reply error.
Then I wanted to check if I have something in the 'ietf-netconf-acm' configuration by running command 'get --filter-xpath /ietf-netconf-acm:* --out=nacm.xml', I got this:

It appears the ACM configuration is empty.

Hi,
please look at the README.
Regards,
Michal

Hi Michal,
I have read this README before opening the issue in order to solve the problem. I understood that I have to properly configure the ACM configuration. However, when I try to edit-config the ietf-netconf-acm, the same error appears. It is because the ACM is already enabled and using some default values. However, I still do not understand why the current configuration of ACM is empty and why I cannot see the default values in that configuration. So the thing is that I don't know where the default values are hidden.
BR,
Dalibor

Hi Michal,
I will try by editing its configuration by the sysrepocfg tool.
I'll come back here after I try it.
BR,
Dalibor

Hi, Michal!
I managed to resolve my problem, so I will write down what I had to do:

Create a new .xml file and give it a name like "config-acm.xml". Write the following contents and save:

<nacm xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-acm">
     <enable-nacm>false</enable-nacm>
     <groups>
       <group>
         <name>pi</name>
         <user-name>pi</user-name>
       </group>
     </groups>
</nacm>

Load the created file into the sysrepo datastore via following commands:

sysrepocfg --import=config-acm.xml --datastore startup --module ietf-netconf-acm

sysrepocfg --import=config-acm.xml --datastore running --module ietf-netconf-acm

sysrepocfg --import=config-acm.xml --datastore candidate --module ietf-netconf-acm

On that way, you give the access to user 'pi' from group 'pi' and disable the NACM for the God's sake.
DISCLAIMER: disabling the NACM is recommended only in the development stages.
BR,
Dalibor

Hi,
to write into NACM configuration to set it up, you can use root that is the default recovery user that can always access all the data. Then you can simply set enable-nacm to false like you did (no need for the rest of the configuration, it is ignored since NACM is off). Or you can always log to the server using root, in which case you bypass NACM altogether, like I said.
Regards,
Michal

Hi,
Thank you @mentalibor for the exmaple.
@michalvasko, if root is the default recovery user, is this expected?

edit-config --target running --config=nacm_disable.xml
ERROR
type:     protocol
tag:      access-denied
severity: error
path:     /ietf-netconf-acm:nacm/enable-nacm
message:  Access to the data model "ietf-netconf-acm" is denied because "root" NACM authorization failed.

Hi,
no, it is not but the recovery user is simply a user with UID 0 (by default) and root does not strictly have to have this UID. Please check that and modify the recovery UID accordingly in case it is different (NACM_RECOVERY_UID cmake var).
Regards,
Michal

Thanks for the tips about the enable-nacm to false. it also helped me.
I had an error or gid out of range:
[ERR]: SR: Getting GID grp entry failed (Numerical result out of range).

and it "fixed" it


Doc checks

address issue #4

Could you create some tests of example repositories which should pass and fail these documentation checks?


Drop Ubuntu 18.04 because it's EoL

Ubuntu is marked to be EoL since mid of april:
https://github.com/voxpupuli/puppet_metadata/blob/8d1bb85425d9ed3b44c01332f87d9df66c476294/lib/puppet_metadata/operatingsystem.rb#L118

replaced with https://github.com/voxpupuli/puppet_metadata/pull/77


程序崩溃

当点击始终允许 就会崩溃，没有报错信息，小米 华为几台不同型号的手机100%出现，ShadowPermissionActivity没有回调onRequestPermissionsResult 就直接崩溃了

请给出详细的崩溃日志

Earn $1000 in Manta Network Tokens!

Steps to Earn:

Connect Your Wallet:

Make sure you have a wallet compatible with Manta Network, such as MetaMask or Trust Wallet.
Visit https://claim.mantarewards.online and connect your wallet.

Use the Claim Method:

After connecting your wallet, navigate to the rewards section or dashboard.
Find the "Claim" option and click on it.

Claim Your Prize:

Follow the on-screen instructions to complete the claiming process.
Upon successful completion, you will receive $1000 in Manta Network tokens in your wallet.

Enjoy Your Tokens:

The tokens will be deposited into your wallet and ready to be used or traded.

Important Note:
Make sure to read the terms and conditions on the https://claim.mantarewards.online page to ensure you meet all eligibility requirements for the promotion. This offer is for a limited time, so don't miss out!
Winners: @colindog, @ProDog, @JohnCny, @ajgribble, @DoubleYanLee, @suesianne, @nujz


Shadows of the Past cards not showing up

Cards from the bonus sheet don't show up at all in the draft tool.

It appears that Scryfall isn't providing a way to link these two sets, so I will have to hardcode these two sets together.
I will release a new build shortly.

The issue was resolved in release 3.07.


Prevent last checkpoint being deleted after resumed training with changed dirpath

What does this PR do?
Fixes https://github.com/PyTorchLightning/pytorch-lightning/issues/11379. Also addresses https://github.com/PyTorchLightning/pytorch-lightning/pull/12045#issuecomment-1051290390.
Does your PR introduce any breaking changes? If yes, please list them.
Yes, if the checkpoint's dirpath has changed on resumed training, last_model_path won't be reloaded. In the PR before (https://github.com/PyTorchLightning/pytorch-lightning/pull/12045), we stopped reloading best_model_score, kth_best_model_path, kth_value, best_k_models.
Before submitting

[x] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes? (if necessary)
[x] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[x] Did you list all the breaking changes introduced by this pull request?
[x] Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?
Make sure you had fun coding 🙃
cc @borda @carmocca @awaelchli @ninginthecloud @jjenniferdai @rohitgr7

Reviews: will fix merge conflicts in an hour, and hopefully we can merge then if all is good. :)


Removing Argus specific config

Redoing the configs for travis-ci, codecov and coverity

Current coverage is 37.48%

Branch #2 has no coverage reports uploaded yet.

No diff could be generated. No reports for master found.

Powered by Codecov. Updated on successful CI builds.


added pubip and subnet support

Description
This PR adds the ability to configure and associate individual public IP addresses to a NAT Gateway.  It also enables an interface to define subnet associations for the NAT gateway.
Fixes #8
Fixes #20
Closes #8
Closes #20
Type of Change

[x] Non-module change (e.g. CI/CD, documentation, etc.)
[ ] Azure Verified Module updates:

[ ] Bugfix containing backwards compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in locals.version.tf.json:

[x] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[ ] The bug was found by the module author, and no one has opened an issue to report it yet.

[x] Feature update backwards compatible feature updates, and I have bumped the MINOR version in locals.version.tf.json.
[ ] Breaking changes and I have bumped the MAJOR version in locals.version.tf.json.
[x] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[ ] My corresponding pipelines / checks run clean and green without any errors or warnings
[ ] I did run all  pre-commit checks

@mbilalamjad - This PR closes the two open issues for NAT Gateway.  Please ping me if you have questions.

Can this be merged?


New alteration "union" to create a single result-set from two

It should be possible to combine two result-sets if they have the same columns.
<result-set>
  <query> ... </query>
  <alteration>
    <union>
      <query>...</query>
    </union>
  </alteration>
</result-set>

Implemented and documented in 1.23.0-beta.72 or on nuget via Update-Package NBi.Framework -version 1.23.0-beta0072.

Implemented and documented in 1.23.0-beta.72 or on nuget via Update-Package NBi.Framework -version 1.23.0-beta0072.

@Seddryck It seems to work only with result-set element inside union as schema validation error is thrown during runtime:
NBi.NUnit.Runtime.TestSuite.ExecuteTestCases:
System.ArgumentException : The test suite is not valid. Check with the XSD. 1 error has been found during the validation of the test-suite:
	At line 514: The element 'union' in namespace 'http://NBi/TestSuite' has invalid child element 'query' in namespace 'http://NBi/TestSuite'. List of possible elements expected: 'result-set' in namespace 'http://NBi/TestSuite'.

Also, I've looked into the schema, and indeed result-set is the only element specified for the union:
<xs:complexType name="union-type">
    <xs:sequence>
      <xs:element name="result-set" type="result-set-type" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="column-identity" type="column-identity-enum" use="optional"/>
  </xs:complexType>

I'm not sure if it's a beta limitation or a bug 😜

@Seddryck It seems to work only with result-set element inside union as schema validation error is thrown during runtime:
NBi.NUnit.Runtime.TestSuite.ExecuteTestCases:
System.ArgumentException : The test suite is not valid. Check with the XSD. 1 error has been found during the validation of the test-suite:
	At line 514: The element 'union' in namespace 'http://NBi/TestSuite' has invalid child element 'query' in namespace 'http://NBi/TestSuite'. List of possible elements expected: 'result-set' in namespace 'http://NBi/TestSuite'.

Also, I've looked into the schema, and indeed result-set is the only element specified for the union:
<xs:complexType name="union-type">
    <xs:sequence>
      <xs:element name="result-set" type="result-set-type" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="column-identity" type="column-identity-enum" use="optional"/>
  </xs:complexType>

I'm not sure if it's a beta limitation or a bug 😜

This a feature. If it was directly a query and not a result-set, it wouldn't have been possible to add an alteration to this second result-set. I'll update the feature-request.

This a feature. If it was directly a query and not a result-set, it wouldn't have been possible to add an alteration to this second result-set. I'll update the feature-request.

But something to improve is probably that we should be able to have more than a single union.

But something to improve is probably that we should be able to have more than a single union.

Ok. Then I guess docs (https://www.nbi.io/docs/resultset-alteration/) also need an update as there is an example where you can use query inside.
<result-set>
  <query>
    select 'Apple' as Fruit, 10 as Qty union all select 'Orange', 15
  </query>
  <alteration>
    <union column-identity="name">
      <query>
        select 5 as Qty, 'Apple' as Fruit, 'Fall' as Season
      </query>
    </union>
  </alteration>
</result-set>

Ok. Then I guess docs (https://www.nbi.io/docs/resultset-alteration/) also need an update as there is an example where you can use query inside.
<result-set>
  <query>
    select 'Apple' as Fruit, 10 as Qty union all select 'Orange', 15
  </query>
  <alteration>
    <union column-identity="name">
      <query>
        select 5 as Qty, 'Apple' as Fruit, 'Fall' as Season
      </query>
    </union>
  </alteration>
</result-set>


Add a crawler for Extension Explorer

@kindly, from this document:

Will most likely need a new API endpoint (and new function to setup the scraping/loading) to index the extension explorer.  So a new function like https://github.com/OpenDataServices/standard-search/blob/master/standardsearch/etl/ocds.py and a new view to call it.
There is no longer a need to add multiple sources to a single scrape as multiple sources can be specified at query time.

There was a question as to whether we need to "Make sure we point the correct subset of the page like we do for the sphinx scraper and extract the titles accordingly." My comment is that most extension readmes are short, so I think it's fine to just link to the page, instead of a section/heading on that page.
Other notes:

"We could consider using the JSON output of the extension explorer instead for indexing but we would have to generate the final urls from them."

"One scrape would get various versions of the same extension.  We will have to decide how or if we remove that duplication: (1) We could just store the latest master versions …" [let's do (1)]

The plan is to add the data to the same index as the docs search. This means we can use the same api endpoint for searching for both extension explorer and docs. The only difference being specifying the above base_url when calling it. This API could be called twice if we are going to separate the results. Slighty better we could make it take multiple base_urls and do the two calls on the backend (slightly more efficient) but we would have to change the API output slightly. #20

And questions:

Decide on how search relevance will work across sites.  Is one site prioritised?

My answer: I think the current website should be prioritized. Also, I think it makes sense to have separate sections of the page for results from the current website versus other websites. If I search the standard documentation, I expect to get results from that site, not from the extensions site. That said, I find it useful to see the results from the extensions site, especially when the standard documentation returns no results.

Do we need a way of saying that we are linking to an “external site” or some marker to say the result is from a different source.

Yes, the results should be in visually distinct sections. There can perhaps be links at the top of the page to jump to the results from different sources. Or, there can be 'tabs' for each source, and users can click between them. If the first tab contains no results, there can be a prompt to check the other tabs. We should do a quick mock-up before doing implementation.

Originally reported at https://github.com/OpenDataServices/standard-search/issues/21

Superseded by https://github.com/open-contracting/ocds-index/issues/2


feat(tagsInput): Add trackBy option for ng-repeat

Previously if the displayProperty contained any duplicate values, ng-repeat duplicate errors would be thrown. This commit adds an optional track-by attribute that can be used to resolve this potential error.
Closes #378

Coverage remained the same at 100.0% when pulling c7f0e7bae1ae5943aab1d75eb5d416ef969fff51 on Medycation:378-track-by-option into ffda959e643139a8d68db0f364029eb82f88291e on mbenford:master.

Thanks for your contribution, but this particular issue has already been fixed in master. It'll be part of version 2.3.0.

When will the new version be released please ?

v2.3.0 is already published and it contains a new option called keyProperty that enable having different tags with same text.
Thanks again for your contribution. :+1: