How to validate the generate token for the next API calls to backend

Hi Team,
I am having a hard time in understanding what AWS Cognito. My requirement was to build an iOS/android app with a Web(angular) portal(for management purpose). The backend API will be build using Java, considering web portal can have different types of users I was thinking about using Spring security.
I was thinking upon using my backend services to authenticate user using AWS Cognito. I don't want to integrate the iOS/Andorid/Web directly with AWS Cognito as in future we might need to switch to other providers.
I am not sure whether this is possible or not but was thinking about something like this: 1. Register API: iOS/Android/Web(with role) calls my backend service with email and password. The backend service register an user with AWS Cognito. AWS Cognito will return an Identifier for that user and the same identifier I will use in my local db to create a link b/w user and the roles and other tables. The backend service will return a json response(identifier) to client(iOS/Android and web) stating that user is created.
Login API: iOS/Android/Web(with role) calls my backend service with email and password. The backend service will validate the email and password against local DB, if it is valid it will talk to AWS Cognito and  using GetOpenIdTokenForDeveloperIdentityRequest it will fetch identiyId and token and the same will be send to client(iOS/Androsi/Web).
Get User Info API: Once the user logins, iOS/Android/Web(with role) calls my backend service with the identityID and token(fetched from Login API). The backend service validated the token with AWS Cognito. If the token is valid, AWS Cognito returns the user information also like the email and the identifier to identify the user in my local db.
I have looked everywhere and have not found anything. Is it possible?
Any other API: All other backend works as Get User Info i.e client (iOS/Andorid/Web) calls the backend service with a token and identityId and the same token is used by backed service to authenticate the user using AWS Cognito.
Logout API. Once this API is call the token should be invalidated.
RefreshAPI: iOS/Android/Web on timely manner calls the backend service and gets the token validated.
Also I have a requirement where I don't want the token to be used directly by client(iOS/Android/Web) for talking to AWS. I want all the calls to AWS goes through backend. Is it possible?
I have gone through a lot of documentation of AWS Cognito but more I read more confused I get. It will be a great help if someone can let me know whether the above is possible through AWS Cognito or not and if it is, how can I proceed on that.
Thanks In Advance!!

Cognito User Pools supports username and password based registration and authentication, so you do not need to store the user name password in your own DB. After authentication the user gets JWT tokens (Id Token, Refresh Token and Access Token) which can be exchanged with Cognito Federated Identities for getting AWS credentials. If you do not want the clients to talk to AWS directly, they can provide your backend the id token, which you can validate yourself and then talk to AWS from your backend.
This repository is a sample for the developer authenticated feature and issues are used to report problems with the sample itself. We encourage customers to post feature request/use case suggestions on our forums. Closing this issue, feel free to contact on our forums.


Token burns are not picked up by bsc scan

Looks like the supply on BSC scan matches what is stored on the contract


Better handle $EDITOR with arguments

Treat the $EDITOR environment variable as potentially having arguments, instead of just being a path to a binary.
This allows EDITOR="my-editor --some-param" without getting an error looking for a binary named "my-editor --some-param".
This commit brings in the shell-words crate to parse out the editor arguments, which may or may not work well on Windows (the crate mentions parsing using unix rules). I looked at using Exec::shell from the subprocess but this spawns a shell process and looked somewhat scarier.
Fixes #19.

incidentally, this seems to be a very common issue across Rust code on GitHub, only a small handful of the uses of env::var("EDITOR") I looked at did anything other than Command::new(env::var("EDITOR")).arg(&somefile)

Ah great, that's one of the possibilities I envisioned. I also wanted to try the open crate, which could work as well.

Thanks a lot! I may give open a go at some point because it has windows support, but this is a good solution.

Oh, edit looked good as well but it just splits arguments on whitespace, it seems

I took a quick look at what shell-words does and this convinced me that just splitting on whitespace was not going to be good enough.


TTL Index does not work with long millisecond timestamps

My Environment

ArangoDB Version:        3.6.0
Storage Engine:             RocksDB
Deployment Mode:       Single Server
Deployment Strategy:   Manual Start
Configuration:               nothing special
Infrastructure:               own
Operating System:        Debian 9.12
Total RAM in your machine:        16Gb
Disks in use:        HDD
Used Package:              Debian or Ubuntu .deb

Component, Query & Data
Affected feature:
TTL Indexes
Problem:
{timestamp:<PHONE_NUMBER>} work,
{timestamp:<PHONE_NUMBER>000} work not
Expected result:
{timestamp:<PHONE_NUMBER>} work,
{timestamp:<PHONE_NUMBER>000} work

Yes, this is clearly stated in the documentation:

The numeric date time values for the index attribute need to be specified in seconds since January 1st 1970 (Unix timestamp).

If you want to use timestamps with milliseconds you can use ISO formatted datetime strings.

Ahhh, nice. I only looked at the HTTP API for creating index and there was no hint. But i think its okay. Thank you!


SwiperDirective for multiple swipers on one page

Not an issue, just a question:
How do I get a SwiperDirective reference to a specific swiper if there are multiple swipers on one page?
Using:
@ViewChild(SwiperDirective) directiveRef?: SwiperDirective;
it seems to return the first swiper.

Better to ask in Angular forums / check Angular documentation since the question is not related to this library. Its possible to name the directives and reference them with name instead of class.

Thanks @sconix you are right. Should be quite simple actually. Something in the line of:
@ViewChild('id_of_swiper') directiveRef?: SwiperDirective;
Thanks for the help.

FYI, to get a QueryList of all the Swipers on the page, use ViewChildren:
import { ViewChildren, QueryList  } from '@angular/core';
@ViewChildren(SwiperDirective) directiveRef?: QueryList;


Release 10.0.1

Getting ready for 10.0.1 release.
/cc @tzmfreedom.

@deivid-rodriguez - so sorry for the cross-reference spam above! FYI, I only realised it was happening today (was due to a change we made last week) and fixed it immediately in https://github.com/dependabot/dependabot-core/commit/2bd343b0ef8638ff15914af155c96db0b6bd231a.

Hadn't even noticed! No problem, of course, and thanks again for your work!


Feature/best practices

Setting most of the "Best Practices" rules.

Not sure (yet) where I land on:

dot-notation
yoda

I expect push back on "complexity": [1, 2]

I dislike the complexity rule only because I don't understand how to fix it.

Line 17: complexity - Function 'anonymous' has a complexity of 3.

For this file

rebased with "complexity": 0, we can address this later in a separate PR

LGTM

I like it


build fixes

Describe your changes

[x] fix/update/unify scripts/*.sh
[x] fix IPP includes (closes #1581)

ipps.h has been moved to ipp/ipps.h
ipp.h already (indirectly) includes the above anyway

Describe any testing you have performed
Please add any demo scripts to CIL-Demos/misc/
Link relevant issues
TODO in follow-ups:

[x] fix markdown errors #1589
[ ] fix sphinx build on recent python versions https://github.com/sphinx-doc/sphinx/issues/9816

Checklist when you are ready to request a review

[x] I have performed a self-review of my code
[x] ~I have added docstrings in line with the guidance in the developer guide~
[x] ~I have implemented unit tests that cover any new or modified functionality~
[ ] CHANGELOG.md has been updated with any functionality change
[x] Request review from all relevant developers
[x] Change pull request label to 'Waiting for review'

Contribution Notes
Please read and adhere to the developer guide and local patterns and conventions.

[x] The content of this Pull Request (the Contribution) is intentionally submitted for inclusion in CIL (the Work) under the terms and conditions of the Apache-2.0 License.
[x] I confirm that the contribution does not violate any intellectual property rights of third parties

There's a lot of unrelated changes in this so it's hard to check the impact. Some builds are failing on GHA and Jenkins but not all so it would be good to know what's different between these.
Was the ipps.h being added to the C++ code the only fix here? I don't like including conda requirements of '>' as this is impossible to restrict in the future if there are issues. If we need to pin a particular version we should.
The build scripts are conveniences for creating environments are conveniences for us and I think having more options is better than less. We Can support the environment file for users? This is something that we need to sort out and simplify in the developer/contribution guide.

The GHA and Jenkins issue is the high priority thing here. And we need to locally run conda build on linux and windows to check the fix works for each version combination.

unrelated changes

moved to separate PRs; please re-review :)

Some builds are failing on GHA and Jenkins

can you post links (URLs) to failing builds?

I don't like including conda requirements of '>' as this is impossible to restrict in the future if there are issues

Please explain "impossible to restrict in the future if there are issues".
Given that '>' is used a lot already before this PR, please do open a separate GH issue to discuss why you think they should all be removed.

You should add yourself here: https://github.com/TomographicImaging/CIL/blob/master/NOTICE.txt

Please update the Changelog https://github.com/TomographicImaging/CIL/blob/master/CHANGELOG.md


fix check/metadata/valid_name_values

The Google Fonts metadata checks are not up to scratch. A major reason is because the conditions to get font style info is incorrect. In https://github.com/google/fonts/pull/7100, Yanone has reported a false positive so this pr aims to fix it.
Imo we absolutely should take a sledge hammer to the metadata checks. Many seem redundant and they're just down right ugly.

Thanks for the feedback.

#4262


pass return of file upload request to handleFinish

This function solves the problem (这个功能解决的问题)
currently there is no way to use the return from upload
Expected API (期望的 API)
handleFinish({ file, result })

We have on-finish

We have on-finish

on-finish only pass FileInfo, there is no currently viable way to retrieve the upload result from the POST request.

@Fnzero 他们要从拿到的是传递完的 http 结果，看看现在有没有方法能解决？


AWS::Logs::MetricFilter MetricValues permits invalid strings

cfn-lint 0.30.1
AWS::Logs::MetricFilter.Properties.MetricTransformations[*].MetricValue allows a bare string not starting with '$' which it appears is never actually valid, ie
"MetricValue: length" vs "MetricValue: $length"
Assuming I'm reading the documentation correctly MetricValue must always either be a number OR start with a '$' character.
The following fragment lints, but is rejected by CloudFormation at runtime without a $ at the start of the named MetricValue field
    QueueLengthMetricFilter:
        Type: AWS::Logs::MetricFilter
        Properties:
            LogGroupName: !Ref LogGroup
            FilterPattern: '[date, time, tag="rh-sched*", x01=throttling, x02="jobs.", ..., x10=Len, x11=of, x12=job, x13="queue*",  length]'
            MetricTransformations:
              - MetricValue: length
                MetricNamespace: !Sub '${EnvironmentName}'
                MetricName: 'JobsQueued'

Note: I believe that this is also missed by the AWS ValidateTemplate API

"For example, if you're counting the occurrences of a particular term like Error, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $ followed by the name of the field that you specified in the filter pattern, such as $size."

This is still an issue, would love to see it fixed.


json std lib slow

I ran a cProfile session and found that half of the time is spent within the JSON loads.
While a quick replacement of json with orjson brings improvements, if we could switch to msgspec we could seriously improve the indexing performance:
https://pythonspeed.com/articles/faster-python-json-parsing/
https://jcristharif.com/msgspec/
Only thing msgspec requires the json schema, as far as I could see these are the required fields:
field aliases
field claims
field descriptions
field id
field labels
field lastrevid
field sitelinks

Am I missing something?

Hi @ziodave, thanks for pointing this out!
I have no objection to optimizing this part of the pipeline - I did not think about it, but if it can make a difference for you, let's do it!

For the time being, switching to orjson brought a great advantage. The profiling now shows that the SPARQL queries are slowing down the initial indexing. The queries are being cached in memory, probably storing them as file caches (and even pushing them to a GH repo) would help. I'll create a new issue for this ;-)

Apologies for spying on this conversation (I have a github scraper setup so I can see how people are using msgspec).

Only thing msgspec requires the json schema

For the time being, switching to orjson brought a great advantage.

Just a quick clarifying point - msgspec doesn't require a schema, it can be used without one, the same as orjson.
In [1]: import msgspec

In [2]: msgspec.json.decode(b'{"hello": "world"}')
Out[2]: {'hello': 'world'}

A schema will speed things up further (and provide some guard rails for malformed data), but even without a schema msgspec should be significantly faster than the stdlib and mildly faster than orjson.
Either msgspec or orjson are a good option here if json performance is a limiting factor, choose whichever tool fits your requirements the best. Please don't feel any pressure to use msgspec based on my comment here.

Thanks @jcrist, yes I started adding the schema as an improvement I am testing out on the languagemodel (along with reactive rxpy) and so far the profiler looks promising :-)
https://github.com/ziodave/opentapioca/blob/c227d07178bcd6475b22c942d1c4b2aee83f90b5/opentapioca/languagemodel.py#L179

And now that I added some multiproc, we're back at that :-)

@jcrist is there a way to ignore a typed value when the type is unknown?
Right now I get this error:
msgspec.ValidationError: Invalid value 'globecoordinate' - at `$.claims[...][0].mainsnak.datavalue.type`

But I don't care about globecoordinate values.

I ended up defining it.
So far so good ...


Bring RecordClass of delete updates inline with RFC2136

Fixes https://github.com/alexreinert/ARSoft.Tools.Net/issues/28

Sorry, for some legal reasons I cannot accept any PR for this project.


🐛 Bug Report: Backstage executeShellCommand function error

📜 Description
Using the Backstage action function executeShellCommand, I created a simple custom action (not a typescript expert) to run a shell command with added optional parameters.
When trying to run it via software templates, I get this error message:
22023-11-17T07:28:33.935Z Error: spawn ././github/codeowners.sh, Opens in a new window ENOENT3    at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19)4    at onErrorNT (node:internal/child_process:485:16)5    at processTicksAndRejections (node:internal/process/task_queues:83:21)
Has anyone created a custom action for executing shell commands or know what could be the issue here?
Reason why I wanted to test this was to "transform" files with different file formats (other than yaml or json) or yaml files that are sort of complex.
Here is the custom action for reference:
import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import {executeShellCommand} from '@backstage/plugin-scaffolder-node';
import { z } from 'zod';

export const bashScript = () => {
  return createTemplateAction({
    id: 'custom:run:bashScript',
    schema: {
      input: z.object({
        scriptPath: z.string().describe('The path to the bash script'),
        additionalParams: z.array(z.string()).optional().describe('Additional parameters for the bash script'),
      }),
    },
    async handler(ctx) {
      const scriptPath = ctx.input.scriptPath;
      const additionalParams = ctx.input.additionalParams || [];

      if (!scriptPath) {
        throw new Error('The script path must be provided.');
      }

      // Execute the shell command with optional additional parameters
      await executeShellCommand({
        command: `./${scriptPath}`,
        args: additionalParams,
        logStream: ctx.logStream,
      });

      ctx.logger.info(`${scriptPath} script executed with optional parameters successfully`);
    },
  });
};

👍 Expected behavior
Just execute the shell command with no errors.
👎 Actual Behavior with Screenshots
Gave me an error below:

👟 Reproduction steps

Created a custom action in `packages/backend/src/plugins
Imported it into packages/backend/src/plugins/scaffolder.ts
Created a software template
Ran the software template

📃 Provide the context for the Bug.
Just the error message provided
🖥 Your Environment
yarn run v1.22.19
OS:   Darwin 23.1.0 - darwin/arm64
node: v16.3.0
yarn: 1.22.19
cli:  0.22.13 (installed)
backstage:  1.18.0
Dependencies:
@backstage/app-defaults                                          1.4.3
@backstage/backend-app-api                                       0.5.3, 0.5.4
@backstage/backend-common                                        0.19.5, 0.19.6
@backstage/backend-dev-utils                                     0.1.1
@backstage/backend-openapi-utils                                 0.0.4
@backstage/backend-plugin-api                                    0.6.3, 0.6.4
@backstage/backend-tasks                                         0.5.8, 0.5.9
@backstage/catalog-client                                        1.4.4
@backstage/catalog-model                                         1.4.2
@backstage/cli-common                                            0.1.12
@backstage/cli-node                                              0.1.4
@backstage/cli                                                   0.22.13
@backstage/config-loader                                         1.5.0
@backstage/config                                                1.1.0
@backstage/core-app-api                                          1.10.0
@backstage/core-components                                       0.12.5, 0.13.5
@backstage/core-plugin-api                                       1.6.0
@backstage/errors                                                1.2.2
@backstage/eslint-plugin                                         0.1.3
@backstage/integration-aws-node                                  0.1.6
@backstage/integration-react                                     1.1.19
@backstage/integration                                           1.7.0
@backstage/plugin-api-docs                                       0.9.11
@backstage/plugin-app-backend                                    0.3.51
@backstage/plugin-app-node                                       0.1.3
@backstage/plugin-auth-backend-module-gcp-iap-provider           0.1.0
@backstage/plugin-auth-backend-module-github-provider            0.1.0
@backstage/plugin-auth-backend-module-gitlab-provider            0.1.0
@backstage/plugin-auth-backend-module-google-provider            0.1.0
@backstage/plugin-auth-backend-module-oauth2-provider            0.1.0
@backstage/plugin-auth-backend                                   0.19.0
@backstage/plugin-auth-node                                      0.3.0, 0.3.1
@backstage/plugin-catalog-backend-module-github                  0.4.0
@backstage/plugin-catalog-backend-module-scaffolder-entity-model 0.1.0
@backstage/plugin-catalog-backend-module-unprocessed             0.3.1
@backstage/plugin-catalog-backend                                1.13.0
@backstage/plugin-catalog-common                                 1.0.16
@backstage/plugin-catalog-graph                                  0.2.36
@backstage/plugin-catalog-import                                 0.10.0
@backstage/plugin-catalog-node                                   1.4.4
@backstage/plugin-catalog-react                                  1.8.4
@backstage/plugin-catalog-unprocessed-entities                   0.1.3
@backstage/plugin-catalog                                        1.13.0
@backstage/plugin-events-node                                    0.2.12
@backstage/plugin-github-actions                                 0.6.5
@backstage/plugin-kubernetes-backend                             0.12.0
@backstage/plugin-kubernetes-common                              0.6.6
@backstage/plugin-kubernetes                                     0.10.3
@backstage/plugin-org                                            0.6.14
@backstage/plugin-permission-backend                             0.5.26
@backstage/plugin-permission-common                              0.7.8
@backstage/plugin-permission-node                                0.7.14, 0.7.15
@backstage/plugin-permission-react                               0.4.15
@backstage/plugin-proxy-backend                                  0.4.0
@backstage/plugin-scaffolder-backend                             1.17.0
@backstage/plugin-scaffolder-common                              1.4.1
@backstage/plugin-scaffolder-node                                0.2.3
@backstage/plugin-scaffolder-react                               1.5.5
@backstage/plugin-scaffolder                                     1.15.0
@backstage/plugin-search-backend-module-catalog                  0.1.7
@backstage/plugin-search-backend-module-pg                       0.5.12
@backstage/plugin-search-backend-module-techdocs                 0.1.7
@backstage/plugin-search-backend-node                            1.2.7
@backstage/plugin-search-backend                                 1.4.3
@backstage/plugin-search-common                                  1.2.6
@backstage/plugin-search-react                                   1.7.0
@backstage/plugin-search                                         1.4.0
@backstage/plugin-tech-radar                                     0.6.8
@backstage/plugin-techdocs-backend                               1.7.0
@backstage/plugin-techdocs-module-addons-contrib                 1.1.0
@backstage/plugin-techdocs-node                                  1.8.0
@backstage/plugin-techdocs-react                                 1.1.11
@backstage/plugin-techdocs                                       1.7.0
@backstage/plugin-user-settings                                  0.7.10
@backstage/release-manifests                                     0.0.10
@backstage/test-utils                                            1.4.3
@backstage/theme                                                 0.2.19, 0.4.2
@backstage/types                                                 1.1.1
@backstage/version-bridge                                        1.0.5
Done in 2.17s.
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
None

Hmm, can we see the full template.yaml definition? It looks like something could be weird with the paths maybe, or that the files doesn't exist in the working directory.

thanks @benjdlambert here is the test template.yaml:
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: test-shell
  title: TEST Shell
  description: Test execute shell function
spec:
  owner: sre
  type: service
  parameters:
    - title: Bash Script Execution
      required:
        - scriptPath
      properties:
        scriptPath:
          type: string
          title: Path to Bash Script
          description: The relative or absolute path to the bash script to execute
        additionalParams:
          type: array
          title: Additional Parameters
          description: Optional additional parameters for the bash script
          items:
            type: string
  steps:
    - id: fetch-template
      name: Fetch
      action: fetch:plain
      input:
        url: omitted
        targetPath: ./github

    - id: run-bash-script
      name: Run Custom Bash Script
      action: custom:run:bashScript
      input:
        scriptPath: ${{ parameters.scriptPath }}
        additionalParams: ${{ parameters.additionalParams }}

    - id: publish
      name: Publish PR
      action: publish:github:pull-request
      input:
        repoUrl: omitted
        branchName: test-shell-execution
        gitCommitMessage: test-shell-execution
        title: test-shell-execution-initial-commit
        requiredCommitSigning: true

Ah, I see the issue.
The thing is that the executeShellCommand's cwd is going to be the process root, which is the /app folder.
In your custom:run:bashScript action, you're going to want to prefix the command with the working directory.
executeShellScript({ options: { cwd: ctx.workspacePath }, command: ...  }) should be enough I think?

@benjdlambert - Thanks!  that worked.  Also wrapped the command inside of resolveSafeChildPath.

its not working for me
here is my template.yaml code
`apiVersion: scaffolder.backstage.io/v1beta3
https://backstage.io/docs/features/software-catalog/descriptor-format#kind-template
kind: Template
metadata:
name: vite-template
title: Example Vite Template
description: An example template for the scaffolder that creates a simple Vite app
spec:
owner: user:guest
type: service
These parameters are used to generate the input form in the frontend, and are
used to gather input data for the execution of the template.
parameters:
- title: Fill in some steps
required:
- name
properties:
name:
title: Name
type: string
description: Unique name of the component
ui:autofocus: true
ui:options:
rows: 5
- title: Choose a location
required:
- repoUrl
properties:
repoUrl:
title: Repository Location
type: string
ui:field: RepoUrlPicker
ui:options:
allowedHosts:
- github.com
These steps are executed in the scaffolder backend, using data that we gathered
via the parameters above.
steps:
# Each step executes an action, in this case one templates files into the working directory.
- id: fetch-base
name: Fetch Base
action: sifars:command:execute
input:
command: npm create vite@latest ${{ parameters.name }} -- --template react-swc-ts
arguments: []
# This step publishes the contents of the working directory to GitHub.
- id: publish
  name: Publish
  action: publish:github
  input:
    allowedHosts: ['github.com']
    description: This is ${{ parameters.name }}
    repoUrl: ${{ parameters.repoUrl }}

# The final step is to register our new component in the catalog.
- id: register
  name: Register
  action: catalog:register
  input:
    repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }}
    catalogInfoPath: '/catalog-info.yaml'

Outputs are displayed to the user after a successful execution of the template.
output:
links:
- title: Repository
url: ${{ steps['publish'].output.remoteUrl }}
- title: Open in catalog
icon: catalog
entityRef: ${{ steps['register'].output.entityRef }}
`
here is custom.ts custom action code
`import { createTemplateAction, executeShellCommand, ExecuteShellCommandOptions } from '@backstage/plugin-scaffolder-node';
import { z } from 'zod';
export const executeShellCommandAction = () => {
return createTemplateAction({
id: 'custom:command:execute',
schema: {
input: z.object({
command: z.string().describe('Command to execute'),
arguments: z.array(z.string()).describe('Arguments of the command')
}),
},
async handler(ctx) {
  const commandOptions: ExecuteShellCommandOptions = {
    command: ctx.input.command,
    args: ctx.input.arguments,
    options: { cwd: ctx.workspacePath }
  }
  executeShellCommand({ ...commandOptions, command: `echo ${ctx.workspacePath}` });
  executeShellCommand(commandOptions);
},

});
};`
please help me

its not working for me
here is my template.yaml code

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: vite-template
  title: Example Vite Template
  description: An example template for the scaffolder that creates a simple Vite app
spec:
  owner: user:guest
  type: service
  parameters:
    - title: Fill in some steps
      required:
        - name
      properties:
        name:
          title: Name
          type: string
          description: Unique name of the component
          ui:autofocus: true
          ui:options:
            rows: 5
    - title: Choose a location
      required:
        - repoUrl
      properties:
        repoUrl:
          title: Repository Location
          type: string
          ui:field: RepoUrlPicker
          ui:options:
            allowedHosts:
              - github.com
  steps:
    - id: fetch-base
      name: Fetch Base
      action: sifars:command:execute
      input:
        command: npm create vite@latest ${{ parameters.name }} -- --template react-swc-ts
        arguments: []
    - id: publish
      name: Publish
      action: publish:github
      input:
        allowedHosts: ['github.com']
        description: This is ${{ parameters.name }}
        repoUrl: ${{ parameters.repoUrl }}
    - id: register
      name: Register
      action: catalog:register
      input:
        repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }}
        catalogInfoPath: '/catalog-info.yaml'
  output:
    links:
      - title: Repository
        url: ${{ steps['publish'].output.remoteUrl }}
      - title: Open in catalog
        icon: catalog
        entityRef: ${{ steps['register'].output.entityRef }}

here is custom.ts custom action code

import { createTemplateAction, executeShellCommand, ExecuteShellCommandOptions } from '@backstage/plugin-scaffolder-node';
import { z } from 'zod';

export const executeShellCommandAction = () => {
  return createTemplateAction({
    id: 'custom:command:execute',
    schema: {
      input: z.object({
        command: z.string().describe('Command to execute'),
        arguments: z.array(z.string()).describe('Arguments of the command')
      }),
    },

    async handler(ctx) {
      const commandOptions: ExecuteShellCommandOptions = {
        command: ctx.input.command,
        args: ctx.input.arguments,
        options: { cwd: ctx.workspacePath }
      }
      executeShellCommand({ ...commandOptions, command: `echo ${ctx.workspacePath}` });
      executeShellCommand(commandOptions);
    },
  });
};

please help me and let me know if i am doing anything wrong

Hi, i encountered the same problem when i wanted to make some bash command with backstage to modify some files. The answer provided above didnt help me at all. I found the solution after searching for a dumb question that was in my mind while trying to solve.
I actually thought ENOENT was an error for file or directory not found, but why would echo "test" throw that error ? There is no file/directory specified. I found out, ENOENT actually is for file/directory or command not found.
We actually used this action the wrong way, it's not bash, it's child_process spawn
https://nodejs.org/api/child_process.html
which means, your basic echo "test" should be
input:
        command: echo
        arguments: ["test"]

instead of
input:         command: echo "test"         arguments: []
which i was doing
i also changed the way additionalParams work. instead of being an array, i used a string, and will translate it to array with split(',') because i'm dumb and dont know how to give an array with backstage input lol
Hope this helped


[DOP-14059] Add Troubleshooting guide

Change Summary

Improve documentation about logging, add logs example
Add separated page for Spark troubleshooting - how to restart Spark session, how to change driver & executor logs level.
Add generic troubleshooting guide.

Related issue number

Checklist

[X] Commit message and PR title is comprehensive
[X] Keep the change as small as possible
[ ] Unit and integration tests for the changes exist
[ ] Tests pass on CI and coverage does not decrease
[X] Documentation reflects the changes where applicable
[X] docs/changelog/next_release/<pull request or issue id>.<change type>.rst file added describing change
(see CONTRIBUTING.rst for details.)
[x] My PR is ready to review.

Приветствуются идеи по тому, что еще можно такого добавить в инструкцию/изменить/etc.


Remove blocker for JetBackup on Ubuntu

Fix t/usage.t when noc_reccomendations file exists as well Fix bizzare errors in t/ test for ElevateScript that failed due to local configuration when running the testsuite during development.
By submitting pull requests to this repo, I agree to the Contributor License Agreement which can be found at: https://github.com/cpanel/elevate/blob/main/docs/cPanel-CLA.pdf

It works because it's defined in the scope of Elevate::PkgMgr::APT, see line 31 of that package

rebased to main:HEAD

OK, finished dealing with the post-rebase headache, it should now be ONLY the changes I wanted.
I also invoked $apt-get in this case statically to reduce confusion.


[SPIKE] Password input component - hybrid approach

Alternative approach to a password input component using the 'hybrid' approach documented in #4512. Like the 'standalone' spike (#4442), there are no tests or documentation included.
As noted in #4512, this demonstrates a few things:

There is less code duplication compared to entirely standalone.
There is slightly less flexibility in how HTML can be used. In this instance, the govuk-password-input div has had to move to be outside of govuk-form-group and new JavaScript added to create the necessary 'wrapper' around the input/button.
A lot of parameters need to be manually forwarded down to the child macro, similar to the character count.

This is actually neater than the character count's case, as that has to override some nested parameters.
It could be neatened up still if we decide that some features of text input are just not useful in this context. i.e. Do we realistically want the pattern, inputmode, prefix or suffix options to be available for password inputs?
I think the DOM changes needed for prefix and suffix are incompatible with the DOM changes needed for password input anyway.

The input component has had to be updated to add new parameters that the password input needs, as they cannot be applied directly in the password input component.

Or rather, they could, if we hijacked the attributes parameter, but then end users couldn't use it and we probably don't want that.

In https://github.com/alphagov/govuk-frontend/issues/4512 we determined we will probably follow the standalone route for now. Closing this down as it's served its purpose.


added a few details to the css

The only diff I saw was that the << month >> was  moved down from the Medication History Title.
Looks fantastic. Loaded with no errors!


Automated cherry pick of #10608: fix: time sync duration

Cherry pick of #10608 on release/3.5.
#10608: fix: time sync duration

/lgtm

/approve


Add feature: compatibility with alternative lock icons

Adds compatibility with the alternative lock icons from github.com/discourse/discourse-category-icons
Also includes a minor buff to the Discourse Category Headers compatibility

We're going to make this component official at some point.  I am still planning to get the proper category chooser working instead of the data input.
Thanks again for the great adds and fixes Nathan!


Update dependencies / default versions

Fixes #24768.

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test and merge

I've triggered a build for you.


RN 40 with Maps 13 - framework not found GoogleMaps - iOS

Following the instructors for the recommended installation instructions creates an error
ld: framework not found GoogleMaps
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I may have misunderstod instructions but I have a few questions:

"Drag the following folder into your project" - does it matter where in the project you drag it to?
Nothing mentions modifying the app delegate file, but a number of comments in issues describe adding an import and api keys?
I get the following warning on pod install. The [Release] target overrides the FRAMEWORK_SEARCH_PATHS build setting defined in `Pods/Target Support Files/Pods-Tyro/Pods-Tyro.release.xcconfig'. This can lead to problems with the CocoaPods installation.

Can you clarify and add a FAQ to the readme. Everything was working fine until I upgraded. Please help.

@vinceprofeta Did you ever figure this out? If so, do you recall the correct steps? Currently upgrading my project and running into the same error... Thanks

I recently made a fresh example build with pods and GoogleMaps with no issues.
https://github.com/alvelig/react-native-maps-pods-example.
Try to check it out or build through the README.MD. If it does not help, let me know.


Fixed typo pnpx start -> pnpm start

Analog to npm, the rocket start must be triggered using pnpm not pnpx.
What I did

Fixed the typo ;-)

with the "new" version of Rocket using its own @rocket/engine this is probably no longer applicable.
If it still is then feel free to reopen or creating an issue 🤗


Added a simple button with hover effect

I added a simple button with a hover effect. The playground link is https://play.tailwindcss.com/QGqQoeDwZF

Thanks for your interest in contributing to the project and improving the resource! Unfortunately, for this particular repo I'm not accepting any external contributions at the moment. I appreciate your effort and encourage you to look for other projects to contribute to.
I apologize for any disappointment this may cause. Best of luck in your future endeavors!

As a side note, there were some snippets on my internal roadmap to add (image loaders and some spinners, but not any new buttons). However, progress on this repo has been halted in favor of newer interests and priorities.


What is the expected matrix format for the gemm_s8x8s32 functions

Hey guys,
Unlike traditional mkl BLAS routines, there is no parameter to specify whether the input and the output matrices are row major or column major. I am looking to use the gemm_s8x8s32 functions as exposed in https://github.com/intel/mkl-dnn/blob/master/include/mkldnn.h#L1813
As far as I saw, there is no mention in the documentation about it. I think I can infer the format is ColMajor by inspecting the check_gemm_input function ( https://github.com/intel/mkl-dnn/blob/master/src/cpu/gemm/gemm.cpp#L48 ), which seems to expect lda, ldb and ldc to follow the column major values, as specified by the MKL-BLAS documentation. Is this the case with other library functions?
Cheers,
Nick

@XapaJIaMnu , you are right, mkldnn_gemm functions operate on column major format as specified in BLAS documentation.
All the other functions in the library do not operate directly on user-provided buffers and instead use abstraction called memory. This abstraction separates physical data layout (row/col-major and all the complex stuff that comes with 3-4-5-dimensional tensors) from the logical layout. You can find description of semantics for logical dimensions in the documentation for memory descriptor.

Thank you @vpirogov for the prompt reply! I do believe that it should be specified somewhere in the documentation. Feel free to close the issue.
Cheers,
Nick

I totally agree with you and took a note to add the information to documentation.


Compile with TLS support results in endless loop for admin commands

Describe the bug
When cups is compiled without TLS support (--without-tls) commands like cupsaccept loops forever.
It also keeps flooding the cups server with requests.
This is tested on an AIX and Ubuntu with a remote CUPS server compiled from the master branch.
To Reproduce
Steps to reproduce the behavior:

git clone ./configure --prefix=/opt/cups-master --without-tls
cd cups
./configure --prefix=/opt/cups-master --without-tls
make && sudo make install
/opt/cups-master/sbin/cupsaccept  -h
Command hangs & cups server logs are flooded.

Additional context
My C code knowledge is very limited, but this patch solves the issue.
diff --git a/cups/request.c b/cups/request.c
index 66c803a04..dad81310e 100644
--- a/cups/request.c
+++ b/cups/request.c
@@ -433,19 +433,23 @@ cupsGetResponse(http_t     *http, /* I - Connection to server or @code CUPS_HTTP
         http->status = HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED;
     }

-#ifdef HAVE_TLS
     else if (status == HTTP_STATUS_UPGRADE_REQUIRED)
     {
      /*
       * Force a reconnect with encryption...
       */

+#ifdef HAVE_TLS
       DEBUG_puts("2cupsGetResponse: Need encryption...");

       if (!httpReconnect2(http, 30000, NULL))
         httpEncryption(http, HTTP_ENCRYPTION_REQUIRED);
-    }
+#else
+      DEBUG_puts("2cupsGetResponse: Need encryption... but no TLS support");
+        http->status = HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED;
+        /*http->status = HTTP_STATUS_CUPS_ENCRYPTION_REQUIRED_CANCELED;*/
 #endif /* HAVE_TLS */
+    }
   }

   if (response)

I tried to add a new status HTTP_STATUS_CUPS_ENCRYPTION_REQUIRED_CANCELED to proper handle the case, but I'm unable to get it working.
Stef

We could use the HTTP_STATUS_CUPS_PKI_ERROR status code...

[2.4.x 5eb736d3b] Fix Upgrade header handling when there is no TLS support (Issue #775)
Not included in 2.5 and later since we require TLS support after 2.4.x...


[OoB_5_5] Compile errors

IAR Systems\Embedded Workbench 8.0 used.
mbed compile, see log
IAR IDE build, see log

We support 7.8 IAR version at the moment.

Thanks. Where can I find officially supported mbed toolchains on the mbed website?

Uhm...
https://docs.mbed.com/docs/mbed-os-handbook/en/latest/dev_tools/options/
Specifies IAR 7.7, but for mbed OS 5.5 this is going to change.
I hope that OOB testers are informed.

The OoB spreadsheet's Introduction tab says to use IAR 7.8 ..

I probably should have read OoB instructions more carefully :)

Looks like the target is NUCLEO_F411RE and that does not have hardware random number generator.
Looks like it triggers some kind of weird build where part of mbed TLS is enabled and part of it is not.
CoAP service should be able to build without security, and it has been used that way. This needs more investigation why it only appears on this platform.

I get the same error with IAR 7.8 log.

As expected IAR IDE build gives the same error as mbed compile due to the same compiler. However IDE keeps compiling after the error so it reveals some additional warnings, see
log from IAR EW IDE 7.80.1.

Can you also provide the mbed_app.json used for the build.

Please see mbed_app.json.

I can see now that these are compiler warnings in GCC and ARM, and failures in IAR.

Verified that this example does not compile with NUCLEO_F401RE with IAR.
This needs to be reported in known issues list.

ARM Internal Ref: ONME-3194

@SeppoTakalo Is there any update on this? Has any further investigation been done at all or is the intention just to propagate this to the known issues for 5.6 too ?

No update yet, but I'm verifying this locally now.
I'll update whether the issue still exist.

Problem still exists. Reported to module causing the compilation error: https://github.com/ARMmbed/coap-service/issues/75
Seems to be compilation warning on GCC and ARM, and failure on IAR.
Should be reported to known issue list. Can only be closed once the CoAP service is fixed into Mbed OS master.

Fix merged to master, closing.


Remove unused config broadcastaddr

‘broadcastaddr’ is not used in codes, remove it
related PR: https://github.com/RackHD/RackHD/pull/386
@RackHD/corecommitters

:+1:

:+1:


Add 'existence starts and ends during' to allowed annotation extension relations

See https://github.com/geneontology/noctua/issues/740.

We are also missing some 'overlaps' AEs. But shouldn't we have a global look at the enxtensions to create a list of ones we really want to see? Sorry if I sound a bit like a broken record.

But shouldn't we have a global look at the enxtensions to create a list of ones we really want to see?

Agree. Do you want to hold off on this one, or just put it in and plan to do that as well?

Oops this is a dupe of #406.


Incorrect timestamp

Xplore is stripping off the leading zeroes from milliseconds.
Output from Node Log
09:52:37.981 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014393 1
09:52:37.982 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014394 1
09:52:37.983 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014402 1
09:52:37.984 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014406 0
09:52:38.006 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014407 1
09:52:38.007 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014409 1
09:52:38.008 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014410 1
09:52:38.009 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014411 1
09:52:38.009 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014413 1
09:52:38.010 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014415 1
09:52:38.011 | Info | Default-thread-10 | 13BC7AE7DBD50B009D9074131F961963 | *** Script: INC0014417 0

Output from Xplore 4.3 (still running Istanbul, so haven't upgraded to 4.4)
11:52:37.981: INC0014391 1
11:52:37.981: INC0014393 1
11:52:37.982: INC0014394 1
11:52:37.983: INC0014402 1
11:52:37.984: INC0014406 0
11:52:38.6: INC0014407 1
11:52:38.7: INC0014409 1
11:52:38.8: INC0014410 1
11:52:38.9: INC0014411 1
11:52:38.9: INC0014413 1
11:52:38.10: INC0014415 1
11:52:38.11: INC0014417 0

Sample fix code from w3schools
function addZero(x, n) {
    while (x.toString().length < n) {
        x = "0" + x;
    }
    return x;
}

function myFunction() {
    var d = new Date();
    var x = document.getElementById("demo");
    var h = addZero(d.getHours(), 2);
    var m = addZero(d.getMinutes(), 2);
    var s = addZero(d.getSeconds(), 2);
    var ms = addZero(d.getMilliseconds(), 3);
    x.innerHTML = h + ":" + m + ":" + s + ":" + ms;
}

Thanks @JohnQSmith
Looks like this is actually happening in ServiceNow's code and not Xplore.
These kind of logs are no longer supported (for customer use) in Jakarta so I wont be trying to fix this right now.


Node horsemanjs weird scope object ga

there is this var 'x' defined in a global scope
var x = 'bye'
after that i call the horsman, as you can see:
horseman
.open('http://www.google.com')

do you see here? I'm changing the global var value
.then(function() {
    x = 'hi'
})

Now i'm passing the value to evaluate function, and now the problem begins. As you will see in the log the value of 'x' is unchanged only in the 'evaluate' scope.
.evaluate(function(val, done) {
    done(null, val)
}, x)

Did you see?
.then(function(e) {
    console.log('newX: ', e)
    console.log('oldX: ', x)
})
.catch(function(err) {
    console.log('err: ', err)
})
.close()

why the response is...
newX: bye
oldX: hi

instead of..
newX: hi
oldX: hi

It's because Promises are asynchronous. This is neither a bug in horseman nor an incorrect result.
I am admittedly poor at explaining this sort of thing, but I suggest you read up on both Promises and JavaScript callbacks in general.


decimals prices

GREATEST update LGTM. Need to update other bridge models (or we can add a complete bridge model)


CFN stack name as argument

seems like CFN stack name is must
Issue #, if available: Without the the CFN stack name Amplify frontend build is failing
Description of changes: Added CFN stack name as the argument to setup_config.py script.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @shankarr-code! Thank you for providing this contribution. I am going to close this PR as the issue addressed by this PR are fixed in #29. More specifically, #29 will default to using the broadcast-monitoring stack name when an argument is not provided. Additionally, it allows for an environment variable(with a custom stack name) to be defined for CI/CD builds.


Reactive Streams Signal Processor

Reactor 2.0 will introduce a new implementation of Reactive Streams signal dispatching that uses the Reactive Streams Processor to schedule work to be done in form of sending an RS signal to a Subscriber asynchronously.
It's easy enough to simply invoke one of the Subscriber methods directly in the calling thread, but to do "proper" (according to the spec) asynchronous signal publication efficiently we should provide a Processor<Signal> (a Signal consisting of a type, a payload, and the Subscriber) which allows publishers to send signals to subscribers asynchronously, safely, and in an efficient (and ordered) fashion.
We call these components "dispatchers" in Reactor and they are key to the efficient publication of signals. I think we want the same capability here. Whether that publication involves jumping from one thread to another would be determined by the implementation (e.g. with a Disruptor RingBuffer).
Note that this is, IMO, not the same thing as intentionally "scheduling" work to be done on another thread based on foreknowledge of the work being done (like submitting blocking IO to a work queue). We could add a delay to the publication of a signal, which we would need at the minimum to provide abstract timeout capabilities (i.e. not tied to a particular action, like a write). Being able to schedule signals in the future is simply an extension of being able to schedule signals at all. This would be similar to the event loop functionality of "next tick" or "trampolining" signals, which is important when dispatching signals recursively.

I don't fully understand the use cases here so can you please elaborate? What does the Reactive-IPC core need to do with this that the transport implementations wouldn't take care of. For example, if Netty is being used as the transport impl then it has its own eventloops and schedules work as needed and will perform callbacks that we would then model as Reactive Streams.

If we don't have a way to dispatch signals to subscribers, then we can't create any reusable abstractions in core. I was trying to implement a simple BoundedSubscription abstraction that takes a capacity value and a Subscriber that could be used generically in a number of places. If I don't have a way to dispatch signals onto the Subscriber, then I have to simply invoke the onXxx methods directly, which could cause issues with recursion if using a small capacity and repeatedly calling the Subscription.request() method.
If I have a single Subscriber as a handler, but I have multiple connections using that shared Subscriber, then I cannot dispatch signals from all those connections onto the Subscriber without providing some kind of ordering per the spec. It's unrealistic to think that synchronizing on the Subscriber from a scoped anonymous inner class or putting synchronized on the Subscriber.onNext(T) method is a solution to not sending concurrent onNext signals.
The RingBuffer thread is not a Netty thread anyway, so no matter how we slice it, IMO we can't push this functionality off onto the implementation and ignore the need to send signals to subscribers in an efficient and orderly fashion. Without this concept in the core, any code that touches a Subscriber would have to resort to direct invocation of the onXxx methods. This wouldn't work in the case of a write in a Subscriber.onNext invocation running in the scope of a RingBuffer thread. It would have to be properly dispatched back onto Netty's EventLoop for that ChannelContext. Without the concept of dispatching signals, no generic abstraction would know how to do that.

which could cause issues with recursion

Under what circumstances is this the concern of this layer of code? Why is this not just the transport layer worrying about this?
The only purpose of what we're building is reactive APIs over IO, and IO implementations will always have their own approaches to scheduling (Netty uses eventloops, Servlet 3.1 uses native threads), and they will all do their callbacks as they wish. Where and why do we introduce further dispatching or scheduling?

It's unrealistic to think that synchronizing on the Subscriber from a scoped anonymous inner class or putting synchronized on the Subscriber.onNext(T) method is a solution to not sending concurrent onNext signals.

Why would this ever be happening? If I perform IO on Netty it will always come back synchronously. Nothing at this level would merge streams.

The RingBuffer thread is not a Netty thread anyway,

What does this have to do with IO?

This wouldn't work in the case of a write in a Subscriber.onNext invocation running in the scope of a RingBuffer thread

Why would it be in the RingBuffer thread? And even then I still see it working. For example, Netty would correctly schedule it onto the right event loop if you weren't already on that event loop.
Please walk me through the use case you are considering, as I'm not understanding it.

Nothing at this level would merge streams.

Why not?

Amend me if I'm wrong @jbrisbin. I think what is being suggested is some sort of base abstraction around dispatching signals, the base machinery to get RS working (which is trivial for publisher, but not for processors, subscribers and subscription).
Let's assume we minimize and replicate if these behaviors (NPE check, request tracking, recursion protection...) to satisfy the TCK with the proposed Publisher/Subscribers we will have here.
The bonus would be to deal with a rather important constraint: a reactive stream off any of our IO impl (like Netty) will often need to jump to another thread as fast as it can, to avoid blocking things like say the event loop in Netty.
But the async dispatching is a decision for the user in the end, the composition layer such as rxjava + RS bridge or ad-hoc tools such as the coming standalone Async Processors from reactor-core.

In theory the difficulty will come with the Output abstraction (server reply or client request). We need to listen for a publisher and so create our own RIPC Subscriber to this effect. @jbrisbin mentioned merging because in our HTTP impl for instance, we apply backpressure across multi matching URL endpoint and use Streams.merge() to make sure we manage the write in a single fan in endpoint before flushing. I think we can live that for now.

I think we are missing a point here (I think @smaldini was referring to this, but I will still put it across): None of the applications would be using reactive-ipc-nettyX module directly as dealing with RS interfaces directly is like dealing with callbacks. They would be using a stream abstraction like RxJava, Reactor Streams, etc. So, IMHO, we should not reinvent what either a networking library (netty) or a stream implementation (RxJava) already provides us.
In this context, dispatching semantics overlap with eventloops, jumping threads overlaps with subscribeOn/observeOn semantics in RxJava.
I do not see a reason when I would use a custom dispatcher directly with netty's eventloops. The usecase about switching threads for any blocking operations, idiomatically should leverage RxJava subscribeOn/observeOn semantics. I do not think we should intend to change that idiomatic way. What would really make sense is having a dispatcher based Scheduler for RxJava which can be used with subscribeOn/observeOn. I do not think this is the correct repo to provide such an implementation.

I think what is being suggested is some sort of base abstraction around dispatching signals, the base machinery to get RS working (which is trivial for publisher, but not for processors, subscribers and subscription).

I actually am not able to understand the non-trivial nature of subscriber/subscription implementation. I see a few points mentioned here:

Adhering to RS contract of sequential notifications to the Subscriber: I think we should have all notifications from netty's ChannelHandler which guarantees sequential notifications.
Recursion for request(n) -> onNext() -> request(n) loop: IMO this would be a deep stack if the data is buffered. Otherwise, we would not have a deep stack as the onNext() will be invoked from within the eventloop (when data is available) and not in the call stack of request(n)
Semantic check for negative requested count, Null item, etc: This isn't a big deal I guess.
Request tracking: Not sure if I understand this.

RS processors are Subjects and I do not think we should have Subject anywhere in this implementation as it breaks backpressure.

I'm not suggesting we reinvent anything; this is a codification of existing functionality and not the introduction of a new concept.
Any generic abstraction that lives in ripc-core has no foreknowledge of the tasks being run inside a delegate Subscriber that it is supposed to send signals to and shouldn't rely on synchronous, recursive, direct method invocation. That component cannot trampoline signals without some abstraction that understands that concept. If the only component which can dispatch signals in a way that adheres to the RS spec resides in the Netty implementation module, then that precludes providing abstractions in core that do some of the heavy lifting that's common to any "real" RS component.
At the user level this is for the purpose of intentionally switching threads based on the developer's foreknowledge of the processing pipeline being created. Generic components have no such foreknowledge but still have a need to send signals to a Subscriber in a way that isn't assuming synchronous invocation.
In practical terms, my local experiments show this has meant only two abstractions are required: a Signal class and a SignalProcessor interface (which is exposed to generic components via passing a Subscriber<Signal> through a CTOR).

As an example of the importance of this concept of dispatching signals, consider that even this most basic of sketches violates the spec because it provides no protection against concurrent onNext signals.

@NiteshKant just a quick amend, Processors are not entirely == Subjects. As soon as you subscribe it to your publisher it has to fulfill the demand contract, I'm fighting with that currently on one of our scheduler to make sure that is respected but anyway yes its not a target for here, we will leave the IO thread ownership unless additional layer make sure that is easy to change.

Just to clarify: this isn't about providing a way to intentionally switch threads. This is entirely about publishing RS signals to subscribers from generic components in an orderly fashion in a way that doesn't violate the spec.
I point to my example above. The Subscriber is a singleton that is passed in from the test code. Relying on synchronous invocation means I am knowingly violating the spec.

This point about ZeroMQ that was just brought up on reactive-streams-io issue 1 IMO serves to illustrate that abstractions other than those directly dependent on Netty will need to do async message passing. ZeroMQ has no facility like Netty to schedule tasks asynchronously. It makes sense that the core interactions of Reactive IPC be abstracted into a module not dependent on Netty which could also be used from a ZeroMQ implementation.

will often need to jump to another thread as fast as it can, to avoid blocking things like say the event loop in Netty.

Why? If computation is being done like 'map' then switching threads is unnecessary and actually worse. Computation moves only as fast as the available CPUs.
If there are 8 cores and 8 event loops, moving work to another thread is not speeding anything up.
I agree with @smaldini on the following:

the async dispatching is a decision for the user in the end with the help of ...

The IO layer should do the simplest posssible thing – call back via a Publisher on whatever thread the transport layer wishes.

we apply backpressure across multi matching URL endpoint and use Streams.merge() to make sure we manage the write in a single fan in endpoint before flushing. I think we can live /wo that for now.

Can you please provide more information on this? I don't understand why streams need to be merged. I have only ever seen the need to merge streams as a user defined semantic for application behavior.

we should not reinvent what either a networking library (netty) or a stream implementation (RxJava) already provides us.

I agree with @NiteshKant on this point.

As an example of the importance of this concept of dispatching signals, consider that even this most basic of sketches violates the spec because it provides no protection against concurrent onNext signals.

Jon, I don't understand the use case you're trying to solve. Netty will not give me concurrent onNext for a single channel. A Publisher would only ever emit a stream of events sequentially from the transport layer.

By the way, this was said earlier:

Because I can't reuse almost anything we have in [...] without the concept of dispatching.

That is not a reason for us to make or retain a design decision.

Jon, I don't understand the use case you're trying to solve. Netty will not give me concurrent onNext for a single channel. A Publisher would only ever emit a stream of events sequentially from the transport layer.

@benjchristensen this isn't about a single channel, but funneling events from multiple channels into a single Subscriber, which would logically be the case in many circumstances where singletons would be provided to the transport layer as a callback.

Because I can't reuse almost anything we have in [...] without the concept of dispatching.
That is not a reason for us to make or retain a design decision.

Fair enough. That's why I put forward other reasons for suggesting this functionality live in core.
I remain unconvinced that building a kernel that calls itself Reactive can do any meaningful work without providing for asynchronous message passing.

@benjchristensen

will often need to jump to another thread as fast as it can, to avoid blocking things like say the event loop in Netty.
I wanted to say that its not always the case rather than often maybe. E.G we have customers using ingesting box with more than 16 CPU and 4 on long-living connections (corresponding to 4 feeding clients). These clients must avoid blocking as much as they can and processing in this case is enough non trivial to be less expansive than placing an event in a queue (actually a ring buffer). The other usual use case I've seen is just acknowledgement where data is moved as fast as possible to a queue, possibly durable/ha, and keep reading (so not filling the event loop). Norman gives that advise too in general.

About the HTTP merge, in reactor you can register multiple http endpoints matching a single request using wildcards or group captures. You can also group/route request by IP, HTTP method etc. These will coordinate to write to a single connection back. The model we use is that a connection is bound to a Stream which is a single thread. Each of these http routes may run on different threads at some point (async callbacks) and we ensure these will write back through the thread assigned to the Stream which maps the user netty channel. We ensure ordering processing at least (order of declaration) for each route so you can build interceptors if you want.

@smaldini @jbrisbin @benjchristensen I have added a comment in the goals & motivation issue to discuss what should belong in reactive-ipc-core and how much of an overarching abstraction across network libraries should we create. I would like to discuss that first before we start discussing the need of a buffer or a dispatcher.

this isn't about a single channel, but funneling events from multiple channels into a single Subscriber, which would logically be the case in many circumstances

I actually disagree that this would be the case in many circumstances of concern at the network layer. As @benjchristensen pointed, it is mostly the case in the user application layer where someone would merge streams from various channels.

I remain unconvinced that building a kernel that calls itself Reactive can do any meaningful work without providing for asynchronous message passing.

I think this is where the clarification around what that kernel contains is important, which is good to discuss under goals & motivations

I actually disagree that this would be the case in many circumstances of concern at the network layer. As @benjchristensen pointed, it is mostly the case in the user application layer where someone would merge streams from various channels.

@NiteshKant I can't see any other safe but efficient way to send RS signals to the composition library than by providing a facility for asynchronous signal (message) passing.

I can't see any other safe but efficient way to send RS signals to the composition library than by providing a facility for asynchronous signal (message) passing.

The entire premise of a Reactive system is that actions that happen in one component are isolated from the others via asynchronous message passing.

This seems at the crux of this debate. Being "reactive" does not mean every onNext must go through an async dispatch.
Being reactive means something is pushed to us so we react to it. Period. This is the dual of being interactive, where we pull (Iterable).
If a user wishes for something to be async, then the composition layer offers them tools to make something async. If they want to move across threads, they can do so. If they want to join or merge across multiple threads, they can.
Here are examples ...
Most basic form of an IO event being pushed:
incomingTcpStream.subscribe(t -> {
    // receive `t` on whatever thread the transport IO invoked `onNext`
});

In this case there is no further need for dispatch or scheduling.
This next case merges 2 streams:
incomingTcpStreamA = ...
incomingTcpStreamB = ...

combinedStream = merge(incomingTcpStreamA, incomingTcpStreamB).subscribe(t -> {
    // receive `t` on either thread A or B  (of course sequentially as per RS spec)
});

In this case it is a combinatorial operator that will merge the events being pushed at it. Since merging can have concurrency it is now the responsibility to ensure the Reactive Streams spec and ensure sequential emission. It is up to the merge implementation whether this is done via work-stealing, ring-buffers, etc. It could be done with enqueue/drain with separate threads so the consuming thread is always the same, or the producer threads could fight for the right to emit (and steal from each other) so each onNext may be done on a different thread (a or b) but the Reactive Stream spec guaranteed so that it is sequential and thread-safe.
Now if a user wants to move from one thread to another they can again choose to compose as follows:
incomingTcpStream
    .observeOn(someOtherThread)
    .subscribe(t -> {
        // receive `t` on someOtherThread as defined in observeOn rather than the IO thread
    });

Behaviors can be combined like this:
incomingTcpStreamA = ...
incomingTcpStreamB = ...

combinedStream = merge(incomingTcpStreamA, incomingTcpStreamB)
    .observeOn(someOtherThread)
    .subscribe(t -> {
        // receive `t` on someOtherThread as defined in observeOn rather than the IO thread
    });

Now we are merging IO events from potentially 2 threads and moving the output to a 3rd thread.
This is all reactive with functional composition for a user to take control of asynchrony and scheduling to meet their needs.
The IO layer just calls onNext. Async scheduling decisions are left to the user to compose.
If an application wants an event-bus then they should use an event-bus, such as Reactor. The IO layer should have as few opinions as possible and be as simple as possible and not make scheduling decisions on behalf of the user.
Note how in the examples above the IO responsibility did not include any of the dispatch or combinatorial use case. That all lives in the layer above that composes IO Reactive Streams exposes as Publisher. Thus, the "Reactive IPC" core and transport layers are exposing Publisher APIs. Users compose them and use dispatch and asynchrony as they desire.

I agree with that definition from @benjchristensen just noting that yes it Reactive is not required to be async (besides reactive manifesto, onNext/onComplete still abstract the thread away), but at least offers for error isolation (onError).
We will find other mandatory abstract objects anyway but I propose to close that issue for now and defer async decision to end-user or end-implementation.

The IO layer just calls onNext. Async scheduling decisions are left to the user to compose.

This is the heart of the matter and where we'll have to agree to disagree.
This necessarily limits the kinds of abstractions we can provide as building blocks, but as long as that's intentional and we recognize that, then I don't have a problem coming down on the side of simplicity.

This necessarily limits the kinds of abstractions we can provide as building blocks

What use cases are we preventing? And how would making everything async not cause performance and complexity impact for the majority of cases?

I probably shouldn't have banged the async hammer so hard because it does seem I'm advocating for "enforced" asynchrony and that's certainly not the case. The key word I think was that only having synchronous invocation was limiting. I apologize for focusing too much on that aspect. We want to keep things fast and dispatch when we have to. But we've found with the RingBuffer you can do both efficiently.
As to what we're preventing: some things I can think of and some I don't even know what their needs are going to be. In effect, we seem to be bringing the scope of what an IO kernel actually is down to such a simplistic level that if you were to, say, choose a transport module but not a composition library, you'd have nothing useful that you didn't bring along with you to enrich the functionality of the kernel. Going back to vert.x, this model has proven to be quite useful and while there are some design decisions there I'm not too excited about, it's a system that does just what is needed: it allows non-blocking components to interact with the core (they do it over the event bus rather than through Reactive Streams) and provide the core needed functionality without forcing the verticle to work in isolation of all other verticles running in the same app.
So far it seems what we're actually building here is just a very inconsequential API conversion from Netty to Reactive Streams. The usefulness of Reactive Streams is not in the fact that it provides three standard interfaces that don't exist in the JDK (otherwise we'd just use the ones from there). Its usefulness is in the spec which lays out the Reactive pattern in specifics and provides the TCK to check it. It provides error and (optional) resource isolation and a whole host of other things that intermediate components could benefit from.
My idea of this IO kernel when we originally talked about it was much closer to what vert.x has, but made fully-Reactive and reusable: a core kernel that has unlimited potential for functionality because the core has extension modules plugged into it that are exposed exclusively via Publisher and Subscriber. These modules would be available to implementation code and others by sending events/signals to them so that things like error auditing could happen by providing a transport layer implementation a Subscriber they could push onNext(Throwable) signals to which could do any manner of other things.
So far we have proposed a very simplistic API conversion from Netty -> RIPC and then from RIPC -> RxJava. There's a lot that could happen in between those two but I don't see anything currently that would facilitate that.

Looking at the Reactive Streams spec I see nothing to suggest that automatated dispatching is expected. On the contrary there is plenty to suggest the opposite that publishers and subscribers make deliberate choices about dispatching rather than have that choice made for them.
For example in 2.2 a subscriber is asynchronous if it suspects its processing would impact the producer, not by default. The example code further confirms this by showing both synchronous and asynchronous subscribers. If there is any doubt left, the section on Asynchronous vs Synchronous Processing clearly shows that async boundaries can and are expected to vary.
I cannot see anything wrong with intentionally scheduling work based on the expected situation. For example for the IO kernel we can fully expect runtimes to be non-blocking so we won't be exposed to synchronous open recursion through Subscription.request. I think we can agree on that much and I see no such issues when looking at ChannelInboundHandlerSubscription.
For the open recursion I think Jon was referring to ChannelInitializerSubscription which is for subscribers of NettyTcpServerConnection. Here Jon does have a point. However I don't actually agree with this part of the current code.
I see no reason for connections to be provided through a reactive streams Publisher and this is further supported by another of Jon's concerns about a singleton subscriber receiving illegal concurrent onNext signals for multiple incoming connections. Again why do we need this to  be a Publisher?
Instead I think it would be sufficient to model that as some sort of a ProtocolHandler along the lines of:
public interface ProtocolHandler<I,O> {

    Publisher<Void> handle(Connection<I,O> connection);

}

Such a ProtocolHandler would indeed be a singleton (we only need one per protocol) and it would be mainly responsible for setting up protocol specific handling so it's non-blocking by definition. In RxNetty terms this is the ConnectionHandler.

it allows non-blocking components to interact with the core

@jbrisbin and I spoke on Friday about use cases. I have my notes and once I have some free time will document our conversation and the requirements.
The key point of our conversation was that we need the core to be extensible, and I completely agree, but as we discussed it should not require the core predefining how that happens (such as via an event bus, but permit extension and injection of behavior). More to come later...


[Runtime] Targetize the layout of ValueWitnessTable.

From what I see the only fields are DATA_VALUE_WITNESS which
all have type size_t. I converted them to use the target-dependent
StoredSize. While I was around I fixed also isValueInline()
to do the right thing (it was using ValueBuffer instead of
TargetValueBuffer) and all the getters for the data value witnesses.
rdar://problem/41546568

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - a843ee999b4a70b1f4ad62fdb9e103947f36d907

Forgot to git add some bits. Updated.

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - a843ee999b4a70b1f4ad62fdb9e103947f36d907

Build failed
Swift Test Linux Platform
Git Sha - a843ee999b4a70b1f4ad62fdb9e103947f36d907

Updated as @jckarter suggested. Thanks!

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 787625abe57d03627c06d82e5baf0256ef1cdfc2

Build failed
Swift Test Linux Platform
Git Sha - 787625abe57d03627c06d82e5baf0256ef1cdfc2


Starlink 4 YouTube link

Starlink 4 YouTube link is set to the old one (https://youtu.be/1KmBDCiL7MU). Shouldn't it be removed (because SpaceX didn't create a stream for this launch yet)?

Yep, added a check in the webcast updater, but there was a bug in it.
Should be fixed now. Checks to make sure the most recent launch youtube id doesn't match before updating.

Nice, thanx.


Add task existence check before AWS CLI version check

Added a TASK existence check before checking the AWS CLI,  because If the TASK specified in the second argument does not exist, the AWS CLI version upgrade message will be displayed.
$ bash check-ecs-exec.sh ecs-cluster-name aaaaaaaabbbbbbbbbbbbcccccccddddd
-------------------------------------------------------------
Prerequisites for check-ecs-exec.sh
-------------------------------------------------------------
  jq      | OK (~~~~)
  AWS CLI | OK (~~~~)
-------------------------------------------------------------
Prerequisites for the AWS CLI to use ECS Exec
-------------------------------------------------------------
Pre-flight check failed: ECS Exec requires the AWS CLI v1.19.28/v2.1.30 or later.
Please update the AWS CLI and try again?
  For v2: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
  For v1: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html

@toricls
Thank you for your comment!
Fixed the message.

Thanks for the contribution @Anorlondo448 🙌


14.2.1 Release - update documentation

Need to update the documentation for the 14.2.1 release.

I updated the documentation.  Close this issue.


idLast needed?

May never have an identity move

As Andrews-Curtis in the explicit style is phased out, this is closed as not relevant.


Can't have import in the parameter files

When we try to have an import statement in the Python input file, we get the error below.
Traceback (most recent call last):
  File "/global/homes/z/zshaheen/anaconda2/envs/e3sm_diags_py3_try2/bin/e3sm_diags", line 10, in <module>
    sys.exit(main())
  File "/global/homes/z/zshaheen/anaconda2/envs/e3sm_diags_py3_try2/lib/python3.6/site-packages/acme_diags/acme_diags_driver.py", line 223, in main
    parameters = get_parameters(parser)
  File "/global/homes/z/zshaheen/anaconda2/envs/e3sm_diags_py3_try2/lib/python3.6/site-packages/acme_diags/acme_diags_driver.py", line 186, in get_parameters
    parameters = parser.get_parameters(cmd_default_vars=False, argparse_vals_only=False)
  File "/global/homes/z/zshaheen/anaconda2/envs/e3sm_diags_py3_try2/lib/python3.6/site-packages/cdp-1.4.2-py3.6.egg/cdp/cdp_parser.py", line 526, in get_parameters
    final_parameters = self.granulate(final_parameters)
  File "/global/homes/z/zshaheen/anaconda2/envs/e3sm_diags_py3_try2/lib/python3.6/site-packages/cdp-1.4.2-py3.6.egg/cdp/cdp_parser.py", line 394, in granulate
    for var_name, var_value in attrs:
RuntimeError: dictionary changed size during iteration

When we turn off the feature to granularize the parameters by putting granulate = [] in the Python file, all works fine.

In v1.5.1 of cdp, we can now import modules in the Python parameter files.
Specially, to get numpy arrays working, we had to have more fixes. These were done in 9e31d3a01e13af9cba4a57226a7535212298d88c. As expected, when using numpy.ndarrays, we don't have the parameter, zonal_mean_2d_plevs in this case, as a command line parameter. Serializing an object of that type is not straightforward.

So @oksanaguba and @chengzhuzhang, if you want to be able to use set zonal_mean_2d_plevs to a numpy array in the Python parameter files, please use the latest code on master and update to v1.5.1 of cdp.
Below is a modified version of the parameter file used in the system tests and it's respective output:
# all_sets.py
import numpy

reference_data_path = '.'
test_data_path = '.'
results_dir = 'all_sets_results'

zonal_mean_2d_plevs = numpy.logspace(2.0, 3.0, num=3)


fix: production dockerfile image reference to ai models

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


Add TypeScript support

I'm not sure if this is something that's worth landing or not. I made these changes for myself and I'd like to share them back with the community though.
Feel free to close this PR if you don't desire TypeScript. At the very least, I hope that others will find this in the search in the future! Thanks for all of your work on this repo. :)

There is another React+Ts template (you can read about it here, maybe you can improve it. As for this, I think we need a vanilla react version.

Thank you for spending time on this PR. However, we already have a React + TypeScript template. This one is for plain JavaScript.
It did make me think we could cross-link to the JS/TS templates from the respective readme files though, so we'll do that.


[BUG] can't get\create tokens

Rancher Server Setup

Rancher version: 2.7.6
Installation option Helm Chart: RKE1
Proxy/Cert Details: let's encrypt cert

Information about the Cluster

Kubernetes version: 1.27
Cluster Type: Local

Imported = Running kubectl apply onto an existing k8s cluster

User Information

Admin/Cluster Owner

Describe the bug
"baseType": "error",
"code": "ServerError",
"message": "error getting tokens for user: user-s8tmm selector: authn.management.cattle.io/token-userId=user-s8tmm  err: the server was unable to return a response in the time allotted, but may still be processing the request (get tokens.meta.k8s.io)",
"status": 500,
"type": "error

To Reproduce
https://domain/v3/tokens

i find 240k tokens in my etcd!
we have 20 developers in our company and  I don't know how in two years so many tokens.
first step, i disable kubeconfig-generate-token
and edit kubeconfig-default-token-TTL-minutes to 1000 min.
second step, i go to etcd container and pull list of tokens to file:
docker exec etcd etcdctl get "" --prefix --keys-only | grep '/registry/management.cattle.io/tokens/' | grep 'kubeconfig-' > keys.txt```

third step, i delete all `kubeconfig-` keys:

```bash
#!/bin/bash

IFS=$'\n'
SLEEP=0

for i in `cat keys.txt`; do

SLEEP=$(( $SLEEP + 1 ))
count=$(( count +1 ))

echo "del ${i}, $count"
#docker exec -it etcd

etcdctl \
        --cert=/etc/kubernetes/ssl/kube-etcd-65-21-182-33.pem \
        --key=/etc/kubernetes/ssl/kube-etcd-65-21-182-33-key.pem \
        --cacert=/etc/kubernetes/ssl/kube-ca.pem \
        del ${i//[$'\t\r']}

if [ $SLEEP -gt 400 ]; then
 sleep .5
 SLEEP=0
fi

done

problem resolved, except I still don't understand where all those keys came from.


Integration with Sentry

In order to have crash reporting capabilities Nixy could have optional integration with e.g. Sentry (https://docs.getsentry.com/hosted/clients/go/).

Sentry looks like a nice service, but unfortunately its not open-source or even free to use. So in this case it would be difficult for me to help support it or even test it.
New Relic has similar possibilities and something we actually use today. They also recently started supporting Go and at least they have a free plan. This could maybe be something I can support if the interest is there?

Senrty is an open-source project - https://github.com/getsentry/sentry. We're using it already as part of our in-house infra.

I am sorry, I missed the On-Premise plan. Sentry does look interesting thought, but at the moment time is limited and it would take me too much time to set up a whole environment for Sentry. 😕

Been open a while and since I don't really have experience with using Sentry I will close this issue for now.


Add back --direct option to run reprocessing directly on local node

I may have been overly pushy about always doing processing in Slurm. Apart from anything else, running locally with the --mock option is useful for testing without being on Maxwell.
So this adds an amore-proto reprocess --direct option to run processing in subprocesses. Like --watch this will process runs one at a time, with live output in the terminal (as well as written to the log file).
cc @tmichela

Thanks! LGTM


websoket multiple client to one server

hi
how i can create multiple client server , server can accept multiple client ?

Workerman can accept multiple client by default.


 I found this dataset on Roboflow > https://universe.roboflow.com/joseph-w3l5l/brawl-star-bots < and the Author has the same name as you. Was this the dataset used? And from using the bot it seems that it sometimes false detects enemies and start attacking around itself. Would training a larger dataset fix this issue?
That aside I wanted to thank you for making this bot.

hi, the dataset you linked was not used, if you interested in the dataset used  >https://github.com/Jooi025/BrawlStarsBot/tree/archived_model < .
I could increase the enemies' detection threshold to fix the false detection.


[Help] : PMTiles output is not working

Version used : tippecanoe v2.37.0
command :
tippecanoe -zg --projection=EPSG:4326 -o exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/test12z.pmtiles -l testzzz exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/testzzz.geojson --force

Error :
tippecanoe: Tileset "exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/test12z.pmtiles" already exists. You can use --force if you want to delete the old tileset.
tippecanoe: database is locked

I am using the --force option , and made sure there is no previous file in the disk before running the command , Can you help me out what I am doing wrong ?

I think the problem is that you added --force after the input filename: try moving it to before.
Instead of this command:
tippecanoe -zg --projection=EPSG:4326 -o exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/test12z.pmtiles -l testzzz exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/testzzz.geojson --force

Try this:
tippecanoe -zg --projection=EPSG:4326 -o exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/test12z.pmtiles -l testzzz --force exports/testzzz_pmtiles_uid_273d0107-f0b1-49e9-9be4-bc6a8d97bff4/testzzz.geojson


Task: 9.17 Integrate BFF with rights API

Description
We need to present the rights delegated to a system user in Authenticaiton Frontend.
To do this, the BFF would need to call the access management API to list rights for a given system user
Additional Information
We need to consider if we gonna list rights as a separate API or included in the system user list
Tasks

[ ] Expose API to list rights for a given system userId

Acceptance Criterias

[ ] Only users with system admin rights for system user party should be allowed to see list
[ ]

see also task #110


gradio throws errors - outdated package?

the gradio used in the package that installs requirements is outdated and makes it impossible to run text gen web ui with it.
If I install the plugin, the oogaboga text gen web ui does not start anymore due to Gradio.
If i keep my version of gradio, the plugin throws gradio errors. Any chance for an update?

I have no way to run this, using oogaboga on local host, api is active, everything works fine with other api extensions and integrations but oobabot throws this error forever, no matter what I do, looking for support/help:
2024-04-04 11:24:34,584  INFO Oobabooga is at ws://localhost:5000
2024-04-04 11:24:34,587 WARNING Could not connect to Oobabooga server: [ws://localhost:5000]
2024-04-04 11:24:34,587 WARNING Please check the URL and try again.
2024-04-04 11:24:34,587 ERROR Reason: 403, message='Invalid response status', url=URL('ws://localhost:5000/api/v1/stream')
Tried all ports, all types of urls, just doesn't connect.


Fix input_event can not pass to grandparent

Fix input_event can not pass to grandparent when node ignored mouse and node's parent is Node2D

@sanikoyes ~ What about grand-grand parents, would the work as well?

@bojidar-bg
grandparent means node3.getnode("../..")
this bug can reproduce by:
Node1(Control)
-> Node2(Node2D)
->Node3(Control)
Node3 is set ignored input event, input event can not pass to Node1

@sanikoyes I mean, what about:
Root (Control)
`-- Node2d_1 (Node2D)
     `-- Node2d_2 (Node2D)
          `-- Control (Control)

@bojidar-bg  this scene is fine,
loops traversal parents and find first parent derived from Control

The issue is valid and must be fixed, but I think there are a few other
conditions where the upwards search must stop, such as when hitting a
Viewport, CanvasLayer, etc. nodes.
Let me give it a check when i have a bit of time
On Wed, May 18, 2016 at 9:42 AM, Bojidar Marinov<EMAIL_ADDRESS>wrote:

@sanikoyes https://github.com/sanikoyes I mean, what about:
Root (Control)
-- Node2d_1 (Node2D)      -- Node2d_2 (Node2D)
`-- Control (Control)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/pull/4701#issuecomment-220014173


other: added test workflow

There is some minor conflict in poetry to resolve, but despite that workflow looks good. Later we will need to add a step with the packaging app and deployment to PYPI.


Feature/profile picture db

Changes so we don't send profile picture with every user request
Some problem with Hibernate validation after the last update is fixed now
Profile picture is separate entity so in the future it's possible to have multiple profile pictures to choose from
Small error on main so here it's also fixed

das ist gut :shipit: 💯


Improve mutually exclusive screen reader alerts

I've updated the mutually exclusive component to improve the screen reader alerts for when inputs/checkboxes are programatically cleared.
It would be worth having a play with a few of the different mutually exclusive example types using a screen reader to see how the alerts sound. One to be aware of is the "please specify" input in the "Other" option in mutually exclusive checkboxes, although that may be an issue with the "other" checkbox/radio option itself rather than the mutually exclusive code.
Will resolve #270

 Mutually exclusive aria-live isn't very good

  Vertical rhythm between a field of radios or select boxes isn't right

@jrbarnes9 I've changed it to only say "selecting this will uncheck all other checkboxes" if checkboxes have been checked.
I get an alert for "no central heating deselected" when i check another options so it could be a device specific issue... what are you testing with?
As for the other field, I think we will have to address that as a fix for checkboxes and radios as they have no link between other and the input field it shows at the moment. I've raised an issue here: #272

@jrbarnes9 I've changed it to only say "selecting this will uncheck all other checkboxes" if checkboxes have been checked.
I get an alert for "no central heating deselected" when i check another options so it could be a device specific issue... what are you testing with?
As for the other field, I think we will have to address that as a fix for checkboxes and radios as they have no link between other and the input field it shows at the moment. I've raised an issue here: #272

Good, this works well now.
Seems fine now, perhaps I missed it first time round, was using chrome with mac voiceover.
Sure, sounds makes sense.

When using the feedback text area example, the character count is read out after the 'I don't want to provide feedback' checkbox is selected.

Still a spacing issue:...

Mutually exclusive duration... "[legend] deselected" is read out twice after selecting the checkbox.  One for each field cleared presumably.  Preferably should just read this out once to indicate all fields in the field_group have been deselected.

  Select all that apply cannot be a label or legend

Mutually exclusive duration... "[legend] deselected" is read out twice after selecting the checkbox. One for each field cleared presumably. Preferably should just read this out once to indicate all fields in the field_group have been deselected.

I've updated this to read out the title of the abbreviation so it should read something like "Years cleared. Months cleared" rather than the [legend] deselected. I'm not sure whether saying "[legend] cleared" and not mentioning which fields were cleared in the group 'e.g. years and months here, or day, month, year in the date input' would be clear enough for screen reader users.


notifyAllUsers does not work

Describe the bug
I noticed in the EventHandler code, when you add a news article it is meant to email it to all users, however it would appear this is not the case.
Version
Beta 3
To Reproduce
Steps to reproduce the behavior:

Create a news article

Expected behavior
An email to be sent to all pilots with the news article
Screenshots

What's it doing instead?

Nothing - the news adds fine but it doesn't email anyone anything

Are users getting the emails about the pirep accept/reject?

Yep, they are getting all other emails except the news ones

referencing issue #795 as that issue ties into this one.

This should be fixed now, it wasn't wired up correctly.


Solmate Installation

Component
Other (please describe)
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (f625d0f 2024-04-02T00:22:27.735370800Z)
What command(s) is the bug in?
forge install transmissions11/solmate
Operating System
Windows
Describe the bug
I can't install solmate with foundry in my working space, im using VS Code.
thats what i get when i run the command.
Installing solmate in C:/Users/lokos/Desktop/Alvearium/lib\solmate (url: Some("https://github.com/transmissions11/solmate"), tag: None)
Error:
The target directory is a part of or on its own an already initialized git repository,
and it requires clean working and staging areas, including no untracked files.
Check the current git repository's status with git status.

If none of the previous steps worked, please open an issue at:
https://github.com/foundry-rs/foundry/issues/new/choose

make sure you don't have any untracked files as mentioned in message
The target directory is a part of or on its own an already initialized git repository,
and it requires clean working and staging areas, including no untracked files.

Check the current git repository's status with git status.


[New Feature] auto popup a new strings key panel if user enter a strings key that not exists.

If I enter a new strings key that not exists in current strings table,  It would automatically (of if I cmd+Click the strings key) popup a panel that I can add a new strings key  and multi-language values for it.

Or, if we write the strings value in source code like this:
NSLocalizedString(@"This is my strings value", tableName);

If the strings value "This is my strings value" is already existed in tableName.strings with a key @"my_key", we can popup a tip to tell the user to use the exists key instead. e.g.:
NSLocalizedString(@"my_key", tableName);

Thanks.
So you have two ideas:

Add a new key-value pair from popup
Tell the users that the value is existing, and replace it with key if necessary

About the first one, I'd like to say this (in #47).
And for the second one, I cannot imagine the use case...