@param tag

Hi,
I'm using your tool to document an AngularJS project.
I have this issue: it seems that parameter (@param) loses its advanced properties: if I write this code,
/**
* @memberof odataQueryServiceFactory
* @description Genera l'opzione di ordinamento di una query
* @param {string} ordersby - Elenco criteri di ordinamento da applicare
* @param {string} filter.key - Nome del campo da ordinare
* @param {string} filter.criteria - Criterio di ordinamento asc|desc (se non specificato default e' asc)
* @returns {string} - clausola $orderby dove la clausola e' $orderby=[clausola]
*/
I get this result:
getQueryOptionsOrderby (ordersby, filter.key, filter.criteria) -> string
filter.key	string
Nome del campo da ordinare
filter.criteria	string
Criterio di ordinamento asc|desc (se non specificato default e' asc)
As you can see, the field.key is considered as a new parameter and not as a property of filter.
Also if I write @param {string|Object} value, in the documentation I get only "string" as type of the variable.
I used the command line as suggested by you:
PS C:...> node C:...\node_modules\jsdoc\jsdoc.js --template C:....\node_modules/angular-jsdoc/default --configure  C:....\node_modules/angular-jsdoc/common/conf.json C:...\fileName.js
Can you please me tell me how can I solve this?
Thank you

could you add .js file here, so that I can regenerate document?

added sample .js and resolved multiple param types with the release of 1.1.5

I'm sorry but I haven't got it with me at the moment, since it is at my
office and now I am at home. I will be at the office on monday and I will
send it to you.
Regards
Davide Varini
Il 28/ago/2015 08:41 PM, "Allen Kim"<EMAIL_ADDRESS>ha scritto:

could you add .js file here, so that I can regenerate document?
—
Reply to this email directly or view it on GitHub
https://github.com/allenhwkim/angular-jsdoc/issues/28#issuecomment-135856968
.

Hi Allen,
I attach you a file with some code snippets (and the resulting
documentation) with the following features regarding parameters:

type as {type1|type2|type3} -> output=type a (method: getQueryResourceKey)
parameter1, parameter1.a, parameter1.b -> output=3 parameters (even in
the method definition, where I have 1 only param) (method: getQueryOptions)
Array: @param {string[}} -> output = Array.
(method: getQueryOptionsExpand)
Optional-> output=not considered optional. (method:
getQueryOptionsOrderby)

The code has been reduced and modified since it is protected by copyright
(sorry about that).
Here is the command line I used to produce the documentation:
node jsdoc.js --template [..]node_modules/angular-jsdoc/default --configure
[..]node_modules/angular-jsdoc/common/conf.json [..]odataHelpersModule.js
Please let me know if you need anything more.
Thank you
Davide
2015-08-29 21:42 GMT+02:00 Davide Varini<EMAIL_ADDRESS>
I'm sorry but I haven't got it with me at the moment, since it is at my
office and now I am at home. I will be at the office on monday and I will
send it to you.
Regards
Davide Varini
Il 28/ago/2015 08:41 PM, "Allen Kim"<EMAIL_ADDRESS>ha
scritto:

could you add .js file here, so that I can regenerate document?
—
Reply to this email directly or view it on GitHub
https://github.com/allenhwkim/angular-jsdoc/issues/28#issuecomment-135856968
.

I am pretty sure this issue is resolved with new release.
If the issue continues, please create a new ticket with your source code attached.


Lag on Raspberry Pi 3B+

Describe the bug or issue
Installing ChromiumOS 83 lags
Describe your setup

Raspberry Pi 3 B+
ChromiumOS 83

To Reproduce
Steps to reproduce the behavior:

Install and boot the Pi.
The lag will start in Setup

Expected behaviour
A lag on the Pi.

Maybe the Pi 3 B+ just isn't capable of running it decently?
How much RAM do you have @LunatiikXD ?
If it is less than 2 gigs, you are unlikely to have good performance.

1 gb of ram. However 77 and 80 runs fine

Oh, so it's just this version then. I am not too sure what's going on, but if the previous version works for you, why do you wanna upgrade to this version?

For the Zoom support.

Oh yeah, well, I am stumped as to what could be causing this apart from just some rogue app or extension, but I think it's probably just an optimization thing. And I obviously don't know if or when the developers will fix it but they will be aware of this issue, so hopefully we can see a fix soon.
Sorry for not being very useful though

Pls, remove most of the extensions running in the background.

How do i do it? Even in the setup it lags.

please try r86r1 release, tested with Pi 3B 2GB RAM, I would say it's acceptable performance.


Niko/improvements

Copied PR from https://github.com/nikobojs/manuscrape_nuxt/pull/24

From @samuelhimmelstrup :

Perhaps the check for whether the project exists "// find project and field count" could be done implicitly in the update statement (by catching a possible RecordNotFoundException)? This could save a roundtrip to the db and make the code more concise :-)

Will look at it and add a few more commits before merge :-)


panic observed in needsQuoting

I am using logrus v1.4.1. I am observing the following panic periodically:
 panic: runtime error: invalid memory address or nil pointer dereference)
 [signal SIGSEGV: segmentation violation code=0x1 addr=0x28e pc=0x12fd8de])
 goroutine 124 [running]:)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*TextFormatter).needsQuoting(0xc0000fa730, 0x28e, 0x23cb91, 0x1c))
       /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/text_formatter.go:268 +0x4e)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*TextFormatter).appendValue(0xc0000fa730, 0xc00934e120, 0x2c78180, 0xc0091e4060))
        /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/text_formatter.go:294 +0x6d)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*TextFormatter).appendKeyValue(0xc0000fa730, 0xc00934e120, 0x30969b2, 0x6, 0x2c78180, 0xc0091e4060))
       /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/text_formatter.go:285 +0x90)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*TextFormatter).Format(0xc0000fa730, 0xc003dc61c0, 0xc0000b8510, 0xc000dbcb18, 0x12206b6, 0x302dfe0, 0xc000dbcb18))
       /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/text_formatter.go:202 +0xa52)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*Entry).write(0xc003dc61c0))
       /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/entry.go:255 +0x81)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.Entry.log(0xc0000b84e0, 0xc00934e0f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...))
       /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/entry.go:231 +0x193)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*Entry).Log(0xc003dc6150, 0xc000000004, 0xc000dbcce0, 0x1, 0x1))
       /go/src/github.com/cilium/cilium/vendor/github.com/sirupsen/logrus/entry.go:268 +0xed)
 github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*Entry).Info(...))

The line where the panic occurred:
https://github.com/sirupsen/logrus/blob/8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f/text_formatter.go#L268
The only way I can see this being true is if the string gets overwritten to be nil while the function is being called. I am unsure how this can happen. No fields in the TextFormatter, Entry, etc. are being accessed or dereferenced at this line.

What version of Go did this happen with? What platform / os ?
Does cilium use pointers to strings or unsafe to construct strings passed to logrus?
Looking at the stack trace:
github.com/cilium/cilium/vendor/github.com/sirupsen/logrus.(*TextFormatter).needsQuoting(0xc0000fa730, 0x28e, 0x23cb91, 0x1c))

0xc0000fa730 is the address of the TextFormatter
0x28e is the invalid address of a String (addr=0x28e in the panic header)
...
The string value being passed to needsQuoting is extracted from an interface{} (either by type assertion or fmt.Sprint).
This doesn't look right to me and am wondering if it's a bug in Go or a problem in cilium.
it could be I'm not reading the stack trace correctly, but things do line up.

@freeformz thank you for replying! I will get back to you re: version of Go and platform / OS.
I will paste links to the code path in which this panic occurs and summarize them below.
https://github.com/cilium/cilium/blob/a7bfafb9674b360e36a3c835ffc2fb949faa1f55/daemon/policy.go#L69-L75
which calls
https://github.com/cilium/cilium/blob/pr/tgraf/eni-ipam/pkg/endpointmanager/manager.go#L400-L406
The panic occurs on line 406.
Collapsing the code and synthesizing the relevant parts here for ease of reading so we don't pull you too far into the weeds of our code:
// reasons is populated elsewhere, but its creation and population is protected via a mutex
reason := strings.Join(reasons, ", ")
regenerationMetadata := &regeneration.ExternalRegenerationMetadata{Reason: reason}
log.WithFields(logrus.Fields{"reason": regenMetadata.Reason}).Info("regenerating all endpoints")
...

The structure which we dereference regenerationMetadata  is localized to the currently running goroutine, as is the reason variable, which is the result of a use of strings.Join.
Given the above,  I cannot see how the string we pass in via our call to WithFields would be corrupted / malformed. Let me know if you need me to give you more context.

Output of go version: go version go1.12.7 linux/amd64

Can you provide instructions to reproduce?

@freeformz unfortunately, we have not been able to reproduce this. We can close this if you like and reopen if we find a reproducer or see it again.

Thanks. I think that is a good idea.


Docs: Sass Variables Table of Contents

The documentation of table of contents were not fully completed. I also added numbers to have a better overview.

I would suggest against numbers, as it will create a lot of churn when things are changed.

That's a good point, but it also creates a bit of structure.

I can see this being helpful. Agreed that the numbers could get whacky, but it's not likely we'll change these once v4 really is finalized. It does highlight some reordering I'd like to do though after merging :). I'll take a look and update it after <3.


⚠ Fortnite has degraded performance

In 5f3401b, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1583 ms

Resolved: Fortnite performance has improved in 07d205c.


chore: update avatar_decoration type

New Discord update and stuff

Hey there, thanks for your contribution. I wasn't able to find any official Discord documentation for this. Could you please provide a link to some with this new field? Thanks!

Hey there, thanks for your contribution. I wasn't able to find any official Discord documentation for this. Could you please provide a link to some with this new field? Thanks!

Honestly no clue where the docs for this is, it shows up in both the Lanyard API response and the Discord API itself.
https://api.lanyard.rest/v1/users/368399721494216706

Yea totally it does, hmm. In this case I'm happy to merge since it reflects the lanyard types more correctly, but I think this might be an issue on Discord's side, and I feel like this could change in the future..? 😮
Thanks very much for the contribution! 🫶

Released in https://github.com/alii/use-lanyard/commit/32e9364a4b414a70e57aa88f1e94cf08812218c1<EMAIL_ADDRESS>


Message verification support

Just wanted to start a discussion here about the best way to implement message verification support in Scala. First, a quick overview of current state:

there is a PactVerifier trait which works without any modification for request/response pacts

the trait uses ProviderVerifier().runVerificationForConsumer which supports both message and interaction (request/response) pacts

currently this method always defaults to request/response verification because ProviderInfo doesn't have an explicit verificationType -- it is easy to add support for this to the ProviderInfoBuilder:
final case class ProviderInfoBuilder(
    name: String,
    protocol: String,
    host: String,
    port: Int,
    path: String,
    verificationType: PactVerification,
    pactSource: PactSource
) {
  private[pact4s] def toProviderInfo: ProviderInfo = {
    val p = new ProviderInfo(name, protocol, host, port, path)
    p.setVerificationType(verificationType)
    pactSource match {
      case broker: PactBroker => applyBrokerSourceToProvider(p, broker)
      case FileSource(consumer, file) =>
        p.hasPactWith(
          consumer,
          { consumer =>
            consumer.setPactSource(new PactJVMFileSource(file))
            kotlin.Unit.INSTANCE
          }
        )
        p
    }
  }
  ...
}

however, this will result in verification via annotation (@PactVerifyProvider("message description")):
@PactVerifyProvider("Resource with name 'example'")
def exampleResource(): MessageAndMetadata = {
  val headers = Map("header-name" -> "header-value")
  val payload = """{"hello":"world"}""".getBytes
  new MessageAndMetadata(payload, headers.asJava)
}

Full example:
class ProviderPactMessageVerificationSpec extends PactVerifier with DecorateAsJava {
  def provider: ProviderInfoBuilder = ProviderInfoBuilder(
    "provider",
    "http",
    "localhost",
    3456,
    "/",
    PactVerification.ANNOTATED_METHOD,
    FileSource("consumer", new File(getClass.getClassLoader.getResource("consumer_provider.json").getPath))
  )

  @PactVerifyProvider("Resource with name 'example'")
  def exampleResource(): MessageAndMetadata = {
    val headers = Map("header-name" -> "header-value")
    val payload = """{"hello":"world"}""".getBytes
    new MessageAndMetadata(payload, headers.asJava)
  }

  verifyPacts()
}

There are a few things awkward about this flow:

tying messages defined in the pact to generators using annotations feels very java-y, definitely not a normal test flow in Scala
the ProviderInfoBuilder should probably make defining the provider HTTP information optional -- it could be awkward for message verification where no provider states are needed (otherwise the HTTP information would be used to make requests against the provider application for states)

So what kind of test DSL do we want for linking of pact messages to message generators? And how would we integrate that with pact-jvm? Under the hood, the ProviderVerifier eventually calls verifyMessage -- we could invoke this directly ourselves. I think in general we should try not to drift too far from the pact-jvm implementation.
Another option I have seen is requesting of messages via an HTTP proxy: https://github.com/pact-foundation/pact-message-demo (the gist: you add endpoints to the provider to support returning messages based on description and provider state) -- however, pact-jvm does not support this natively.

Also need to consider provider-state support: https://docs.pact.io/implementation_guides/jvm/provider#provider-state -- it looks like currently this works by:

checking for providerStates on the MessagePact interaction
replays these against a provider via HTTP request
then invoke the message generation method

It does seem like the best approach might be having test-only HTTP endpoints on the provider application, since that seems to be required for provider states anyways.

After playing around a bit, I think it would be possible to not use annotations, but it would probably require some refactoring of the pact-jvm library. We can pretty easily extend the ProviderVerifier and override methods in it, but it's not easy to even pass a scala method into the verifyMessagePact function (as a java.lang.reflect.Method) without some hackery.

Well this is a bummer https://github.com/pact-foundation/pact-jvm/issues/610 -- I was wondering what would happen if I re-used the same producer/consumer names for both request/response and message pacts... that's the answer
[info] pact4s.scalatest.RequestResponsePactForgerScalaTestSuite *** ABORTED ***
[info]   au.com.dius.pact.core.model.InvalidPactException: Cannot merge pacts as they are not compatible
[info]   at au.com.dius.pact.core.model.DefaultPactWriter.writePact(PactWriter.kt:98)
[info]   at au.com.dius.pact.consumer.BaseMockServer.verifyResultAndWritePact(MockHttpServer.kt:160)
[info]   at pact4s.scalatest.RequestResponsePactForger.run(RequestResponsePactForger.scala:53)
[info]   at pact4s.scalatest.RequestResponsePactForger.run$(RequestResponsePactForger.scala:30)
[info]   at pact4s.scalatest.RequestResponsePactForgerScalaTestSuite.run(RequestResponsePactForgerScalaTestSuite.scala:19)
[info]   at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:318)
[info]   at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:513)
[info]   at sbt.TestRunner.runTest$1(TestFramework.scala:140)
[info]   at sbt.TestRunner.run(TestFramework.scala:155)
[info]   at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1(TestFramework.scala:318)
[info]   ...

@jbwheatley I've opened https://github.com/pact-foundation/pact-jvm/issues/1379 in pact-jvm to provide us with a better interface for method verification. This would allow us to do something like:
class ProviderPactMessageVerificationSpec extends PactVerifier with DecorateAsJava {
  def provider: ProviderInfoBuilder = ProviderInfoBuilder(
    "provider",
    "http",
    "localhost",
    3456,
    "/",
    PactVerification.FUNCTION,
    FileSource("consumer", new File(getClass.getClassLoader.getResource("consumer_provider.json").getPath))
  )

  def messages: String => MessageAndMetadata = {
    case "Resource with name 'example'" =>
      val headers = Map("header-name" -> "header-value")
      val payload = """{"hello":"world"}""".getBytes
      new MessageAndMetadata(payload, headers.asJava)
  }

  verifyPacts()
}

https://github.com/pact-foundation/pact-jvm/pull/1411


checking changes

@mistymagich thanks for using gush, if travis passes i am 👍 for these set changes. Is this good with you?

LGTM. But I can't check, BitBucket really doesn't understand the words "good API documentation".
https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/{username}/{repo_slug}/pullrequests/{pull_request_id}#get

👍 thanks @sstok
thanks @mistymagich and sorry for the wait 😊


Auto assign merge conflict label

"merge conflict" label should be auto-assigned

PR should be assigned back to the original author

mention the author
"@proful please fix the merge conflict"

We can also look into this GitHub action which checks all open Pull Requests for merge conflicts and marks them with a Github label. Also, once a conflict is resolved the label is automatically removed.
https://github.com/marketplace/actions/auto-label-merge-conflicts

I'm looking into this and #407

I have tried to integrate some sample actions in /.github/workflows/. It's not really working out.
There seems to be some limitations with the github workflow as documented here
https://github.community/t/github-actions-are-severely-limited-on-prs/18179/2
I don't know if that is the cause. Does anyone have some experience with this

In PR #425 it seems to work fine.
Also, can you try updating the yml code like:
on:
  pull_request:
    branches:
      - main

instead of
on:
  pull_request_target:
    branches: [ main ]

Docs: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#example-using-multiple-events-with-activity-types-or-configuration

@arthurbuhl I think the action is working. I didn't make this change yet.


"Error in dim[2] - index  pathway_heatmap

I meet a problem when running pathway_heatmap function. When I change the "group", some  succeed. But some fail with "Error in dim[2] - index : 二进列运算符中有非数值参数
错误: Index out of bounds". It seems strange.

Dear @xinguo1236,
Thank you for reaching out and reporting the issue you've encountered with the pathway_heatmap function in our package.
To better assist you, could you please provide us with a snippet of the code you are running that leads to this error? Additionally, it would be extremely helpful if you could share a sample of your dataset that reproduces the problem. This will allow us to understand the context better and identify the issue more accurately.
Please ensure that any sensitive information in your data is anonymized or removed before sharing.
Looking forward to your response so we can resolve this issue promptly.
Best regards,
Chen YANG


Make DeepSpeed an optional requirement

In main_ds.py and possibly other files, we import DeepSpeed at the top level regardless if it's installed or not. To make it truly optional, we should either make this an either a conditional or try/catch import, or just remove it entirely.

Hello @RobotSail I made a PR for this issue https://github.com/instructlab/training/pull/267 , Please let me know if I missed anything


SqlServer: Scaffold sysname data type columns

Recognize system defined type aliases
Resolves #12595

@dotnet-bot test windows release x64 build


DefaultRouteDescriptionProvider fails with dynamic assemblies

We use Reflection.Emit to create modules at runtime. When the DefaultRouteDescriptionProvider is hit, it fails with NotSupportedException on assembly.GetManifestResourceNames, as expected: http://msdn.microsoft.com/en-us/library/system.reflection.emit.assemblybuilder.getmanifestresourcenames(v=vs.110).aspx

Closed with #1623 :+1:


No Stone Unturned sheet add

Changes / Comments
fixing my previous pull request that had the wrong link to the preview image. I closed the old request.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ yes ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ new sheet ] Is this a bug fix?
[ new sheet ] Does this add functional enhancements (new features or extending existing features) ?
[ new sheet ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ new sheet ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ yes ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Thanks, I made it from scratch. It was a slight pain to figure out at first but once i got the first section done it was nice and easy to add the rest and move them around until they looked nice. I'm updating the links to have markdown.


Add PyCharm work folder to python ignore

PyCharm usually generate ".idea" folder to record Project info, configuration and etc.
Python Project need to ignore this folder

Thanks, but Global/JetBrains.gitignore documents the specific rules for files that should be shared, versus files that should be excluded.


Ansible-lint crash when using action with module parameters

Here's a simple example showing this crash:
---
- name: "Crash ansible-lint"
  gather_facts: no
  hosts: "localhost"
  tasks:
    - anything: module=test

Launching ansible-lint test.yml result in following crash:
Traceback (most recent call last):
  File "./bin/ansible-lint", line 116, in <module>
    sys.exit(main(sys.argv[1:]))
  File "./bin/ansible-lint", line 103, in main
    matches = runner.run()
  File "/home/yannig/dev/yannig/ansible-lint/lib/ansiblelint/__init__.py", line 211, in run
    skip_list=set(self.skip_list)))
  File "/home/yannig/dev/yannig/ansible-lint/lib/ansiblelint/__init__.py", line 123, in run
    matches.extend(rule.matchtasks(playbookfile, text))
  File "/home/yannig/dev/yannig/ansible-lint/lib/ansiblelint/__init__.py", line 59, in matchtasks
    for task in ansiblelint.utils.get_action_tasks(yaml, file):
  File "/home/yannig/dev/yannig/ansible-lint/lib/ansiblelint/utils.py", line 292, in get_action_tasks
    if 'include' not in task.keys()]
  File "/home/yannig/dev/yannig/ansible-lint/lib/ansiblelint/utils.py", line 240, in normalize_task
    v = _kv_to_dict(k + ' ' + v)
  File "/home/yannig/dev/yannig/ansible-lint/lib/ansiblelint/utils.py", line 222, in _kv_to_dict
    return (dict(module=command, module_arguments=args, **kwargs))
TypeError: type object got multiple values for keyword argument 'module'

I'll send you a PR which rename module keys into ansible_module and fix this crash.

I can confirm, using last version from git that this bug is now gone :)
Thanks !


selfupdate doesn’t seems to be working properly...

Connection to GitHub is checked to be ok.
System Information:
StaSh Version: v0.6.20
Modal: iPad Pro, iOS 11.3.1 (15E302)
Pythonista: v3.2
Python: v3.6.2

Ok... It seems that the owner of this repo changed the name from core.py to stash.py... You might want to add a replicated copy that named core.py which only contains a version that is already old, and the client should be able to do selfupdate.

@GalvinGao Hi, please see my comment in #319 . You can use selfupdate -f to update anyway.


WAF Firewall Log Action Values

This doc lists that Blocked and Allowed are the only values for the Action field for the Firewall log.  However, my log also has "Detected" and "Matched".  These need to be added to the doc with applicable descriptions.

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

ID: e5f080ad-843f-d7be-eba6-2837993d052b
Version Independent ID: b6f75acf-e3ed-f6c3-a29e-8f440eb0a9dd
Content: Monitor access logs, performance logs, back-end health, and metrics for Azure Application Gateway
Content Source: articles/application-gateway/application-gateway-diagnostics.md
Service: application-gateway
GitHub Login: @vhorne
Microsoft Alias: amitsriva

@migrande
Thanks for your feedback! We will investigate and update as appropriate.

Dupe. Issue was addressed by 42800, as pointed out above.
#please-close


Add a default telemetry initializer to exclude browserLink requests

Fixes #466.

@KamilSzostak,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

I added a config to enable browserLink tracking.


refactor: use lagoon api for environment checks and rbac

WIP
This changes the ssh-portal to use Lagoon API for environment checks and RBAC instead of talking to the database directly, and evaluating the users token to see if they have permission to access an environment.
This eliminates the need to include features like BLOCK_DEVELOPER_SSH and leverages the built in API RBAC for evaluating a user has access to an environment. Other benefits of this, are if in the future Lagoon introduces custom roles, or other methods of restricting access, changes are not required to the ssh-portal.
Acknowledging that this does use the Lagoon API, it will add some delay to SSH connections because it is hitting the API instead of direct DB connections, but the recent API authentication changes should mean this delay is minimal, even on large Lagoon cores.
Utilising the machinery library also means if there are API schema changes, we can catch them easier instead of having to worry if the database queries ever change with no easy visibility.
Relies on

https://github.com/uselagoon/lagoon/pull/3464
https://github.com/uselagoon/machinery/pull/18

FWIW I'm not a fan of this approach for a couple of reasons:

this adds coupling to, and dependency on, the Lagoon API, Lagoon API-DB, Lagoon API Redis etc.
it calls through the Lagoon API -> Keycloak API -> Keycloak JS engine (where the auth logic actually occurs). Does the Lagoon API need to be in this chain?

I think better approaches to achieve similar outcomes to this PR could be:

add the auth logic to the ssh-portal Keycloak client. That way it could directly call Keycloak API -> Keycloak JS engine (auth logic), and the auth policy is still centralised (as it is in this PR).
move the lagoondb package into the machinery module so the SQL queries can be maintained in one place.

Is there a particular issue this PR is addressing?

FWIW I'm not a fan of this approach for a couple of reasons:

this adds coupling to, and dependency on, the Lagoon API, Lagoon API Redis etc.
it calls through the Lagoon API -> Keycloak API -> Keycloak JS engine (where the auth logic actually occurs). Does the Lagoon API need to be in this chain?

It's tied to the API DB already, why is it this really any different to using the API instead? I get there is more in the dependency chain, but we're relying on both Keycloak and the API DB currently, where the API also relies on both of things being running.

I think better approaches to achieve similar outcomes to this PR could be:

add the auth logic to the ssh-portal Keycloak client. That way it could directly call Keycloak API -> Keycloak JS engine (auth logic), and the auth policy is still centralised (as it is in this PR).
move the lagoondb package into the machinery module so the SQL queries can be maintained in one place.

The problem with moving the lagoondb package to machinery is that the API handles all the database queries using knex. So we still have to maintain the lagoondb queries in machinery too if the schema changes in knex. I think it is better to let the API do what it needs to do with DB queries, and we use the standard machinery library to interact with the API.
Once we start to introduce custom roles in Lagoon, the JS logic won't work there, so it will go away. Which would mean another change to the ssh-portal to remove that functionality and replace it with how the API works.

Is there a particular issue this PR is addressing?

Yes, making the ssh-portal adhere to the APIs RBAC model instead of using its own.

FWIW I'm not a fan of this approach for a couple of reasons:

this adds coupling to, and dependency on, the Lagoon API, Lagoon API Redis etc.
it calls through the Lagoon API -> Keycloak API -> Keycloak JS engine (where the auth logic actually occurs). Does the Lagoon API need to be in this chain?

It's tied to the API DB already, why is it this really any different to using the API instead?

The API and API redis are two separate services which are coupled in this PR, and two more points of failure. Redis is also not HA.

The problem with moving the lagoondb package to machinery is that the API handles all the database queries using knex. So we still have to maintain the lagoondb queries in machinery too if the schema changes in knex. I think it is better to let the API do what it needs to do with DB queries, and we use the standard machinery library to interact with the API.

Ok, fair point. But does this mean that every microservice interaction that wants to pull data from the Lagoon DB has to go via HTTP and GraphQL to the API (i.e. very inefficiently)?

Once we start to introduce custom roles in Lagoon, the JS logic won't work there, so it will go away. Which would mean another change to the ssh-portal to remove that functionality and replace it with how the API works.

Is this logic going to live in the Lagoon API itself? Or another policy service? Maybe this change should wait until custom roles are implemented?

Is there a particular issue this PR is addressing?

Yes, making the ssh-portal adhere to the APIs RBAC model instead of using its own.

Doesn't the RBAC model currently live in Keycloak, rather than the Lagoon API?

I guess one of the implicit features of the ssh-portal was that it avoided touching the Lagoon API, so this feels like a step backwards to me.
Another question: what sort of token will the ssh-portal use for accessing the Lagoon API?

FWIW I'm not a fan of this approach for a couple of reasons:

this adds coupling to, and dependency on, the Lagoon API, Lagoon API Redis etc.
it calls through the Lagoon API -> Keycloak API -> Keycloak JS engine (where the auth logic actually occurs). Does the Lagoon API need to be in this chain?

It's tied to the API DB already, why is it this really any different to using the API instead?

The API and API redis are two separate services which are coupled in this PR, and two more points of failure. Redis is also not HA.

Yeah fair on the additional failure points, but I think they are acceptable mainly because of other reasons outlined in replies.
redis is not HA, but we could figure out how to install a HA redis somehow fairly easily I would hope to reduce that problem. But talking about HA, API DB is not HA, Keycloak isn't either. These are also on our hitlist for HA at some stage.

The problem with moving the lagoondb package to machinery is that the API handles all the database queries using knex. So we still have to maintain the lagoondb queries in machinery too if the schema changes in knex. I think it is better to let the API do what it needs to do with DB queries, and we use the standard machinery library to interact with the API.

Ok, fair point. But does this mean that every microservice interaction that wants to pull data from the Lagoon DB has to go via HTTP and GraphQL to the API (i.e. very inefficiently)?

Yes, it would all go via the API, within the confines of the cluster we can use the internal service names though.
I get the point you're making here though, but Lagoon and all of its current services have not been built to have the services handle their own transactions outside of the API. ssh-portal is the only one that does everything outside of the API, which means everyone needs to then understand that the ssh-portal handles this on its own. If Lagoon was build where every microservice handled its own DB and RBAC transactions, then it would be a different story.
If we were to implement custom roles in Lagoon today, then ssh-portal would need to know how to handle these, so we'd basically have to duplicate effort around RBAC in the API and ssh-portal to support them. Where if it was all in the API, the scope is smaller.

Once we start to introduce custom roles in Lagoon, the JS logic won't work there, so it will go away. Which would mean another change to the ssh-portal to remove that functionality and replace it with how the API works.

Is this logic going to live in the Lagoon API itself? Or another policy service? Maybe this change should wait until custom roles are implemented?

I think it would live in the API, as this makes the most sense. Adding a dedicated policy service would introduce a whole host of problems that I don't think we really want to deal with. If the API did it all, everything in this PR would just continue to work without any changes, or minimal ones if at all.
Ideally, I'd like the API to have a query like canUserSSHToEnvironment(user: $id, environment: $envID){ bool }. That way we wouldn't have to do the multiple steps like we do now with:

generating a token as the requested user
then either

validating the roles/groups/project ids
executing a query as the user.

And as we start to move away from doing permission checks using the JS logic, this becomes easier to implement.

Is there a particular issue this PR is addressing?

Yes, making the ssh-portal adhere to the APIs RBAC model instead of using its own.

Doesn't the RBAC model currently live in Keycloak, rather than the Lagoon API?

Yes, but nothing leverages it outside of the API anywhere else at this stage, and eventually will be gone when we remove the JS logic checks, so the API still is the place it happens. The only direct keycloak interactions are by users logging in, or auth-server/ssh-portal generating tokens on behalf of a user.

I guess one of the implicit features of the ssh-portal was that it avoided touching the Lagoon API, so this feels like a step backwards to me.

Sure, it is a bit of a step backwards if you look at how other microservices are built. But in terms of how Lagoon is currently structured, ssh-portal breaks the standard model we have. When all existing services use the lagoon API, then introducing one single service that does its own DB queries, and its own RBAC checks, is totally different to everything else we do. It means everyone needs to be absolutely aware that any changes to permissions need to make sure that the ssh-portal isn't using them.
The main problem is the permissions separation that the ssh-portal has, which is solved by the API. But if we're going to solve that with the API, then moving all the direct DB queries to API queries just makes it all share the same system.

Another question: what sort of token will the ssh-portal use for accessing the Lagoon API?

In this PR it generates a 60 second internal admin token using the JWT secret like other services within lagoon-core do. This token does have admin permission, but is has a limited duration, and the queries it uses are in code. We could shorten the duration the token is created with too.

Ok, thanks for the detailed explanation. I understand the motivation for this much better now.
The only thing I'm still concerned about is the admin token. Is there any way we could scope it down a bit?

The only thing I'm still concerned about is the admin token. Is there any way we could scope it down a bit?

At this stage admin tokens aren't able to be scoped explicitly, I know this isn't great. Using a short duration and only the queries defined in this code base limits its scope to an extent though.

This whole architecture is still quite concerning TBH. We are putting internal service APIs (e.g. userBySSHFingerprint) into the public GraphQL Lagoon API interface when they do not need to be publicly facing. Should there instead be a internal "service API" for this kind of stuff?

This whole architecture is still quite concerning TBH. We are putting internal service APIs (e.g. userBySSHFingerprint) into the public GraphQL Lagoon API interface when they do not need to be publicly facing. Should there instead be a internal "service API" for this kind of stuff?

Noted. But no there is no plan for an internal only API at this stage.

Mainly that this API is also usable by administrators. Not just internal services.

But no there is no plan for an internal only API at this stage.

It already exists - this is what ssh-portal-api is right now.

Would it make sense for the Lagoon API to replace the ssh-portal-api by listening to NATS directly?
https://github.com/nats-io/nats.js

Would it make sense for the Lagoon API to replace the ssh-portal-api by listening to NATS directly?
https://github.com/nats-io/nats.js

We plan on moving moving to nats instead of rabbitmq, so yes we could do that at some stage.

When all existing services use the lagoon API, then introducing one single service that does its own DB queries, and its own RBAC checks, is totally different to everything else we do.

I just realized that this is incorrect. The existing SSH service (that ssh-portal is replacing) does its own SQL queries directly against the DB: https://github.com/uselagoon/lagoon/blob/main/services/ssh/etc/libnss-mysql.cfg

When all existing services use the lagoon API, then introducing one single service that does its own DB queries, and its own RBAC checks, is totally different to everything else we do.

I just realized that this is incorrect. The existing SSH service (that ssh-portal is replacing) does its own SQL queries directly against the DB<EMAIL_ADDRESS>
The service we plan on deprecating?

The service we plan on deprecating?

Okay, but in that case this PR trades planned-to-be-deprecated direct DB access for planned-to-be-deprecated admin token usage.
The former has a drawback for Lagoon developers because:

everyone needs to then understand that the ssh-portal handles this on its own.

However the latter has the drawback that it fundamentally weakens the security of the entire Lagoon system, uses a deprecated OAuth2 profile, and has been directly responsible for at least one production outage that I'm aware of.
I agree that having the authz policy in ssh-portal-api is not ideal and needs to change going forward. However I don't think it's a good idea to revert back to admin token usage to do it before a replacement has been designed (let alone implemented).
I see that you just opened https://github.com/uselagoon/lagoon/issues/3479. Maybe it is time to do some detailed technical design for the new "service authn/authz" policy system to ensure that it will meet the needs of organizations / custom roles / service auth? Then we can move this PR forward towards this new system?

The service we plan on deprecating?

Okay, but in that case this PR trades planned-to-be-deprecated direct DB access for planned-to-be-deprecated admin token usage.

There is no plan to deprecate the admin token usage for internal services anytime soon, and even if we did, this PR still works with a small change to the token fetching method to get one via keycloak.

The former has a drawback for Lagoon developers because:

everyone needs to then understand that the ssh-portal handles this on its own.

Well no, because all the other newer/refactored internal services do this exact same method of generating a token currently. All the existing javascript based services do things a little bit different but still use an admin token in some way.

However the latter has the drawback that it fundamentally weakens the security of the entire Lagoon system, uses a deprecated OAuth2 profile, and has been directly responsible for at least one production outage that I'm aware of.

This is a topic for not in this PR.

I agree that having the authz policy in ssh-portal-api is not ideal and needs to change going forward. However I don't think it's a good idea to revert back to admin token usage to do it before a replacement has been designed (let alone implemented).

This is a draft. Not a "this is what we're doing right now". If I had known you would take this hard a stance against it, I would have delayed the creation of it. I just wanted something up and ready to go if we needed it.

I see that you just opened uselagoon/lagoon#3479. Maybe it is time to do some detailed technical design for the new "service authn/authz" policy system to ensure that it will meet the needs of organizations / custom roles / service auth? Then we can move this PR forward towards this new system?

Yes, I opened that because we've got people asking for custom roles. No matter the solution, the current way that the ssh-portal does stuff is going to change, but closer to using the API rather than handling oauth etc on its own. Whether it uses service auth to generate a token or what, who knows.
As it is, I hate that we have to run this SSH portal with the current BLOCK_DEVELOPER_SSH hack in it. I just have to make this extremely clear that it is only in place because the alternative is this PR which you hate.

I'm fine with leaving this here until we decide on something better for Lagoon auth, so this ends the discussion for now.

As it is, I hate that we have to run this SSH portal with the current BLOCK_DEVELOPER_SSH hack in it. I just have to make this extremely clear that it is only in place because the alternative is this PR which you hate.

That's very strong, and not accurate in my case. I'm not tied to the existing way this works (which I agree is totally a hack). I just want to discuss and understand all the tradeoffs that are being made in either case so we can figure out the best way forward.

As it is, I hate that we have to run this SSH portal with the current BLOCK_DEVELOPER_SSH hack in it. I just have to make this extremely clear that it is only in place because the alternative is this PR which you hate.

That's very strong, and not accurate in my case. I'm not tied to the existing way this works (which I agree is totally a hack). I just want to discuss and understand all the tradeoffs that are being made in either case so we can figure out the best way forward.

Yeah sorry that that came across as quite strong, it wasn't my intention. I meant it in a sense that there is a dislike of both implementation choices here. I want to see ssh-portal rolled out more broadly, but at the same time I don't want it to be this snowflake service that does things differently to the rest of Lagoon when it comes to determining permissions for a user.

As this has been open for a long time without resolution I'm NAKing this change for now until the concerns discussed in this thread have been addressed. Lets revisit this idea when the Lagoon has a service auth system and better test coverage for permission logic.


feat: Add inverse inverse root functions

Description of Change
Add inverse inverse root functions (Template version)

Fast_InvSqrt : C++ version of fast inverse square root implementation.
Standard_InvSqrt : The fast inverse square root with standard lib (cmath).

All function are template function and C++11.
Checklist

[x] Added description of change
[x] Added file name matches File name guidelines
[x] Added tests and example, test must pass
[x] Added documentation so that the program is self-explanatory and educational - Doxygen guidelines
[x] Relevant documentation/comments is changed or added
[x] PR title follows semantic commit guidelines
[x] Search previous suggestions before making a new one, as yours may be a duplicate.
[x] I acknowledge that all my contributions will be made under the project's license.

Notes:

Awesome work, @bensuperpc! It's been great to be your first contribution here! We hope you keep contributing!

Thank you :)


Zappi, ECO+ phase setting

Just upgraded to the latest zappi app (see https://myenergi.info/app-update-3-3-1-t12674.html#p122029) and this now has the option to set the phases to load in ECO+ mode, for this phaseSetting is used, when I change the setting in the app the diagnostics I can download in HA shows the following values:
"phaseSetting": "SINGLE_PHASE",

"phaseSetting": "THREE_PHASE",

"phaseSetting": "AUTO",

It looks my PR for using this as number of phases as part of https://github.com/CJNE/pymyenergi/pull/25 is not correct, it should return values 1, 3 or auto.

Any ideas how we could set the phase setting from HA to myenergi, would love to set the phase setting to single or three phase based on power produced by my solar panels through HA, looking at the code we need some cgi-set-* call

Asked on the forum, see https://myenergi.info/viewtopic.php?f=54&t=12847&from_new_topic=1

Any ideas how we could set the phase setting from HA to myenergi, would love to set the phase setting to single or three phase based on power produced by my solar panels through HA, looking at the code we need some cgi-set-* call

I've tried to figure out the relevant HTTP Endpoints, if I am correct it seems to be:
3 Phase
cgi-zappi-phase-setting-{ZXXXXXXXX}>-1
1 Phase
cgi-zappi-phase-setting-{ZXXXXXXXX}-0
Auto
cgi-zappi-phase-setting-{ZXXXXXXXX}-2
{ZXXXXXXXX}> is the Serial Number of the Zappi and needs to replaced in the calls
I am getting the following Response:
{     "status": "0",     "statustext": "" }
Maybe this helps?

Is the > for three phase correct? This helps, will try to implement this next week

Is the > for three phase correct? This helps, will try to implement this next week

That was a typo. I have edited it. The schema seems to be the same for all three.
I was not able to test it in code (I have recorded the network traffic from the app and tried to check which query was made when selecting the option), maybe you can verify my results.

Thanks, will try to implement this asap, I really can use it as a workaround for the problems I have

Yes, this works, great! I have updated PR #28 to also provide the feature to set the phase setting


Editor crashes when deleting children of GraphNode

Godot version
4.0b6
System information
Linux/Manjaro
Issue description
Deleting the last child of a GraphNode crashes the editor, unless that GraphNode has been resized at least once by the user. The issue is easy to avoid, but the crash is still odd.
There is another crash in which deleting all the children of GraphNode at once will crash
Steps to reproduce
First crash:

Create a new scene with a GraphNode, and do not resize it;
Add any Control that draws content, like a Button;
Delete the new child you just created;
Observe the crash

Second crash:

Create a new scene with a GraphNode;
Add multiple Controls as children;
Select all of them and delete them from the scene;
Observe the crash.

Minimal reproduction project
graphnode-crash-repro.zip
This project has two scenes: graph_node.tscn showcases the first crash with a default size GraphNode and a single content-drawing Control. The graph_node_multiple_children.tscn scene has a GraphNode with multiple children that crash the editor when deleted.

I have open #69284 to solve the issue. Both two crashes are caused by invalid child pointer, so a safe checking was added to avoid this problem.

Fixed by #69284.


Support to multiple request methods

Currently rest-client sends only POST requests. Since mailer API v3 contains GET endpoints, support for those should be added.
Request method could be user defined parameter to call function.

Merged PR


Px4Flow not running while pixhawk is not powered from USB.

If my pixhawk powered from USB, it can switch to POSCTL with px4flow indoor. And flow data will be shown in QGC. Then if I keep it power up, plug battery, unplug from USB, px4flow can still work fine.
But if pixhawk powered from battery when booting, the px4flow will not working. I have added some log, I found local_position.xy_valid and local_eph_good is alway false:
# commander.cpp
# line 1444
check_valid(local_position.timestamp, POSITION_TIMEOUT, local_position.xy_valid
	 && local_eph_good, &(status.condition_local_position_valid), &status_changed);

It seems  that flow position estimator is not running.
So if it is a small bug, or it is just a test to run px4flow when powered from USB?
BTW:  when will the script /etc/init.d/rc.usb execute in startup? I find some codes releated to px4flow:
mavlink stream -d /dev/ttyACM0 -s OPTICAL_FLOW_RAD -r 10
...
mavlink stream -d /dev/ttyACM0 -s LOCAL_POSITION_NED -r 30

I connected nsh and read the start log, and I found that if pixhawk powered from USB, px4flow will start sucessfully:
[PX4FLOW] on I2C bus 1 at 0x42 (bus: 100 KHz, max: 400 KHz)

But if powered from battery, it will failed:
px4flow: driver start failed

However, I can start px4flow driver manually:
nsh> px4flow info
px4flow: driver not running
nsh> px4flow start
[PX4FLOW] on I2C bus 1 at 0x42 (bus: 100 KHz, max: 400 KHz)

And after that, I can switch in POSCTL mode indoor just like powered from USB when booting.

If I try to start px4flow after few seconds, it will works. I put these lines in /etc/extras.txt:
#!nsh

# start px4flow
echo "[px4flow] delay for px4flow ready"
sleep 10
echo "[px4flow] delay finish"
px4flow start

And px4flow driver will start successfully.

Are you powering flow via USB?

No, flow is connected to pixhawk via I2C.

I've got the exact same problem over here: booting while on USB starts the PX4FLOW (i2c) and it keeps running when I plug the batteries in and remove the USB connection. When the battery is plugged in first, it does not (auto) start.
Furthermore the PX4FLOW's data (distance / quality) seem not to be ending up in my log files on SD?

I also have this problem. When I boot the pixhawk with battery, px4flow will not work whether it is connected with pixhawk through i2c or usart.

I have a unit on order. As soon as it arrives I will have a look at this issue.

@JessieHIT  @h46incon @mlstolk I am consolidating the issue. Please join [this] (https://github.com/PX4/Firmware/issues/2145) discussion.

[[SOLVED] sort of] (https://github.com/PX4/Firmware/issues/2145)


"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"

Issue Type
Bug
Source
binary
Tensorflow Version
2.9.1
Custom Code
No
OS Platform and Distribution
Linux, Pop! OS 22.04
Mobile device
No response
Python version
3.10
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
6700 RX, 12 G
Current Behaviour?
When trying to issue simple tensorflow operation, it crashes with

"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"
Aborted (core dumped)

All that I needed to run was,

Install tensorflow-rocm with pip, then run python interpretor,

import tensorflow as tf
tf.add(1,2)

Then the python crashes with the error message.

Entering command from shell:
python -c -d "import tensorflow as tf; tf.add(1,2)"
yields the same error.

Below is part of my rocminfo output:
*******
Agent 2
*******
  Name:                    gfx1031
  Uuid:                    GPU-XX
  Marketing Name:          AMD Radeon RX 6700 XT
  Vendor Name:             AMD
  Feature:                 KERNEL_DISPATCH
  Profile:                 BASE_PROFILE
  Float Round Mode:        NEAR
  Max Queue Number:        128(0x80)
  Queue Min Size:          64(0x40)
  Queue Max Size:          131072(0x20000)
  Queue Type:              MULTI
  Node:                    1
  Device Type:             GPU
  Cache Info:
    L1:                      16(0x10) KB
    L2:                      3072(0xc00) KB
    L3:                      98304(0x18000) KB
  Chip ID:                 29663(0x73df)
  Cacheline Size:          64(0x40)
  Max Clock Freq. (MHz):   2725
  BDFID:                   3072
  Internal Node ID:        1
  Compute Unit:            40
  SIMDs per CU:            2
  Shader Engines:          4
  Shader Arrs. per Eng.:   2
  WatchPts on Addr. Ranges:4
  Features:                KERNEL_DISPATCH
  Fast F16 Operation:      TRUE
  Wavefront Size:          32(0x20)
  Workgroup Max Size:      1024(0x400)
  Workgroup Max Size per Dimension:
    x                        1024(0x400)
    y                        1024(0x400)
    z                        1024(0x400)
  Max Waves Per CU:        32(0x20)
  Max Work-item Per CU:    1024(0x400)
  Grid Max Size:<PHONE_NUMBER>(0xffffffff)
  Grid Max Size per Dimension:
    x<PHONE_NUMBER>(0xffffffff)
    y<PHONE_NUMBER>(0xffffffff)
    z<PHONE_NUMBER>(0xffffffff)
  Max fbarriers/Workgrp:   32
  Pool Info:
    Pool 1
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED
      Size:                    12566528(0xbfc000) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Alignment:         4KB
      Accessible by all:       FALSE
    Pool 2
      Segment:                 GROUP
      Size:                    64(0x40) KB
      Allocatable:             FALSE
      Alloc Granule:           0KB
      Alloc Alignment:         0KB
      Accessible by all:       FALSE
  ISA Info:
    ISA 1
      Name:                    amdgcn-amd-amdhsa--gfx1031
      Machine Models:          HSA_MACHINE_MODEL_LARGE
      Profiles:                HSA_PROFILE_BASE
      Default Rounding Mode:   NEAR
      Default Rounding Mode:   NEAR
      Fast f16:                TRUE
      Workgroup Max Size:      1024(0x400)
      Workgroup Max Size per Dimension:
        x                        1024(0x400)
        y                        1024(0x400)
        z                        1024(0x400)
      Grid Max Size:<PHONE_NUMBER>(0xffffffff)
      Grid Max Size per Dimension:
        x<PHONE_NUMBER>(0xffffffff)
        y<PHONE_NUMBER>(0xffffffff)
        z<PHONE_NUMBER>(0xffffffff)
      FBarrier Max Size:       32
*** Done ***

Standalone code to reproduce the issue
import tensorflow as tf
tf.add(1,2)

Relevant log output
"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"
Aborted (core dumped)

Because your GPU is not directly supported but some other cards similar to yours are, you can try to set this before calling your script:
export HSA_OVERRIDE_GFX_VERSION=10.3.0

@Taris9047 Closing ticket due to lack of activity.  Please feel free to re-open ticket if you still see the issue with the latest ROCm. Thanks!


chore(release): v0.3.3

Version bump in package.json for release v0.3.3

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Initial state doesn't work with rails 3.2

Hi.
Setting default state doesn't work in rails 3.2 (branch 3-2-stable).
Sample app reproducing issue:
https://github.com/morgoth/state-machine-rails-3-2
class Post < ActiveRecord::Base
  state_machine :initial => :approved do
    event :approve do
      transition all => :approved
    end
  end
end

Post.new.state
=> nil

I tried rails revision: 6e9cd3846811718611543dae049c000076319587 (it's working fine when using gem 3.2.rc1)

Nice catch!  Hopefully now that I'm hooking into a public API, this shouldn't break again anytime soon.  I'm probably going to wait on releasing this fix until 3.2 is a little closer to be officially released.

Any thoughts on a release now that rails is on 3.2.2?  We've been updating a rather large app and would rather not use git for the source :)

Hi @brentkirby -
This fix was released in state_machine 1.1.2.

hmm. I was having the same issue with 1.1.2, and ended up writing a before_create callback to set the default state, which fixed it.
It was actually working fine until updating from rails 3.1.4 to 3.2.2, which is when I first started having trouble.

Interesting -- I'll double check against the latest 3.2.x release, but everything is passing on 3.2.1.  Could you provide an example of this failing?  If you have a basic project that you could share on github that demonstrates the issue, that'd be great!

Nothing stands out indicating where the issue might be and I can't reproduce the issue based on your gist.  Any chance you could provide a full example (including project) that I can run demonstrating the issue?


Add configuration to use physical storage in storage quota

Add a configuration in storage quota enforcer to choose between physical and logical storage usage.

Codecov Report

Merging #1967 (71b09a3) into master (74469a7) will increase coverage by 27.97%.
The diff coverage is 86.66%.

@@              Coverage Diff              @@
##             master    #1967       +/-   ##
=============================================
+ Coverage     45.86%   73.83%   +27.97%
- Complexity     5744     9806     +4062
=============================================
  Files           705      705
  Lines         53931    53936        +5
  Branches       6691     6691
=============================================
+ Hits          24736    39826    +15090
+ Misses        27120    12009    -15111
- Partials       2075     2101       +26

Impacted Files
Coverage Δ

...ub/ambry/clustermap/MySqlReportAggregatorTask.java
2.32% <0.00%> (ø)

.../ambry/accountstats/InmemoryAccountStatsStore.java
32.43% <0.00%> (+32.43%)
:arrow_up:

...m/github/ambry/accountstats/AccountStatsStore.java
100.00% <100.00%> (ø)

...va/com/github/ambry/config/StorageQuotaConfig.java
100.00% <100.00%> (ø)

...hub/ambry/accountstats/AccountStatsMySqlStore.java
94.67% <100.00%> (+3.10%)
:arrow_up:

...mbry/quota/storage/MySqlStorageUsageRefresher.java
79.18% <100.00%> (+0.32%)
:arrow_up:

...java/com/github/ambry/store/CompactionManager.java
90.85% <0.00%> (-2.29%)
:arrow_down:

...in/java/com/github/ambry/store/BlobStoreStats.java
84.11% <0.00%> (-0.30%)
:arrow_down:

.../main/java/com/github/ambry/store/HardDeleter.java
77.27% <0.00%> (-0.29%)
:arrow_down:

...n/java/com/github/ambry/store/PersistentIndex.java
91.09% <0.00%> (+0.09%)
:arrow_up:

... and 421 more

Continue to review full report at Codecov.

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


DLT prefiltering

Prerequisites
affected version: 2.11.4
Describe the issue
On opening DLT file user can select components to be shown.
This does not work for non-verbose messages, even if a fibex file is provided.
If filtering is active any messages which don't fit the filter should be ignored.

#1041


NaN values from is_equilibrated?

My NPT sim is clearly not equilibrated at the beginning and maybe my pressure coupling is too high (guessing from the initial oscillations in volume, see attached plots of volume vs timestep), but eventually it appears that the simulation volume equilibrates. I would think that this kind of data would be fine for pymbar, but if the whole run is used, I get NaN values:

It's odd though because if I chop of the first 50 values, is_equilibrated works as expected. what should be the standard procedure for choosing where to start this equilibration analysis? I'm including my logfile in case anyone wants to test for themselves.
log-npt.txt

It looks like your txt file is malformed. There are multiple entries for the title in the first 50 or so entries. I think that is the cause of the issues.
I removed the two extra headers (but left the wonky data there which seems to be the source of the major oscillations), and the results from that seem reasonable

Oops 🤦♀ Thank you so much for your help!


tts: init at unstable-2020-06-17

Motivation for this change
Mozilla TTS is a text to speech engine based on pytorch and tensorflow. @Mic92 and I have been successfully using it for the last few days in combination with https://rhasspy.readthedocs.io, which we might eventually package, not sure yet.
Demo: https://shells.darmstadt.ccc.de/~hexa/nixpkgs.wav
To get this running one needs to download a TTS and Vocoder model, check out https://github.com/mozilla/TTS/wiki/Released-Models, from where we pulled a commit, that matched a given version.
  systemd.services.tts = {
    after = [ "network.target" ];
    wantedBy = [ "multi-user.target" ];
    script = ''
      ${pkgs.tts}/bin/tts-server \
        --vocoder_config ./vocoder/config.json \
        --vocoder_checkpoint ./vocoder/checkpoint_1450000.pth.tar \
        --tts_config ./tts/config.json \
        --tts_checkpoint ./tts/checkpoint_130000.pth.tar
    '';
    serviceConfig = {
      User = "youruser";
      # needed for pulseaudio
      Environment = "XDG_RUNTIME_DIR=/run/user/1000";
      WorkingDirectory = "/path/to/models";
    };
  };

Then reproduce the demo like this:
curl http://localhost:5002/api/tts\\?text\\=Dear%20NixOS%20Maintainer,%20I%20am%20Mozilla%20TTS.%20I%20am%20ready%20to%20be%20merged,%20please%20review%20me\\. > /tmp/nixpkgs.wav

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

All nitpicks addressed I believe.

Perhaps off-topic, but I'd love to see rhasspy packaged - happy to help out too

Much of rhasspy is packaged over Mic92's nur-packages:
https://github.com/Mic92/nur-packages/commits/master
I'm currently running it like so:
{ config, pkgs, ... }:
let
  nur = import (builtins.fetchTarball "https://github.com/Mic92/nur-packages/archive/master.tar.gz") {
    inherit pkgs;
  };
in
{
  systemd.services.rhasspy = {
    after = [
      "network.target"
    ];
    wantedBy = [ "multi-user.target" ];
    environment = {
      XDG_RUNTIME_DIR = "/run/user/1000";
    };
    path = with pkgs; [
      picotts
      diffutils
      perl
    ];
    serviceConfig = {
      User = "hexa";
      Group = "users";
      WorkingDirectory = config.users.users.hexa.home;
    };
    script = ''
      ${nur.rhasspy}/bin/rhasspy --profile en | ${pkgs.utillinux}/bin/logger
    '';
  };
}

On Fri, Nov 27, 2020 at 08:37:07AM -0800, Nick Hu wrote:

Perhaps off-topic, but I'd love to see rhasspy packaged - happy to help out too
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/NixOS/nixpkgs/pull/103851#issuecomment-734913967


RingBuffer issue on pointer overflow applying modulo

I saw strange behaviour on the RingBuffer implementation due to the usage of size_t. If _read > _write you end up with negative numbers on modulo. Here my test case:
size_t a = 4, b = 0, size = 6;
size_t c = (b - a) % size;
printf("c=%d", c);

-> output: c=0
int32_t a = 4, b = 0, size = 6;
int32_t c = (b - a) % size;
if(c < 0) c+= size;
printf("c=%d", c);

-> output: c=2

Drawing back this pull request.


Base React SPA with placeholder routes and pages

This will add the basic React app. To test this, it should be sufficient to navigate to the /virus-fe directory, run 'npm install' and then 'yarn start'

Hi dzx11,
Welcome to the COVID-19 #STOPTHEVIRUS developer team.
Thanks for your work on this. You didn't know that we are working on
another repository. I've sent you a collaborator invitation.
When you accept the invite, send me an email.
Some information about the repository
The master branch is what is online here
https://stopthecovid19virus.netlify.com/.
The develop branch is what we branch off to create new features.
We create a pull request which should only be merged back into develop.
Directions to get started
Clone the repository. Read the README.md for instructions. Always work off
a branch from the develop branch.
Regards,
Bernard T. A. Baker
On Mon, Apr 6, 2020 at 7:47 PM dzx11<EMAIL_ADDRESS>wrote:

This will add the basic React app.
Reply to this email directly, view it on GitHub
https://github.com/un7c0rn/stopthevirus/pull/11, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADHNTTFVKIT6WLR6TUXZADTRLIPUFANCNFSM4MCQJRJA
.

@dzx11 Tested and looks good. Thanks!
@dzx11 @bernardbaker
We initially created the second repo due to Netlify integration requirement and hackathon time constraint. Since the FE is still very early stage I think it makes sense to unify repos now for a number of reasons:

Demonstrating progress to external stakeholders
Continuous integration tests (even if we only have 1 PR builder test, it's nice to have)
Single source of documentation

Please share instructions or any associated keys for Netlify deployments and I can add them to this repo.

Ok.
On Mon, 6 Apr 2020, 21:56 un7c0rn<EMAIL_ADDRESS>wrote:

@dzx11 https://github.com/dzx11 Tested and looks good. Thanks!
@dzx11 https://github.com/dzx11 @bernardbaker
https://github.com/bernardbaker
We initially created the second repo due to Netlify integration
requirement and hackathon time constraint. Since the FE is still very early
stage I think it makes sense to unify repos now for a number of reasons:

Demonstrating progress to external stakeholders
Continuous integration tests (even if we only have 1 PR builder
test, it's nice to have)
Single source of documentation

Please share instructions or any associated keys for Netlify deployments
and I can add them to this repo.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/un7c0rn/stopthevirus/pull/11#issuecomment-610032502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADHNTTBWMMGEFOUZFFGDSBDRLI6ZVANCNFSM4MCQJRJA
.

Hi @bernardbaker  @un7c0rn , sorry if I accidentally stepped on anyone's toes. I will probably start working on the start game page next if that's ok.

Hi everyone,
I've created a PR https://github.com/un7c0rn/stopthevirus/pull/12. This
actions the points outlined by @un7c0rn.
Regards,
Bernard T. A. Baker
On Mon, Apr 6, 2020 at 9:56 PM un7c0rn<EMAIL_ADDRESS>wrote:

@dzx11 https://github.com/dzx11 Tested and looks good. Thanks!
@dzx11 https://github.com/dzx11 @bernardbaker
https://github.com/bernardbaker
We initially created the second repo due to Netlify integration
requirement and hackathon time constraint. Since the FE is still very early
stage I think it makes sense to unify repos now for a number of reasons:

Demonstrating progress to external stakeholders
Continuous integration tests (even if we only have 1 PR builder
test, it's nice to have)
Single source of documentation

Please share instructions or any associated keys for Netlify deployments
and I can add them to this repo.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/un7c0rn/stopthevirus/pull/11#issuecomment-610032502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADHNTTBWMMGEFOUZFFGDSBDRLI6ZVANCNFSM4MCQJRJA
.

@dzx11 you haven't stepped on anyone's toes.
This is an agile development and some things are changing as new decision
are made, discussions are heard, or opinions unified.
Welcome to the team.
Regards,
Bernard T. A. Baker
On Tue, Apr 7, 2020 at 10:32 AM Bernard Baker<EMAIL_ADDRESS>wrote:

Hi everyone,
I've created a PR https://github.com/un7c0rn/stopthevirus/pull/12. This
actions the points outlined by @un7c0rn.
Regards,
Bernard T. A. Baker
On Mon, Apr 6, 2020 at 9:56 PM un7c0rn<EMAIL_ADDRESS>wrote:

@dzx11 https://github.com/dzx11 Tested and looks good. Thanks!
@dzx11 https://github.com/dzx11 @bernardbaker
https://github.com/bernardbaker
We initially created the second repo due to Netlify integration
requirement and hackathon time constraint. Since the FE is still very early
stage I think it makes sense to unify repos now for a number of reasons:

Demonstrating progress to external stakeholders
Continuous integration tests (even if we only have 1 PR builder
test, it's nice to have)
Single source of documentation

Please share instructions or any associated keys for Netlify deployments
and I can add them to this repo.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/un7c0rn/stopthevirus/pull/11#issuecomment-610032502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADHNTTBWMMGEFOUZFFGDSBDRLI6ZVANCNFSM4MCQJRJA
.

Hi,
I've unified the repository.
Immediate access to Netlify as a team member on my account costs $15.00
(USD) a month.
I'm willing to pay for your licenses, which I would bill back to you.
But I think it would be much more cost-effective for you to set up a
Netlify account at https://www.netlify.com, which you can manage and simply
add collaborators using GitHub to contribute to the project(s).
Details are in the PR.
Regards,
Bernard T. A. Baker
On Mon, Apr 6, 2020 at 9:56 PM un7c0rn<EMAIL_ADDRESS>wrote:

@dzx11 https://github.com/dzx11 Tested and looks good. Thanks!
@dzx11 https://github.com/dzx11 @bernardbaker
https://github.com/bernardbaker
We initially created the second repo due to Netlify integration
requirement and hackathon time constraint. Since the FE is still very early
stage I think it makes sense to unify repos now for a number of reasons:

Demonstrating progress to external stakeholders
Continuous integration tests (even if we only have 1 PR builder
test, it's nice to have)
Single source of documentation

Please share instructions or any associated keys for Netlify deployments
and I can add them to this repo.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/un7c0rn/stopthevirus/pull/11#issuecomment-610032502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADHNTTBWMMGEFOUZFFGDSBDRLI6ZVANCNFSM4MCQJRJA
.

@bernardbaker Awesome thank you. Let's proceed with local deployments and as we approach our launch date I'll setup a prod Netlify account per your instructions.
@dzx11 start game page sounds perfect. I've updated you as item owner in our UX doc:
https://docs.google.com/document/d/1ZfS1JQrqZ4bhy63KcxmfJudwLchiIeXaRBpMaa0tNDo/edit?usp=sharing
The three of us have edit access to this document.


feature request

Hi,
It would be great if you could also add geolite2, which is a Maxmind free service.
Regards,

https://hub.docker.com/r/own3r1138/ipconfig-geolite


chore: Change code in CIP-110 to conform with the implementation

Change allowlist in code samples to allowList
Change === to actual Solidity equality operator ==
bytes to bytes32, again to use actual Solidity code
Describe anchorDagCbor, renamed from initial anchor.

Other than that, it seems CIP-110 reflects the contract well.

And also update edited.

done.

Going to close https://github.com/ceramicnetwork/CIPs/issues/110 after this is merged.


Reduce size of Lambda layer .zip file by removing botocore already in Lambda runtime

Is your feature request related to a problem? Please describe.
In trying to upgrade to v1.22.0, I ran into the deployment error Layers consume more than the available size of 262144000 bytes. This is for a Lambda function that uses both the Lambda Powertools Layer and the latest AWS Data Wrangler Layer. I think the new Powertools layer is only a little larger than the previous version but enough to tip over the limit when combined with the AWS Data Wrangler layer.
I pulled down the Powertools zip contents following the "Get the Layer .zip contents" instructions, and it looks like most of the size (~70 MB unzipped)  comes from botocore (~63 MB).
Is it necessary to include botocore and boto3 in the layer's zip file given that these are available by default in the Lambda runtime? If not, it would be helpful to remove them from the pre-built layer to help avoid hitting the overall size limit.
Describe the solution you'd like
Remove botocore and boto3 from the Lambda layer zip archive.
Describe alternatives you've considered
I could build my own layer that doesn't include botocore and boto3. I tried this already by downloading the existing layer .zip, deleting those packages, zipping it back up and deploying it. That seems to work in my application, but it would be great if creating my own layer wasn't necessary.
Additional context
You could replicate the error by trying to deploy a function with both the pre-built AWS Lambda Powertools and AWS Data Wrangler layers included. The code size coming from my application is negligible compared to the layer sizes.
P.S. Thanks for the great resource! This has been a very helpful package for me and my team :)

Dup: https://github.com/awslabs/aws-lambda-powertools-python/issues/1164
Closing as GitHub seems to be stuck in transferring the issue.


Rhino: BOM Command to excel sheet

Be able to export the data as an .csv file

Added creating a .csv into the script. Will review.
export_options = ("Export_as_CSV", "No", "Yes")
export_csv = rs.GetBoolean("Export as CSV?", export_options, False)

if export_csv == [True]:

    # Excel exporting
    combined_lists = [item_num_csv, block_names, block_description, block_amounts]

    export = [list(row) for row in zip(*combined_lists)]
    # print(export)

    # Empty string
    csv_data = ""

    # For each string in export, add a comma and convert to string
    for string in export:
        row = ",".join(map(str, string))

        # Add to empty string
        csv_data += row + "\n"

    # print(csv_data)

    filepath = rs.SaveFileName("Save CSV", "CSV Files (*.csv)|*.csv||")

    if filepath is None:
        return
    else:
        with open(filepath, 'w') as file:
            file.write(csv_data)
        print("File has been saved to", filepath)
else:
    return

Doesn't export headers. Also change to have delimiter option.
**
**


Can not move tab

Can not move tab

Editor split. For example, top and bottom.
Drag a tab and move it to another area. For example, from top to bottom.
Can not... All the other themes can do it.

Moving "from bottom to top" and "left and right" movements are only possible for the first time you enter the drag area for the first time.
"Top to bottom" can not be done at all.

Nord Visual Studio Code v0.6.0
VS Code 1.26.0
macOS 10.13.6

Hi @sdr0x07b6 :wave:, thanks for your contribution. Sorry for the long delay, I've been really busy with my job, real life and Nord's, finally launched, official website and documentation.
@mdogadailo submitted PR #98 to fix the problem. I've merged it to deploy it with the next release version :rocket:


Update codec version

Updates scale codec/type-info versioning

We can not update this without updating subxt, and since we can't do that either unless we upgrade our runtimes (protocol-substrate, dkg, eggnet, ...etc) to the newer version of substrate/polkadot branches.
See #27

Closed in favor of #45


Analysis fails if git repo has trailing slash

When cloning a repo with a trailing slash, Facade can't find the .git directory. This is because cloning a repo like this:
git clone git://domain.com/git/reponame

puts the repo into a directory called reponame, but doing the same like this:
git clone git://domain.com/git/reponame/

puts the repo into reponame/reponame.
This can be fixed by trimming the trailing slash.

Fixed in v1.1.0


Create internal folder

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Can we move reader_compare.go to internal? We only use it for testing.
Also....should we create a testing folder to put all the testing stuff in? (Perhaps that is more a question for @therapon ).

Can we move reader_compare.go to internal? We only use it for testing.
Also....should we create a testing folder to put all the testing stuff in? (Perhaps that is more a question for @therapon ).

I can't move it to internal because reader_compare.go depends on hashReader struct in hash_reader.go which would cause cyclic dependency
hash_reader.go depends on internal/hasher.go
internal/reader_compare.go depends on hash_reader.go

Can we move reader_compare.go to internal? We only use it for testing.
Also....should we create a testing folder to put all the testing stuff in? (Perhaps that is more a question for @therapon ).

I can't move it to internal because reader_compare.go depends on hashReader struct in hash_reader.go which would cause cyclic dependency
hash_reader.go depends on internal/hasher.go
internal/reader_compare.go depends on hash_reader.go

I vote for creating a new folder/package called something like "testing_utilities" and put reader_compare.go in there. We should also put identity_hasher.go and identity_hasher_provider.go in there as well because they are only used for tests.
@therapon What do you think?

Can we move reader_compare.go to internal? We only use it for testing.
Also....should we create a testing folder to put all the testing stuff in? (Perhaps that is more a question for @therapon ).

I can't move it to internal because reader_compare.go depends on hashReader struct in hash_reader.go which would cause cyclic dependency
hash_reader.go depends on internal/hasher.go
internal/reader_compare.go depends on hash_reader.go

I vote for creating a new folder/package called something like "testing_utilities" and put reader_compare.go in there. We should also put identity_hasher.go and identity_hasher_provider.go in there as well because they are only used for tests.
@therapon What do you think?

As long as they are hidden I am in favour of better organizing the files in groups. I read https://github.com/golang-standards/project-layout, it has short explanations and patterns as well as example of project layout for Go libs.

Also....should we create a ion-hash-go/ionhash folder and put all the ionhash stuff in there?
For comparison, ion-go has all the ion impl inside ion-go/ion.

I think the pattern is that when a repo has more than one artifact (lib, command line etc) then there is a tendency to place them in directories. Ion hash is just a lib. Granted Go seems to be generic over how to layout the repository and what I have seen are community recommendations. Lets figure out the internal folder first since it affects what is public and what is not and then we can consider a folder for ionhash.


Reference page keyboard accessibility code block fix

Fixes #1372
Changes:

Changed the targeted keys for tabbing within the Reference code block examples from 'tab' to 'shift+space,' in order to allow people navigating through the page via keyboard to pass through the code blocks without getting trapped
Added visible focus state for the edit/reset/copy buttons
Added instructional text inside button ul for the new keys to tab

This PR is only to fix the code examples on the Reference page-- the revisions for the Example page code samples are still under development.

Thanks @katlich112358! I'm inviting GSoC mentors @calebfoss and @paulaxisabel to review this PR.


Examples

Hello,
could you please provide a more detailed example and the used UART implementation?
Currently Iam using the rppal_w_frontend Library for the Uart Connection (which uses linux-embedded-hal as backend).
So Iam expieriencing errors:
106 |     let mut sensor = MhZ19C::new(uart);     |                      ^^^^^^^^^^^^^^^^^ the trait embedded_hal::serial::Writeis not implemented forUart
Thank you!

Did you enable the hal feature? (cp. documentation)

Also cp. here and here

Closing this as stale, feel free to reopen if you still have an issue.


Divide the data set

I don't know how to divide the data set,Can I have a look at your code about dividing the data set?

can i get dataset from you.Thank you very much

can i get dataset from you.Thank you very much

Do you have CTA08 dataset, I can't donwload it

I don't know how to divide the data set,Can I have a look at your code about dividing the data set?

Do you have CTA08 dataset, I can't donwload it


shardformer: fix pipeline forward error if custom layer distribution is used

…distribution
📌 Checklist before creating the PR

[x] I have created an issue for this PR for traceability
[x] The title follows the standard format: [doc/gemini/tensor/...]: A concise description
[ ] I have added relevant tags if possible for us to better distinguish different PRs

🚨 Issue number

Link this PR to your issue with words like fixed to automatically close the linked issue upon merge
e.g. fixed #1234, closed #1234, resolved #1234

fixed #5187
📝 What does this PR do?

Summarize your work here.
if you have any plots/diagrams/screenshots/tables, please attach them here.

Built-in model polices use self.distribute_layers and self.get_stage_index in every place so that pipeline forward works properly when a custom policy overrides those functions.
💥 Checklist before requesting a review

[x] I have linked my PR to an issue (instruction)
[x] My issue clearly describes the problem/feature/proposal, with diagrams/charts/table/code if possible
[x] I have performed a self-review of my code
[ ] I have added thorough tests.
[ ] I have added docstrings for all the functions/methods I implemented

⭐ Do you enjoy contributing to Colossal-AI?

[ ] 🌝 Yes, I do.
[ ] 🌚 No, I don't.

Tell us more if you don't enjoy contributing to Colossal-AI.

Thank you for your contribution.

It seems tests even didn't run due to timeout. Any hint why?


updates to index.html + adding to contributors

-added self to contributors
-reduced some large spacing on index.html
-removed duplicated "check available pages" section

Great thanks :)


KAFKA-3336: Unify Serializer and Deserializer into Serialization

Ping @ymatsuda @miguno and @ijuma for reviews. The wrapper and factory class was added in org.apache.kafka.common.serialization so we want to make sure if it is generally applicable.

@guozhangwang :  This PR does not update the Streams examples, but it should.

Updated example code as well. Ready for another review @miguno @ijuma @ymatsuda

Replaced the static function returning the cached constant serde objects by a constant serde object itself.

As I discussed with @miguno offline, we will keep the default serde configs as is for now, since we may remove them in all when we have the default serdes provided for common data types like primitives as well as json / avro / kryo / etc.

Fair point about configuration of SerDes @guozhangwang

@ijuma Moved DoubleSer / De from streams test util to serialization as well.

@ijuma @miguno ready for reviews again.

General comment: I think the Serdes part needs some better unit test coverage.  There was at least one bug that I ran into that should have been caught by tests, not by code review IMHO.

Adding a few more unit tests.

@miguno Ready for review again.

This seems fine to me. I focused on the shared part of the code as I'm not too familiar with the streams code. Given that we are not really taking advantage of configure for the built-in Serdes, I still think we should make better use of constants instead of returning a new instance every time (both on Serdes and individual Serde instances like DoubleSerde). However, that is an implementation change that could be done in a separate JIRA and doesn't need to block this.

I left two minor comments and one question (the question just for my understanding).  Apart from that the code LGTM! :+1:

Thanks for the review @miguno @ijuma ! Merged to trunk.


[BUG] 2 Issues: Antialiasing is broken, SVG doesn't show up on GPU backend

Description
Our another test with the 1.68.1 on GPU backend:

[ ] we see that Antialias doesn't work anymore on some machines
[ ] SVGs do not show up

Regarding Antialias: the machine I'm using: ThinkPad X1, GeForce GTX 1050 Ti, Driver 441.12, tested with different drivers.
Regarding SVG: the SVG is drawn only if the SKPaint is set to null.
Code
            var paint = new SKPaint();
            paint.IsAntialias = true;
            paint.Style = SKPaintStyle.Stroke;
            paint.StrokeWidth = 2;

            //no Antialias while drawing paths
            var path = new SKPath();
            path.AddCircle(100.0f, 100.0f, 70.0f);
            canvas.DrawPath(path, paint);

            var svg = new SkiaSharp.Extended.Svg.SKSvg();
            var picture = svg.Load(@"Resources/heart-solid.svg");

            //SVG is there
            var mat = new SKMatrix();
            mat.SetScaleTranslate(0.3f, 0.3f, 200.0f, 20.0f);
            canvas.DrawPicture(picture, ref mat, null);

            //SVG doesn't show up
            var mat2 = new SKMatrix();
            mat2.SetScaleTranslate(0.3f, 0.3f, 400.0f, 20.0f);
            canvas.DrawPicture(picture, ref mat2, new SKPaint());

Expected & Actual Behavior

The circle is a path, hearts are SVG.
Basic Information

Version with issue:  1.68.1
Last known good version:  1.68.0
IDE:  Visual Studio
Platform Target Frameworks:

Windows Classic:  Windows10

Target Devices:

Desktop

Reproduction Link
SkiaAntiAliasAndSVG.zip

Confirmed that this still works fine on macOS. I bet it has to do with something on Windows because we switched from the ancient OpenTK v1.1 to v3.0.
👀

I can repro this on my Surface Book 2 with the NVIDIA GeForce GTX 1050. It is fine on the Intel(R) UHD Graphics 620 though... Probably the setup for the graphics.

Thanks for reporting this. The issue was that the control was just going for the max samples that SkiaSharp supported, which was sometimes too high for the actual GPU. The fix is to actually ask the control how many samples to use.

Hurray! Thank you.


Fixing typo in invokeBinding functions' definitions

Description
Fixing typo in invokeBinding functions' definitions
Issue reference
Please reference the issue this PR will close: #1115
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation

@artursouza and @cicoyle could you please approve this PR. Thank you!

@holopin-bot @ytimocin Thank you for your contribution!


Tracking with finalizers is always enabled

In Kubernetes 1.27, we made tracking with finalizers always enabled, even for Jobs created before tracking with finalizers was enabled.
As part of this, we also removed the use of bactch.kubernetes.io/job-tracking as an annotation for the Job.
This was documented in the KEP https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods#deprecation
and in https://kubernetes.io/docs/reference/labels-annotations-taints/#batch-kubernetes-io-job-tracking

/retitle Mark Job tracking with finalizers as always enabled
/sig apps

Oh right, done :)


Required Vars Are Seen as Unassigned

Hello. I am seeing what follows during the terraform plan phase via a Makefile:
terraform init --input=false
Initializing modules...
Initializing the backend...
Initializing provider plugins...
Terraform has been successfully initialized!
You may now begin working with Terraform. --snip --
terraform validate
Success! The configuration is valid.
tflint --deep --aws-region xxxxxx
Error: Unassigned variable
The input variable "allocated_storage" has not been assigned a value. This is
a bug in Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "engine" has not been assigned a value. This is a bug in
Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "instance_class" has not been assigned a value. This is a
bug in Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "engine_version" has not been assigned a value. This is a
bug in Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "identifier" has not been assigned a value. This is a bug
in Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "password" has not been assigned a value. This is a bug in
Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "backup_window" has not been assigned a value. This is a
bug in Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "username" has not been assigned a value. This is a bug in
Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "port" has not been assigned a value. This is a bug in
Terraform; please report it in a GitHub issue.
Error: Unassigned variable
The input variable "maintenance_window" has not been assigned a value. This is
a bug in Terraform; please report it in a GitHub issue.

module "rds" {
  source                                = "terraform-aws-modules/rds/aws"
  version                               = "2.5.0"

  # 11 variables are required:
  allocated_storage                     = "100"
  backup_window                         = "11:03-11:43"
  engine                                = "MySQL"
  engine_version                        = "8.0.16"
  final_snapshot_identifier             = "${module.appname_dev_rds_instance_label.id}-final"
  identifier                            = module.appname_dev_rds_instance_label.id
  # All available versions: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt
  instance_class                        = "db.t3.medium"
  maintenance_window                    = "tue:12:11-tue:13:11"
  password                              = data.aws_ssm_parameter.dbpasswd.value
  port                                  = "3306"
  username                              = data.aws_ssm_parameter.dbuser.value

terraform --version
Terraform v0.12.9

provider.aws v2.29.0
provider.null v2.1.2

Similar to the above this has worked with your vpc and security-group modules just fine. The rds module is acting badly, as you see.

I think you will have a better luck reporting this on the terraform issue tracker, since this is a Terraform bug.

There was a bug in earlier version of Terraform 0.12 (0.12.10 and older).
It has been fixed in 0.12.12, see CHANGELOG for Terraform + https://github.com/hashicorp/terraform/issues/21659 + https://github.com/hashicorp/terraform/issues/23115 for more details.


[VC] Remove namespace placement result when quota is deleted

If the namespace quota is deleted, the existing namespace placement result should be removed from namespace annoation. This change fixes this problem.

/lgtm
/approve


Added variadic string param to GetGVKsFromAddToScheme for customkinds

Description of the change:
Added variadic string param to GetGVKsFromAddToScheme for customkinds
it will allow to filter the custom third party or ocp schemas by passing
a list of kinds.
Motivation for the change:
The operator which has openshift schemas or custom third party schema will error out:Failed to list *unstructured.Unstructured
Eg:
 Failed to list *unstructured.Unstructured: deploymentconfigs.apps.openshift.io "rollback" not found
This change will allow fixing this type of errors and avoid re-implementation of GetGVKsFromAddToScheme for handling such use-cases

Closing for now so we can discuss in #2798. If there needs to be a code or docs change, we can re-open this PR or open a new PR, whichever makes sense.


Adding custom scalars

It would be useful if there would be a way to map certain primitive field scalars from certain types of the prisma schema to custom graphql scalars for example with graphql-scalars to have an even stricter type system which also reduces the need for class-validator since the validation takes place directly at the resolver level. It would be really nice to have this feature to have more control over the schema generation.
Example:
type definition of Person in prisma.schema with the primitive type String:
model Person {
  email String
}

type definition of Person in schema.graphql with a custom scalar EmailAddrress:
type Person {
  email: EmailAddress
}

generated type definition of Person as a typegraphql object type with custom scalar resolver:
import { EmailAddressResolver } from 'graphql-scalars';

@ObjectType()
export class Person {
  @Field(() => EmailAddressResolver)
  email!: string;
}

I'm afraid it's more complicated than it looks 😕
I wanted to do this by the custom attributes:
model User {
  /// @TypeGraphQL.scalar(name: "EmailAddress")
  email  String  @unique
}

But I realized I can only refer to built-in scalars as I don't know what import statement should it generate.
For decorators it was solved by doing by TS file in runtime but TypeGraphQL has no way to alter already generated schema.
I need to find a better way to compose generation phase with TS values. Currently I'm thinking of exposing config object:
// typegraphql-config.ts
const config: TypeGraphQLGeneratorConfig = {
  scalars: {
    "EmailAddress": EmailAdressResolver,
  },
};
export default config;

Which would be then registered in generator config:
generator typegraphql {
  provider        = "node ../src/cli/dev.ts"
  output          = "../prisma/generated/type-graphql"
  emitDMMF        = true
  config          = "../prisma/typegraphql-config"
}

So the generator would be able to generate import for that file, so the scalar can be safely referenced:
import TypeGraphQLGeneratorConfig from "../prisma/typegraphql-config";

@ObjectType()
export class Person {
  @Field(() => TypeGraphQLGeneratorConfig.scalars["EmailAddress"])
  email!: string;
}

The only drawback of this approach is that the config file would need to be as much static and independent (no custom code imports) as it's possible 🤔

I'm afraid it's more complicated than it looks 😕
I wanted to do this by the custom attributes:
model User {
  /// @TypeGraphQL.scalar(name: "EmailAddress")
  email  String  @unique
}

But I realized I can only refer to built-in scalars as I don't know what import statement should it generate.
For decorators it was solved by doing by TS file in runtime but TypeGraphQL has no way to alter already generated schema.
I need to find a better way to compose generation phase with TS values. Currently I'm thinking of exposing config object:
// typegraphql-config.ts
const config: TypeGraphQLGeneratorConfig = {
  scalars: {
    "EmailAddress": EmailAdressResolver,
  },
};
export default config;

Which would be then registered in generator config:
generator typegraphql {
  provider        = "node ../src/cli/dev.ts"
  output          = "../prisma/generated/type-graphql"
  emitDMMF        = true
  config          = "../prisma/typegraphql-config"
}

So the generator would be able to generate import for that file, so the scalar can be safely referenced:
import TypeGraphQLGeneratorConfig from "../prisma/typegraphql-config";

@ObjectType()
export class Person {
  @Field(() => TypeGraphQLGeneratorConfig.scalars["EmailAddress"])
  email!: string;
}

The only drawback of this approach is that the config file would need to be as much static and independent (no custom code imports) as it's possible 🤔

Ok that makes sense, thanks for looking into it though. 👍 I'm already looking forward to the applyInputTypesEnhanceMap.

Ok that makes sense, thanks for looking into it though. 👍 I'm already looking forward to the applyInputTypesEnhanceMap.

@MichalLytek You can refer to unlight/prisma-nestjs-graphql, where he added options to generator field:
generator nestgraphql {
  provider = "node node_modules/prisma-nestjs-graphql"
  output   = "../src/generated/prisma/nestgraphql"

  # typescript declaration type
  types_EmailAddress_fieldType = "string"
  # graphql scalar type for @Field
  types_EmailAddress_graphqlType = "EmailAddressResolver"
  types_EmailAddress_graphqlModule = "graphql-scalars"
}

model Foo {
  /// @TypeGraphQL.scalar(name: "EmailAddress")
  email  String  @unique
}

Then it should generate:
import { EmailAddressResolver } from "graphql-scalars";

@ObjectType()
export class Foo {
  @Field(() => EmailAddressResolver)
  email!: string;
}

which should solve your problem

If you could ouput just resolvers and a .graphql schema you could just import all types from graphql-codegen built from that .graphql

@fivethreeo typegraphql-prisma emits resolver classes, not schema. TypeGraphQL can build typeDefs and resolvers but this breaks some of graphql-js features like directives and extensions, so it's not a solution to force users to do that.

Any update? 😥

Just came across this. Would be great to use custom scalars in the generated code!

Would love to see this get merged! It would help us a lot @cerebruminc.


fix: use file backend for vald keyring

Description
Todos

[ ] Unit tests
[ ] Manual tests
[ ] Documentation
[ ] Connect epics/issues
[ ] Tag type of change

Steps to Test
Expected Behaviour
Other Notes

this is going PR is going to be problematic for local tests if you want to keep using test keyrings for that. I'm going to create a fix after the holidays (for now it's not critical)


optimization: Excel模板动态导出(closed #1228)

Codecov Report

Merging #1229 (66a9948) into V2.2.32-rc (af11aa2) will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           V2.2.32-rc    #1229   +/-   ##
===========================================
  Coverage       73.24%   73.24%
===========================================
  Files             357      357
  Lines           24042    24042
===========================================
  Hits            17610    17610
  Misses           6432     6432

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.