Add llama implementation with no tensor parallel linears

Summary:
Trying to demo llama with normal linear + quantized model + tensor parallelism works

verified correctness against original llama3 model
supported json-model-override-args in bench_latency script

Next: add pytorch native tensor parallelism test code for int8 weight only in torchao, diff from current llama model def: https://gist.github.com/jerryzh168/692ff83735d4ca298c1aad2424b2c225
Test Plan:
Using json-model-override-args  to overwrite the name of the model
python3 -m sglang.bench_latency --correct --model meta-llama/Meta-Llama-3-8B --json-model-override-args '{"architectures": ["TorchNativeLlamaForCausalLM"]}'
Init nccl begin.
Load weight begin. avail mem=94.48 GB
INFO 10-04 15:00:53 weight_utils.py:236] Using model weights format ['*.safetensors']
Loading safetensors checkpoint shards:   0% Completed | 0/4 [00:00<?, ?it/s]
Loading safetensors checkpoint shards:  25% Completed | 1/4 [00:00<00:01,  2.46it/s]
Loading safetensors checkpoint shards:  50% Completed | 2/4 [00:00<00:00,  2.26it/s]
Loading safetensors checkpoint shards:  75% Completed | 3/4 [00:01<00:00,  2.25it/s]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:01<00:00,  3.11it/s]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:01<00:00,  2.75it/s]

Load weight end. type=TorchNativeLlamaForCausalLM, dtype=torch.bfloat16, avail mem=79.41 GB

performance check
python3 -m sglang.bench_latency --model jerryzh168/llama3-8B --batch-size 1 --input 128 --output 8
python3 -m sglang.bench_latency --model jerryzh168/llama3-8B --batch-size 1 --input 128 --output 8 --torchao-config int4wo-128
max_total_num_tokens=631444
Warmup ...

Prefill. latency: 0.06534 s, throughput:   1958.93 token/s
Decode.  latency: 0.00502 s, throughput:    199.16 token/s
Decode.  latency: 0.00476 s, throughput:    210.03 token/s
Decode.  latency: 0.00469 s, throughput:    213.19 token/s
Decode.  latency: 0.00466 s, throughput:    214.77 token/s
Decode.  latency: 0.00466 s, throughput:    214.74 token/s
Decode.  median latency: 0.00469 s, median throughput:    213.19 token/s
Total. latency:  0.098 s, throughput:   1381.24 token/s

Accuracy check:

# python3 scripts/playground/reference_hf.py --model meta-llama/Meta-Llama-3-8B
========== Prompt 0 ==========
prefill logits (final) tensor([ 5.0195,  3.0801,  0.7422,  ..., -7.4805, -7.4805, -7.4805],
       device='cuda:0')
<|begin_of_text|>The capital of France is Paris. It is located in the north of the country. The city is situated
The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
Setting `pad_token_id` to `eos_token_id`:128001 for open-end generation.

========== Prompt 1 ==========
prefill logits (final) tensor([ 5.2109,  4.2344,  1.8408,  ..., -7.5195, -7.5195, -7.5195],
       device='cuda:0')
<|begin_of_text|>The capital of the United Kindom is London. It is the largest city in the UK and the largest city in the
The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
Setting `pad_token_id` to `eos_token_id`:128001 for open-end generation.

========== Prompt 2 ==========
prefill logits (final) tensor([ 9.5391,  3.1914,  0.8188,  ..., -7.0469, -7.0469, -7.0469],
       device='cuda:0')
<|begin_of_text|>Today is a sunny day and I like to go out and enjoy the sun. I am going to the beach with my

# python3 scripts/playground/reference_hf.py --model jerryzh168/llama3-8B
========== Prompt 0 ==========
prefill logits (final) tensor([ 5.0195,  3.0801,  0.7422,  ..., -7.4805, -7.4805, -7.4805],
       device='cuda:0')
<|begin_of_text|>The capital of France is Paris. It is located in the north of the country. The city is situated
The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
Setting `pad_token_id` to `eos_token_id`:128001 for open-end generation.

========== Prompt 1 ==========
prefill logits (final) tensor([ 5.2109,  4.2344,  1.8408,  ..., -7.5195, -7.5195, -7.5195],
       device='cuda:0')
<|begin_of_text|>The capital of the United Kindom is London. It is the largest city in the UK and the largest city in the
The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
Setting `pad_token_id` to `eos_token_id`:128001 for open-end generation.

========== Prompt 2 ==========
prefill logits (final) tensor([ 9.5391,  3.1914,  0.8188,  ..., -7.0469, -7.0469, -7.0469],
       device='cuda:0')
<|begin_of_text|>Today is a sunny day and I like to go out and enjoy the sun. I am going to the beach with my

# python3 -m sglang.bench_latency --correct --model meta-llama/Meta-Llama-3-8B
max_total_num_tokens=557684

input_ids=[[128000, 791, 6864, 315, 9822, 374], [128000, 791, 6864, 315, 279, 3723, 17262, 316, 374], [128000, 15724, 374, 264, 40798, 1938, 323, 358, 1093]]

prefill logits (first half): tensor([[ 1.9609,  2.1094, -1.2500,  ..., -5.5000, -5.5000, -5.5000],
        [ 1.9609,  2.1094, -1.2500,  ..., -5.5000, -5.5000, -5.5000],
        [ 2.2969,  2.9531,  2.1406,  ..., -8.3750, -8.3750, -8.3750]],
       device='cuda:0')

prefill logits (final): tensor([[ 5.0312,  3.1094,  0.7500,  ..., -7.4375, -7.4375, -7.4375],
        [ 5.2188,  4.2188,  1.8359,  ..., -7.5312, -7.5312, -7.5312],
        [ 9.5000,  3.1406,  0.7891,  ..., -7.0938, -7.0938, -7.0938]],
       device='cuda:0')

========== Prompt 0 ==========
<|begin_of_text|>The capital of France is Paris. It is located in the north of the country. It is the largest

========== Prompt 1 ==========
<|begin_of_text|>The capital of the United Kindom is London. It is the largest city in the UK and the largest city in the

========== Prompt 2 ==========
<|begin_of_text|>Today is a sunny day and I like to go out for a walk. I am going to the park. I am

# python3 -m sglang.bench_latency --correct --model jerryzh168/llama3-8B
Load weight end. type=TorchNativeLlamaForCausalLM, dtype=torch.bfloat16, avail mem=79.41 GB
Memory pool end. avail mem=11.16 GB
Capture cuda graph begin. This can take up to several minutes.
max_total_num_tokens=557684

input_ids=[[128000, 791, 6864, 315, 9822, 374], [128000, 791, 6864, 315, 279, 3723, 17262, 316, 374], [128000, 15724, 374, 264, 40798, 1938, 323, 358, 1093]]

prefill logits (first half): tensor([[ 1.9609,  2.1094, -1.2500,  ..., -5.5000, -5.5000, -5.5000],
        [ 1.9609,  2.1094, -1.2500,  ..., -5.5000, -5.5000, -5.5000],
        [ 2.2969,  2.9531,  2.1406,  ..., -8.3750, -8.3750, -8.3750]],
       device='cuda:0')

prefill logits (final): tensor([[ 5.0312,  3.1094,  0.7500,  ..., -7.4375, -7.4375, -7.4375],
        [ 5.2188,  4.2188,  1.8359,  ..., -7.5312, -7.5312, -7.5312],
        [ 9.5000,  3.1406,  0.7891,  ..., -7.0938, -7.0938, -7.0938]],
       device='cuda:0')

========== Prompt 0 ==========
<|begin_of_text|>The capital of France is Paris. It is located in the north of the country. Paris is the largest

========== Prompt 1 ==========
<|begin_of_text|>The capital of the United Kindom is London. It is the largest city in the UK and the largest city in the

========== Prompt 2 ==========
<|begin_of_text|>Today is a sunny day and I like to go out for a walk. I am going to the park. I am

Reviewers:
Subscribers:
Tasks:
Tags:

@jerryzh168 Thanks! It is merged.


Fix Control::get_screen_position() not considering viewport scale

If active camera has non-default zoom, Control:get_screen_position() does not return correct screen position. This PR fixes it.
Discovered while working on #49376

Thanks!


Update aws sdk

dep ensure -update
mockery --dir ../../aws/aws-sdk-go/service/dynamodb/dynamodbiface --all
mockery --dir ../../aws/aws-sdk-go/service/kms/kmsiface --all

dep ensure -update
mockery --dir ../../aws/aws-sdk-go/service/dynamodb/dynamodbiface --all
mockery --dir ../../aws/aws-sdk-go/service/kms/kmsiface --all

@TheSAS Updated dependencies for generating mocks. We should be independent from the upstream repo now.

@TheSAS Updated dependencies for generating mocks. We should be independent from the upstream repo now.


chore: bump PR version for 1.2

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Does this PR introduce a user-facing change?:

NONE

/cc @robscott @shaneutt

Thanks for catching this!
/lgtm
/approve


[proofing] Add filter field for project list

Our proofers have requested more tools to search and manage the list of available projects. This commit adds a simple text form that performs case-insensitive substring matching against the list of projects.
The implementation itself is quite clumsy since it manages state in both JS data and in the order and attributes of HTML elements. I think this messy approach is acceptable given that this is a new feature and the actual logic is quite short. If our proofers ask for other filtering options in the future, we can clean this up.
Test plan: tried it on dev.

24h, landing


[Request] Categories and Filtering Options

Would like to see games from Steam imported with their categories, as well as the ability to put other imports into categories in the manager.
Favorites would be a nice addition as a means to filter as well.
Tags, preferably user defined and multiple allowed, would be another good filtering ability. eg; Tagging a game RTS and being able to filter for games that fit tags.
I know this is meant for adding, but when managing them it would be much easier with these kinds of things present in the manager.

At a minimum I'd like to turn off the feature that categorizes the games by their launcher after import!

Would like to see games from Steam imported with their categories, as well as the ability to put other imports into categories in the manager.

What do you mean, exactly?

Would like to see games from Steam imported with their categories, as well as the ability to put other imports into categories in the manager.

What do you mean, exactly?

The idea was to be able to view games in the manager, in the same categories you have in Steam. eg; If I have a dozen games categorized as FPS they'd show in an FPS category in the manager as well. Saves having to dig through 1000 games to find a category you're looking to change artwork for.
The second part of that being able to put games imported from other launchers, into those categories within the manager.

The idea was to be able to view games in the manager, in the same categories you have in Steam. eg; If I have a dozen games categorized as FPS they'd show in an FPS category in the manager as well. Saves having to dig through 1000 games to find a category you're looking to change artwork for.
The second part of that being able to put games imported from other launchers, into those categories within the manager.

The ability to change the category of games from the manager will have to be a separate feature request, and is not something I'm keen on getting into any time soon.
However, I do like the idea of showing games in the manager based on the categories on Steam. I'm going to leave this issue open as a feature request for that idea.

The ability to change the category of games from the manager will have to be a separate feature request, and is not something I'm keen on getting into any time soon.
However, I do like the idea of showing games in the manager based on the categories on Steam. I'm going to leave this issue open as a feature request for that idea.


[cli] can't send custom http headers to server during introspection

Describe the bug

After updating to 1.21.1, from 1.20.1. The only version that is changing in this upgrade is for @graphql-codegen/cli.
When generating an API client, the introspection step fails. The messages are reminiscent of when I first setup this codegen when I didn't include the custom headers. The other servers I use codegen against that do not have custom HTTP headers are working fine.
The only error message I've been able to get out of the CLI, even with DEBUG=1 and VERBOSE=1 is:
Failed to find any GraphQL type definitions in: https://api.newrelic.com/graphql - Invalid MIME type
[12:25:45] Load GraphQL schemas [failed]
[12:25:45] → Failed to load schema
[12:25:45] Generate ./src/app/graphql/requests/newrelic.ts [failed]
[12:25:45] → Failed to load schema

To Reproduce
Steps to reproduce the behavior:
I can't include my live API credentials but you should be able to reproduce this with any server that only allows introspection when certain HTTP headers are included.

My GraphQL schema:

# N/A

My GraphQL operations:

fragment entity on Entity {
  __typename
  name
  guid
  entityType
  tags {
    key
    values
  }
  ... on SyntheticMonitorEntity {
    monitorType
    monitorId
    monitoredUrl
    period
  }
}
fragment entityOutline on EntityOutline {
  __typename
  name
  guid
  entityType
  tags {
    key
    values
  }
  ... on SyntheticMonitorEntityOutline {
    monitorType
    monitorId
    monitoredUrl
    period
  }
}
query entitySearch($query: EntitySearchQueryBuilder!) {
  actor {
    entitySearch(queryBuilder: $query) {
      results {
        entities {
          ...entityOutline
        }
        nextCursor
      }
    }
  }
}
query getEntity($id: EntityGuid!) {
  actor {
    entity(guid: $id) {
      ...entity
    }
  }
}
mutation tagEntity ($guid: EntityGuid!, $tags: [TaggingTagInput!]!){
  taggingAddTagsToEntity(guid: $guid, tags: $tags) {
    errors {
      message
      type
    }
  }
}
mutation untagEntity ($guid: EntityGuid!, $tags: [String!]!) {
  taggingDeleteTagFromEntity(guid: $guid, tagKeys: $tags) {
    errors {
      message
      type
    }
  }
}

My codegen.yml config file:

overwrite: true
documents: []

generates:
  ./src/app/graphql/requests/newrelic.ts:
    schema:
      - "https://api.newrelic.com/graphql":
          headers:
            API-Key: ${NEWRELIC_PERSONAL_TOKEN}
            Content-Type: application/json
    documents: "./src/app/graphql/requests/newrelic/*.graphql"
    config:
      avoidOptionals: true
      constEnums: true
      enumsAsTypes: true
      noSchemaStitching: true
      immutableTypes: true
    plugins:
      - typescript
      - typescript-operations
      - "@graphql-codegen/typescript-graphql-request"
require: []

Expected behavior

For the headers to be included and the graphql introspection to happen successfully.
Environment:

OS: OSX 10.15
@graphql-codegen/cli: "^1.21.1"
@graphql-codegen/typescript: "^1.21.0"
@graphql-codegen/typescript-graphql-request: "^3.0.2"
@graphql-codegen/typescript-operations: "^1.17.14"
@graphql-codegen/typescript-resolvers: "^1.18.2"
NodeJS: 12.x

Additional context

Thank you for reporting it @mscharley ,
I'm not sure how to address this issue, since I think you are the only person who reported it, and we don't have a reproduction we can try to run locally.
Can you please make sure that you are using the latest CLI, and also the latest version of @graphql-tools/ dependencies?

Versions are now this:
    "@graphql-codegen/cli": "^1.21.2",
    "@graphql-codegen/typescript": "^1.21.1",
    "@graphql-codegen/typescript-graphql-request": "^3.1.0",
    "@graphql-codegen/typescript-operations": "^1.17.15",
    "@graphql-codegen/typescript-resolvers": "^1.19.0",

I did ls node_modules/@graphql-tools and then ran npm update --depth 20 @graphql-tools/apollo-engine-loader @graphql-tools/batch-execute @graphql-tools/code-file-loader @graphql-tools/delegate @graphql-tools/git-loader @graphql-tools/github-loader @graphql-tools/graphql-file-loader @graphql-tools/graphql-tag-pluck @graphql-tools/import @graphql-tools/json-file-loader @graphql-tools/load @graphql-tools/merge @graphql-tools/optimize @graphql-tools/prisma-loader @graphql-tools/relay-operation-optimizer @graphql-tools/schema @graphql-tools/url-loader @graphql-tools/utils @graphql-tools/wrap to try to update all the transitive dependencies as well but that didn't do anything so I can only assume I'm on the latest allowed versions of all of those tools.
I'll look into seeing if I can spin up a public-facing repro case in the next few days, we don't have a seperate staging account with NewRelic so it's hard for me to give a repro there directly.

Heres a simple reproduction: https://github.com/mscharley/codegen-5655-repro
The exact error message is slightly different, but the root cause is the same. Environment variables aren't being passed through properly into the API-Key header. If you use a different API client and set the headers properly then it works.


interop test failure: cloud_to_cloud :c++:java_server:large_unary

I1215 02:24:23.591511737       1 client.cc:89]               Testing these cases: large_unary
I1215 02:24:23.593644870       1 interop_client.cc:273]      Sending a large unary rpc...
I1215 02:24:23.594385581       9 socket_utils_common_posix.c:148] Disabling AF_INET6 sockets because ::1 is not available.
D1215 02:24:23.600539505       1 frame_settings.c:243]       adding 983041 for initial_window change
E1215 02:24:23.612264459       1 interop_client.cc:164]      assertion failed: request->response_compression() == GetInteropCompressionTypeFromCompressionAlgorithm( inspector.GetCallCompressionAlgorithm())

https://grpc-testing.appspot.com/job/gRPC_interop_pull_requests/945/testReport/(root)/tests/cloud_to_cloud_c___java_server_large_unary/

Looks like this has to do with compression.
CC @ejona86

also https://grpc-testing.appspot.com/job/gRPC_interop_master/1680/testReport/

cc @carl-mastrangelo
grpc/grpc-java#1271 was recently committed, which may fix this issue. We're also aware of grpc/grpc-java#1278

Looks like the issue is that the rpc itself needs to be setting the compression algorithm, rather than being auto negotiated by the client.  The test checks that no compression happens by setting it to 0 in the call, but the java server still negotiates gzip.  I suspect this is because it is still in the accept headers, but I am not sure.

https://grpc-testing.appspot.com/job/gRPC_interop_master/1694/testReport/(root)/tests/cloud_to_cloud_c___java_server_large_unary/

Enabling the environment variable GRPC_TRACE=http might be a good way of debugging what the C++ client thinks it's receiving.

Yeah, that assert looks wrong, as it appears to be comparing a value in the response to the native gRPC compression. This seems related to some of my comments in grpc/grpc#3062 which haven't been addressed, but that I've also failed to push on getting fixed.

I've just talked to @carl-mastrangelo . @ejona86 , let's reconvene after meeting, ~3:30


Added license for AsyncIO.

Type: Incomplete
Summary:
Added license for AsyncIO.
Details:
This PR adds the license for the AsyncIO package.
Resolution:
The license is resolved to be MPL 2.0.
Affected definitions:

AsyncIO 0.1.26

@pombredanne - newer versions (e.g. https://www.nuget.org/packages/AsyncIO/0.1.60) include a source repo link.  And it appears the repo has MPL 2.0 since 2014.  Do you think that is enough evidence to curate this as MPL 2.0?


eg-sampler: Convert arbitrary non-mono audio files to mono

Makes the plugin a little bit more useful, as it is common-place to have both mono and stereo samples.
No mix-down happens, we simply use the data from the first channel.

Merged as 18c9919, thanks.


libgit2: recover from git2go panic

Some specific scenarios may lead libgit2 or git2go to panic.
Adding a recovery logic, ensures a predictable execution path for callers, and safeguards the controller's stability.
xref: https://github.com/fluxcd/flux2/issues/2593

Failing tests are orthogonal to the changes. :eyes:


add checkbox to toggle grid

https://user-images.githubusercontent.com/4692673/111260970-f4ba0e00-85de-11eb-99aa-5ca647de9fb1.mov

Sorry! This was meant for my fork :)

PS: love your work!

Oh, would love to merge this feature though!

ok, cool! I'll reopen then 😄

This looks good as is :)


[Feature][Connector-V2][Jira]Add Jira source connector

Purpose of this pull request

Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

Resolve the conflict.@hailin0 @Hisoka-X PTAL ,thanks.

#3018


Create document asks _id as required field.

When I'm creating a document, using postDocument method it asks for two fields as required fields. i.e. db and document. And in the db it searches for _id and throws illegal_docid error if not present.
In the previous nodejs-cloudant library _id was not a mandatory field. With just db_name we could create a document.
To Reproduce
Create document with just db name.
const productsDoc = CloudantV1.Document = {
    name: 'Document 1'
};
service.postDocument({
  db: 'products',
  document: productsDoc
}).then(response => {
  console.log(response.result);
}).catch(error => {
    console.log('=========> error: ', error);
})

Expected behavior
It should create document with just db name as mandatory field.
Screenshots
Error for not passing _id

Hi!
It looks to me you are trying to add a document to a partitioned database where it is necessary to add an _id like this: partition:id with the : separator between the partition id and the decument id.
If you try to add a document to a non-partitioned database, it will succeed even without an _id field.

Closing; as @mojito317 says if you use a non-partitioned DB then you can create a document with just a DB name and your document content (without any _id field).
_id is (and has always been) required for documents in partitioned DBs because the partition key is part of the _id and the database doesn't know which partition to store the document in without it.


Week 2

Homework prompts here

I think you can merge this! One thing I'll suggest though is to remove redundant functions---I'd simply choose the "best" one for each role, and then clean up the naming.


Incompatible with Illuminate\Support\Str::substr()

Hello, By any chance, did anyone encounter this error below when trying to send a message to AWS SQS Queue?
Environment

Laravel 9
PHP 8

Code

From Controller:

CreateSqsTaskJob::dispatch()->onConnection('sqs-fifo');

Code for CreateSqsTaskJob class

class CreateSqsTaskJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    // protected $data;

    public function __construct()
    {
        //
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
    }
}

queue.php connection

'sqs-fifo' => [
            'driver' => 'sqs-fifo',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'queue' => env('SQS_QUEUE'),
            'region' => env('AWS_DEFAULT_REGION'),
            'group' => 'default',
            'deduplicator' => 'unique',
            'queue_url' => env('SQS_QUEUE_URL'),
        ],

Error
ShiftOneLabs\LaravelSqsFifoQueue\Support\Str::substr()' is not compatible with method 'Illuminate\Support\Str::substr()

I've encountered the same error too...

Please read at the previous issue. It looks like the same and you'll find the solution.

Solution that worked for me.

Since this package looks outdated and isnt updated by the author anymore, Use aws-sdk-php package instead. It supports FIFO as well

https://github.com/aws/aws-sdk-php

Usage
use Aws\Sqs\SqsClient

$client = new SqsClient([
            'version' => 'latest',
            'region' => 'aws-region',
            'credentials' => [
                'key' => 'aws-access-key'
                'secret' => 'aws-secret-key',
            ],
        ]);

try {
            $client->sendMessage([
                'QueueUrl' => 'sqs.queue.url,
                'MessageBody' => 'Hello World from Local',
                'MessageGroupId' => 'group-id',
                'MessageDeduplicationId' => uniqid(),
            ]);
} catch (AwsException $e) {
            Log::info("Error sending message: " . $e->getMessage() . "\n");
}

@ziontavera , @ishigami , @davideprevosto ,
I appreciate the patience on this. The package has been updated to support both Laravel 9x and 10x, as well as PHP 8+. The new 3.0.0 tag for this support was released today.
Please let me know if you run into any more issues.
Thanks!
Patrick


[BUG] capture.array not working with imx296 and rpi-update > 6.6.31 on compute module 4 Bullseye 64bit

Please only report one bug per issue!
capture.array not working with imx296 and rpi-update > 6.6.31 on compute module 4 Bullseye 64bit
Describe the bug
when try capture.array the system crash with error reshape....
To Reproduce
Bullseye and rpi-update > 6.6.31 and use example directly

Hi, Bullseye is now our legacy OS, so we don't guarantee that things will continue to work on Bullseye with more recent kernels (critical patches get back-ported to the legacy kernel). Can you check:

That the camera still works with a fresh installation of the legacy OS (with no further updates or changes).
That the camera works with a fresh installation of Bookworm (with all the latest updates).

If either of those fails, please include an exact script that provokes the failure (I'm assuming that would be half a dozen lines or so).
It sounds like your best course of action would be to upgrade to the latest Bookworm - is that possible for you?


Invoke addBatch of targetStatement if not in global transaction

When it is not in global transaction,  invoking DefaultSqlSession.insert method of ibatis with a list of records would eventually call AbstractPreparedStatementProxy.addBatch method.

Codecov Report

Merging #1265 into develop will decrease coverage by 0.01%.
The diff coverage is 0%.

@@              Coverage Diff              @@
##             develop    #1265      +/-   ##
=============================================
- Coverage      49.47%   49.45%   -0.02%
  Complexity      1651     1651
=============================================
  Files            326      326
  Lines          11439    11442       +3
  Branches        1415     1415
=============================================
  Hits            5659     5659
- Misses          5153     5156       +3
  Partials         627      627

Impacted Files
Coverage Δ
Complexity Δ

.../rm/datasource/AbstractPreparedStatementProxy.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Don't sort players in team anarchy games by anarchy points

I have a transpile for this, what's the intended sorting algorithm?  (Example below is using the stock algo)
[HarmonyPatch(typeof(UIElement), "DrawScoresForTeam")]
    class MPTeams_UIElement_DrawScoresForTeams
    {
        static List<int> SortTeamScores(List<int> list)
        {
            List<Player> players = Overload.NetworkManager.m_PlayersForScoreboard;
            list.Sort((int a, int b) => ((players[a].m_kills * 3 + players[a].m_assists).CompareTo(players[b].m_kills * 3 + players[b].m_assists) != 0) ? (players[a].m_kills * 3 + players[a].m_assists).CompareTo(players[b].m_kills * 3 + players[b].m_assists) : players[b].m_deaths.CompareTo(players[a].m_deaths));
            list.Reverse();
            return list;
        }

        static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> codes)
        {
            foreach (var code in codes)
            {
                if (code.opcode == OpCodes.Callvirt && code.operand == AccessTools.Method(typeof(System.Collections.Generic.List<Int32>), "Reverse"))
                {
                    yield return code;
                    yield return new CodeInstruction(OpCodes.Ldloc_2);
                    yield return new CodeInstruction(OpCodes.Call, AccessTools.Method(typeof(MPTeams_UIElement_DrawScoresForTeams), "SortTeamScores"));
                    yield return new CodeInstruction(OpCodes.Stloc_2);
                    continue;
                }
                yield return code;
            }
        }
    }

Intended algorithm would be:
b.kills - a.kills || b.assists - a.assists || a.deaths - b.deaths
Or, in plain English, Kills Descending first, then Assists Descending second, then Deaths Ascending last.


Hotkeys cleared on page reload?

If you define hotkeys in a property on the route configuration, they're bound on $routeChangeSuccess. However, if you reload the same route, $routeChangeSuccess is not fired again and all of the hotkeys are cleared out during bootstrap. Is there a way to persist hotkeys defined in the route configuration through reloading the same page?

I can't tell if I'm having the same issue described or something different.  Basically, when I define hotkeys on one route, everything works as expected.  Then when I move away to another route and then back the original, the hotkeys seem to be firing the appropriate function in $scope, however, any directives watching data aren't evaluated as if the angular digest loop isn't kicking off.
Example:
http://www.seminull.com/angular/hotkeys
Page1 has the hotkey '/' defined.  It'll show a div by setting some data to true.
Navigate to Page2 and then back to Page1 and you can see in the console that the function is invoked, however the div does not show.


Update SPIRV-Cross

bors r+

cc @zakorgy
We'll still need to update gfx unless you plan to do it locally for now


Add the mach_init_routine symbol to our libSystem

This currently breaks iperf, but will probably cause trouble for other builds that use debug flags.

This was fixed, right?

I think so!


Flickering on Windows when using bubbletea >=0.26.0

Describe the bug
I tried updating to Bubbletea v0.26.0 (and also .1/.2) but the output seems to flicker a lot when running on Windows.
Setup
Please complete the following information along with version numbers, if applicable.

OS: Windows 11 Build 22621
Shell: Powershell Core (also tried on cmd)
Terminal Emulator: Windows Terminal (also tried on Wezterm)
Terminal Multiplexer: None

To Reproduce
I don't have a minimal reproducible example yet, but noticed this while updating dependencies on my project, linked below. Specifically the client binary which uses bubbletea for the UI.
Source Code
Available here: supleed2/go-chat
Expected behavior
Stable output as with v0.25.0, observed with binaries available at: https://github.com/supleed2/go-chat/releases/tag/v0.1.2
Ideally with the new ability to resize :)
Screenshots
GIF to demonstrate:

Okay awesome, thanks for reporting this. There's seems to be a bug in Windows where going in and out of the altscreen can fire off an infinite loop of WindowResizeMsgs. This wasn't the case in prior versions of Bubble Tea because resize events weren't possible.
We're looking into a fix but for your immediate case you can actually just remove this line, which seems to have been left in by mistake:
diff --git a/client/main.go b/client/main.go
index b8fe61a..37b8bd7 100644
--- a/client/main.go
+++ b/client/main.go
@@ -246,7 +246,6 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 			m.input.Reset()
 		}
 	case tea.WindowSizeMsg:
-		clCmd = tea.Sequence(tea.ExitAltScreen, tea.EnterAltScreen)
 		m.history.Height = msg.Height - 2
 		m.history.Width = msg.Width
 		m.history.GotoBottom()

🤦 I just have to say thank you so much for digging through and noticing what was wrong with my code.
Yes that was left in, from a previous attempt where I thought maybe exiting and re-entering altscreen would cause new Height/Width values to be used.
Just tested removing the line and yep, works exactly as expected, including resizing! ❤


Add will message for the broker side

add will message processing for the broker side

Please commit to master branch.

Close due to creating a new pr #254 .


Update Utils.java

fix: Kusto now returns null cells which cannot be cast to string, thus failing the getString method.

Can you please merge it into dev, and not into master?


:bug: fix icon scaling

Why
On 4K monitors especially, the icons are too small and do not scale properly with the Godot editor.
What
I updated the import settings to ensure icons now are displayed correctly. Individual test icons are still tiny but this is due to the height of the UI component by the looks of it.
Before

After

Thanks for providing this fix. i will have a look in the next days

continue on https://github.com/MikeSchulze/gdUnit4/pull/253


Impose uniform naming pattern on all conf files

Back when we switched from TP2 to TP3, I disabled titan-dist as a matter of triage, since removing Faunus and adding the new plugin system meant we had to make some major changes there.   I recently remade titan-dist on titan09 in the following commits:

7193e97bf70ab7ebbfcd55e1f279ac577fdfbaeb
eada6263cdc0352336c6ffb3e1001177d26bb082
3b10ffa08c970ac83844541fc436fc62aaa05a24

As part of that titan-dist refactoring, I also renamed our config files and moved some into their own system-specific subdirectories under conf (for cassandra, es, solr, and gremlin-server).  I also removed the conf/hadoop config files, since Faunus is gone.  Now we just have to worry about the names of Titan config files.  I think the config file naming scheme is consistent now.  Here's conf (entries with a trailing / are dirs):
cassandra/
es/
gremlin-server/
log4j-console.properties
remote-objects.yaml
remote.yaml
rexster-cassandra-es.xml
rexster-cassandra.xml
solr/
titan-berkeleyje-es.properties
titan-berkeleyje.properties
titan-cassandra-embedded-es.properties
titan-cassandra-embedded.properties
titan-cassandra-es.properties
titan-cassandra.properties
titan-hbase-es.properties
titan-hbase.properties

On the other hand, I may have just stared at these filenames so long that I've lost all sense of objective taste, in which case a reopen with suggestions would be most welcome.


Error upgrading to umbraco version 7.6

When I upgraded my umbraco nuget package to 7.6, the backend asks you to log in to authorise the upgrade, when I tried to log in, I got an error thrown from this line OAuth.cs - throw new Exception($"And endpoint for the realm "{realm}" has not yet been configured. Please call ConfigureEndpoint first.");
I had to comment this line out and just return config from the GetContext method for the upgrade process to work, after this I could reset this file to before and it worked fine.

Closing this issue, we can continue the discussion in the PR #7


README rewrite

Currently root directory README.md is about how to set up the backend. Find a better place for backend README to live, write a new README.md for newcomers

DONE.


metal binary complains about private key

working off of the beta.5 bits, if I run:
metal destroy QA1T3NDEVOPSLABCHEF01

I receive this error:
[2014-05-28T13:43:09-07:00] INFO: Starting chef-zero on port 8889 with repository at repository at /home/mwrock/dev/DevOps/chef-repo
  One version per cookbook

{:chef_server_url=>"http://<IP_ADDRESS>:8889", :options=>{:client_name=>"mwrock", :signing_key_filename=>"/home/mwrock/dev/DevOps/chef-repo/.chef/mwrock.pem"}}
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-authentication-1.3.0/lib/mixlib/authentication/signedheaderauth.rb:94:in `private_encrypt': private key needed. (OpenSSL::PKey::RSAError)

Note that
{:chef_server_url=>"http://<IP_ADDRESS>:8889", :options=>{:client_name=>"mwrock", :signing_key_filename=>"/home/mwrock/dev/DevOps/chef-repo/.chef/mwrock.pem"}}

is output I hacked in to see the server info.
I'm still figuring my way around chef keys but the above key mwrock.pem is a key that is in my knife.rb and configured for an actual chef server.
Thanks!

@mwrock Both chef-provisioning and chef-client have come a long way: is this still an issue?

Wow yeah. It has been a while. Just looked at this again and it looks like metal is no longer included in the gemspec's executables as of 37ec6ea so its no longer available at the commandline. I'm gonna close this since it appears this has been abandoned.


Could we package a release version？

Could we package a release version？

hi, @facontidavide . May this request take a moment of your time to tag it, and give it a version number.
Thanks a lot.

releasing for melodic and noetic

thanks a lot : )

@facontidavide The releases did not go well. Could you please have a look at it?


Update to Ice & Fire 2.0

These fixes result in RLTweaker being updated to Ice & Fire 2.0 (of the Ice & Fire: RLCraft Edition fork), which already includes the majority of the fixes for Ice & Fire contained in RLTweaker. As a result, I have removed these associated fixes. Furthermore, since Ice & Fire 2.0 includes changes to the stoned mob API, we have also updated the stoned mob checks to utilize this updated API.

I'm pretty sure the stoned kobold fix is unnecessary because I have fixed this issue in LycanitesMobs but I haven't checked. If that is the case, then the IceAndFireHandler class and IceAndFireReflector class have to be removed as well.
Also, all IceAndFire-related config options should be removed. This probably only includes some fields of the PatchConfig class and the IceAndFireConfig class (and wherever it is used).

I'm pretty sure the stoned kobold fix is unnecessary because I have fixed this issue in LycanitesMobs but I haven't checked. If that is the case, then the IceAndFireHandler class and IceAndFireReflector class have to be removed as well.
Also, all IceAndFire-related config options have to be removed. This probably only includes some fields of the PatchConfig class and the ConfigIceAndFire class (and wherever it is used).

I have verified that this patch was incorporated into the Ice & Fire fork, and therefore is unnecessary here. As a result, I've removed all of the Ice & Fire handling / tweaks. Well, withstanding the generic tweaks the additionally apply to Ice & Fire mobs, such as the entity collision and AI tweaks.

I assume EntitySeaSerpentBubbles doesn't need the less collisions patch of RLTweaker, right?
The ConfigIceAndFire and IceAndFireReflect classes are not deleted yet.


Update css of sidebar, site and about

Use small round corner design.
looks like

now

The part of list and iso will be done later.


Typo fix

Coverage remained the same at 84.84% when pulling 2d6f585247fe2d2d6c1f62eb345e2d5b7bf81597 on jensenbox:patch-1 into 55bc48d2a106405f7f796a259ecfc4297c93340c on jhalterman:master.

Thanks!


Add page option to GA Event tracking of Outcomes

NOTE. The use of ga() is an interim measure while we work out whether this
records the data we're interested in.
Chris Russell highlighted a problem with our tracking of the outcome pages. The
reports show the "Completed" event being fired on the Smart Answer start pages
(e.g. /student-finance-forms/y).
This is because of the way Smart Answers uses JavaScript to partially replace
the page when navigating through the flow. The location recorded with the
Event is that of the start page instead of the outcome page.
We already have to work around this in our pageview tracking of Smart Answers.
We do that by passing the current URL as the page option to ga() (via
trackPageView()).
I'm fairly confident that I can use the same technique to record the actual
page we're looking at by passing the current URL as the page option to
ga(). Unfortunately, GoogleAnalyticsUniversalTracker.trackEvent()
doesn't support the setting of the page option which is why I've used ga()
directly.
Assuming sending the page option does what we're after (i.e. we start getting
useful Analytics data) then I'll make the change to govuk_frontend_toolkit to
support this option properly.
The Google Analytics debugger shows me the data sent to Google Analytics
before and after this change:
Before
Command: ga("send", {hitType: "event", eventCategory: "Smart Answer",
eventAction: "Completed", eventLabel: "student-finance-forms", nonInteraction:
1})
Location (&dl): https://www.gov.uk/student-finance-forms/y
Page (&dp): Not Set
After
Command: ga("send", {hitType: "event", eventCategory: "Smart Answer",
eventAction: "Completed", eventLabel: "student-finance-forms", nonInteraction:
1, page: "/student-finance-forms/y/eu-full-time/year-1415/new-student"})
Location (&dl): http://smartanswers.dev.gov.uk/student-finance-forms/y
Page (&dp): /student-finance-forms/y/eu-full-time/year-1415/new-student
This is much closer to what we send for the virtual pageview:
Command: ga("send", "pageview", {page:
"/student-finance-forms/y/eu-full-time/year-1415/new-student"})
Location (&dl): https://www.gov.uk/student-finance-forms/y
Page (&dp): /student-finance-forms/y/eu-full-time/year-1415/new-student

LGTM :+1:

Manually merged in ae2a25570d43e7686bc1ff625758273280f6bc72.

It sounds as if this is related to https://github.com/alphagov/frontend/pull/841.


Customizing output format

Ref #573, #565, #553, #456, #453, #402, #578, #526, #525, #488
Right now it's very clear that debug takes a subjective stance on its output format. This is unsuitable for a variety of use-cases, especially the disparity between the isatty(2) == 0 and == 1 cases.
Let's figure out how to solve this.

My initial knee-jerk idea would be to introduce a DEBUG_FORMAT environment variable. It would accept a string with delimiters similar to date-time or printf formats that indicate different elements of a debug log.
This would also remove the need for a plethora of custom environment variables that have been proposed.
We'd have a default format that would then be the same between interactive/non-interactive TTY sessions (fd 2, as always).
This would look something like
DEBUG_FORMAT="%N %m %D"

Where %N is the namespace (colored if interactive terminal), %m is the message and %D is the time diff - the exact format in the screenshot in the readme.
Of course there would be other delimiters available, and the above doesn't necessarily need to be the default, but it would solve pretty much any use-case imaginable regarding the output format in a non-subjective manner.

That's just my personal proposal, but this RFC is after any solution, so if you have a different idea please sound off below.

Huge 👍 to this proposal, basically as-is. Env based configuration is the only one that really makes sense to me for this module.

This could also be a reason to remove all but DEBUG and DEBUG_DEPTH environment variables, too. cc @TooTallNate @thebigredgeek

Here's how I prepend [ YYYY/MM/DD - HH:mm:ss ] to all debug output lines:
var moment = require('moment');
var debug = require('debug');
debug.formatArgs = formatArgs;
function formatArgs(args) {
    let name = this.namespace;
    let useColors = this.useColors;
    let dateTime = '[' + moment().format('YYYY/MM/DD - HH:mm:ss') + ']';
    if (useColors) {
        let c = this.color;
        let colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c);
        let prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m';
        args[0] = dateTime + prefix + args[0].split('\n').join('\n' + '                       ' + prefix);
        args.push(colorCode + 'm+' + debug.humanize(this.diff) + '\u001b[0m');
    } else {
        args[0] = dateTime + name + ' ' + args[0].split('\n').join('\n' + '                       ' + name);
    }
}

Alright, formally accepting this then. No objections for a while.
Further, since this would be a major change (since I think we'd want to clear out DEBUG_HIDE_DATE - as well as include a number of other PRs) - we could backport this to versions 3 and 4 as a minor change (without removing DEBUG_HIDE_DATE).
Then all code would be able to benefit a little bit more, I think.

How would DEBUG_FORMAT for logging the time based on a specific timezone look like? I'd like to help with implementing this PR (or some parts of it) if I could get some more details of what formats are allowed.

In lieu of having all of the date/time specifiers as individual flags (since that eats up a lot of the available upper/lower alphabet) I propose a slightly less-conventional way of doing it:
DEBUG_FORMAT='%{M-h-D-Z} %n %m %+'

In this hypothetical:

%{} is for time formats using the specifiers in the official strftime documentation.
%n is the namespace
%m is the message
%+ is the delta time

I'm not 100% on the latter three, I just wanted to demonstrate how the time specifier (%{}) would look.

Referring to https://github.com/visionmedia/debug/issues/442#issuecomment-443757866:

const debug = require('debug')('rest:debug:myEndpoint', {output: 'JSON'})

Definitely not - the end consumer of the application should have full control over the output format. This would result in many different output formats, which would make this library useless to most people.

DEBUG=*;format:JSON node myScript.js

This would be a breaking change as it's using namespaces for something they aren't designed to do.

In reality, you could argue that prefixing J to any one flag would run it through JSON.stringify().
For example, if %m is the message, then %Jm is the message passed through JSON.stringify().
It's not uncommon to prefix flags for extended functionality, so this wouldn't be breaking 'the UNIX way' either.

Thank you @Qix- , not sure which would be the best way to fit JSON output to "debug" library, but it definitely will be a great feature add. I'm already having several projects that would have big benefits having logs in json and sure many other people would find it useful too.

Please forgive my lack of understanding, but was anything done here?
I, for example, want the non-TTY output to have the same "time since last message" part as the node console gets. But I'm confused by this post. I can't tell if such a feature was added or it's still being discussed.

It's still being discussed.

Haha woops I didn't expect it to be notified here
Hello! As that commit says, I decided to have a go at trying to implement this -- for now it's incomplete (only works on the node side, doesn't respect DEBUG_HIDE_DATE, doesn't do any date formatting, etc) and I ended up with a few problems. It's also my first attempt at participating to another project, so I don't really know how everything should go (and I'm intimidated), sorry!
The current code is at https://github.com/chagris/debug/tree/format (diff at https://github.com/visionmedia/debug/compare/master...chagris:format ).
What I've tried to do is

move formatArgs from node.js into common.js's debug() (however I don't know how well it'll work with the browser.js's side)
add outputFormatters similar to how formatters already exist (but handled in a bit of a hardcoded way for %{DATE} and %J*)
in debug(), parse DEBUG_FORMAT and output a new array with the original arguments somewhere in the middle
node.js's formatArgs() is replaced by a generic applyColor()

The problems I've come up with are

I'm not sure if "hardcoding" how the "output as JSON" %J* and date %{} outputModifiers are handled is the correct way to go
I don't know how to handle time; the few libs I've seen use strftime's %* delimiters, so I propose formatting time this way (%{%H:%M:%S}), where any delimiter inbetween {} is not handled by debug's outputFormatters. I also don't know which lib would be fine to add as a dependency (browser-wise) -- or if you guys want to implement all this into debug?
with the way I implemented things (a new array with each of DEBUG_FORMAT's non-delimiters and replaced-by-formatters' element, concatenated with the original args), util.format() automatically adds a space between each elements, which forces a space between each of DEBUG_FORMAT's elements
(for example, DEBUG_FORMAT='%n: %m' results in namespace :  message instead of namespace: message)
(The other way I thought about implementing it is would be to split DEBUG_FORMAT at the %m delimiter, format the "before" and "after" parts into strings, then unshift and push them to the original args. However it also "hardcodes" how the %m delimiter is handled... Maybe there could be a DEBUG_PREFIX and DEBUG_SUFFIX ?)
Not sure if "hardcoding" how outputFormatters's return values are concatenated into the main args if they're an array is the correct way to go.

I didn't try to add other delimiters than what has been discussed here for now (like the global time diff).
I'd like input on it and would be happy to change / clarify anything. I'm also not sure if I should make a pull request to get all the fancy diff / review tools since my current code is incomplete, or if it'd be better to do the changes on my fork for now?
Thanks for your time!

@chagris this looks like a great start :) If you open up a PR and tick the box that says "allow maintainers to push commits", I'd be happy to start going through rounds of feedback and guide you through the PR process :)

Maybe to get rid of DEBUG_COLOR there could be a flag prefix similar to %J* for JSON, that'd pass the outputFormatter's output to applyColor() (for example %cn would colorize the namespace, and %Cn would color it and make it bold (on node)?)
This'd make an excuse to somewhat standardize "flag prefixes" instead of having that if for JSON.stringify -- but I can't really think of more useful prefixes than those. And again, I don't know how feasible coloring would be on the browser side

I can't either, I think %J* would be a special case (one of the few, if not the only special case).
I think DEBUG_COLOR should also go away, as will DEBUG_HIDE_DATE, of course.

I suggest to add %P to add the process.pid.

Is a version available in a relatively stable state that supports DEBUG_FORMAT ? I would like to add my own prefix to all statements (across the entire process) to make tracking in AWS LogInsights easier.
I would envision like this at the very beginning of the process:
process.env.DEBUG_FORMAT=${process.env.PROCESS_UNIQ_ID} %N %m %D

Here's how I prepend [ YYYY/MM/DD - HH:mm:ss ] to all debug output lines:
var moment = require('moment');
var debug = require('debug');
debug.formatArgs = formatArgs;
function formatArgs(args) {
    let name = this.namespace;
    let useColors = this.useColors;
    let dateTime = '[' + moment().format('YYYY/MM/DD - HH:mm:ss') + ']';
    if (useColors) {
        let c = this.color;
        let colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c);
        let prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m';
        args[0] = dateTime + prefix + args[0].split('\n').join('\n' + '                       ' + prefix);
        args.push(colorCode + 'm+' + debug.humanize(this.diff) + '\u001b[0m');
    } else {
        args[0] = dateTime + name + ' ' + args[0].split('\n').join('\n' + '                       ' + name);
    }
}

@SCG82 can your code snippet be used to apply to all instances of debug throughout the application?
For example, I would run that code once in my index.js and prepend all debug's output with a reference ID (to be used in log crawlers later).

@SCG82 can your code snippet be used to apply to all instances of debug throughout the application?
For example, I would run that code once in my index.js and prepend all debug's output with a reference ID (to be used in log crawlers later).

I have all my debug variables in a separate module, debug-vars.js, which I include in all my project's files:
const debug = require('./debug-vars.js');

debug.warning('something went wrong...');

debug-vars.js:
const debug_module = require('debug');

const debug = {
  debug: debug_module('myapp:debug'),
  error: debug_module('myapp:error'),
  info: debug_module('myapp:info'),
  warning: debug_module('myapp:warning')
};

debug_module.formatArgs = formatArgs;

function formatArgs(args) {
  const name = this.namespace;
  const useColors = true;
  const now = new Date();
  const offsetMs = now.getTimezoneOffset() * 60 * 1000;
  const dateLocal = new Date(now.getTime() - offsetMs);
  const space = '                       ';
  const str = dateLocal.toISOString().slice(0, 19).replace(/-/g, '/').replace('T', ' - ');
  const dateTime = '[' + str + ']';
  let prefix = '';
  if (useColors) {
    const c = this.color;
    const colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c);
    prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m';
    args[0] = dateTime + prefix + args[0].split('\n').join('\n' + space + prefix);
    args.push(colorCode + 'm+' + debug_module.humanize(this.diff) + '\u001b[0m');
  } else {
    prefix = ' ' + name + ' ';
    args[0] = dateTime + prefix + args[0].split('\n').join('\n' + space + prefix);
    args.push(debug_module.humanize(this.diff));
  }
}

module.exports = debug;

Just curious what sort of progress has been made on this. I see it's on the list for the 5.x milestone. It would be a really nice feature to be able to use.

For people looking for this feature, maybe have a look at ulog. It's very similar to debug, even to the point of being mostly backward compatible with it, but it does feature configurable formatting. Disclaimer: I'm the author of that package. It's currently going through a series of betas on it's way to v2 and I'm looking for feedback.

I'm honestly only in this thread because I want debug to stop automatically returning seconds and instead always return milliseconds.
  ChannelChecker getting channel_id<PHONE_NUMBER> +2ms
  ChannelChecker getting channel_id 891441386 +2ms
  ChannelChecker getting channel_id<PHONE_NUMBER> +1ms
  ChannelChecker getting channel_id<PHONE_NUMBER> +3ms
  ChannelChecker getting channel_id<PHONE_NUMBER> +2s
  ChannelChecker getting channel_id 815734771 +2ms
  ChannelChecker getting channel_id 388112384 +1ms
  ChannelChecker getting channel_id<PHONE_NUMBER> +3ms
  ChannelChecker getting channel_id<PHONE_NUMBER> +1ms
  ChannelChecker getting channel_id<PHONE_NUMBER> +3ms
  ChannelChecker getting channel_id 969553134 +3ms

It's easy to miss that one call took 1000x longer.

@Joshfindit the problem there is that sometimes events don't happen for hours at a time. Millisecond triviality goes out the window at that scale. Hence why we use ms.

@Qix- It’s your package, it’s bot for me to tell you what’s right for you or other users, that’s just why I’m here. Custom output will let me accomplish it.

I'm honestly only in this thread because I want debug to stop automatically returning seconds and instead always return milliseconds.

Same. Here's a solution:
debug.humanize = ms => `${ms}ms`;

function humanize(ms: number): string;
function humanize(ms: string): number;
function humanize(ms: number | string): string | number {
  return `${ms}ms` as string;
}
debug.humanize = humanize;

Yep @dimitarnestorov's way is currently the "official" way of doing it and is entirely acceptable.

If you stumble across this issue while trying to enable timestamps for GHA log, here is the good bit:
GitHub Actions now provides timestamps by default with "shift + T" in the logs.

Here's how I prepend [ YYYY/MM/DD - HH:mm:ss ] to all debug output lines:
var moment = require('moment');
var debug = require('debug');
debug.formatArgs = formatArgs;
function formatArgs(args) {
    let name = this.namespace;
    let useColors = this.useColors;
    let dateTime = '[' + moment().format('YYYY/MM/DD - HH:mm:ss') + ']';
    if (useColors) {
        let c = this.color;
        let colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c);
        let prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m';
        args[0] = dateTime + prefix + args[0].split('\n').join('\n' + '                       ' + prefix);
        args.push(colorCode + 'm+' + debug.humanize(this.diff) + '\u001b[0m');
    } else {
        args[0] = dateTime + name + ' ' + args[0].split('\n').join('\n' + '                       ' + name);
    }
}

@SCG82 when I try to do that, name and useColors are undefined
doesn't it require debug.formatArgs = formatArgs.bind(debug) or something (which isn't works as well?

For years now I have been working on and off on a package called ulog, which is actually heavily inspired by debug. In ulog, I wanted to be compatible with debug as much as possible while at the same time supporting log levels and output formatting, so II came up with an extension to debug's configuration mechanism. Here is how you configure formatting in ulog:
log_format=lvl name perf message;my:*=lvl name perf

The lvl, name, perf etc you see in this config string are formats and besides some default formats you can easily add your own custom formats and that system is actually pretty powerful. You can add new custom formats like this:
import ulog from 'ulog'
import formats from 'ulog/mods/formats'
ulog.use({
  use: [ formats ],
  formats: {
    custom: (ctx) => (rec) => (['custom'].concat(rec.message)),
    random: (ctx, rec) => () => Math.random()
  }
})

If you are reconsidering how formatting should work in debug, it might be worthwhile to have a look at how I implemented it.

In case anyone needs to strip the output format down to just the content, this worked for me:
function formatArgs(this: debug.Debugger, args: any[]) {
  args.push(debug.humanize(this.diff));
  args.pop();
}
debug.formatArgs = formatArgs;


Add loanPayback rpc

What kind of PR is this?:

/kind feature
What this PR does / why we need it:

Add loanPayback rpc

cover amounts
https://github.com/DeFiCh/jellyfish/pull/661#discussion_r716370270

some refactoring - split describe to success and failed
https://github.com/DeFiCh/jellyfish/pull/661#pullrequestreview-761683365

Which issue(s) does this PR fixes?:

Fixes part of #488
Additional comments?:

Add 2 more tests

If calling loanPayBack without deposit any collateral tokens, you should get Vault with id %s has no collaterals
Try calling loanPayBack two times, and for every time, pay back only half on the loan amount

* Try calling loanPayBack two times, and for every time, pay back only half of the loan amount (Will the interest rate need to be paid reduced after calling loanPayBack for the first time?)

the interest has not included in loan yet (ain will fix it)

* Try calling loanPayBack two times, and for every time, pay back only half of the loan amount (Will the interest rate need to be paid reduced after calling loanPayBack for the first time?)

interest won't be accrued within an auction progress
interest charged is not included yet after liquidated <-- issue, ain will fix

Also can add a test like this to takeloan RPC tests for completion.
https://github.com/DeFiCh/jellyfish/blob/6e4ece7bc73572bd83e6d81bf78d709e3fbf6013/packages/jellyfish-transaction-builder/__tests__/txn/txn_builder_loan_take_loan.test.ts#L262

hmm.. i don't quite understand this request...


update scorecard certifier to use graphQL query

Currently in draft until the ID/back edge work has been completed on the in-memory backend.
Addresses issue #571 to update source_artifact in components  and fixes #573

Closing this PR as it is out of date and changing the implementation.


Test output - select/scroll into view when clicking on a test

Testing #186245
At the moment clicking on a test in the Test Results treeview highlights the test in the Test Explorer. It would be nice if it would also select/highlight/scroll the test output.

We now do this, as of a little while ago.


Add lswt and wlopm

This adds two new tools I recently created, lswt and wlopm, which are useful for compositors that implement the zwlr-output-power-management-unstable-v1 and wlr-foreign-toplevel-management-unstable-v1 protocol extensions.

Thank you! Looks good to me.


Static path planning with optimization

Checklist

[X] I've read the contribution guidelines.
[X] I've searched other issues and no duplicate issues were found.
[X] I've agreed with the maintainers that I can plan this task.

Description
Currently, the on-line path planning with optimization realizes

smooth curvature
footprints inside the drivable area

However, the on-line path planning has following disadvantages.

We don't know the path shape beforehand. We can know it only when the vehicle runs.
Sometimes the issue happens with the optimization (e.g. optimization fails), and we notice it when the vehicle runs.

In order to know that there is no issue on the map with the optimized path, static path planning with optimization is required.
Purpose

In order to know that there is no issue on the map with the optimized path

Possible approaches
Create a script

Input: map, start/goal lanelet ids
Output: optimized path (and debug message if the optimization succeeded or not)

This script contains

map_loader

to load a lanelet map

mission_planner

to navigate a route from start lanelet to goal lanelet

obstacle_avoidance_planner

to optimize the path
as a library.

Therefore, map_loader, mission_planner, obstacle_avoidance_planner also need to be modified to be called from the script.
Definition of done
get the optimized path from the lanelet map and start/goal lanelet ids with one script.

The package for static path planning has been already merged.
https://github.com/autowarefoundation/autoware.universe/pull/2013


Oldie

@hankhsiao @thierryk

CLA is valid!

Coverage decreased (-12.62%) to 87.38% when pulling b78d9cc28d18a20e21b797605818e5636f48a5f5 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

Coverage remained the same at 100.0% when pulling b78d9cc28d18a20e21b797605818e5636f48a5f5 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>246b9db8bfdf8540d626f96eb74651 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>246b9db8bfdf8540d626f96eb74651 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

:ship:

Coverage remained the same at 100.0% when pulling bd015196d71b0a05198dca8b52e0345371eb3962 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

Coverage remained the same at 100.0% when pulling bd015196d71b0a05198dca8b52e0345371eb3962 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

Coverage remained the same at 100.0% when pulling bd015196d71b0a05198dca8b52e0345371eb3962 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.

Coverage remained the same at 100.0% when pulling bd015196d71b0a05198dca8b52e0345371eb3962 on oldie into 6a5217f62a02932eb9ec59a6b1ada516a0383fca on master.


Fix #4710: Specify our javalib extended binary API.

We introduce a new library javalibintf, which is Java-only and contains no implementation. It only defines the extended binary API of our javalib.
There were two areas in which the javalib silently exposed an extended API: TypedArray Buffers, and the column number of StackTraceElements. We now define well-specified APIs as static methods for all these secret APIs.
The APIs specified in Java by javalibintf are implemented in Scala.js by the javalib. They are used from the scalajs-library. The library depends on javalibintf in the Provided scope, so that it is available at compile-time (and in IDEs) but does not transitively appear in clients of the library. This is important because the APIs are weakly typed when it comes to JavaScript types such as TypedArrays. We do not want regular user to get access to them too easily.
The TypedArrayBuffer API replaces the need for the TypedArrayBufferBridge hack in the build.
The StackTraceElement API is not currently used anywhere, because we did not have any feature in the library using them. So far, only the "reflection" API was specified. We may want to introduce a safer API in the library in the future.
We do publish the javalibintf, as it may be used by other language implementations. It will also be useful to be able to MiMa-check future versions of the javalibintf.

If #4712 is merged before this PR, we should update the code in javalibintf/StackTraceElement.scala to use the new constructor of java.lang.StackTraceElement.

Rebased, and adapted the call to the constructor of StackTraceElement.

Updated with a first commit that gets rid of the wrapArrayBuffer overloads in the interface first.


feat: Initial support for TailLoop as circuit parent

The problem with tail loops at the moment is that "iterating commands/operations" is not clearly defined.
Currently the command iterator only runs on flat regions with no control flow, and just emits TailLoop/Conditional/CFG commands.
This is rather in the edge between the circuit abstraction and full-fledged HUGRs. We should probably delineate what should a Circuit be before merging this.


releasing this library to the Arduino Library Manager

Hello,
first, thanks for this great library! It just works and lets me do other things, not worrying about the display :-)
Would you release it to the Arduino Library Manager?
Looks like everything is set here so it should only need to be submitted: https://github.com/arduino/library-registry#adding-a-library-to-library-manager
The lint check mentioned there was done by me, all is ok.
I can help making this submission if you like.
greetings from Austria,
Stephan

Should be done now...

Thanks! Yes it works 👍


perspective-jupyterlab not publishing to dist package

Was added here: https://github.com/jpmorganchase/perspective/commit/fe689257923a955221e5332f0130ef07251a6d88#diff-9d8f23b3f4bb47ef250d6f6a116df908
Then you re-broke it here:
https://github.com/jpmorganchase/perspective/commit/627ac4829d056d0932cae5d3586430d494484624#diff-9d8f23b3f4bb47ef250d6f6a116df908

Thanks for the report!  This has been "fixed" and was disted in 0.2.19, then superseded by #467