PartitionConsumer.Close() hangs frequently

I have a difficult time to recreate the exact issue, since it is intermittent, but it happens frequently enough to be a problem. Calls to PartitionConsumer.Close() tend to hang in https://github.com/Shopify/sarama/blob/6e7ef3c/consumer.go#L341 because the errors channel is never closed by the dispatcher in https://github.com/Shopify/sarama/blob/6e7ef3c/consumer.go#L260. When I dump my goroutines, I can see that it's hanging in https://github.com/Shopify/sarama/blob/6e7ef3c/consumer.go#L231. Does AsyncClose() need an additional client.trigger <- none{}?

Could you provide the complete goroutine trace? The client.trigger channel should be closed by updateSubscriptionCache when it detects that the dying channel has closed.

Here's the relevant bits:
goroutine 44 [chan receive]:
github.com/Shopify/sarama.(*Broker).responseReceiver(0xc2080b40e0)
  /home/me/go/src/github.com/Shopify/sarama/broker.go:332 +0xe3
github.com/Shopify/sarama.*Broker.(github.com/Shopify/sarama.responseReceiver)·fm()
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x27
github.com/Shopify/sarama.withRecover(0xc2080d61b0)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.func·001
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x535

goroutine 57 [chan receive]:
github.com/Shopify/sarama.(*Broker).responseReceiver(0xc2080b4540)
  /home/me/go/src/github.com/Shopify/sarama/broker.go:332 +0xe3
github.com/Shopify/sarama.*Broker.(github.com/Shopify/sarama.responseReceiver)·fm()
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x27
github.com/Shopify/sarama.withRecover(0xc2080d6760)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.func·001
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x535

goroutine 54 [select]:
github.com/Shopify/sarama.(*Client).backgroundMetadataUpdater(0xc2080b4150)
  /home/me/go/src/github.com/Shopify/sarama/client.go:455 +0x285
github.com/Shopify/sarama.*Client.(github.com/Shopify/sarama.backgroundMetadataUpdater)·fm()
  /home/me/go/src/github.com/Shopify/sarama/client.go:75 +0x27
github.com/Shopify/sarama.withRecover(0xc2080d6670)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.NewClient
  /home/me/go/src/github.com/Shopify/sarama/client.go:75 +0x62d

goroutine 62 [chan receive]:
github.com/Shopify/sarama.(*PartitionConsumer).Close(0xc2080de7e0, 0x0, 0x0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:341 +0x129
github.com/bsm/sarama-cluster.(*Consumer).reset(0xc2080b8820, 0xc20803f740, 0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:369 +0x269
github.com/bsm/sarama-cluster.(*Consumer).shutdown(0xc2080b8820, 0xc20803f740, 0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:302 +0x44
github.com/bsm/sarama-cluster.(*Consumer).signalLoop(0xc2080b8820, 0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:247 +0x371
github.com/bsm/sarama-cluster.*Consumer.(github.com/bsm/sarama-cluster.signalLoop)·fm(0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:142 +0x39
gopkg.in/tomb%2ev2.(*Tomb).run(0xc2080b88c0, 0xc2080d6d70)
  /home/me/go/src/gopkg.in/tomb.v2/tomb.go:153 +0x24
created by gopkg.in/tomb%2ev2.(*Tomb).Go
  /home/me/go/src/gopkg.in/tomb.v2/tomb.go:149 +0x119

goroutine 67 [chan receive]:
github.com/Shopify/sarama.(*PartitionConsumer).dispatcher(0xc2080de7e0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:231 +0x57
github.com/Shopify/sarama.*PartitionConsumer.(github.com/Shopify/sarama.dispatcher)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x27
github.com/Shopify/sarama.withRecover(0xc2080d77d0)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).ConsumePartition
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x426

goroutine 68 [select]:
github.com/Shopify/sarama.(*brokerConsumer).subscriptionManager(0xc208075040)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:384 +0x49e
github.com/Shopify/sarama.*brokerConsumer.(github.com/Shopify/sarama.subscriptionManager)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:178 +0x27
github.com/Shopify/sarama.withRecover(0xc2080d77e0)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).refBrokerConsumer
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:178 +0x2af

goroutine 69 [chan send]:
github.com/Shopify/sarama.(*brokerConsumer).handleResponse(0xc208075040, 0xc2080df9e0, 0xc2080afb00)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:540 +0x6a1
github.com/Shopify/sarama.(*brokerConsumer).subscriptionConsumer(0xc208075040)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:434 +0x57b
github.com/Shopify/sarama.*brokerConsumer.(github.com/Shopify/sarama.subscriptionConsumer)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:179 +0x27
github.com/Shopify/sarama.withRecover(0xc2080d77f0)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).refBrokerConsumer
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:179 +0x310

goroutine 73 [chan receive]:
github.com/Shopify/sarama.(*PartitionConsumer).dispatcher(0xc2080df9e0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:231 +0x57
github.com/Shopify/sarama.*PartitionConsumer.(github.com/Shopify/sarama.dispatcher)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x27
github.com/Shopify/sarama.withRecover(0xc208edd110)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).ConsumePartition
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x426

Based on that stack trace the part that's stuck is goroutine 69, which is trying to return a message to the user. However, the Close function spawns a goroutine to drain those messages (https://github.com/Shopify/sarama/blob/d60bf3731577978392ce290a80e8dcf510e17bca/consumer.go#L334-L338) and it's not at all clear to me why that goroutine isn't showing up in your backtrace. Unless you snipped it out because you didn't think it was relevant?

Captured one more, including the message-consuming goroutine :
goroutine 37 [select]:
github.com/Shopify/sarama.(*Client).backgroundMetadataUpdater(0xc2080be150)
  /home/me/go/src/github.com/Shopify/sarama/client.go:455 +0x285
github.com/Shopify/sarama.*Client.(github.com/Shopify/sarama.backgroundMetadataUpdater)·fm()
  /home/me/go/src/github.com/Shopify/sarama/client.go:75 +0x27
github.com/Shopify/sarama.withRecover(0xc2080c8330)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.NewClient
  /home/me/go/src/github.com/Shopify/sarama/client.go:75 +0x62d

goroutine 34 [chan receive]:
github.com/Shopify/sarama.(*Broker).responseReceiver(0xc2080be0e0)
  /home/me/go/src/github.com/Shopify/sarama/broker.go:332 +0xe3
github.com/Shopify/sarama.*Broker.(github.com/Shopify/sarama.responseReceiver)·fm()
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x27
github.com/Shopify/sarama.withRecover(0xc2080c8150)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.func·001
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x535

goroutine 40 [chan receive]:
github.com/Shopify/sarama.(*Broker).responseReceiver(0xc2080be2a0)
  /home/me/go/src/github.com/Shopify/sarama/broker.go:332 +0xe3
github.com/Shopify/sarama.*Broker.(github.com/Shopify/sarama.responseReceiver)·fm()
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x27
github.com/Shopify/sarama.withRecover(0xc2080c8430)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.func·001
  /home/me/go/src/github.com/Shopify/sarama/broker.go:84 +0x535

goroutine 50 [chan receive]:
github.com/Shopify/sarama.(*PartitionConsumer).Close(0xc2080d8cc0, 0x0, 0x0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:341 +0x129
github.com/bsm/sarama-cluster.(*Consumer).reset(0xc2080bc4e0, 0xc2080df470, 0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:369 +0x269
github.com/bsm/sarama-cluster.(*Consumer).shutdown(0xc2080bc4e0, 0xc2080df470, 0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:302 +0x44
github.com/bsm/sarama-cluster.(*Consumer).signalLoop(0xc2080bc4e0, 0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:247 +0x371
github.com/bsm/sarama-cluster.*Consumer.(github.com/bsm/sarama-cluster.signalLoop)·fm(0x0, 0x0)
  /home/me/go/src/github.com/bsm/sarama-cluster/consumer.go:142 +0x39
gopkg.in/tomb%2ev2.(*Tomb).run(0xc2080bc580, 0xc2080c8bd0)
  /home/me/go/src/gopkg.in/tomb.v2/tomb.go:153 +0x24
created by gopkg.in/tomb%2ev2.(*Tomb).Go
  /home/me/go/src/gopkg.in/tomb.v2/tomb.go:149 +0x119

goroutine 54 [chan receive]:
github.com/Shopify/sarama.(*PartitionConsumer).dispatcher(0xc2080d8cc0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:231 +0x57
github.com/Shopify/sarama.*PartitionConsumer.(github.com/Shopify/sarama.dispatcher)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x27
github.com/Shopify/sarama.withRecover(0xc2080c9400)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).ConsumePartition
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x426

goroutine 55 [select]:
github.com/Shopify/sarama.(*brokerConsumer).subscriptionManager(0xc2080752c0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:384 +0x49e
github.com/Shopify/sarama.*brokerConsumer.(github.com/Shopify/sarama.subscriptionManager)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:178 +0x27
github.com/Shopify/sarama.withRecover(0xc2080c9410)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).refBrokerConsumer
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:178 +0x2af

goroutine 56 [chan send]:
github.com/Shopify/sarama.(*brokerConsumer).handleResponse(0xc2080752c0, 0xc208ed6540, 0xc2080fdad0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:540 +0x6a1
github.com/Shopify/sarama.(*brokerConsumer).subscriptionConsumer(0xc2080752c0)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:434 +0x57b
github.com/Shopify/sarama.*brokerConsumer.(github.com/Shopify/sarama.subscriptionConsumer)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:179 +0x27
github.com/Shopify/sarama.withRecover(0xc2080c9420)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).refBrokerConsumer
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:179 +0x310

goroutine 60 [chan receive]:
github.com/Shopify/sarama.(*PartitionConsumer).dispatcher(0xc208ed6540)
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:231 +0x57
github.com/Shopify/sarama.*PartitionConsumer.(github.com/Shopify/sarama.dispatcher)·fm()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x27
github.com/Shopify/sarama.withRecover(0xc208ecd4b0)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*Consumer).ConsumePartition
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:130 +0x426

goroutine 66 [chan receive]:
github.com/Shopify/sarama.func·003()
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:335 +0x57
github.com/Shopify/sarama.withRecover(0xc208f32060)
  /home/me/go/src/github.com/Shopify/sarama/utils.go:42 +0x3a
created by github.com/Shopify/sarama.(*PartitionConsumer).Close
  /home/me/go/src/github.com/Shopify/sarama/consumer.go:338 +0xce

The new stack trace on the surface looks really weird. Goroutine 56 is blocked trying to write to a channel, and goroutine 66 is apparently blocked trying to read from that same channel.
The only possible explanation is if they're not the same channel, because they belong to different PartitionConsumers. After some time digging through the sarama-cluster code, this actually makes sense. It owns multiple PartitionConsumers, but on shutdown it stops reading from all of them, then does effectively:
for c := range myPartitionConsumers {
    c.Close()
}

Since you're no longer reading from any of the PartitionConsumers, the internal consumer code blocks waiting to write a message out to e.g. partition 3, while you're trying to close partition 1. This deadlocks. This is a Sarama design bug (the partitions should not be quite so tightly locked together), but it's not immediately obvious to me what the best fix is internally.
Fortunately, there is a very easy workaround: just launch all your Close calls in goroutines, and the scheduler will order them correctly to handle the interdependencies. Something like the following should work:
wg := sync.WaitGroup{}
for c := range myPartitionConsumers {
    wg.Add(1)
    go func(c *PartitionConsumer) {
        defer wg.Done()
        c.Close()
    }(c)
}
wg.Wait()

Concurrency is hard :(

Here's one (sort of hacky?) theoretical fix for this on Sarama's end: if at any point the brokerConsumer spends more than 10ms waiting to write to a channel, spawn that write out into a goroutine and unsubscribe the relevant PartitionConsumer so that the rest of them can keep going...

Yes, you are right, the goroutine trace was based on two partition
consumers running in parallel.
I am not sure if your solution would work, but I will try. Alternatively, I
could create a Consumer instance for each partition, with exactly one
PartitionConsumer each. Then, the partition consumers would not share any
dependencies, right? Not elegant, but effective.
Concurrency is hard, but there is a little too much magic in the latest
sarama - in my opinion. Channels are great, but having too many loops is
not very intuitive and quite hard to follow, especially if (private)
channels are shared between multiple objects. Again, I can't say I spent
hours working through the consumer code, but I tried to debug the issue and
had quite a hard time to figure out relative basics.

Alternatively, I could create a Consumer instance for each partition, with exactly one PartitionConsumer each.

That would work, but would defeat the entire purpose of the new consumer, which was to share the network connection and win a substantial efficiency gain in doing so.
We have a wiki page that gives an architectural overview of the new consumer: https://github.com/Shopify/sarama/wiki/Consumer. It is slightly out of date (this has now landed in master) but the architectural info is correct.

What I do in my very similar consumergroup library is to have a stopper channel, which I close when calling Close() on the consumergroup.
All my partition consumers use this channel to break their consumer loop.
This approach seems to avoid the deadlocks you are seeing.

Breaking out of the loop isn't the problem, that bit works just fine. Your
library is also using the old sarama version. My problems only started when
I ported my library to master. I will push my changes to a separate branch
tomorrow, I would appreciate if you could help me with debugging.
On 7 Mar 2015 22:41, "Willem van Bergen"<EMAIL_ADDRESS>wrote:

What I do in my very similar consumergroup library
https://github.com/wvanbergen/kafka is to have a stopper channel, which
I close when calling Close()
https://github.com/wvanbergen/kafka/blob/master/consumergroup/consumer_group.go#L201-L231
on the consumergroup.
All my partition consumers use this channel to break their consumer loop
https://github.com/wvanbergen/kafka/blob/master/consumergroup/consumer_group.go#L385-L404
.
This approach seems to avoid the deadlocks you are seeing.
—
Reply to this email directly or view it on GitHub
https://github.com/Shopify/sarama/issues/325#issuecomment-77714572.

Pushed the WaitGroup workaround https://github.com/bsm/sarama-cluster/blob/ad1454f/consumer.go#L386 and it seems to work, except for this case https://travis-ci.org/bsm/sarama-cluster/jobs/53535191. I couldn't reproduce it locally though

That travis failure is the result of calling Close twice on the same PartitionConsumer. There's an argument that we should return a proper error instead of blowing up, but regardless it probably indicates a bug in the cluster code somewhere.

I updated my consumergroup code to the latest sarama and I am not seeing issues like this. Check out this branch if you're interested: https://github.com/wvanbergen/kafka/pull/37

@eapache not sure, PartitionConsumers are closed synchronously and exclusively in reset() (https://github.com/bsm/sarama-cluster/blob/ad1454f/consumer.go#L392) which itself is called either by shutdown() when the consumer is closed or in rebalance() when the consumer is renewed. Both methods are exclusively used in the same signal loop. I simply cannot see how they could possibly run in parallel (https://github.com/bsm/sarama-cluster/blob/ad1454f/consumer.go#L238).
@wvanbergen all the problems are related to race conditions under non-trivial conditions. I've never seen any issues in my integration tests either and that's why I specifically added a 'fuzzing' test (https://github.com/bsm/sarama-cluster/blob/master/fuzzing_test.go) which has - so far - been a pretty good at uncovering unexpected behaviour. As you can also see, the test failed only intermittently https://travis-ci.org/bsm/sarama-cluster/builds/53535189 and only when run with -race.

@dim the panic is "panic: close of closed channel"; the channel being closed is child.dying, which is created in ConsumePartition and is only closed in Close, so the only way for this to occur is if you are calling Close (or AsyncClose) twice on the same PartitionConsumer.

@eapache yep, thanks, that's what I thought too and - after more digging - I think I can see an edge case in sarama-cluster where the logic could go wrong. will fix on my end.


when upgrading GKE cluster you can choose the older K8s versions but Rancher can not downgrade the cluster

If we can not downgrade K8s versions of the cluster, we should not be able to choose them in the UI, or vice versa

I can't get a screen cap, but edit a GKE cluster and choose an older version from the Kubernetes Version drop down, then save to recreate


Update setup-ruby env in ci.yml

Hi,
I noticed the current Github CI workflow is pulling the latest Sidekiq gem regardless of the specified gemfile. This PR should prevent that.
More details, latest main (example):

ruby 2.7, sidekiq 5.0
https://github.com/sensortower/sidekiq-throttled/runs/4526523043?check_suite_focus=true

run ruby/setup-ruby@v1 step output:
143   Installing sidekiq 6.3.1

With PR changes:

ruby 2.7, sidekiq 5.0
https://github.com/zrod/sidekiq-throttled/runs/4538987147?check_suite_focus=true

run ruby/setup-ruby@v1 step output:
143   Installing sidekiq 5.0.5

More info: https://github.com/ruby/setup-ruby/#matrix-of-gemfiles

@zrod Thank you very much! Great catch!


353 swagger refs

Merged latest commits from Master into branch
Added additional test for the Swagger json w refs for properties- passes
Everything looks good with your code!

FYI: this pull request is now in production (but still a bit of work left to finish off the upload). Uploading the sample json file now produces two validation errors:
Messages.product has invalid type[[[Message]]]
Result.variants has invalid type[[[Variant]]]


Feat: update Python version to 3.9 and add MkDocs documentation workflow

Added docs and github pages to it

This is excellent documentation, took me a while to go over it-/pos
Will merge momentarily...


Use some code linter

E.g. EsLint.
Such a thing is always good. :smiley:

It’s there. https://github.com/xojs/xo


Create ar.json for Arabic translation

Pull request to start the Arabic translation.

Closing this for now, but please do submit a PR if you get a chance to make a start on this!


Compiled migration script does nothing

Describe the bug
Running node dist/migrate on production does nothing, but ts-node src/migrate on local works.
I need this to migrate on production, which only has compiled js code and has no devDependencies.
My repo https://github.com/truongtrongtin/learn-nestjs
// migrate.ts
import { MikroORM } from '@mikro-orm/core';
import mikroOrmConfig from './mikro-orm.config';

(async () => {
  const orm = await MikroORM.init({
    ...mikroOrmConfig,
    migrations: { path: 'dist/migrations' },
  });

  const migrator = orm.getMigrator();
  await migrator.up(); // runs migrations up to the latest
  await orm.close(true);
})();

// mikro-orm.config.ts
import { Options } from '@mikro-orm/core';

const mikroOrmConfig: Options = {
  entities: ['dist/**/*.entity.js'],
  entitiesTs: ['src/**/*.entity.ts'],
  dbName: process.env.DATABASE_NAME,
  type: 'postgresql',
  host: 'postgres',
  port: 5432,
  user: 'postgres',
  password: process.env.DATABASE_PASSWORD,
  debug: true,
  migrations: { path: 'src/migrations' },
};

export default mikroOrmConfig;

Stack trace
[discovery] ORM entity discovery started, using ReflectMetadataProvider
[discovery] - processing 4 files
[discovery] - processing entity BaseEntity (/app/dist/base.entity.js)
[discovery] - processing entity Leave (/app/dist/leaves/leave.entity.js)
[discovery] - processing entity Task (/app/dist/tasks/task.entity.js)
[discovery] - processing entity User (/app/dist/users/user.entity.js)
[discovery] - entity discovery finished, found 4 entities, took 542 ms
[info] MikroORM successfully connected to database taskmanagement on postgresql://postgres:*****@postgres:5432
[query] select table_name, nullif(table_schema, 'public') as schema_name from information_schema.tables where table_schema not like 'pg_%' and table_schema != 'information_schema' and table_name != 'geometry_columns' and table_name != 'spatial_ref_sys' and table_type != 'VIEW' order by table_name [took 9 ms]
[query] begin
[query] select * from "mikro_orm_migrations" order by "id" asc [took 4 ms]
[query] commit

Versions

Dependency
Version

node
16.8.0

typescript
4.4.2

mikro-orm
4.5.9

mikro-orm/postgresql
4.5.9

You need to adjust the configuration a bit more, by default only TS files are checked.
  const orm = await MikroORM.init({
    ...mikroOrmConfig,
    migrations: {
	  path: 'dist/migrations',
      pattern: /^[\w-]+\d+\.js$/,
 	},
  });

  const migrator = orm.getMigrator();
  await migrator.up(); // runs migrations up to the latest
  await orm.close(true);


Get-PSCallStack's Arguments script property contains no useful information

The .Arguments property on the System.Management.Automation.CallStackFrame instances output by Get-PSCallStack is a script property that - I presume - is meant to reflect the arguments passed.
The property isn't documented, but it seems to contain no useful information, seemingly containing $null in any non-global scope.
While you con obtain argument information via the type-native .InvocationInfo property, I assume there is a purpose to .Arguments that it currently doesn't fulfill.
Steps to reproduce
& { (Get-PSCallStack)[0].Arguments } 'foo'  | Should -match 'foo'

Expected behavior
The test should pass.
Actual behavior
The test fails, because .Arguments is $null:
Expected regular expression 'foo' to match $null, but it did not match.

Environment data
PowerShell Core 7.0.0-preview.6

Looks like that script property got hit by the script that was replacing "" with string.Empty.
The line was:
foreach ($arg in $this.InvocationInfo.UnboundArguments.GetEnumerator())
{
if ($argumentsBuilder.Length -gt 1)
{
$argumentsBuilder.Append(", ")
}
# etc...

But is now
foreach ($arg in $this.InvocationInfo.UnboundArguments.GetEnumerator())
{
if ($argumentsBuilder.Length -gt 1)
{
$argumentsBuilder.Append(string.Empty, string.Empty)
}
# etc...

Which is a syntax error.

@mklement0 Thanks! I pulled PR with fix.


battery module catch wrong status ? core dump

This morning without any apparent reason, module battery core dump the complete bar.
Here the conf
[module/battery]
type = internal/battery
battery = BAT0
adapter = AC
full-at = 98
time-format = "%H%{F#92}%M%{F-}"

label-discharging = %percentage% %time%

format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a

format-discharging = <ramp-capacity> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}

format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-underline}

ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
ramp-capacity-foreground = ${colors.foreground-alt}

animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
animation-charging-foreground = ${colors.foreground-alt}
animation-charging-framerate = 750

The problem seems to be my charge status which is not catch correctly, my battery is old
# cat /sys/class/power_supply/BAT0/status
Unknown

Maybe you need to catch that case, not execute the module if the status is not full|charging|discharging and print an error.

My battery status becomes "Unknown" after it reaches ~95%, but the module still works fine... it might be something else.

On my other laptop, at 100%, status is "Full". I saw that there are lots of issue about that module, wait and see

This should be fixed by ef44202 as the crash probably is related to the attempt past string end. Please confirm

Cannot test, battery status is "Full" for now, and I don't know how to reproduce "unknown"

I'm pretty sure it's fixed. Let me know if it would happen again and I will reopen.

it's not
 userarch@arch-itect  ~  cat /sys/class/power_supply/BAT0/status
Unknown

just crashed with
[1]    8777 floating point exception (core dumped)  polybar top

@eoli3n Could you check the contents of the value files?
$ cat /sys/class/power_supply/BAT0/{charge_now,charge_full,voltage_now,current_now}

I will add some safety checks to the code

 userarch@arch-itect  ~  cat /sys/class/power_supply/BAT0/{charge_now,charge_full,voltage_now,current_now}
3091000
3271000
12235000
1000

Are you able to reproduce it manually? If so, could you launch the bar with gdb and get the stacktrace?

I was able to reproduce the exception when I hardcoded your values, so I won't need the stacktrace. Patch coming up.

it seems working, thx


Indent char changes to italics

I have this config for indent-blankline
  use {
    'lukas-reineke/indent-blankline.nvim',
    branch = 'lua',
    opt = true,
    event = 'VimEnter *',
    config = function()
      vim.g.indent_blankline_filetype_exclude = { 'NvimTree' }
    end
  }

That is all the config for indent-blankline. The char changes to italics when using with react files.

hmm not sure :thinking:
Can you try to create a simple init.vim file that reproduces this?

I solved it by adding this to my config.
vim.g.indent_blankline_char = '│'
It must be something with my font. Adding the above line fixes it.

FYI this was actually a bug. I commented more info in #72
Should be fixed now


Standard spec for the query interface as MISP standard

Standard spec for the query interface as MISP standard

First version released on https://www.misp-standard.org/standards/


[BAT] Merge with latest master

Coverage remained the same at 54.431% when pulling 123055f80d406e553e71c750f94345024ac54c45 on wy65701436:drone into de621c13d5e5c2fe1d4eb8613fc63810f5686835 on vmware:drone.


Possible Bug in ONCE-3DLanes evaluation

When I tried to evalate on ONCE-3DLanes, I got the same number for all metrics.
legacy evaluate  end at 2024-08-26 @ 10:26:28
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline F-measure: 0.81243682
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline Recall: 0.81243682
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline Precision: 0.81243682
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline Category Accuracy: 0.81243682
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline x error (close): 0.81243682 m
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline x error (far): 0.81243682 m
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline z error (close): 0.81243682 m
2024-08-26 10:26:28,965 - mmdet - INFO - ===> Evaluation laneline z error (far): 0.81243682 m

Have you solved this problem? Thank you.

Have you solved this problem? Thank you.

No, but I have found out what causes this problem. The authors tried to output the evaluatation results of the three datasets with the same self.log_eval_stats(eval_stats) in class Runner(). However, the three evaluation results are in different formats. You need to go deep into the eval_stats to get the real result.

Thank you. It really helps on my job.
---- Replied Message ----
| From | @.> |
| Date | 10/10/2024 20:53 |
| To | JMoonr/LATR @.> |
| Cc | pangyangyang123 @.>,
Comment @.> |
| Subject | Re: [JMoonr/LATR] Possible Bug in ONCE-3DLanes evaluation (Issue #28) |
Reopened #28.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

Yeah, this log output is a bit of a shortcut where I've set all the log printed "metrics" to F1 score, to make use of the logging function. For the full evaluation results, you can check the printed eval table from the ONCE eval 📊.


Inclusion in Coq platform / Opam packages

Dear Unicoq Team,
since Unicoq has been part of the Windows installer since quite a while, I would like to include it into the Coq platform 8.11.2 and 8.12.0. I hope this matches your plans.
For this I would need your consent to include Mtac2 into the Coq platform, which is best expressed by creating an issue at https://github.com/MSoegtropIMC/coq-platform in which you state that you agree with the Coq platform charter at (https://github.com/MSoegtropIMC/coq-platform/blob/master/charter.md)
Unless you tell me otherwise, I would use the tags v1.3-8.11 and v1.4-8.12. As far as I can tell there are no opam packages for these tags. If you want, I can quickly create and push these for you.
Best regards,
Michael

Hi @MSoegtropIMC ! Can you hold on for a day or so? There is a mess currently in Unicoq's tree and I need to talk to @Janno what's the current status. Probably we need new tags. Thanks!

Sure, there is no need to hurry. The rough plan is make the release end of August / begin of September.

Hi @MSoegtropIMC! I've created the tags (look for v1.5-8.x). If you don't mind creating the packages too, I will be very greatful. Otherwise, I'll try tomorrow.

@beta-ziliani : thanks! I will create the opam packages - first in the coq-platform local patch repo and if it works well I'll move them to the main coq opam repo.

Hi @MSoegtropIMC, we can close this now, can't we?

Yes. It is included in the 8.12.beta1 release.

Dankeschön!


code, platform: implement the logic to retrieve a quote by ID, for GET {SEP-38}/quote/:id

PR Checklist
PR Structure

[x] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[x] This PR's title starts with name of package that is most changed in the PR, ex.
paymentservice.stellar, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[x] This PR adds tests for the most critical parts of the new functionality or fixes.

What
Implement the logic to retrieve a quote by ID, for GET {SEP-38}/quote/:id
Why
Closes #80.

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Reference Server Preview is available here:https://anchor-ref-pr148.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr148.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr148.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr148.previews.kube001.services.stellar-ops.com/

Reference Server Preview is available here:https://anchor-ref-pr148.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr148.previews.kube001.services.stellar-ops.com/


upated README.md

Please read how to contribute first!
Description
Submission description here
Checklist

[ ] I've checked the issue list BEFORE deciding what to submit
[ ] I've read the contribution guidelines
[ ] I've edited the README.md link to my code

Don't forget to visit our website!
Feel free to add this badge after your submission is accepted!

Hey . There is a minor conflict . Will it be possible for you attend to this conflict and issue a fresh PR . Have a nice day :)

@anushkrishnav  can u tell me how to do that?

@anushkrishnav can u tell me how to do that?

no worries I can handle it from my side .
Thank you for your contribution

The file you updated the readme for
"Queue Implementation.c " No longer exsist


input[number] non-default accent color doesn't work

non default accent colors doesn't work on input type number. It displays the default teal accent color
md-colors.html should include the following for this to work:
md-input .input-field input[type=number]:focus {
    border-bottom: 1px solid ${mdAccentColor};
    box-shadow: 0 1px 0 0 ${mdAccentColor};
  }
  md-input .input-field input[type=number]:focus + label {
    color: ${mdAccentColor};
  }

I suppose that time input have the same problem
Thank you

Thanks! 👍
Number, floating number and time input have the same problem.


Update index.theme

Need to change the name, description, GtkTheme and MetacityTheme

Do not close that. It's not in master branch.

Fair enough. My bad


Adding middleware?

Looking at vibe's features the one thing that kind of surprised me is there's no support for middleware (I expressed an example usecase in #1305). You can kind of add something that catches requests before hitting other handlers by not writing anything to the response, such as in the request_basic example:
	// the following routes are accessible without authentication:
	router.get("/", staticTemplate!"index.dt");

	// now any request is matched and checked for authentication:
	router.any("*", performBasicAuth("Site Realm", toDelegate(&checkPassword)));

	// the following routes can only be reached if authenticated:
	router.get("/internal", staticTemplate!"internal.dt");

But in my opinion that's sort of hacky.
I'm new to D, and vibe, but I think it would be pretty trivial to add support for middleware in vibe.http.server's handleRequest function at line 1716.
Something like:
    foreach (auto middleware; middlewares) {
        if (!isInputMiddleware!(middleware)) {
            continue;
        }

        middleware(req, res);
        if (res.headerWritten) {
            break;
        }
    }

    if (!res.headerWritten) {
	    request_task(req, res);
    }

    foreach (auto middleware; middlewares) {
        if (!isOutputMiddleware!(middleware)) {
            continue;
        }

        middleware(req, res);
    }

I don't exactly know what the interface for Middleware would look like, but I wanted to ask if this is something that others think would be a good addition to this framework. If it is, I'd be more than happy to draft up a PR and work from there based off feedback.

There is a basic middleware system for the web interface but its not very clean to use. it makes use of the before and after but I think that is up for some improvements to expand outside of the webinterface. @s-ludwig any thoughts?

I think for the web interface (as opposed to the REST interface) @before/@after are actually an "okayish" solution, only that they will also cause issues the day that someone tries to write an automated JavaScript client similar to what exists for the REST interface generator. The one thing that isn't possible with those, though, is to modify headers just before they get sent to the wire - @after will usually be in effect only after the response has already been sent (in case of render() or an OutputStream being used to write the body, instead of a return value). So something that enables this would be an important addition and adding it to the low-level HTTP code would probably make most sense.
A possible solution would be to add a callback to either HTTPServerSettings, or to HTTPServerResponse. The latter is more flexible and retains the current possibility to add middleware by wrapping the request handler delegate, so I lean towards that.
For completeness sake, this is the header wrapping pattern as a way to implement middleware independently of the web interface:
// setup all routes
auto router = new URLRouter;
router.get("/", ...);

// start with the router request handler
HTTPServerRequestHandler handler = &router.handleRequest;

// successively add middleware
handler = addLogger(handler);
handler = addBasicAuth(handler);

// start the HTTP server
listenHTTP(settings, handler);

HTTPServerRequestHandler addLogger(HTTPServerRequestHander handler)
{
    return (req, res) {
        logInfo("Start handling request %s", req.requestURL);
        handler(req, res);
        logInfo("Finished handling request.");
    }
}

The basic_auth and digest_auth modules use this approach.
BTW, regarding the suggestion above, any middleware functionality, outside of inevitable low-level functionality such as the mentioned callback, should always be implemented on top  of the low-level HTTP code to keep a clean layered and modular architecture.
Further ideas in any direction are welcome!

The basic_auth and digest_auth modules use this approach.

AFAIK, they don't need the HTTPServerRequestHander as an input argument.
Apart from that I like this approach. Keep it simple and use handleRequest(req, res) everywhere - like in Express.
Is this "standardization" effort still going on? Maybe a nice guide / tutorial is already enough?

I've been looking for something like this as well. I would prefer that vibe.d supported an API for this that allowed other Dub packages to provide middleware functionality. Something like:
registerMiddleware(LoggerMiddlware);
registerMiddleware(OauthMiddleware);


Compilation error while processing magic comment(-s)

What is the current behavior?
I'm not sure if it is a bug or I probably doing something wrong but didn't find a like issue:
iscroll is a package in node_modules, importing is with dynamic import and trying to set name
import('iscroll' as any /* webpackChunkName: iscroll */)

I get warning in the console:

Compilation error while processing magic comment(-s): /* webpackChunkName: iscroll*/: iscroll is not defined.

A bundle is produced with name 0.js (not "iscroll")
if I remove /* webpackChunkName: iscroll */ warning is gone, the same unnamed bundle produced.
What is the expected behavior?
No warning chunk is named as in comment "iscroll".
Webpack 4.26.1

@whitecolor please use issue template

/* webpackChunkName: "iscroll" */

hm, ok sorry, I definitely could not see it, once I wrote it =)


fix: Supervisor buffer overflow errors

Should fix the flood of buffer overflow errors we see from Supervisor.
The one "change" this PR has, is that all the logs from the Docker container will now be coming from stderr, not stdout. I don't expect it to cause any problems, but it is a change in behaviour nonetheless.
Why do that? Because of the way Supervisor event listening works. This fix is based on the conversation at https://github.com/Supervisor/supervisor/issues/1417. Essentially that stdout should be reserved as a communication channel between Supervisord and the event-listener, and for logging, we should use stderr.
/test sanity

[!TIP]
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/9592028116
Commit: 34a29eabc8dc82fb6a43b143e400d725d197a655
Cypress dashboard.
Tags: @tag.Sanity

Summary by CodeRabbit

Bug Fixes

Improved logging reliability by updating output methods to use print with explicit flushing, ensuring real-time log visibility.

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true


h_max wrt array_level

The estimation of h_max in HillasReconstructor:
https://github.com/cta-observatory/ctapipe/blob/cc215e2f7233973ff1b604f90c96ac8cea447fcd/ctapipe/reco/HillasReconstructor.py#L333
is giving a result wrt the array observation level.
Should we have this number with respect to the sea level?
I used the same piece of code used in the hillas_intersector and inside ImPACT to convert the output of the HillasReconstructor (here called reco_hillas) to the "corrected" one:
def correction_xmax(zenith, height, obs_elev):
    height = height*np.cos(zenith)

    # Add on the height of the detector above sea level
    height = height +  obs_elev

    # Lookup this height in the depth tables, the convert Hmax to Xmax
    x_max = thickness_profile(height.to(u.km))
    # Convert to slant depth
    x_max /= np.cos(zenith)
    return x_max

xmax_corrected = correction_xmax(
    np.pi/2 - event.mc.alt.to_value(u.rad),
    reco_hillas.h_max,
    event.mcheader.prod_site_alt
)

print(f'reco h_max \t= {reco_hillas.h_max:.2f}')
print(f'mc.energy \t= {event.mc.energy:.2f}')
print(f'from mc \t= {thickness_profile(reco_hillas.h_max.to(u.km)):.2f}')
print(f'event.mc.x_max \t= {event.mc.x_max:.2f}')
print(f'corrected x_max = {xmax_corrected:.2f}')

and this is what i obtain for a huge event, with a good h_max reconstruction (21 telescopes  from gamma, Paranal, z20):
reco h_max 	= 9035.94 m
mc.energy 	= 2.60 TeV
from mc 	= 331.01 g / cm2
event.mc.x_max 	= 286.86 g / cm2
corrected x_max = 280.40 g / cm2

We correct it or we leave as it is, specifying that it's wrt the array observation level?

I think sea-level makes the most sense (and is probably what anybody would expect it to be). We should change the Field description to say that it is that explicitly.
This also makes me notice that we need to add the site location into the instrument.SubarrayDescription (not just in the MC header, since it needs to be there for real data files as well)

This goes together with the additional atmospheric profile for La Palma (https://github.com/cta-observatory/ctapipe-extra/issues/24)


update submodule Tools/jMAVSim

Brings the fix in jMAVSim that makes it compatible with the changes operated in the HIL_SENSOR fields_updated bitmask check in the simulator module.

@TSC21 you can now set this to master of jMAVSim.

@TSC21 you can now set this to master of jMAVSim.

@julianoes done!

We should consider adding a couple of tests to CI so to make sure we don't break jMAVSim functionality.


AI Cant Naval Invade

95% of the time the AI has trouble with naval invasions, this might be caused by the new strategic regions but not sure.
The issue is they set up naval invasions and plans for conquest but will not get the naval or air superiority over the regions needed to get the invasions started.
Out of the 10+ games I have played, Japan naval invaded Korea once.
UK cannot invade Normandy.
UK could not invade Sicily from Malta.
USA doesnt even attempt to conquer UK when at war with them.

Haven't heard reports of this in a while, I think it may be better now. Will reopen if necessary.


[APD-954] Publish to NPM

Adds a new publishNpm  Gradle task (from npm.gradle) based mostly on one borrowed from the coroutines repo with some hackage.
This task expects the Webpack output from jsBrowserProductionWebpack task to already exist.
The publishNpm task creates the npmdist output folder, copies in the Webpack artifacts, and uses <module>/npm/package.json as a template to create a new package.json file. It then runs the npm publish command from this folder which publishes the package on GitHub in the @Juullabs scope.
When reviewing please provide guidance on best practices on the Gradle stuff. Thus far the effort has been just getting it to work and it would be nice to apply some polish to any areas that are crunchy.
WIP: Currently specifies dryRun=true and a deliberate syntax error (notpublish instead of publish) to avoid spamming public packages while testing

When you have a chance, please rebased onto twyatt/js.
Unless this was intended more as a proof-of-concept, in which case you can leave it as-is.


_saveFileName not working

i try to save file in local server but not working

Did you enable it on the server as well?
Do you see anything in the log files?


Fix a broken example in Lua filter docs

Signed-off-by: Peter Jausovec<EMAIL_ADDRESS>Commit Message: Fix a broken example in Lua filter docs
Additional Description: Setting values in Lua is done using =, not :
Docs Changes: Fix the broken example

@envoyproxy/envoy-maintainers


spelling fix

never mind duplicate of https://github.com/aackerman/circular-dependency-plugin/pull/85


Error in preprocessing data/training CTB

Hi, I met an error in training with CTB dataset.
I download ctb8.0 from the link and preprocess the data following the guide of Github repo distance parser step 3 and get train/dev/test.txt. Then I transformed the three txt files with Stanford parser 3.3.0 to dependency structure and get train/dev/test.conll.
Running sh run_single.sh, I got an error:
Traceback (most recent call last):
  File "src_joint/main.py", line 746, in <module>
    main()
  File "src_joint/main.py", line 742, in main
    args.callback(args)
  File "src_joint/main.py", line 688, in <lambda>
    subparser.set_defaults(callback=lambda args: run_train(args, hparams))
  File "src_joint/main.py", line 225, in run_train
    train_parse = [tree.convert() for tree in train_treebank]
  File "src_joint/main.py", line 225, in <listcomp>
    train_parse = [tree.convert() for tree in train_treebank]
  File "/data/lijiachen/HPSG-Neural-Parser/src_joint/trees.py", line 93, in convert
    children.append(child.convert(index = index))
  File "/data/lijiachen/HPSG-Neural-Parser/src_joint/trees.py", line 93, in convert
    children.append(child.convert(index = index))
  File "/data/lijiachen/HPSG-Neural-Parser/src_joint/trees.py", line 93, in convert
    children.append(child.convert(index = index))
  File "/data/lijiachen/HPSG-Neural-Parser/src_joint/trees.py", line 80, in convert
    assert sub_children[-1].right == sub_child.left, str(sub_children[-1].right)+'\t'+str(sub_child.left) #contiune span
AssertionError:

Look forward to your reply.

solved by

downloading the latest stanford parser 3.9.2.
using the class UniversalChineseGrammaticalStructure
java -cp "*" -mx1g edu.stanford.nlp.trees.international.pennchinese.UniversalChineseGrammaticalStructure -basic -keepPunct -conllx -treeFile /path/to/train.txt > /path/to/train.conll

And found Pytorch 1.2 is not working in training (in parsing it works), using 1.1 instead. For details, see this Github issue.

same issue a


Is it possible to conform the fantasy land API ?

Conform to fantasy land specification ?
Hello, thanks for all the good work.
I'm having issues with the missing support of fantasy land when using ramda:
Ramda exports map, chain .... functions and rxjs/operators does too which is quite disturbing when reading a code:
import { map as rmap, pipe, prop, toUpper, identity } from 'ramda'
import { map as omap, mergeMap } from 'rxjs/operators'

// emitUsername :: Observable<Array<User>> => Observable<String>
const emitUsername : Observable<Array<User>> => Observable<String> = pipe(
  omap(rmap(prop('firstname')),
  omap(toUpper),
  mergeMap(identity),
)

The exemple above is, i hope, clear enough. We can see how "dirty" it can be to read :/. Since rxjs has it's own map and ramda too, this can lead to a very nasty code base.
It is possible to implement fantasy land specification for the observable ?
One solution would be to implement Fantasy Land specification wich attempt to unify those "operators". Very popular tools such as ramda (and maybe lodash fp ?) are using this specification.
By implementing this solution we could have a much cleaner code base:
import { map, chain, pipe, prop, toUpper, identity } from 'ramda'

// emitUsername :: Observable<Array<User>> => Observable<String>
const emitUsername : Observable<Array<User>> => Observable<String> = pipe(
  map(map(prop('firstname')),
  map(toUpper),
  chain(identity),
)

I know that this emitUsername is not the better implementation, but it does the job of showing the issue.
I don't know how much complicated it is to add the fantasy-land/map, fantasy-land/chain ... to the observable prototype but it would be sooo much fun to use !
In our current project, many confusion comes from those separate operators i would love to see RxJs implementing the most famous one such as Functor, Filterable, Apply ...
Last but not least
Many libraries such as crocks, Fluture .... Are exposing types (like Maybe, Either etc..) wich does also supports fantasy-land specification.
If RxJs does the same, it could be very powerfull and simpler to treat a data:
import { map, prop } from 'ramda'

const getUsername = map(prop('username'))

getUsername(Maybe.Just({ username: 'John Doe'})) // Maybe.Just 'John Doe'
getUsername([{ username: 'John Doe' }]) // Array String
getUsername(Observable.of({ username: 'John Doe'})) // Observable 'John Doe'

If we wan't cleaner API by moving to "functions oriented programation", i think it's an interesting point to consider :).
What do you think ?

You may able to refer previous discussion here: https://github.com/ReactiveX/rxjs/issues/34
it doesn't have clear conclusion, but we don't have any active plan or desire at this moment

@kwonoj Since #34 does not have a clear conclusion i decided to open a new one because i can't add any comments and the previous issue since it's closed and i really hope that it will happened ! Has i say, it could be a clever move and make a step forward to a more unified and functional javascript world :unicorn:

Sorry to say this but I'm going to close this again - core team currently does not track any effort around this and do not have visible roadmap / plan to visiting this anytime soon. Things may change over time maybe, but unfortunately this is not something we are actively considering at this moment.

Sorry to say this but I'm going to close this again - core team currently does not track any effort around this and do not have visible roadmap / plan to visiting this anytime soon. Things may change over time maybe, but unfortunately this is not something we are actively considering at this moment.


"Save As" on Collect tab throws error when saving coordinates to any output type (ArcGIS Pro)

Pro addin build 09 Jan 2017 16:49 on ArcGIS Pro 1.4 final build (7198)

Collect some coordinates...

Click "Save As" and save to Pro project default file geodatabase. The following error was thrown:

Click "Save As", select Shapefile and set output folder and shapefile name. Click Save. The following error was thrown:

Click "Save As", select KML and set output folder and shapefile name. Click Save. The following error was thrown:

Verified fixed in Pro addin build 10 Jan 2017 15:25 installed on ArcGIS Pro 1.4 final build. Performed "Save As" to file geodatabase feature class, a shapefile and a kml file. Closing issue.


Argument choices of Choice constructor should be Collection, not Sequence

Implementation of click.Choice currently requires choices argument to match typing.Sequence[str] type, while a wider one can be used, namely: typing.Collection[str] . Sequence adds __getitem__ which is never used on this argument, Collection[str] seems to be sufficient here.
Currently mypy will complain when set is used as an argument to click.Choice:
@click.command()
@click.option("--select", type=click.Choice({"a", "b"})
def command(select):
    ...

error:
error: Argument 1 to "Choice" has incompatible type "Set[str]"; expected "Sequence[str]"  [arg-type]

There would be no errors in runtime.

Sequence implies an order, which I want preserve. I don't think set should be considered part of the API; yes it works now, and I don't expect that to change, but I would never have expected it to be correct. You can use a type: ignore[...] comment if you need to override that.


grandpa: prove_finality learn how to respond with the latest justification

In #8392 we started storing the latest justification for every finalized block. With this we can now respond with this latest justification in prove_finality when asked for a block in the latest authority set.
Also fix a bug where the FinalityProof::unknown_headers did not contain the last header in the sequence, that is, the header corresponding to the justification also included.

I'm not quite sure what this changes with respect to grandpa warp sync. Does it make anything faster for smoldot?

I'm not quite sure what this changes with respect to grandpa warp sync. Does it make anything faster for smoldot?

It should make no difference for grandpa warp sync, this only affects the grandpa_proveFinality RPC API.

Thanks for the feedback :)
I'll remove ProvableJustification

Pushed a new set of commits that primarily removes ProvableJustification

bot merge


An option for braces perhaps?

I want to be able to use this kind of classes:
class className {
...
}
rather than
class className
{
...
}

Thanks for your request, and congratulations on opening the first issue :)
I'd like PrettyPHP to be useful to developers who don't have the luxury of choosing a different coding standard, but I'm also trying to minimise option bloat and provide a consistent, uncompromising baseline for minutiae like brace / parentheses / square bracket placement. It's a tricky balance to find (and there are probably too many options already!)
With class and other declaration-related braces (everything except control structures and anonymous functions, basically), PrettyPHP places the opening brace on a new line for consistency with PSR-12 and the coding standards of widely-used projects like Symfony and Laravel, but I'm open to reviewing that.
Is there a particular coding standard you're working with?
And I assume the answer is yes, but would you expect this placement of braces to apply everywhere? (i.e. function, namespace, etc.)

I just published an update to the extension (v0.3.3) that should do what you need.

PrettyPHP now has a --one-true-brace-style option. When given, opening braces are placed after class, function, etc. on the same line.

The vscode extension has a new "Formatter Arguments" setting. Add --one-true-brace-style to pass the new option to PrettyPHP.

Thank you so much! You made some new nice features as well.


⚠ Bofrost.fr has degraded performance

In 711719b, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 995 ms

Resolved: Bofrost.fr performance has improved in aa8087b after 6 minutes.


Add support to expand URLs

+1

Sorry, this feature has been in the code but this issue was still open. I also just updated it to eliminate AFNetworking as a dependency. This will likely be the last update as the next version will be Swift. This update does include automated tests to confirm functionality which will help ensure it is working going forward.
cc @claesjacobsson

Great, thanks.


Fixed gems to plugins in _config.yaml and added a mention to install jekyll-paginate in the README

Tried to use it with the latest version of Jekyll and got a couple of errors. Had to change gems to plugins and it could not find jekyll-paginate so I added the command to install it to the README as well.

thanks @Endi1, fixed that


Rearrange order of columns in Inquiry/Placement reports

In inquiry report, order of columns should be:
Inquiry icon linking to inquiry record
Inquiry Date
Inquiry Type
Child First Name
Child Last Name
Child Reg #
Child SW Reg
Contact #1
Contact #2
Family Reg #
In placement report, visible fields in the return should be (in order):
Placement Icon linking to placement record
Placement Date
Placement Notes
Child First Name (reg or unregistered)
Child Second Name (reg or unregistered)
Child Reg #
Siblings to be placed with
Contact #1 (reg or unregistered)
Contact #2 (reg or unregistered)
Family Reg #
Source
Additional Source
In placement, fields that should be column visibility selections and export should include:
Race
Gender
Legal Status
Adoption worker
Adoption Worker Agency
Adoption Worker Region
Registration Date
Days before placement (difference between placement and registration dates, may not be possible but have excel formula if needed)
Age at placement
Levels of Need
Family Agency
Family Region
Family Constellation
Contact #1 Race
Contact # 2 Race
Registered with MARE box selected Y/N

@n-devr If we can fit in all nine (plus icon) columns in the full display then we would not need any addition in the column visibility toggle. If for some reason they don't all fit, I can re-prioritize.

@bchiaruttini the amount of columns we can fit will come down to the size of the device that a user is viewing the report on.  we can keep them all visible by default for now, then if we want to hide a few of them by default in the future that's an easy change to make.

@bchiaruttini how should the data be formatted in the 'Levels of Need' column?  If I'm understanding the requirement correctly that would be a lot of data to try to display in a single column. Should each need have its own column?

Yes you are correct.  There should be a column each for physical, emotional, intellectual and social needs, displaying the level selected (none, moderate, etc.)

@bchiaruttini I've added all of the additional (hidden) columns to the Placement Report grid.  Please take a look and let me know if the data is coming through as expected.  If it looks good I will add all of those columns to the export grids (PDF and Excel).

I've added all of the columns to the PDF and Excel export views as well.  The Excel export looks good, but the PDF export is not able to display all of the columns because it is limited by the width of the printable page (11").
Please let me know how you'd like to proceed for that case.  I don't think there's much we can do to fit additional columns into the display, but we could display a different subset of columns for the PDF export only.

@n-devr Sorry about my delay in reviewing these, but looking good.   I am comfortable with the PDF export not being able to display all fields as long as the XLS export does.
Re: Inquiry Report. I apologize as I am now better understanding your comment above about wanting all hidden fields available on the column visibility dropdown. To be consistent with how the Placement Report functions, please add all fields that are available in the export to be options on the Column Visibility Dropdown.
Regarding placement report: For default visible fields, please swap out Notes field for Placement Source field.  Additionally, in my browser in cases where your search returns only a small number of records, the Column Visibility list was longer than the return list, and thus I could not access all fields (see screen shot attached).  Is there a way to still be able to scroll below the return list?

And this final one is not a big deal at all, but I noticed that if you hit the PDF export, when you return to the list it goes back to the default visible fields, and you lose any customization you had selected. Is there an easy way to preserve the customization?  I can live without this one unless its a simple fix.
And just want to say that the ability to display the age of child at placement and the number of days before placement is a HUGE enhancement so grateful for your ability to figure this out.

Really glad to hear the age at placement and days before placement are improving the experience!
I will try to capture your feedback as a few additional tasks that I will work on before closing this out:

[ ] Add hidden columns to visibility toggle for Inquiry report
[ ] Swap notes and placement source columns as default visible on Placement report
[ ] See if we can limit the size of the column visibility toggle menu to show all columns on smaller screens (this one might be tough but I think I can do something to make it work)

Saving the state of the grid when navigating away from the page would be really time-consuming to  implement.  A simpler solution would be to just open the PDF in a new page.  You can right click and open link in new page or click the link with your middle mouse button.  I could also update the code to open the PDF in a new page by default.
Please let me know if you'd like me to add that task to the list and that the list captures your requests @bchiaruttini .

@n-devr Yes that captures it all, however just want to make sure I explained #3 (length of column visibility toggle) correctly. It isn't the size of the screen that impacts it, but the size of the return list. If there are 100 records returned, than you can keep scrolling down on the visibility toggle.  If there are only 8 returns, you can't scroll down far enough to see the whole visibility toggle list.
And for the PDF export, please update code to automatically open PDF in new window.

Hey @bchiaruttini I've made all of the changes we discussed and deployed them to develop, please take a look when you have a moment.  If we're all set I will deploy to prod over the weekend and we can close out Inquiries/Placements.

@n-devr Thanks, everything looks great on inquiry and placement report, so let's push to production and call this a wrap.  @joesmare


Fix reverse, and fix the gcode to work in the machine's coordinates.

I don't think  reverse is doing anything

Can you just have it puke out the code backwards, that would be perfect?

I'm pretty sure I fixed it. I verified it on my machine.
It was a problem with the signal, not with the algorithm to reverse it. I just reverse the list of vertices before they turn into text.

I noticed that the web page won't refresh if you have it open when I deploy a new copy. You have to shift + F5 it to get the new code from jeffeb3.github.io/sandify.

G01 X240.000 Y260.000
G01 X260.000 Y260.000
G01 X260.000 Y240.000
G01 X240.000 Y240.000

G01 X240.000 Y240.000
G01 X260.000 Y240.000
G01 X260.000 Y260.000
G01 X240.000 Y260.000

That's one with the reverse and one without. One square.

I swear I refreshed.....but I refreshed a second time and it works for some crazy reason...My bad sorry.
I just refreshed again and it does work but I am pretty sure regular is reverse and reverse is regular.

Oh, shoot I get it. You are adding a reverse at the end of the same code!!!!
I was thinking it was generating an inward path or outward, not both.
If you could separate them you can have it do a pattern in and a different pattern out, that is why I was asking about the center coordinates.

I'm not sure what order you're expecting them to be, but this is what I get for the square, with the grow enabled:
G01 X240.000 Y240.000
G01 X262.500 Y237.500
G01 X265.000 Y265.000
G01 X232.500 Y267.500
G01 X230.000 Y230.000
G01 X272.500 Y227.500
G01 X275.000 Y275.000
G01 X222.500 Y277.500
G01 X220.000 Y220.000
G01 X282.500 Y217.500
G01 X285.000 Y285.000
G01 X212.500 Y287.500
G01 X210.000 Y210.000
G01 X292.500 Y207.500
G01 X295.000 Y295.000
G01 X202.500 Y297.500
G01 X200.000 Y200.000
G01 X302.500 Y197.500
G01 X305.000 Y305.000
G01 X192.500 Y307.500
G01 X190.000 Y190.000
G01 X312.500 Y187.500
G01 X315.000 Y315.000
G01 X182.500 Y317.500
G01 X180.000 Y180.000
G01 X322.500 Y177.500
G01 X325.000 Y325.000
G01 X172.500 Y327.500
G01 X170.000 Y170.000
G01 X332.500 Y167.500
G01 X335.000 Y335.000
G01 X162.500 Y337.500
G01 X160.000 Y160.000
G01 X342.500 Y157.500
G01 X345.000 Y345.000
G01 X152.500 Y347.500
G01 X150.000 Y150.000
G01 X352.500 Y147.500
G01 X355.000 Y355.000
G01 X142.500 Y357.500

Which looks like it's starting small, and growing.

No, I'm only doing reverse or forward. The code isn't very complicated:
    if (this.props.reverse) {
      lines.reverse();
    }

I'm really just reordering the vertices if the reverse is selected.

Okay, I will run them in the morning. I trust you have it right.
I can't believe this, I am very envious of your skill set. Absolutely impressed at this thing. I will run some patterns take some pics. This is pretty seriously polished already.

Well, we all have our strengths. I take a few hours to make a table in CAD and then it doesn't even fit together. Software engineering is just a tool, like a lot of other types of engineering. You can use it for anything and the more you practice, the better you get. I have been practicing for 12 years, as my full-time job, with co workers that were already experts. That helps.
Also, most of the polish comes from the tools. I haven't ever done web development as a job, but I dabble in it every few years, and every few years, I find that the state-of-the-art has just made it so much better to work with. If you can believe it, I was in the Internet club in middle school, and we didn't even have css, it was all html. Then I did some CSS, and thought that was great, then I did some javascript, and thought it sucked, then I tried jquery, and thought it was great, but still confusing, and css still didn't work quite right. React and Redux and React-components are all just super slick.

Did you get a chance to try any of the patterns over the weekend?

Dam laser....Loading up an SD card right now. Sorry for lagging


[soundcloud] Add related tracks extractor

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description
examples:

https://soundcloud.com/wajang/sexapil-pingers-5/recommended
https://soundcloud.com/wajang/sexapil-pingers-5/sets
https://soundcloud.com/wajang/sexapil-pingers-5/albums

This is an initial patch for another soundcloud extractor. I still need to add some test values (only manual probing, i will look at test results tomorrow).
Specifically i'm requesting comments about:

the regex change at line 75-77 (i don't know what a token is nor tested with one)
the playlist id i'm giving at line 852 is just the id of the track, not the real id of the playlist, but that is consistent with other uses of SoundcloudPagedPlaylistBaseIE. Btw the whole style is imho a bit wrong (inconsistent checking of the id field, invented id where it could be gotten from first page response i think), but should be fixed consistently on all usages of this base-class.

Kudos for keeping the beast working.

I just pushed some test cases. Full nosetests seem to mostly work (with a couple unrelated download failures). Yet still there is an 'ERROR' which is triggered by all SC extractors that use the PagedPlaylist thing (cannot mix str and non-str in the query params). Should i fix them in this PR?

Yet still there is an 'ERROR' which is triggered by all SC extractors that use the PagedPlaylist thing (cannot mix str and non-str in the query params). I can gladly fix in this PR if it's ok.

I don't understand what you mean. But push the fix anyway coz it's probably easier than trying to explain better

@Lapin0t you still working on this?

@Ashish0804 Nope, sorry. iirc the error thing i saw wasn't what i thought it was so i left it rot. I'll try looking this week end again. I'll see tomorrow but iirc it's mergeable already since everything seemed to be functional (and the "error"/warning is triggered by this new code path but not originating from it).


Added ability to provide custom item text when count format is provided

We wanted to change the word "items" when multiple items are selected. So I defined an option to provide it. This is one of my first github contributions so take it easy hah.

will this be merged any time soon?

Thanks for your contribution! Seems kind of overkill to add a new option just to replace 1 word. You would have the same outcome if you just set data-count-selected-text: '{0} things selected'. Admittedly, that won't work if selectedTextFormat is count > 0 (you'll have to use a custom function instead), but this PR won't address that issue either. I think a better option, which I'll try to add in one of the next updates, would be to add support for an array, where the first item is the text for when 1 item is selected, and the second is for multiple. That would allow easier customization when using data attributes.


Mod broke with new update

There's a new update for Skul and it doesn't work with the mod installed, there's just a black screen and if you click on it, it stops responding.

@idogadol Remove the mod then re-install work for me

Oh thanks I'll try that rn

@idogadol Remove the mod then re-install work for me

It works, thanks.


[ignition-modular-scripts] Migrate from Bitbucket to GitHub 🤖

As announced in https://community.gazebosim.org/t/important-gazebo-and-ignition-are-going-to-github/533, the ignition project repositories have been migrated from Bitbucket to GitHub.
This commit updates the ignition_modular_library helpers to use GitHub instead of Bitbucket,
and also update the hashes of all the ignition ports as apparently the archive generated by GitHub
for releases are slightly different from the one generated by Bitbucket.
Describe the pull request

What does your PR fix?
The PR does not fix any issue, but given that bitbucket will remove the original repos in June 2020, it will prevent future port failures.

Which triplets are supported/not supported? Have you updated the CI baseline?
No triplet support should he changed.

Does your PR follow the maintainer guide?
Yes. Furthermore the PR title follows the additional guidelines documented in https://github.com/microsoft/vcpkg/pull/7781#issuecomment-528017994 .

fyi @seanyen @j-rivero @chapulina

Please resolve these regressions.
Thanks.

Please resolve these regressions.
Thanks.

Hi  @JackBoosY, the regressions are due to the fact that vcpkg_from_github and vcpkg_from_bitbucket use the same name and the old bitbucket archive is still present in cache, as discussed in:

https://github.com/microsoft/vcpkg/pull/10858#discussion_r409832543
https://github.com/microsoft/vcpkg/pull/10859#issuecomment-615085034

It is possible to solve the issue, but it would require changes to the vcpkg_from_github , so if you could provide a feedback on the two proposals in https://github.com/microsoft/vcpkg/pull/10859#issuecomment-615085034  it would be great!

@traversaro Since vcpkg always chooses one repo to download source, I think we can delete the history in the baseline to solve this issue.

@traversaro Since vcpkg always chooses one repo to download source, I think we can delete the history in the baseline to solve this issue.

Great! There is any action needed on my side to do so?

Does this PR need to wait for #10859 to merge before merging?

No, they are completely independent.

@ras0219-msft Could you remove ignition-cmake_0.6.1.tar.gz from pipeline machine?
Thanks.

@ras0219-msft Could you remove ignition-cmake_0.6.1.tar.gz from pipeline machine?
Thanks.

Unfortunately I am afraid that the problem applies to all the ports that use the ignition_modular_library helper: https://github.com/microsoft/vcpkg/search?q=ignition_modular_library&unscoped_q=ignition_modular_library . Probably deleting all the archive that start with ignition- will be enough.

Now that we're on new machines, we should be fine? hopefully?

/azp run

Thanks @traversaro :D


Move release workflow to Rust

The release workflow was implemented in https://github.com/NomicFoundation/hardhat/pull/4415 based on the NAPI CLI generated project scaffolding. The result has a lot of code duplication and thus is prone to error. Another downside of the workflow being encoded in the GitHub CI instead of a Rust CLI app is that it cannot be reproduced locally. We should move the release workflow to a Rust CLI app similar to Slang.
When releasing EDR as an npm package, we need to:

change the version from major.minor.patch-dev to major.minor.patch
cross-compile binaries for all supported target triples (see)
auto-generate a JS wrapper that select the correct binary
publish packages to npm
bump the version to the next semver version and append the dev suffix

Slang has already implemented a CLI tool to achieve (most) of these, which we can likely reuse. The PR implementing this CLI can be found here. The files of interest are in crates/infra/cli.
We want a similar CLI tool for EDR. EDR-specific commands can live as duplicate code within our repository, but it would be good to create or use a general-purpose crate wherever possible.
Definiton of Done

Create a CLI that supports commands 1 through 5 (listed above)
Share as much of the common code between EDR and Slang (and potentially external crates)

It's important to allow releasing locally (without Github Actions) to improve our agility and in case of failures in the service.
Releasing from local CLI has these downsides besides the obvious upsides:

We can’t test the built artifacts on their target platforms if we take the Slang approach

This is important imo

We need the NPM token on our machines to publish the package

Not a problem for the @ignored org imo, can be a problem for the @nomicfoundation org

We lose the provenance certificate on NPM that links the CI run to the released package for auditable builds

This is a nice to have at this stage imo, will be more important once 3rd parties adopt EDR


is this repo dead?

I liked the idea and was planning to use it in a project but as per github, the last commit is from 4 months ago and I wonder if the development has ceased
tks

No it is not dead yet. Development will be resumed in July. We have been putting our resources in  research. We will share our results soon and we will be probably introducing architectural changes.

Ah man, this is a bit disheartening. I got pretty excited about the project when I first read all those Hacker Noon articles about it a few months ago, and like the OP I was just starting a project using it the other day - and then I found this issue, and I'm worried now about what the future of the project might be. Please don't wait too long before sharing your plans!

For anyone that wants to talk package management development, I invite you to: https://discord.gg/P3vtVSE
There's a (currently empty) channel already waiting buckaroo talk.

Work has been resumed.
Goals and roadmap of buckaroo will be published soon.

So we need to do a proper announcement, but here are the key points:

Buckaroo has funding for 2 developers full-time for approximately 1 year
We have an automated build-system porting tool at an alpha stage (see https://hackernoon.com/announcing-buildinfer-for-c-3dfa3eb15feb)
Full roadmap to follow


Swan IO functions

@ssolson same drill on this PR as the hindcast PR. One question for you about the SWAN data. Will the index and column names that come out of the Python side always be 0,1,2,3,4,5,6... etc? Or is there ever swan data that will have more descriptive coordinates, like Lat/Lon? Right now I am not accounting for that on the Matlab side, but I will need to if there is ever more descriptive coordinates.


We don't clear sketch (non-3D) entities from the scene when restarting onboarding

If the user has sketch entities in the scene and they restart onboarding, or if they move past the Sketching onboarding step with one, their sketch entities persist until refresh.

As mention on the issue, #895 resolves this.


Support for 'git branch -vv' or 'git branch --verbose --verbose'

git branch has the command-line option -vv or --verbose --verbose which also outputs the tracked branch of a local branch. The current implementation of passing command-line arguments in GitWrapper using an array does not make it possible to use these command-line options.

Hey @gerritdrost ,
since 2.0 version, this should work:
$gitWorkingCopy->branch(['vv' => true]);


improve ux flow for Nano S

Currently, this PR fixes the UX flow on Nano S in two ways:

to make it consistent with Nano X and Nano S+, scrolling left and right is possible throughout the app and double click is only used at the end to approve a transaction
to improve security, the active wallet is displayed as the first element of every transaction; this avoids compelling a user to sign a transaction with the wrong wallet

This second feature will be integrated into the Nano X and Nano S+ transactions before this draft PR is ready for review.

All applications display wallet prior to transactions now.


nix-shell slow for qt5.qtbase

Issue description
When running nix-shell -p qt5.qtbase, it takes around 5-6 seconds on my machine. This is kind of annoying when going into / out of the nix-shell regularly.
When I switch to using nix-shell -p qt5.full, it only takes 1-2 seconds, which is acceptable.
What is the reason for qtbase being so much slower than full? I encountered this by accident when I switched my shell.nix to use the smaller qtbase package, because then I don't have such a big closure (and especially don't have to compile so many qt modules).
Steps to reproduce
Measure time for nix-shell -p qt5.qtbase and compare it to nix-shell -p qt5.full.
Technical details
nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 4.18.17, NixOS, 18.09.1228.a4c4cbb613c (Jellyfish)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.1.3`
 - channels(root): `"nixos-18.09.1228.a4c4cbb613c, nixos-unstable-19.03pre159472.80738ed9dc0"`
 - channels(nion): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

nix-shell -p qt5.qtbase is quick for me
nix shell "nixpkgs#qt5.qtbase" is even quicker


form-control: wrong behavior if switching off readonly on dblclick (Chrome)

The issue can be observed here: jsfiddle
Was reproduced with Chrome 41.
Description: when switching off 'readonly' state of the input.form-control on the fly (via dblclick event) element stops showing text caret, however user can still type text. The issue is not reproduced for standard input controls without form-control class (see jsfidlle link above).

Hi @DenisVuyka!
You appear to have posted a live example (https://fiddle.jshell.net/dvuyka/htua4ugm/show/light/), which is always a good first step. However, according to the HTML5 validator, your example has some validation errors, which might potentially be causing your issue:

line 52, column 73: Bad value true for attribute readonly on element input.
line 57, column 52: Bad value true for attribute readonly on element input.

You'll need to fix these errors and post a revised example before we can proceed further.
Thanks!
(Please note that this is a fully automated comment.)

The example was updated with readonly="readonly", this does affect the issue though.

Reposting so as to trigger the validator again: https://jsfiddle.net/dvuyka/htua4ugm/

Hi @cvrebert!
You appear to have posted a live example (https://fiddle.jshell.net/dvuyka/htua4ugm/show/light/), which is always a good first step. However, according to Bootlint, your example has some Bootstrap usage errors, which might potentially be causing your issue:

line 12, column 3: W013: Bootstrap version might be outdated. Latest version is at least 3.3.2 ; saw what appears to be usage of Bootstrap 3.2.0
line 13, column 3: W013: Bootstrap version might be outdated. Latest version is at least 3.3.2 ; saw what appears to be usage of Bootstrap 3.2.0

You'll need to fix these errors and post a revised example before we can proceed further.
Thanks!
(Please note that this is a fully automated comment.)

Corrected to use latest Bootstrap: https://jsfiddle.net/w16tvcp2/1/

Hi @cvrebert!
You appear to have posted a live example (https://fiddle.jshell.net/w16tvcp2/1/show/light/), which is always a good first step. However, according to Bootlint, your example has some Bootstrap usage errors, which might potentially be causing your issue:

line 12, column 3: E007: Only one copy of Bootstrap's JS should be included; currently the webpage includes both bootstrap.js and bootstrap.min.js
line 22, column 7: E007: Only one copy of Bootstrap's JS should be included; currently the webpage includes both bootstrap.js and bootstrap.min.js
line 12, column 3: W013: Bootstrap version might be outdated. Latest version is at least 3.3.2 ; saw what appears to be usage of Bootstrap 3.2.0
line 13, column 3: W013: Bootstrap version might be outdated. Latest version is at least 3.3.2 ; saw what appears to be usage of Bootstrap 3.2.0

You'll need to fix these errors and post a revised example before we can proceed further.
Thanks!
(Please note that this is a fully automated comment.)

Corrected to use latest Bootstrap: https://jsfiddle.net/w16tvcp2/2/

OS X Safari is also affected.

Simplified testcase: https://jsfiddle.net/f8utvj06/2/
Apparently this somehow relates to outline...

@cvrebert Thanks for simplified scenario. I've noticed that control starts working when setting "outline: -2px;". I guess this is something to be fixed at 'form-control' side.

Filed Chrome bug: https://code.google.com/p/chromium/issues/detail?id=465274

Discovered a different Firefox bug in the course of investigating your bug; reported it as https://bugzilla.mozilla.org/show_bug.cgi?id=1141011

Filed WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=142477
Filed Safari Radar: http://openradar.appspot.com/20090003

Note that this isn't outline:0-specific. Chrome has the same problem with #input1:focus { outline: 5px solid red; }.
@mdo Any thoughts?

These need to be added to the wall of bugs, @cvrebert?

@zacechola The Chrome bug, yes. The others aren't Bootstrap-specific.

Anything left to do here?

@mdo Unless you happen to know some relevant CSS magic or were to think this bug is more important than the custom :focus outline, I think this is CantFix/WontFix due to underlying browser bugs.

hfdhfhfds


PhpInterface::fromReflection requires custom code

I wanted to use PhpInterface::fromReflection on the SPL Interface Iterator, however I get an error.
Code:
$pInterface = PhpInterface::fromReflection(new \ReflectionClass(\Iterator::class));

Error:
file(): Filename cannot be empty

vendor/gossi/php-code-generator/src/utils/ReflectionUtils.php:78
vendor/gossi/php-code-generator/src/model/PhpInterface.php:31

I see that actually the Reflection Class is only used to retrieve the file in order to parse the file content.
Might want to update the documentation to warn devs about this behaviour :)

Can you provide a test object, which I can also add to the test suite? Can be a minimal working example of yours, which is causing the problem at the moment.

Unfortunately the Reflection classes by php don't offer all the information needed to completely parse a certain code fully into php code generators model. As such the file is read (e.g. reading the body for all methods or constants (in the next release)). I am more wondering why you read in a built-in code class? What's the matter? I'm wondering how to handle possible error messages in that case. Thanks for helping out on this one.

I'm asking because I'm working on the code-generator at the moment. I have more and more the tendency to remove the fromReflection methods in order to read in code via the fromFile method. Well, fromReflection still could serve as shortcut to this but actually it would mean maintain two "parsers" while actually reflection requires too much utility code to read in all the information making it very much unreliable.

Hey there,
the reason was for me to automatically copy abstract methods from the interface to a generated class but I found a different way. I think if you threw an Exception when the ReflectionClass::getFileName === false
Or completely remove it as you mentioned since, one can use the the fromFile Method with a ReflectionClass Object.
Cheerio

Yes I see, that was the case I was thinking about after writing this comment. However, getting class signatures is not the purpose of this library and should be done apart from that (at least the parsing parts, the models are great to use them). The formReflection() methods will be deprecated in the next version and are just a shortcut to static::fromFile($reflection->getFileName()).

:+1:


Where to see segmentation result images?

I finished running train/test but I am unsure where I can find the segmentation results for training and testing (similar to the ones in the readme). Could you point me to where the result images are? Thanks!

There should be a logs folder just at the root level of the project. For example https://github.com/sraashis/deepdyn/tree/master/logs/DRIVE/UNET_1_100_1.


NATS: Support File-Based Authentication Options

🚀 Feature Request
Relevant Package [REQUIRED]
NATS message bus client should support file-based authentication options including:
Nkey Seed: https://docs.nats.io/using-nats/developer/connecting/nkey
Credentials File: https://docs.nats.io/using-nats/developer/connecting/creds
Description [REQUIRED]
 A clear and concise description of the problem or missing capability...
If available users should be able to bring their own NKEYS seed or credentials file.
Describe the solution you'd like
New options can be added for NKeySeedFile and CredentialsFile mapped to the appropriate underlying nats.go option.
Describe alternatives you've considered
Just using username/password.

Note with MQTT these can come from Vault or InsecureSecrest config, based on AuthMode setting.


gx-workspace, a project management tool

@lgierth has been throwing the idea of a gx-workspace tool around for a while, and i've had some thoughts about it recently. So heres my (hopefully coherent) thoughts:
gx-workspace will be a gx subtool like gx-go and friends. you will be able to make a package of type "workspace" and add dependencies to it.
Packages which are dependencies of a workspace package are 'managed' by the workspace. Updating one package in the workspace will recursively update that package in all other deps of the workspace, bubbling changes up throughout as needed.
gx-workspace will also be able to generate a 'repo' from its package so that other projects may easily sync up with your set of packages.
gx-workspace might have some special hooks when we get around to the 'package index.html' pages that turn its welcome page into more of a 'registry' feeling site.
example mocked up commands:
$ gx init
what language will the project be in? workspace
initializing package foobar...
$ gx import github.com/ipfs/go-cid
$ gx import github.com/multiformats/go-multihash
$ gx import github.com/multiformats/go-multiaddr
...
some time later
...
$ gx update github.com/multiformats/go-multihash
updated go-cid to use go-multihash vX.Y.Z!
$ gx-workspace mkrepo
QmBlahBlahBlah

This package could then be easily added to source control, and hooks could be added for automated testing, and pushing and other such fun stuff.

Being able to update all dependencies or at least be warned about incompatible versions would indeed be insanely useful.
I'm not quite sure if this is in scope and if it is possible, but since gx already has semver it would be really nice to be able to define up until where you'd like a package to be updated. NPM's (and others') caret ranges work nicely without changing the current structure of the gx package.
{
  "author": "whyrusleeping",
  "hash": "Qmxxx",
  "name": "go-libp2p",
  "version": "^4.0.1",
}

You should be able to now do gx update github.com/libp2p/go-libp2p, it will find the latext 4.x.x version, update it with all its dependencies and get it over with. -- The problem with this is that you'd need the devs to be tagging their repos at each version.

Could the version management for gx be build as a plugin on top of glide, gvp, or whatever else is out there? Glide's wizard is a pretty cool feature to get for free.

@whyrusleeping I generally like the workspace package idea, nice.
I'm not yet sure how to fit this into gopath, i.e. how to connect this with a "working directory" for each package. Many subtools will be very flexible there, but e.g. go is very strict (it must be at an exact filesystem path). A simple option is gx-workspace getting an install path from each package's respective subtool, i.e. gopath+/+dvcsimport and putting each package there. Sound good?
Another concern is that a workspace-bootstrap command should clone each dvcsimport, and not just use the package without repo, so that we can actually work with the directories managed by gx-workspace.

since gx already has semver it would be really nice to be able to define up until where you'd like a package to be updated.

(Let's discuss this in another issue)
I'm hesitant to consider flexible versions -- we'd sacrifice the reproducibility of dependencies, and very likely would want to bring it back again later, but in a much more complicated way (by means of a lockfile). The biggest difficulty though is to defer versions from from the git repo.

@lgierth if we exclude windows from the fun, you can symlink directories inside the vendor/github.com/....

Huh I didn't think about that! I wonder if that might lead to funny situations like go seeing the exact same file at two different paths, e.g. go-ipfs/vendor/.../go-multihash.Multihash and go-cid/vendor/.../go-multihash.Multihash.
My own local setup is having all of ipfs/, libp2p/, multiformats/, ipld/, gxed/ in a convenient location, then symlinking them into gopath/src/github.com/, so that I'm technically working within gopath as far as go tools and imports are concerned. So at least for me, both options would work.
But to be honest I'm totally fine excluding windows for now. We can patch in a --clone-into-gopath flag for windows later, which would clone to gopath/src/ instead of vendor/.

go-ipfs/vendor/.../go-multihash.Multihash and go-cid/vendor/.../go-multihash.Multihash will be different packages

I know, just wondering if that situation will happen. I'll just test

Another concern is that a workspace-bootstrap command should clone each dvcsimport, and not just use the package without repo, so that we can actually work with the directories managed by gx-workspace.

It can just do go get -d -u $dvcsimport

@lgierth lets be careful not to specialize this tool for a certain language/environment

Yes yes it'd be the job of the language subtool to provide an install path

I've been sketching what the workflow would look like with a gx-workspace tool, and I think we can easily do it without any meta package. See https://github.com/ipfs/gx-workspace#usage:
Usage
We're working directly in the respective package, no administrative overhead
> cd $GOPATH/src/github.com/ipfs/go-ipfs/

Let's clone/pull all the respective dvcsimport repos into GOPATH.
Most of them will already be there and it's our "workspace".
> gx-workspace pull

Now bubble up the hashes through the tree, this leaves dirty package.json and .gx/.
This will abort if any repo is dirty, overridable by -f
> gx-workspace update go-cid go-libp2p-interface-pnet

Run tests in all packages.
> gx-workspace exec make test

Now do the git dance, but only for repos which got touched
> gx-workspace pr feat/gx-update-123456
# which is the equivalent of:
> gx-workspace exec --only-deps --changed 'git checkout -b $branch && git commit -am "gx release $VERSION" && git push origin $BRANCH && hub pull-request -m "Update go-cid go-libp2p-interface-pnet"'

There's going to be some packages that are outside of this dependency tree,
but still want these updates. They can copy over the updates:
> cd $GOPATH/src/github.com/ipfs/ipns-pub
> gx-workspace pull
> gx-workspace update-from go-ipfs

I am still for a tool that would setup separate workspace for task like that due to how easy it is to then reverse the process, just remove the director tree.

Okay, I think that can be done without too much of a change. Setting GOPATH to a different dir, making sure the "root" package is symlinked there.

I would love to have this line:
> gx-workspace exec --only-deps --changed 'git checkout -b $branch && git commit -am "gx release $VERSION" && git push origin $BRANCH && hub pull-request -m "Update go-cid go-libp2p-interface-pnet"'

A bit more scriptable. For example, having the hub pull-request command be able to embed links to the other PRs we've created so far would be amazing. And also have a gx test thrown in there for good measure would be :ok_hand:
Also, its definitely worth checking that gx deps dupes doesnt output anything, that can help prevent a lot of dep issues (though this is currently broken for go-ipfs itself as two different packages are named sys)

This has been continued in ipfs/gx-workspace btw


Add flash attention to Transformers

Implements #339

@marksgraham I was thinking, since now Pytorch 2.0 has native flash attention, do you think it is worth to abandon the xformer dependency and adopt the native option instead? Since Pytorch 2.0 has compatibility, it would not be an issue to update to it in place of installing xformers (which requires Pytorch > 1.13)


Chart 3.0.0-beta.7: Overriding default legend options triggers error

https://codepen.io/santa-85/pen/XWjKOOP
When creating a doughnut chart, and at the same time globally overriding defaults to disable legends, I get the following error in console:
Uncaught TypeError: Cannot read property 'font' of undefined
Does not happen for instance with a bar chart.

This is because the doughnut chart has it's own legend defaults combined with the fact that the legend fit function doesn't immediately short circuit itself if the legend is not displayed.
https://github.com/chartjs/Chart.js/blob/master/src/controllers/controller.doughnut.js#L360-L389


UI Test : GraphQL subscriptions support.

Test verifies the entire flow basic for Graphql API according to the following documentation.
https://apim.docs.wso2.com/en/latest/tutorials/create-and-publish-a-graphql-api/

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Rusiri Jayoda Illesinghe seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Deprecated mattermost version CLI command

Documentation for: https://github.com/mattermost/mattermost-server/pull/19364

Updated the mattermost version CLI command note to deprecate the command in favor of mattermost db migrate.

@isacikgoz - Given that mattermost version is being deprecated, can I get your help updating a few examples of mattermost version usage on this CLI docs page, please? Instead of mattermost version, what Mattermost CLI command, if any, would you recommend as a replacement? (Or would you recommend taking a different path altogether with these updates?)

https://docs.mattermost.com/manage/command-line-tools.html#use-the-cli
https://docs.mattermost.com/manage/command-line-tools.html#use-the-cli-on-gitlab-omnibus

Thank you @isacikgoz! The fact that mmctl system version only returns a build number is worth clarifying in the docs too. Given that we have a couple of instances on that page where we use mattermost version as an example, what would you recommend as a reasonable alternative example instead?

@cwarnermm I think the examples in the manage/command-line-tools.html path are just fine. Maybe we can omit the --config flag in the GitLab Omnibus example and it's corresponding value as the flag is redundant and not being used anymore.
The mmctl documentation for mmctl system version is accurate but it can be elaborated with an example output anyway.


Create an HR Glossary of Terms to Support Employee Journey

#Privacy of Information and Protection:
Your opinion is your personal information. Please do not include any information which identifies you or others in your response.
#Description:
Create a document that defines all relevant terms.
#Outcome:

[ ]  Word. Doc.
[ ]
[ ]

#To Complete this ticket:

[ ]
[ ]
[ ]

@dcaird or @lagaultier , DO you know where @amaunders put the word doc?
I don't see it in the project folder.  Do either of you know where it is and out in the Work folder for now?  Thx.


Automatic commit: Move 'cp-apim-sales-tracker-create-destination' fro…

…m QA to Production

Sorry to bother you about this, but can you still fix casing in tutorials/cp-apim-openconnectors-enable/cp-apim-openconnectors-enable.md. It should be:
[ACCORDION-BEGIN [Step 1: ](Enter your trial account)]
Enter your trial account by clicking on Enter Your Trial Account.

Hello Daniel,
This is already done. Please refresh once.
Regards
Shilpa
From: Daniel Wroblewski<EMAIL_ADDRESS>Sent: Thursday, November 21, 2019 12:14 PM
To: SAPDocuments/Tutorials<EMAIL_ADDRESS>Cc: Vij, Shilpa<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [SAPDocuments/Tutorials] Automatic commit: Move 'cp-apim-sales-tracker-create-destination' fro… (#4247)
Sorry to bother you about this, but can you still fix casing in tutorials/cp-apim-openconnectors-enable/cp-apim-openconnectors-enable.md. It should be:
[ACCORDION-BEGIN [Step 1: ](Enter your trial account)]
Enter your trial account by clicking on Enter Your Trial Account.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/SAPDocuments/Tutorials/pull/4247?email_source=notifications&email_token=AKQ3P53DG5SFEX3YCXHENQLQUYUZ5A5CNFSM4JPP6NU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEZEXNA#issuecomment-556944308, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKQ3P5YFUNEIQMF5HHHESJTQUYUZ5ANCNFSM4JPP6NUQ.


Notification no receiveing

Sometimes notification no coming. i sent a test message but its not deleivered

Hi @suthishan
When opening an issue, please try to provide all of the information indicated in the template.
Closing this issue, since no information has been provided.
Thank you.