Function type parameters support

Up until now the function type were in the LST represented using lambdas. This approach falls down, because with function type parameters the type is mandatory and the name is optional, whereas for lambdas it is the other way around. Also, a lambda as a body, whereas a function type has a return type.
The K.FunctionType now declares an explicit K.FunctionType.Parameters parameters object, a Space arrow for the arrow prefix, and a TypedTree returnType for the return type.

This is still very much work in progress.

@traceyyoshima I need to split this PR in two. I started working on the function type parameters and then noticed that there are more cases when the constructor delegation needs fixing.
The code is still a bit messy (which is also partly due to the fact that our parser currently is designed to advance serially along the contents of the source file rather than extract information from the PSI), but the idea is that when we have constructor delegation (as in e.g. class Test : Super() or in class Test(val id2 : Int) : Super(1 + 3)) we don't add a K.FunctionType (with a J.NewClass as its "body") to J.Class#implementings, but rather a regular J.Identifier (in the example that would be Super) and at the same time we add a constructor (J.MethodDeclaration) with a super call (J.MethodInvocation) to its body.
I think this is more correct with respect to what the compiler backend does. But it will continue to be brittle (i.e. Java recipes could easily wreak havoc when modifying Kotlin LSTs).

@traceyyoshima What are your thoughts on this? Do you think it is overkill to mimic the Kotlin compiler by inferring synthetic elements like a constructor method declaration and with a body with a super() or this() call in it and then use that in the printer? There would certainly be other alternatives (e.g. attach more information directly to the marker).
I think for Java interoperability and existing find recipes it may make sense to go the extra mile here.
I will now try to make sure we can maintain deserialization compatibility with the old LSTs.

I've now extracted a part of this PR into #283. Will remove the corresponding part from here, once that is merged.

@traceyyoshima This PR is now ready for review. Please note that it also contains basic support for nullable function types (see #275). That is not complete yet, because it will require adding a few more Space properties to the LST. But I think we can deal with that later (I will just keep the issue open for now).
Please pay extra attention when reviewing the LST changes. I still struggle a bit with finding the best way to store whitespace in the LST (using Space, JLeftPadded, JRightPadded, and JContainer and the corresponding Kotlin types). Possibly that can still be improved / simplified.

@traceyyoshima Also here I went ahead and merged, so that I can continue working on other bugs / features without having to do too much conflict resolution in Git later. I hope we will only have to adjust details in this PR.


New-DbaDbUser: Add param for Default Schema

Type of Change

[ ] Bug fix (non-breaking change, fixes # )
[x] New feature (non-breaking change, adds functionality, fixes #7971 )
[ ] Breaking change (effects multiple commands or functionality, fixes # )
[x] Ran manual Pester test and has passed (.\tests\manual.pester.ps1)
[x] Adding code coverage to existing functionality
[x] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Unit test is included
[x] Documentation
[ ] Build system

Purpose

Minor change to allow DefaultSchema to be specified when calling New-DbaDbUser
Approach

New param with validation to ensure the specified schema exists in the db.
Commands to test

See the pester test for updates.

This change seems to have impacted Get-DbaDbSchema. I'll take a closer look.


V3 API Support

As of April 30th, 2019 V2 of the API will be retired and V3 will be the only option.
The interface is significantly different - all requests are sent in JSON (not via URL paramaters) and the responses are different, too.
Please can the library be updated to support this.

A bit late but this may be useful. Azure Translator.


CacheModule.register() missing type for store property for redisStore

Is there an existing issue for this?

[X] I have searched the existing issues

Current behavior
As per documentation , for using the redis store with CacheModule ( exported from @nestjs/cache-manager) , we provide the value for store manually i.e. redisStore (  exported from cache-maanger-redis-store), but there's no type "Store" present in CacheMangerOptions property of CacheModule.register() method . "Store" is the property exported from 'cache-manager" in redisStore.
CacheModule.register<RedisClientOptions>({       store: redisStore,       host: 'localhost', // Redis server host       port: 6379, // Redis server port     }),
Current interface for CacheMangerOptions

`export interface CacheManagerOptions {
store?: string | CacheStoreFactory | CacheStore;
ttl?: number;
max?: number;
isCacheableValue?: (value: any) => boolean;

}`
Minimum reproduction code
https://github.com/no91one/nestjs-redis.git
Steps to reproduce
npm i
nest start --watch
Expected behavior
export interface CacheManagerOptions {
store?: string | CacheStoreFactory | CacheStore | Store;
host?:string;
port?:number;
ttl?: number;
max?: number;
isCacheableValue?: (value: any) => boolean;
}
Package version
2.1.0
NestJS version
10.0.0
Node.js version
18.16.1
In which operating systems have you tested?

[X] macOS
[X] Windows
[ ] Linux

Other
No response

Please, use our Discord channel (support) for such questions. We are using GitHub to track bugs, feature requests, and potential improvements.


Make the project work on Windows

Scope effort required to run the project on Windows and implement the solution

A temporary fix for this issue has been added to readme. The current solution works only for windows 10.


The problem with _label.npy

In the file
https://github.com/wentaozhu/DeepLung/blob/22478e19d593c0669293125747dac52d0c72fd14/prepare.py#L579
the luna annotations.csv's order is x,y,z,diam
but in the file
DeepLung/DeepLungDetectionDemo/detector.ipynb
ctdat = np.load('./CT/'+srslst[showid]+'_clean.npy')
ctlab = np.load('./CT/'+srslst[showid]+'_label.npy')
print('Groundtruth')
print(ctdat.shape, ctlab.shape)
for idx in xrange(ctlab.shape[0]):
    if abs(ctlab[idx,0])+abs(ctlab[idx,1])+abs(ctlab[idx,2])+abs(ctlab[idx,3])==0: continue
    fig = plt.figure()
    z, x, y = int(ctlab[idx,0]), int(ctlab[idx,1]), int(ctlab[idx,2])

the order is z,x,y.
Could you tell me where the order has been changed?

It is in the function load_itk_image() in prepare.py.


CI: Add era release pipeline

Closed in https://github.com/IngenicsDigital/easy-release-automation/pull/19


Don't interpolatie expression in ts-criteria filter parameter

It doesn't work:

it works:

I can't find any documentation that clearly says how angular filters are supposed to behave with extra parameters. Can you make an example or something that shows this behaviour?

@mattiash Hi! Check this doc https://docs.angularjs.org/api/ng/filter/filter


Either optimize F# tools or extend command time out to allow slower plugins.

Formatting using Fantomas, is too slow on my PC when running on 2.3GHz. However when boosting to 4.6GHz i can run the formatter.
We either need optimize the F# tools or extend command time limit to accomodate slow formatting.
It would be nice to be able to format when being on powersave mode at 900MHz, therefore the time limit should be extend by a factor of 3 - 5, maybe.

#78 should also make it easier to see what the status of the LSP is.


SSL (HTTPS) Cert fail?

Think your SSL Cert might have expired? I can only reach the service on HTTP at the moment...

Thanks for notifying, fixed now.


Add test vectors for Crypto::Bcrypt.

Most are commented out waiting for Bcrypt::Base64 to be fixed.

@technorama can the commented lines be uncommented? Base64 should be fixed now.

I merely added another Base64 API, which isn't even used by the BCrypt implementation. The BCrypt implementation needs some major rework and fixes.

Ah, OK, I thought they were related.

I uncommented everything and changed the spec to pending.  The specs will be useful to those attempting to fix the bcrypt implementation.

I think we should keep this open until we fix or drop BCrypt, these vectors are definitely needed.

We'll probably remove bcrypt if it's broken, and wait for someone (or us) to implement it well.

I agree with removing BCrypt until someone implements it correctly, or provides a C binding —I could, but there are no reference C implementation, unlike scrypt.

Pulled in via #1492, thanks!


Support more arithmetic in amount entry

As far as I'm aware it is only possible to calculate the amount of a posting based on the sum of multiple numbers. I'd like to suggest an enhancement: it would be superuseful for me - and I guess others as well -  to be able to quickly calculate the amount of a posting by multiplying.
My usecase is this: some of the invoices I need to book only provide a subtotal amount for specific invoice items excluding VAT. I'm not working for an organization that has a VAT-status so I need to book these items including VAT. If I would be able to add these by simply entering 50*1.21 (Dutch VAT is 21%), that would speed up data entry considerably.
If this is already possible, I'd like to know how of course. (I'm running hledger-iadd version 1.3.5 and hledger version 1.10). Thanks for considering.

Sure, good idea. It shouldn't be too hard to add the rest of basic arithmetic.

It shouldn't be too hard

Yeah well... we currently let hledger parse the amounts and with the way the parser works and the existence of default commodities it's really hard to distinguish amounts from plain numbers.
Multiplying amounts by amounts doesn't make sense either (or else you'd get €²), but that's what I implemented now in the hope that nobody will notice.
Could you please try the features/amount-arith branch to see if it works for you?

A possibly related WIP hledger PR: https://github.com/simonmichael/hledger/pull/871#issuecomment-423705985

Sorry for the delayed reply, I missed the Github notification. I've just built the feature branch and tested multiplication.
Works exactly as expected:

Multiplying without commodity: 2 * 1.21 = 2.42
Multiplying with commodity at the start: € 2 * 1.21 = € 2.42
Multiplying with commodity before first and second amount: € 2 * € 1.21 = € 2.42
Multiplying different commidities: € 2 * $ 1.21: Cannot multiply two amounts with different commodity

So, I can't reproduce the behavior you mentioned above, but that's a good thing I would say :)
Let me know if I you need more testing. For now: thanks a lot, you've made me a even happier bookkeeper!

Nice!
We might get similar functionality into hledger core at some point. Use cases, like the one you gave, are helpful. Here's some syntax sugar for percentages I was thinking about:

In a multiplication or division, 21% is equivalent to 0.21
+21% is equivalent to LEFTSIDE * 1.21 (and similar for minus)

* Multiplying with commodity before first and second amount: `€ 2 * € 1.21 = € 2.42`

Yes, that's what I meant. This should be a syntax error, but that's hard to do in the presence of default commodities.

Let me know if I you need more testing. For now: thanks a lot, you've made me a even happier bookkeeper!

Great to hear that it works for you!
I'm still not sure whether I should merge this. On the one hand it solves a real problem now, on the other hand, it's implemented as a hack and I would rather wait for proper multiplication support in hledger-lib.

* `+21%` is equivalent to LEFTSIDE * 1.21 (and similar for minus)

How would associativity and commutativity work in this case? E.g what would 5 + 5 + 50%, 5 + 25%*2 or 2*5 + 50% be?

Good idea to provide basic arithmetic!!
When I'm buying things in some shop I do divide total amount in few categories - e.g. food, cosmetic, gifts, misc etc. and then after summing some category I substract the rest from total amount as well as multiplying items in the same category...

@hpdeifel Hi, absolutely love the idea - my use case is sharing expenses with other people, so amount / n where n is the number of people and 2 is most common, so I could reasonably do amount * 0.5 for now. Is there anything I could do to help to get it merged?
IMO 2 COM * 3 COM = 6 COM where COM is some commodity is acceptable in the domain of finance, especially given that default commodity kerfuffle. I just don't see how someone might accidentally directly input 2 COM * 3 COM and have a problem that:

the result computes
result isn't 6 COM^2 I mean... euro squared? cow squared? even if someone has a metal slab and uses parts of it (like 5 inches) as a means of exchange - then inch squared wouldn't make much sense either (as opposed to directly inputted square inch to denote a piece of something that is actually divided by an area)

Please add "+" operator too.
Sometimes it is useful to sum multiple expenses in single category.

Please add "+" operator too. Sometimes it is useful to sum multiple expenses in single category.

Addition already works.

Please add "+" operator too. Sometimes it is useful to sum multiple expenses in single category.

Addition already works.

I get an error while adding. Consider the following journal transaction:
Transaction
2024-05-09 Payee A
    expenses:rent              (1100 + 50)
    Assets:checking

Error message
Command: hledger -f test.ledger bal
hledger: test.ledger:32:39:
   |
32 |     expenses:rent              (1100 + 50)
   |                                       ^
unexpected '+'
expecting ';', '=', end of input, ledger-style lot date, ledger-style lot price, newline, or transaction price

I have tried all possible combinations like 1100+50, 1100 + 50, (1100 + 50), (1100+50) but to no avail.
Version
Command: hledger --version
hledger 1.25, linux-x86_64
Can you please help me?

@nirmalnirav this is the issue tracker of hledger-iadd, not hleder. Arithmetic is only implemented in iadd.

I apologise for the mixing it up. Thank you for the comment.


Moar colors! - variable/param/event colors

Today, it appears that these are the same color as plain text:

We can do better than this. The default dark theme colors these:

We should use the style guide:
https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md

In #22 I did some exploration to bring more colors to the theme. Currently I only touched the Frappé theme and still have a question regarding to xml coloring.
It brings better color support for

C#
XML, AXML, XAML
VsVim extension

it should be fairly easy to port those changes to the other themes as well, once the xml questions are answered


[perf] NoOpTest.run_async() should yield to avoid blocking event loop

Fixes #23740
Reduces throughput by almost a factor of 10 (1.3M vs 160k ops/sec), but allows for parallel execution and should more accurately represent real-world async performance.

Parallel
main
PR

1
1,300,000
160,000

2
FAIL
198,000

4
FAIL
226,000

8
FAIL
234,000

16
FAIL
237,000

32
FAIL
263,000

64
FAIL
271,000

/check-enforcer override


show expression in phenotype detail view

we need a columns for expression details in phenotype detail view

How should this be displayed for multi-allele genotypes?  Currently you need to click through to the genotype page to see the expression which keeps it tidy.

well usually you can guess, or mostly it wasn't assayed...

It probably is OK to have it in genotype details now we have this page.....
?

It probably is OK to have it in genotype details now we have this page.....

A compromise is to have more details pop up when you mouse-over the genotype.

that would be good too...

that would be good too...

OK, I'll try that to see if it helps.

A compromise is to have more details pop up when you mouse-over the genotype.

I've added a pop up that shows the allele expression details when you mouse-over a genotype description (like those in the phenotype annotation section).  I suspect it will be a bit annoying, but let me know what you think.

I don't mind it so much lets see what others think.....maybe we only need something subtler ...
(you can't move int the pop up to click on the hyperlinked gene).

...I'm still in 2 minds whether it is needed, its only one click away and often its obvious...

I can live with that, especially if it saves Kim coding and us testing something more complicated.

I think I'll close this.  Please re-open or create a new issue for changes.


Support complex number

Change Summary
Support complex numbers.
Related issue number
Closes https://github.com/pydantic/pydantic/issues/8555
Checklist

[x] The pull request title is a good summary of the changes - it will be used in the changelog
[x] Unit tests for the changes exist
[ ] Tests pass on CI
[ ] Documentation reflects the changes where applicable
[ ] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

Also, upgrade to pydantic-core v2.22.0, which adds support for complex schemas. We've bundled in some other patches along with this release, such as removing xfails associated with tests that this release fixed!

Hi @changhc,
Great start here - looking good.
Maybe we could add a section to the docs as well with some usage patterns.

I left some notes on next steps in the pydantic-core PR :).

@changhc, could you provide an example in pydantic where the error type is complex_str_parsing?

Probably could use some more docs here as well. I can handle that and will create an associated issue.

Hi @sydney-runkle, I've updated the error doc. The test case that failed with pypy is now skipped. A fix is merged into pypy master branch but not yet released. I'm trying to fix the failed mypy test.

@changhc,
Awesome find! Great work on this feature. We'll be sure to celebrate this in our upcoming release!!
I recall you mentioned you might be interested in working on some other issues. If this is still the case, I can point you towards some fun ones!

Thank you for the review! Yes I would love to look into other issues.
By the way, how much does the team care about test coverage? After reading the test coverage report, I'm now adding some tests to cover the missing lines, though I'm not sure if they actually help since the tests to be added are like simply checking if the json schema of a model matches the expected schema.

By the way, how much does the team care about test coverage? After reading the test coverage report, I'm now adding some tests to cover the missing lines, though I'm not sure if they actually help since the tests to be added are like simply checking if the json schema of a model matches the expected schema.

We care a decent amount about coverage - more tests sound great. Happy to merge after we add those. We generally try to keep coverage above 90%, but closer to 100% would be great.

Thank you for the review! Yes I would love to look into other issues.

Awesome, I'll ping you with some fun ones soon.

@changhc, as promised, some fun issues:

https://github.com/pydantic/pydantic/issues/10111
https://github.com/pydantic/pydantic/issues/9782
https://github.com/pydantic/pydantic/issues/9677
https://github.com/pydantic/pydantic/issues/8922
https://github.com/pydantic/pydantic/issues/8308

The missing line in the previous report is now covered.

@changhc, another fun one: https://github.com/pydantic/pydantic/issues/9731


liveness and readyness probes don't parse the correct config if a custom xml file is provided

It looks like the probe-common.sh will always parse ${ISPN_HOME}/server/conf/infinispan.xml even if a custom config is provided with -c.
Anyway, when providing a custom config, the container is never ready in kubernetes, the readyness probe outputs :
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

It looks like the probe-common.sh will always parse ${ISPN_HOME}/server/conf/infinispan.xml even if a custom config is provided with -c.

If you're providing a custom entry point for the image, it's not really possible for the name of the configuration file to be known by the probes. One solution would be for an environment variable to be utilised by the probes to determine the config name, with this being explicitly set by the custom entry point or at container runtime. However, this isn't a route I want to go down as it is yet another configuration param. I think the easiest solution is to either:

Provide your custom config as infinispan.xml
Write your own probe scripts as required

Anyway, when providing a custom config, the container is never ready in kubernetes, the readyness probe outputs :
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Can you provide me with your custom xml, I need to see the endpoint/security configuration to ascertain what could be going wrong.

1. Provide your custom config as `infinispan.xml`

And i would need to get the config into /opt/infinispan/server/conf/infinispan.xml as well, right ?

Can you provide me with your custom xml, I need to see the endpoint/security configuration to ascertain what could be going wrong.

<infinispan
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:infinispan:config:10.0 http://www.infinispan.org/schemas/infinispan-config-10.0.xsd
                                urn:infinispan:server:10.0 http://www.infinispan.org/schemas/infinispan-server-10.0.xsd"
            xmlns="urn:infinispan:config:10.0"
            xmlns:server="urn:infinispan:server:10.0">

       <cache-container name="clustered" statistics="true">
          <transport cluster="${infinispan.cluster.name}" stack="kubernetes"/>

             <replicated-cache name="LuceneIndexesLocking">
                <indexing index="NONE" />
             </replicated-cache>

             <replicated-cache name="LuceneIndexesMetadata">
                <indexing index="NONE" />
             </replicated-cache>

             <distributed-cache name="LuceneIndexesData">
                <indexing index="NONE" />
             </distributed-cache>

             <distributed-cache owners="3" mode="SYNC" remote-timeout="15000" name="devices">
                <locking isolation="READ_COMMITTED"/>
                <indexing index="PRIMARY_OWNER">
                   <property name="default.indexmanager">
                               org.infinispan.query.indexmanager.InfinispanIndexManager
                   </property>
                </indexing>
             </distributed-cache>

             <distributed-cache-configuration name="distributed-volatile-cache-template">

                <transaction mode="NONE"/>
                <indexing index="NONE"/>
              </distributed-cache-configuration>

             <distributed-cache owners="3" mode="SYNC" remote-timeout="15000" name="adapterCredentials">
                <transaction mode="NONE"/>
                <indexing index="NONE"/>
             </distributed-cache>

             <distributed-cache owners="3" mode="SYNC" remote-timeout="15000" name="deviceStates">
                <transaction mode="NONE"/>
                <indexing index="NONE"/>
             </distributed-cache>

       </cache-container>

       <server xmlns="urn:infinispan:server:10.0">
          <interfaces>
             <interface name="public">
                <inet-address value="${infinispan.bind.address:<IP_ADDRESS>}"/>
             </interface>
          </interfaces>

          <socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
             <socket-binding name="default" port="${infinispan.bind.port:11222}"/>
             <socket-binding name="memcached" port="11221"/>
          </socket-bindings>

          <security>
             <security-realms>
                <security-realm name="default">
                   <properties-realm groups-attribute="Roles">
                      <user-properties path="users.properties" relative-to="infinispan.server.config.path"/>
                      <group-properties path="groups.properties" relative-to="infinispan.server.config.path" />
                   </properties-realm>
                </security-realm>
             </security-realms>
          </security>

          <endpoints socket-binding="default" security-realm="default">
             <hotrod-connector name="hotrod"/>
             <rest-connector name="rest"/>
             <!-- Uncomment to enable the memcached connector -->
             <!-- memcached-connector socket-binding="memcached" / -->
          </endpoints>
       </server>
    </infinispan>

The reason th

Anyway, when providing a custom config, the container is never ready in kubernetes, the readyness probe outputs :
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

This is because the probe is trying to use HTTPS, however ssl is not defined in your configuration. As there are many permutations with custom configuration, I think it's best just to define your own readiness/liveness probes when providing a custom configuration.

I am working on defining my own probe, but the rest/v2/cache-managers/DefaultCacheManager/health/status return 404 not found. Is there something specific I need to set in the xml config file to get the endpoint properly enabled ?


Runtime Pattern Matching Example

📖 Documentation
While you show an example of pattern matching here, it would be nice to have an example of how to do pattern matching with custom types.
https://gcanti.github.io/fp-ts/guides/purescript.html
For example, should we just add a _tag property to all run time interface types? How should we do it for opaque scalar types, or Newtypes?
Should it be used with Branded types and simply set a runtime value on the branded type definition?
These are just some questions I have as a new user of your excellent libraries.

While you show an example of pattern matching here, it would be nice to have an example of how to do pattern matching with custom types

Not sure what you mean, Option is a custom type.
export interface None {
  readonly _tag: 'None'
}

export interface Some<A> {
  readonly _tag: 'Some'
  readonly value: A
}

export type Option<A> = None | Some<A>

const maybe = <A, B>(whenNone: () => B, whenSome: (a: A) => B) => (fa: Option<A>): B => {
  switch (fa._tag) {
    case 'None':
      return whenNone()
    case 'Some':
      return whenSome(fa.value)
  }
}

For example, should we just add a _tag property to all run time interface types?

Yes, that's how you define sum types in TypeScript (aka Discriminated Unions).
Note that _tag is just my convention, you can choose another name.

How should we do it for opaque scalar types, or Newtypes? Should it be used with Branded types and simply set a runtime value on the branded type definition?

Not sure what you mean

How should we do it for opaque scalar types, or Newtypes? Should it be used with Branded types and simply set a runtime value on the branded type definition?

Not sure what you mean

For example branding a type makes it an intersection with { SomeTypeBranded: unique symbol }. If I then also want the type to have a runtime value such as for pattern matching, do I also still define a { _tag: 'TypeName' } property or should I just add a runtime value to the branded type like so:
interface Target {
  _tag: 'Target';
  size: number;
}

const BigTarget = t.brand(
  Target,
  (T): T is t.Branded<Target, { readonly _tag: 'BigTarget' }> =>
    Target.is(T),
  'BigTarget'
);

If a type is not a sum type (like string, number or Int) you don't need to provide a tag field
export interface IntBrand {
  readonly Int: unique symbol
}

export type Int = number & IntBrand

export interface Person {
  name: string
  age: Int
}

You add a tag when you define a sum type
export type User = { type: 'Anonymous' } | { type: 'LoggedIn'; person: Person }

export const match = <R>(onAnonymous: () => R, onLoggedIn: (person: Person) => R) => (user: User): R => {
  switch (user.type) {
    case 'Anonymous':
      return onAnonymous()
    case 'LoggedIn':
      return onLoggedIn(user.person)
  }
}

Is it correct to say that the branded type must be used on a non-sum type and it must be a sub-type of the input type?

Is it correct to say that the branded type must be used on a non-sum type

@chrischen I'm not sure how these things are related to fp-ts: discriminated unions are a TypeScript feature and branded types are a hack to make up for the lack of opaque types in TypeScript (there's no branded types in fp-ts).
Anyway if you are talking about this kind of implementation of branded types:
export interface IntBrand {
  readonly Int: unique symbol
}

export type Int = number & IntBrand

then you can use Int everywhere you would use any other type, that's not different from using string or number.
Here I'm using Int in a sum type (the sum type, or "discriminated union", is User)
export type User = { type: 'Anonymous' } | { type: 'LoggedIn'; name: string, age: Int }

and it must be a sub-type of the input type?

again, if you are talking about this kind of implementation of branded types, then Int is trivially a subtype of number since is defined as
number & IntBrand

Sorry, I meant to post this in io-ts. I was specifically referring to the brand() constructor in io-ts, and if it's meant to be used to make interface types opaque.


fix(core): ripple mutating global options when animations are disabled

When animations are disabled, the ripple elements sets the animation duration of its global options to zero. The problem is that it's mutating the object that's used by all other ripples. The issue can be observed by going to the MDC checkbox demo and then trying to interact with something that should have a ripple.

I've reworked it based on the feedback.


Speech and mic on/off control

It seems that by default speech turns on only when the microphone icon is manually clicked -- in other words, the bot speaks to the user only after the user clicks on the microphone icon to speak to it first.  This doesn't work well in some scenarios, for example, when we want the bot to speak out a greeting at startup, instead of just displaying it as text.
Also, the inputHint value of "expectingInput" from the bot framework only turns on the microphone for a couple of seconds.  How to make the mic stay on longer, or ideally until inputHint value of "acceptingInput" or "ignoringInput" is received from the bot framework?

Same problem here!
I would like that bot start speaking by voice without need that user use "mic" button before.
Is it possible to do it?

@puripuneet sounds great idea.
Currently, we don't have API to control the microphone button programmatically (unless you hack into our Redux store and send a Listening_Starting action). Always-on microphone sounds great idea.
For the second issue, when we detect silence for 5 seconds, we will stop listening, regardless whether it is related to expectingInput or not. Maybe we can add an option there.

@compulim the answer is "yes" to your question "For the first problem, do you mean TTS (text-to-speech) is only available when the microphone is clicked for this first time?"

@compulim  Any updates on the always-on option for the microphone?

Is there any update on this. We need to enable the mic on chat bot for intervals of time also. Is there any workarounds for this?

BTW, we coded a "speech button" sample that show how you can write new UI and use API to turn on/off microphone. It's powered by Web Chat minus the UI.
You can play the live demo at https://microsoft.github.io/BotFramework-WebChat/breakaway-speech-button/, and source code at https://github.com/Microsoft/BotFramework-WebChat/tree/preview/samples/breakaway-speech-button.

The links are broken

Links fixed.

please update us on the issue raised  by @puripuneet to TTS part, currently we have no OOTB method to turn it on by default in for example, a welcome card.

Demo is broken, check console after clicking on mic:
WebSocket connection to 'wss://westus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?language=pt-PT&format=detailed&Authorization=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9(...)' failed: HTTP Authentication failed; no valid credentials available
Also, current implementation fails to speak text activities in at least 2 cases:
a) when bot sends proactive activities (like welcome message)
b) when user uploads a file and bot replies
How can this be solved?
Is there some store event that we can dispatch?

Also, side question if anyone can help me... I need to integrate webchat with google speech API (their recognition and synthesis is better at least for my language...), where can I look for pointers on how to implement a ponyfill for easily integrate with renderWebChat and pass the webSpeechPonyfillFactory?

@AndreMantas regarding the error you are receiving on sample 13, could you file a new bug? Please follow the template and that will be a great help.
For speech not speaking text activities, I would suggest filing another issue for that as well, maybe as a Question. We will have to investigate what's going on.
In regards to your implementation questions, we recommend asking these on Stack Overflow). We have engineers that monitor our botframework tag and can help you out.
Thank you!

Updated links:
https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/06.recomposing-ui/b.speech-ui
https://microsoft.github.io/BotFramework-WebChat/06.recomposing-ui/b.speech-ui/


SelectionArea throws ('!debugNeedsLayout': is not true)

Steps to reproduce
Run the code sample, but trigger it with deeplinking.
I have 3 page that are stacked (beamer)
When i got the detail page (thro deeplinking), the assertion is thrown from the second page.
I do not get this assertion when i nagivate normally within the app.
only when i navigate thro deeplinking.
The assertion is gone when i remove SelectionArea() from the tree, so its deffenitly that.
Expected results
No assertion
Actual results
The assertion throws
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.light().copyWith(
        useMaterial3: true,
      ),
      debugShowCheckedModeBanner: false,
      home: const Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
  const MyWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return const SelectionArea(
      child: Column(
        children: <Widget>[
          Text('How are you?'),
          Text('Good, and you?'),
          Text('Fine, thank you.'),
        ],
      ),
    );
  }
}

Screenshots or Video
No response
Logs
Logs
flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown during a scheduler callback:
flutter: 'package:flutter/src/rendering/paragraph.dart': Failed assertion: line 982 pos 12:
paragraph.dart:982
flutter: '!debugNeedsLayout': is not true.
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new?template=2_bug.yml
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2      RenderParagraph.getBoxesForSelection
paragraph.dart:982
flutter: #3      _SelectableFragment.boundingBoxes
paragraph.dart:2026
flutter: #4      MultiSelectableSelectionContainerDelegate._getBoundingBox
selectable_region.dart:1909
flutter: #5      MultiSelectableSelectionContainerDelegate._compareScreenOrder
selectable_region.dart:1926
flutter: #6      Sort._insertionSort (dart:_internal/sort.dart:69:36)
flutter: #7      Sort._doSort (dart:_internal/sort.dart:58:7)
flutter: #8      Sort.sort (dart:_internal/sort.dart:33:5)
flutter: #9      ListBase.sort (dart:collection/list.dart:321:10)
flutter: #10     MultiSelectableSelectionContainerDelegate._flushAdditions
selectable_region.dart:1824
flutter: #11     MultiSelectableSelectionContainerDelegate._updateSelectables
selectable_region.dart:1818
flutter: #12     MultiSelectableSelectionContainerDelegate._scheduleSelectableUpdate.runScheduledTask
selectable_region.dart:1797
flutter: #13     SchedulerBinding._invokeFrameCallback
binding.dart:1392
flutter: #14     SchedulerBinding.handleDrawFrame
binding.dart:1326

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.22.3, on Microsoft Windows [Version 10.0.22631.3880], locale nl-BE)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.10.1)
[√] Android Studio (version 2023.3)
[√] VS Code, 64-bit edition (version 1.91.1)
[√] Connected device (2 available)
[√] Network resources```

</details>

Closing this as a duplicate of

https://github.com/flutter/flutter/issues/117527
https://github.com/flutter/flutter/issues/119772


fix: MD039/no-space-in-links

Spaces inside link text

@nschonni : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

@nschonni : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

#sign-off

@chbain : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

@chbain : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

@chbain : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

@chbain : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

@chbain : Thanks for your contribution! The author, @cherylmc, has been notified to review your proposed change.

Restored open parentheses before URL in five instances in separate files.

Thanks @chbain I must have had a bad find/replace

@nschonni You're welcome, glad to help.


Add a CMS event for whenever a field changes or a form is reset

This is a precursor to the useGraphQLForms refactor, it can be merged and released without any of the other work though so might be easiest to get it out on it's own.

Seems to be working for rich-text.
As a side note I am getting this error: https://www.loom.com/share/b02d07f814bc4ba9b6fa197ed48328bc
Not sure if it was introduced in this PR or not

@logan-anderson I think I messed up the rebase before, should be fixed now.


how to get anchors.txt file?

Refer to this file
https://github.com/AlexeyAB/darknet/blob/master/scripts/gen_anchors.py


Replace xrCPU_Pipe TTAPI

Replace TTAPI by the #28

Adding TBB will only require linking to the tbb library and calling parallel loops when needed. This is fine?

@jazzvaz TBB should be built from the sources. It contains several projects (such as allocator etc) that should be added as dependencies for the engine modules.

@Im-dex so add another project "TBB" and make linking?

@jazzvaz Yep


Relax an acquire load in Chase-Lev deque

A relaxed load followed by an acquire fence is effectively an acquire
load.  This commit relaxes the ordering of an acquire load followed
by an SC fence, into a relaxed load.

I misunderstood the Chase-Lev deque; this PR breaks the correctness of the Chase-Lev deque.  Sorry.


Choose terminal interpreter

It would be good to be able to specify what interpreter to have in VTM terminal. Either through the terminal configuration itself, or the VTM config file

Hi! Apparently you want to specify a shell running in vtm's built-in terminal. There are several ways:

From the command line: vtm -r term _your_shell_
Using the $SHELL=_your_shell_ environment variable (only in POSIX operating systems like linux/bsd)
Using configuration file ~/.config/vtm/settings.xml (See #234 for details)

Examples

Command line vtm -r term powershell.exe
Set envvar export SHELL=bash; vtm
Config file<config>
    <menu>
        <selected=Term /> <!-- Set default selected menu item. -->
        <item id=Term label="Your shell label" type=DirectVT title="My shell window title" param="$0 -r term powershell.exe"/>
    </menu>
</config>

Thank you for your response and for making such an amazing software. I really enjoy using it! This is the solution I was looking for.


Crash

Description:
unexpected termination: 6
0   0x0000000104ea4324  Util::SignalCrashHandler(int)
1   0x0000000185053a24  _sigtramp
2   0x0000000185024cc0  pthread_kill
3   0x0000000184f34a40  abort
4   0x0000000184f33d30  err
5   0x0000000222b22ca4  _citrus_iconv_std_iconv_convert.cold.3
6   0x0000000222b227e0  _citrus_iconv_std_iconv_convert
7   0x00000001918b6cd8  __bsd_iconv
8   0x0000000104efeca4  mail_iconv
9   0x0000000104efe9f4  charconv
a   0x0000000104ef96a4  mailmime_encoded_phrase_parse
b   0x0000000104ea6350  Util::MimeToUtf8(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)
c   0x0000000104e10940  Header::Parse()
d   0x0000000104e0fac8  Header::SetHeaderData(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long)
e   0x0000000104e1579c  Imap::GetHeaders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::set<unsigned int, std::__1::less<unsigned int>, std::__1::allocator<unsigned int>> const&, bool, bool, std::__1::map<unsigned int, Header, std::__1::less<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, Header>>>&)
f   0x0000000104e3b914  ImapManager::PerformRequest(ImapManager::Request const&, bool, bool, ImapManager::Response&)
10  0x0000000104e36f80  ImapManager::Process()
11  0x0000000104e3d5ec  void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (ImapManager::*)(), ImapManager*>>(void*)
12  0x0000000185025034  _pthread_start
13  0x000000018501fe3c  thread_start

How to reproduce it:
Just run application and waiting for few seconds
Environment:
OS: Sonoma 14.1.2
Chip: Apple M1 Max

Hi @lexgorbunov - thanks for reporting. It seems like a bad bug, but I need some more data to determine the root cause.
Could you help apply the attached patch nmail-charconv.patch, build nmail and try reproduce the crash again?
Once it crashes, can you share the end of your log file ~/.nmail/log.txt, likely the last line containing MimeToUtf8 before the crash callstack will be sufficient. Should the line contain data you do not wish to share here, feel free to send it via email to d99kris at gmail dot com.
To apply the patch:
# go to your clone directory for nmail
git apply ~/nmail-charconv.patch
# build nmail, ex:
./make.sh build
# run:
./build/nmail

Hi again - I did some googling and it seems there are others who encountered similar issues on macOS 14.1.x and iOS 17.1.x. It appears the the issue should be fixed in 17.2, and thus likely also in macOS 14.2. I will proceed to close this issue for now, but feel free to re-open it if you still see it on macOS 14.2 (or later) and help to provide the information requested in the above comment. Thanks!


Extracted 0 strings

Hi,
In my html I added i18n to all html block I want to translate, ex:

Select your product

Then I execute :
ng xi18n
The file src/messages.xlf was created.
Then I installed your package:
npm install<EMAIL_ADDRESS>--save-dev
(There is an issue with the lastest version, https://github.com/biesbjerg/ngx-translate-extract/issues/87, I had to take the version 2.3.2)
I added in packages.json:

"extract": "ngx-translate-extract --input ./src --output ./src/assets/i18n/ --clean --sort --format namespaced-json",

then I executed the command:
npm run extract
Result:

Extracted 0 strings

Did I miss something? Is there a problem with the package?

Just had the exact same issue 😢. Using v2.3.3 worked for me

using 2.3.4 and having same issue.

Same issue for me as well. I see blank Strings generated in JSON file using 2.3.4 version.  Thanks!

You should use translate and not i18n when using ngx-translate and ngx-translate-extract, unless I'm misunderstanding?

I'm also facing the same issue in latest ver.


Is it allowed by play store to publish app

I have developed an app which shows youtube video and a recycler view with subtitles for that video.
If I click on subtitle it will play only that part in the youtube player (between the start and end time of subtitle)

Can it be possible using this player?
Is there any issue if I use this player while publishing an app to play store?

It depends on you I guess :) this is a YouTube player library, it's up to you what to do with it.
No issues.

Is there any method available to play only part of a video?
Example - for given subtitle, play video between the start and end time of subtitle.

Every time you load/cue a video you need to specify the start time. You can listen for the video's current time to decide when to stop.
Everything is explained in the documentation.

Thanks for quick replay 👍

You're welcome!
Feel free to leave a star on GitHub if you find the library to be useful :)


Update scalafmt-core to 3.8.3

About this PR
📦 Updates org.scalameta:scalafmt-core from 3.7.17 to 3.8.3
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scalameta", artifactId = "scalafmt-core" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:n:3

Not viable with sbt-scalafmt


lcm on i64 falls victim to overflow checking

#[test]
fn demo_i64_lcm_problem() {
    use num::integer::Integer;
    let x: i64 =<PHONE_NUMBER>0000000;
    let y: i64 = 600;
    let l = x.lcm(&y);
    println!("x: {} y: {} l: {}", x, y, l);
}

This signals overflow for me when run in a debug build:
% RUST_BACKTRACE=1 cargo test demo_i64_lcm
   Compiling qcon-london2016 v0.1.0 (file:///Users/fklock/Dev/Mozilla/pnk-presents/qcon-london2016)
     Running target/debug/lib-d106592ea2cd2eeb

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

     Running target/debug/mandelbrot-6ba1a3372be98e2a

running 1 test
test demo_i64_lcm_problem ... FAILED

failures:

---- demo_i64_lcm_problem stdout ----
	thread 'demo_i64_lcm_problem' panicked at 'arithmetic operation overflowed', /Users/fklock/.multirust/toolchains/nightly/cargo/registry/src/github.com-88ac128001ac3a9a/num-0.1.30/src/integer.rs:262
stack backtrace:
   1:        0x10dc18e58 - sys::backtrace::tracing::imp::write::h6de1146e783ad759jcu
   2:        0x10dc1a915 - panicking::default_handler::_$u7b$$u7b$closure$u7d$$u7d$::closure.42839
   3:        0x10dc1a477 - panicking::default_handler::hcdc388abac3dab00txy
   4:        0x10dc0ee26 - sys_common::unwind::begin_unwind_inner::h92bb9fa816635994Bbt
   5:        0x10dc0f29e - sys_common::unwind::begin_unwind_fmt::h74474f4da0682187Hat
   6:        0x10dc182f7 - rust_begin_unwind
   7:        0x10dc3c860 - panicking::panic_fmt::hd3ab350bce4886e96YL
   8:        0x10dc3cb5c - panicking::panic::he1e34a74b1285647DXL
   9:        0x10dbb0f85 - integer::i64.Integer::lcm::h95d9e21688ecbb32EKf
  10:        0x10dbb0dbd - demo_i64_lcm_problem::h91d8aeddf6ee4d34tdc
  11:        0x10dbf1d5b - boxed::F.FnBox<A>::call_box::h14880339069920088140
  12:        0x10dbf41cd - sys_common::unwind::try::try_fn::h15106091318301828466
  13:        0x10dc1828b - __rust_try
  14:        0x10dc15f63 - sys_common::unwind::inner_try::he3a51540743a3631D8s
  15:        0x10dbf45b4 - boxed::F.FnBox<A>::call_box::h1300029706881708100
  16:        0x10dc19b9f - sys::thread::Thread::new::thread_start::h26f0f802585e3c80ULx
  17:     0x7fff91138c12 - _pthread_body
  18:     0x7fff91138b8f - _pthread_start

failures:
    demo_i64_lcm_problem

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured

%

Ah, I see.  It currently does self*other/gcd, so that multiplication will
overflow.  Doing the division first should solve this, and we know this is
sound since GCD is a divisor.
Care to try that and add your test case?
(And of course an LCM that's truly too large will still overflow.)

Oh yes, the gcd should indeed divide either one. Okay I'll try that.


planar quadrotor with wind env added

Two main things:

We should have a single PlanarQuadrotor class and not three

PlanarQuadrotorLambdaWind is PlanarQuadrotor(wind=identity function)
PlanarQuadrotorSimWind is PlanarQuadrotor(wind=PlanarQuadrotor.DISSIPATIVE), where PlanarQuadrotor.DISSIPATIVE is a function or something like that

We can think about how to make noise generators more generic but for now, we can just have lambda functions (I think? Didn't seem like there was state).


The main website and the staging website for Adopt a Drain are currently offline

Bug report

Describe the bug
As the title says, both the main website and the staging website for Adopt a Drain are currently offline.
To Reproduce

Go to either the main repo on GitHub or go to Code for Durham's Project page
Click on either of the website links
See both of those errors pop up

Expected behavior
Unless the project has been discontinued, both sites should be online.
Screenshots
Screenshot from the main website:

Screenshot from the testing website:

Desktop (please complete the following information):

OS: Mac OS Sonoma
Browser  canary (arm64)
Version Version 127.0.6516.0 (Official Build)

Additional context
The current owner of the Heroku servers should be capable of looking into this issue and resolving it. The person in charge of this repo's Heroku page would probably have a better idea of what's going on on their end.

Hi @tjdev7 - the City of Durham have taken this over, and we've shut down these instances. You can now visit the new site at: https://adopt-a-catch-basin-2-durhamnc.hub.arcgis.com/
I'll follow up about getting some DNS redirects in place.

Okay, I understand. Thanks for letting other contributors and me know.
Good luck handling the DNS work.


Preprocessing steps for making an index

As a index-user I want a pipeline that handles some of the known issues with processors, so that I can not have weird issues when using the index.
Example -- some documents end up with empty tokens, which cause off-by-one errors when retrieving the odinson result strings.  This is currently happening with the arapidopsis index:
(note that this query works in other docs, but here see how it thinks that AND is the verb, not phosphorylate)

I think that @robertvacareanu ran into this already, and it got fixed in processors, but likely wasn't in the version that Gus ran -- but we preprocess stuff in the Odinson pipeline
So we should do some preprocessing/sanitation

closed with #170 and #173


minor fix to release setting in pom.xml

Noticed here:
https://github.com/StyraInc/opa-java-wasm/pull/29/files#diff-9c5fb3d1b7e3b0f54bc5c4182965c4fe1f9023d449017cece3005d3f90e8e4d8R42

No apology! I contributed too to this setup :+1:


add custom API for electron app to allow other app extensions

i.e. neovim extension, chrome extension

Priority on this is way lower with 2.0.7 done. keybinds + hotkeys are good enough for me.


The complete state of the robot is not yet known.  Missing gripper_joint

I've checked that all the servos work, when I use dynaManager program.
When I run the arm.launch with phantomx pincher arm and run arbotix_gui, I find that only the gripper could not be controlled, other joints work fine.
Also, when I run turtlebot_arm_moveit.launch, the following error messages show up.
[ WARN] [1505302333.424168285]: The complete state of the robot is not yet known.  Missing gripper_joint
The main problem is that I could not control the gripper.
Any help?

I've checked that all the servos work, when I use dynaManager program.

Thanks Zabot,
I've added
export TURTLEBOT_ARM1=pincher
in the ~/.bashrc file

It works when I use corb555/arbotix_ros.

hey bro,maybe you should change your windowx_arm.yaml, the configure of your gripper has something wrong,try to change it.


Merge from Development to Master to prepare for Capri Milestone-1

This PR merges changes from Development to Master to prepare for Capri Milestone-1 release.

@leonwanghui PTAL


Update define-a-docker-build-infrastructure.md

anonymize token examples

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


chore(deps): :arrow_up: update all non-major dev dependencies to v7.6.7

This PR contains the following updates:

Package
Change
Age
Adoption
Passing
Confidence

@storybook/addon-essentials (source)
7.6.6 -> 7.6.7

@storybook/addon-mdx-gfm (source)
7.6.6 -> 7.6.7

@storybook/angular (source)
7.6.6 -> 7.6.7

@storybook/core-common (source)
^7.6.6 -> ^7.6.7

@storybook/core-server (source)
7.6.6 -> 7.6.7

storybook (source)
^7.6.6 -> ^7.6.7

Release Notes

storybookjs/storybook (@storybook/addon-essentials)
v7.6.7
Compare Source

Core: Skip no-framework error when ignorePreview=true - #25286, thanks @ndelangen!
Dependencies: Semver dependency fixes - #25283, thanks @ndelangen!
Vite: Fix pre-transform error in Vite 5 - #25329, thanks @yannbf!
Vue3: Fix pnp by making compiler-core a dependency - #25311, thanks @shilman!

v7.6.6
Compare Source

SvelteKit: Support 2.0 modules with mocks - #25244, thanks @paoloricciuti!

v7.6.5
Compare Source

Angular: Update Angular cli templates - #25152, thanks @Marklb!
Blocks: Fix Subtitle block for unattached docs pages - #25157, thanks @kripod!
SvelteKit: Fix missing $app modules - #25132, thanks @paoloricciuti!

v7.6.4
Compare Source

Angular: Fix CSF Plugin - #25098, thanks @valentinpalkovic!
Viewport: Fix viewport dts files - #25107, thanks @kasperpeulen!

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/@angular/core
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@angular/animations
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2024-01-04T16_31_23_318Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2024-01-04T16_31_23_318Z-debug-0.log

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/esbuild
npm ERR!   dev<EMAIL_ADDRESS>from the root project
npm ERR!   optional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/jest-preset-angular
npm ERR!     dev<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peerOptional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@nx/angular
npm ERR!   dev<EMAIL_ADDRESS>from the root project
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@nrwl/angular
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!
npm ERR! Conflicting peer dependency<EMAIL_ADDRESS>npm ERR! node_modules/esbuild
npm ERR!   peerOptional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@nx/angular
npm ERR!     dev<EMAIL_ADDRESS>from the root project
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!     node_modules/@nrwl/angular
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2024-01-30T17_03_39_554Z-eresolve-report.txt

npm ERR!


refactor(docs): auto-generate toc from current page

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The co
mmit message follows our
guidelines: https://github.com/goetzrobin/spartan/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Which package are you modifying?
N/A

[ ] accordion
[ ] alert
[ ] alert-dialog
[ ] aspect-ratio
[ ] avatar
[ ] badge
[ ] button
[ ] calendar
[ ] card
[ ] checkbox
[ ] collapsible
[ ] combobox
[ ] command
[ ] context-menu
[ ] data-table
[ ] date-picker
[ ] dialog
[ ] dropdown-menu
[ ] hover-card
[ ] input
[ ] label
[ ] menubar
[ ] navigation-menu
[ ] popover
[ ] progress
[ ] radio-group
[ ] scroll-area
[ ] select
[ ] separator
[ ] sheet
[ ] skeleton
[ ] slider
[ ] switch
[ ] table
[ ] tabs
[ ] textarea
[ ] toast
[ ] toggle
[ ] tooltip
[ ] typography

What is the current behavior?

Closes #91
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
For reviewers, the current PR is a suggestion and only makes the change for the Tabs page (see diff), and my suggestion is to remove ng-content entirely (I've retained it if anyone wants to see the DOM diff locally). This approach currently only picks up headings from <spartan-section-sub-heading /> but can be extended if I'm missing some other component.
Edit: In the same Tabs page, we have examples as h3 headings, which I have now updated to be shown in the TOC.
Preview:

This now almost matches how shadcn/ui looks:

Here's the DOM diff of ng-content vs @for (I don't know if this is relevant or has any implications):
See Diff

  <spartan-page-nav-link role="listitem" fragment="prerequisites" label="Prerequisites" class="mt-0 pt-2" ng-reflect-fragment="prerequisites" ng-reflect-label="Prerequisites"> Prerequisites </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" fragment="installing-ui-core" label="Installing ui-core" class="mt-0 pt-2" ng-reflect-fragment="installing-ui-core" ng-reflect-label="Installing ui-core"> Installing ui-core </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" fragment="setting-up-tailwind" label="Setting up tailwind.config.js" class="mt-0 pt-2" ng-reflect-fragment="setting-up-tailwind" ng-reflect-label="Setting up tailwind.config.js"> Setting up tailwind.config.js </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" fragment="adding-css-vars" label="Adding CSS variables" class="mt-0 pt-2" ng-reflect-fragment="adding-css-vars" ng-reflect-label="Adding CSS variables"> Adding CSS variables </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" fragment="adding-primitives" label="Adding primitives" class="mt-0 pt-2" ng-reflect-fragment="adding-primitives" ng-reflect-label="Adding primitives"> Adding primitives </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" class="mt-0 pt-2" ng-reflect-fragment="prerequisites" ng-reflect-label="Prerequisites"> Prerequisites </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" class="mt-0 pt-2" ng-reflect-fragment="installing-ui-core" ng-reflect-label="Installing ui-core"> Installing ui-core </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" class="mt-0 pt-2" ng-reflect-fragment="setting-up-tailwind" ng-reflect-label="Setting up tailwind.config.js"> Setting up tailwind.config.js </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" class="mt-0 pt-2" ng-reflect-fragment="adding-css-vars" ng-reflect-label="Adding CSS variables"> Adding CSS variables </spartan-page-nav-link>
  <spartan-page-nav-link role="listitem" class="mt-0 pt-2" ng-reflect-fragment="adding-primitives" ng-reflect-label="Adding primitives"> Adding primitives </spartan-page-nav-link>

Also, if this is acceptable and goes through, we could consider removing <spartan-page-nav /> from all pages entirely and add it in <spartan-page /> conditionally based on some flag. Ideally, for other SSGs like Eleventy based on markdown, this flag would be in the frontmatter section and it would be an opt-in/out (like toc: true in frontmatter) based on the user's preference. If and when we get support for Angular components in markdown and migrate the current pages, we could update this TOC component in-place for styling and replace the implementation to a plugin-based thing.

The prettier failure is for tsconfig.base.json and is unrelated to my PR. I can check that in a separate commit/PR if you like, but anyhow, only if this suggestion/PR looks good/reasonable.

Hi @elite-benni - I've updated all pages to use the autogenerated version and removed ng-content for now.
Please review and let me know if you'd like any other changes :)

There are the ids missing on the h3 tags

I missed these. I noticed this for the tabs page and the CLI page and only fixed it there. I'll go through the rest and update them.

@ajitzero is this ready to go from your side? If yes, I'll give it a final review and then we can merge it 👍

Yes, this is done from my end - please review @goetzrobin ! 😅


[FEATURE] Introduce longhorn-spdk-engine for SPDK volume management

Is your feature request related to a problem? Please describe (👍 if you like this request)
To manage SPDK volumes, need another new control path to manage the request from the instance manager proxy, and it's different from the current longhorn-engine.
Describe the solution you'd like

Introduce a new longhorn-spdk-engine, which will be responsible for communicating with spdk_tgt on each node to manage and operate SPDK volumes/devices.
The functionality of longhorn-spdk-engine will be the same as longhorn-engine to process gRPC method requests from the instance manager proxy which is the interface between the control plane (longhorn-manager) and data plane.
longhorn-engine will still exist for the current longhorn volume (iSCSI frontend), but longhorn-spdk-engine is only for SPDK volume.

Additional context
https://github.com/longhorn/longhorn-spdk-engine
cc @longhorn/dev

ref: #5406


Doc: use new URLs consistently

The old legacy documentation URLs (http://www-legacy.openmicroscopy.org/site/support) will slowly be redirected towards the new docs.openmicroscopy.org URL.
In the meantime, this PR reviews the remaining legacy documentation URLs in the new website and uses the new canonical documentation URLs instead. There should be no change in content.
With this change, the only remaining occurences of hardcoded www.openmicroscopy.org href in the website should be 1- the forum URL in the footer, 2- the old URLs in the posts. The latter should be changed to point at www-legacy instead of www in a follow-up PR.
To test this PR, review the corresponding changes under http://snoopycrimecop.github.io/www.openmicroscopy.org/.

Pushed the fix, I propose to handle the wrapping separately as we'll have more PRs coming against this repo to fix the content next week.


Consider adding a .quartoignore file

I noticed in this section of the quarto docs that for templates, most common repo files like README.md, LICENSE etc. won't be copied when using quarto use template but that others will.
When running quarto use template I noticed that it copies the images/ directory from the repo, which looks to contain the example images and may not be the desired behaviour.
There's an option to include a .quartoignore file which could be use to exclude that directory, for example.

Added, includes /images, *.Rproj, template.html - I believe that is all


views: new community form action fix

Signed-off-by: Alexander Ioannidis<EMAIL_ADDRESS>

Do you need a release? if so just submit a PR


Optimization levels 2 and 3 fail when specifying a custom instruction with no properties

Environment

Qiskit Terra version:  0.24.1
Python version: 3.8.16
Operating system: MacOS

What is happening?
I am adding a custom instruction to my backend target and then using generate_preset_pass_manager to create a pass manager with respect to the modified target. The custom instruction implements the _directive property and should just be ignored by the existing transpilation framework.
When I generate a level 2 or 3 pass manager, it errors out because it expects an iterable for the target.add_instruction(properties) argument; however, I do not need any properties to define my custom instruction and leave that argument to its default None value. Unless I misunderstand the docs, this should be the correct way to add this instruction.
How can we reproduce the issue?
First, install circuit-knitting-toolbox from source
from copy import deepcopy

from qiskit.circuit import QuantumCircuit
from qiskit.circuit.library.standard_gates import CXGate
from qiskit.providers.fake_provider import FakeLagosV2
from circuit_knitting_toolbox.circuit_cutting.qpd import SingleQubitQPDGate
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

# opt level 2 and 3 cause this script to fail
OPT_LEVEL = 2

backend = FakeLagosV2()
target = deepcopy(backend.target)
sample_qpd_instruction = SingleQubitQPDGate(QPDBasis.from_gate(CXGate()), 1)
target.add_instruction(sample_qpd_instruction)

qc = QuantumCircuit(1)
qc.append(sample_qpd_instruction, (0,))

pass_manager = generate_preset_pass_manager(OPT_LEVEL, target=target)
pass_manager.run(qc)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[17], line 23
     21 pass_manager = generate_preset_pass_manager(OPT_LEVEL, target=target)
     22 #pass_manager.run(qpd_circuit)
---> 23 pass_manager.run(qc)

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/passmanager.py:537, in StagedPassManager.run(self, circuits, output_name, callback)
    530 def run(
    531     self,
    532     circuits: _CircuitsT,
    533     output_name: Optional[str] = None,
    534     callback: Optional[Callable] = None,
    535 ) -> _CircuitsT:
    536     self._update_passmanager()
--> 537     return super().run(circuits, output_name, callback)

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/passmanager.py:231, in PassManager.run(self, circuits, output_name, callback)
    229     return circuits
    230 if isinstance(circuits, QuantumCircuit):
--> 231     return self._run_single_circuit(circuits, output_name, callback)
    232 if len(circuits) == 1:
    233     return [self._run_single_circuit(circuits[0], output_name, callback)]

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/passmanager.py:292, in PassManager._run_single_circuit(self, circuit, output_name, callback)
    280 """Run all the passes on a ``circuit``.
    281
    282 Args:
   (...)
    289     The transformed circuit.
    290 """
    291 running_passmanager = self._create_running_passmanager()
--> 292 result = running_passmanager.run(circuit, output_name=output_name, callback=callback)
    293 self.property_set = running_passmanager.property_set
    294 return result

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/runningpassmanager.py:125, in RunningPassManager.run(***failed resolving arguments***)
    123 for passset in self.working_list:
    124     for pass_ in passset:
--> 125         dag = self._do_pass(pass_, dag, passset.options)
    127 circuit = dag_to_circuit(dag, copy_operations=False)
    128 if output_name:

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/runningpassmanager.py:173, in RunningPassManager._do_pass(self, pass_, dag, options)
    171 # Run the pass itself, if not already run
    172 if pass_ not in self.valid_passes:
--> 173     dag = self._run_this_pass(pass_, dag)
    175     # update the valid_passes property
    176     self._update_valid_passes(pass_)

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/runningpassmanager.py:227, in RunningPassManager._run_this_pass(self, pass_, dag)
    224 elif pass_.is_analysis_pass:
    225     # Measure time if we have a callback or logging set
    226     start_time = time()
--> 227     pass_.run(FencedDAGCircuit(dag))
    228     end_time = time()
    229     run_time = end_time - start_time

File ~/opt/anaconda3/envs/ckt/lib/python3.8/site-packages/qiskit/transpiler/passes/layout/vf2_layout.py:148, in VF2Layout.run(self, dag)
    145 # Filter qubits without any supported operations. If they don't support any operations
    146 # They're not valid for layout selection
    147 if self.target is not None:
--> 148     has_operations = set(itertools.chain.from_iterable(self.target.qargs))
    149     to_remove = set(range(len(cm_nodes))).difference(has_operations)
    150     if to_remove:

TypeError: 'NoneType' object is not iterable

What should happen?
I believe a pass manager should be successfully generated for all optimization levels. I see no reason optimization levels 0 and 1 would accept None in add_instruction(properties) and optimization levels 2 and 3 would error out ungracefully.
Any suggestions?
No response

I haven't immediately looked at the bug, and this comment isn't related at all, but just beware: the CircuitInstruction you construct in your example is invalid.  Because you pass it through QuantumCircuit.append, it probably gets normalised to the correct thing, but it's an internal object, so if you actually need to be using it, you need to be maintaining its invariants yourself.  In this case, the types are bust: the qubits argument should be tuple[Qubit, ...], not tuple[int, ...].  That said, you don't need CircuitInstruction here at all: the call you actually mean is qc.append(sample_qpd_instruction, (0,)).

I'm realizing now that you will have to install circuit-knitting-toolbox from source to recreate this. SingleQubitQPDGate does not have a _directive property in the latest release. We are releasing next week :)

For the actual problem: looks like a bit of a bug in the VF2Layout handling that was added quickly to support backends with failing links; it should probably recognise that Target.qargs being None or containing None means that there's an operation that acts on all qubits.  I'd have to look into the details of exactly how we intend to handle that in VF2PostLayout, which is working fine, since I remember it being relatively subtle since there are many reasons a target might include perfect operations on all qargs.
As an immediate workaround, you can be slightly more explicit and set the properties as ```python
target.add_instruction(op, {(q,): None for q in range(target.num_qubits)})

target.add_instruction(op, {(q,): None for q in range(target.num_qubits)})

I think I understand what you're saying, but in our case the gate doesn't act on all qubits -- it only acts on 2 qubits, but we want the transpiler to ignore that fact with respect to SWAP routing. Treat it like a non-adjacent two-qubit barrier. Is that possible?

To be more concrete:
It seems like a circuit cutting transpilation routine would take an input circuit and produce an output circuit with N non-local gates flagged for cutting (based on some heuristic) with these TwoQubitQPDGates. The layout stage will add these gates in the pass manager, but they should basically be ignored from then on.

Oh my bad sorry, I thought it was a 1q gate because I just read the SingleQubitQPDGate and missed that it was derived from a cx.
I think what you're currently doing is correct for what you want, it's just a bug in VF2Layout right now that prevents it from working.  @mtreinish can check me on that, though.

Oh my bad sorry, I thought it was a 1q gate because I just read the SingleQubitQPDGate and missed that it was derived from a cx.
I think what you're currently doing is correct for what you want, it's just a bug in VF2Layout right now that prevents it from working. @mtreinish can check me on that, though.

Hah, I forgot I used SingleQubitQPDGate in example. Either way, I believe we have a way forward :). Thanks a lot!

Yeah, the bug is definitely in VF2Layout and also in VF2PostLayout. The code which is computing the set of qubits which have instructions on them is not accounting for the value of the qargs being None for an ideal global instruction. This should be a simple fix to adjust https://github.com/Qiskit/qiskit-terra/blob/main/qiskit/transpiler/passes/layout/vf2_layout.py#L148 and https://github.com/Qiskit/qiskit-terra/blob/main/qiskit/transpiler/passes/layout/vf2_post_layout.py#L225 to skip a None entry in target.qargs (or maybe we shouldn't be putting None in target.qargs).
As a short term workaround you can try target.add_instruction(SingleQubitQPDGate, name=gate_name) which will treat SingleQubitQPDGate as a variadic instruction and the special handling for that may work.

@caleb-johnson I pushed up https://github.com/Qiskit/qiskit-terra/pull/10633 to fix this, if you wanted to give it a try and confirm it fixes the issue for you

Fixed by #10633

We can actually leave the issue open so others can see it's not merged yet, and mark #10633 as closing it.


Possibly outdated Vue dependency in documentation

Summary
This project reports that it depends on vue ^3.0.x, but missing imports seem to imply that it instead depends on vue ^3.2.x.
It could very easily be something I've misunderstood or misused, as I'm very inexperienced in web app development.
Could someone more experienced than this college undergrad senior verify this bug, and if verified, document the corrected dependency?
Details
When trying to run an app with dependency "vue": "^3.0.x" as listed on this project's documentation, I get the following export warnings in the npm console:
 WARNING  Compiled with 6 warnings

 warning  in ./node_modules/bootstrap-vue-3/dist/bootstrap-vue-3.es.js

"export 'createElementBlock' was not found in 'vue'

 warning  in ./node_modules/bootstrap-vue-3/dist/bootstrap-vue-3.es.js

"export 'createElementVNode' was not found in 'vue'

 warning  in ./node_modules/bootstrap-vue-3/dist/bootstrap-vue-3.es.js

"export 'guardReactiveProps' was not found in 'vue'

 warning  in ./node_modules/bootstrap-vue-3/dist/bootstrap-vue-3.es.js

"export 'normalizeClass' was not found in 'vue'

 warning  in ./node_modules/bootstrap-vue-3/dist/bootstrap-vue-3.es.js

"export 'normalizeProps' was not found in 'vue'

 warning  in ./node_modules/

While this error is occurring, if I try to import this module as directed (with no other code whatsoever related to BootstrapVue3):
import BootstrapVue3 from 'bootstrap-vue-3';

then my app crashes upon load with an error about the inaccessible createElementVNode
(specifically: bootstrap-vue-3.es.js?b80d:1599 Uncaught TypeError: Object(...) is not a function).
This same behavior occurs with "vue": "^3.1.x", but is fixed by upgrading to "vue": "^3.2.x"

of course, immediately after posting this, I noticed that your package.json indeed lists Vue 3.2 as a dev dependency, which seems to confirm my understanding.
https://github.com/cdmoro/bootstrap-vue-3/blob/4ee50a9a7256621bea3e029ad65a57ec3f962ddf/package.json#L73
Thus the docs seems to be the main problem.
As for enforcing v3.2: I'm still fairly new to npm as well, but is there a compelling reason why Vue ^3.2.31 isn't listed as a peer dependency? I apologize if that's a novice question / was discussed elsewhere; I haven't been able to find an answer myself.

is there a compelling reason why Vue ^3.2.31 isn't listed as a peer dependency?

There are lots of vue* / @vue packages in "devDependencies". From looking at other libs, I see these are in "devDependencies", not peer.

I've updated docs at https://github.com/cdmoro/bootstrap-vue-3/tree/main/docs/getting-started
Site will be updated with the next refresh


Single node sparse matrix structures

Implement CSR sparse matrix structures on a single node.

Very useful in their own right.
Allow us to test data structures for a later full MPI implementation.

The following features should be available:

Defining CSR matrices
Import/Export of CSR matrices (via Serde?)
Simple iterative solvers

Do you have a vision of the traits that would allow writing a function that is agnostic over whether its input matrices are sparse or dense? I see your traits like MatMul are specialized on dense/strided storage.

I should rather call the MatMul trait a DenseMatMul trait. Still experimenting with traits for sparse matrices. But it will likely come down to something like the scipy operator interface, or more involved, the Trilinos Thyra interfaces.

SciPy LinearOperator doesn't support sparse-sparse products, as in $P^T A P$ needed for multigrid. I think the same restriction applies to Thyra LinearOpBasi.
PETSc has a dynamic multiple dispatch system for heterogeneous matrix-matrix operations, but it's based on strings and function pointers. In Rust, that would naturally use a HashMap and Any::type_id to locate the fully resolved implementation. I struggle to see how to avoid without creating a closed world. There is an open sum technique that might be useful, though it's hard for me to see how to use it effectively and I'm not sure it's better than the HashMap.


add authentication with jupyterhub

resources used for the implementation
Jupyterhub docs:

services: https://jupyterhub.readthedocs.io/en/stable/reference/services.html#externally-managed-services

Jupyterhub implementation:

registering services: https://github.com/jupyterhub/jupyterhub/blob/f220bbca84bae96948c7db987ccd936d6bab8d3e/jupyterhub/app.py#L1911
oauth provider implemetation: https://github.com/jupyterhub/jupyterhub/blob/f220bbca84bae96948c7db987ccd936d6bab8d3e/jupyterhub/oauth/provider.py#L33
oauth client (HubOAuth): https://github.com/jupyterhub/jupyterhub/blob/f220bbca84bae96948c7db987ccd936d6bab8d3e/jupyterhub/services/auth.py#L508
example flask client: https://github.com/jupyterhub/jupyterhub/blob/f220bbca84bae96948c7db987ccd936d6bab8d3e/examples/service-whoami-flask/whoami-oauth.py#L56

Codecov Report

Merging #336 (17a165a) into master (40934c3) will decrease coverage by 1.22%.
The diff coverage is 37.19%.

@@            Coverage Diff             @@
##           master     #336      +/-   ##
==========================================
- Coverage   85.54%   84.31%   -1.23%
==========================================
  Files          65       66       +1
  Lines        4890     5011     +121
==========================================
+ Hits         4183     4225      +42
- Misses        707      786      +79

Impacted Files
Coverage Δ

quetz/pkgstores.py
45.62% <21.95%> (-10.73%)
:arrow_down:

quetz/config.py
90.12% <50.00%> (-0.51%)
:arrow_down:

quetz/authentication/jupyterhub.py
66.66% <66.66%> (ø)

quetz/authentication/base.py
85.04% <100.00%> (+0.14%)
:arrow_up:

quetz/authentication/oauth2.py
87.93% <100.00%> (+0.43%)
:arrow_up:

quetz/main.py
89.35% <100.00%> (+0.01%)
:arrow_up:

quetz/testing/fixtures.py
97.82% <0.00%> (-1.45%)
:arrow_down:

quetz/tasks/workers.py
95.72% <0.00%> (-0.86%)
:arrow_down:

Continue to review full report at Codecov.

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


add Response#setEncoding

better than nothing +1

+1

I'll rebase this if one with commit bit says it will be merged.

+1

+3

One can at least put the following code into lib/response.js, to make the error disappear:
Response.prototype.setEncoding = function(encoding) {   // not implemented }
If needed, you have to handle the encoding elsewhere, because that would need further changes in http-browserify.


bindToController with object hash allows binding properties with new instead of isolate scope

In https://github.com/angular/angular.js/commit/35498d7045ba9138016464a344e2c145ce5264c1, bindToController was changed to allow setting an object hash instead of true.
The object hash works the same as with the scope property, and sets up the bindings to the controller. What it not does is create an isolate scope for the directive. You have to manually set the scope property to {}, but you can also set it to true or if you don't specify it, now scope is created at all. The commit says this is intentional, but I can't see how this is something that should be possible. Using scope with a has always creates an isolate scope, and I can't see why you'd want bindings with a new / no scope. It also defeats the purpose of defining your bindings with bindToController, because you still have to set the scope prop.
The whole behavior is actually undocumented, so it's possible not many people are using it. But imo, we should change it so that bindToController with hash creates an isolate scope in all cases.

-1
Not agreee.
It should not use scope:{} in all cases. For example:
<my-component-foo data-foo="foo" my-decorator-bar data-bar="bar">
   ...

Which in both cases you can have bindToController and if decorators have scope:true can coexists with components with scope:{}.
By thumbrule I usually give scope:{} to entity directives and scope:true to attribute directives.
If you force to have always scope:true you are actually forbidding to use bindToController in attribute directives.

I completely agree with @drpicox.

I see what you mean. Well, we need better docs for this, then.

I too think that bindToController with scope: true is a valid usecase (albeit not a common one).
In that sense, the implementation is correct, but the docs can always be improved.

@gkalpak There were no docs for bindToController with object hash, that's how I stumbled upon this. Docs are here now: #13681 Can you please review? The thing is that this makes the API even more more complex, but maybe that's how it should be.


Fixing typo and removing pyc file

Thanks! Well spotted!

Please could you tag it and make a release?


Refactor linear machine api

[WIP]
Adapt machine api to fit + predict
This need some heavy refactor, so let's start from linear machines and iterate a few times.
The idea is to keep both old and new apis working and then remove old apis gradually.
train_machine(CFeatures*, CLabels*) is added to machines that need labels. The old method, train_machine(CFeatures*) will redirect to the new api and pass m_labels as the labels argument. In this way, the old api (set_labels + train(CFeatures*)) still works.
Roadmap

[x] Add void fit(CFeatures*), void fit(CFeatures*, CLabels*) to CMachine
[x] Redirect bool train_machine(CFeatures*) to void train_machine(CFeatures*, CLabels*) in LinearMachine
[ ] Calling new api in unittests
[ ] Move api redirection to LinearMachine as a base class method after the new api works for all LinearMachine subclasses
[ ] Make bool train_machine(CFeatures*) and bool train_machine_templated(CFeatures*) return void (The latter one should be easier as it is added last year and we haven't used in many places)

Known issues for moving to const methods:

ref counting
labels factory (e.g. regression_labels) doesn't accept const args

Hi!
Shall we pick this up again?

@karlnapf I found there are too many things involved here. When you change the Machine base class, almost everything need to be updated. I would suggest start some small refactor first, such as Distance or Kernel. We may further discuss on irc.

Nice! Let me know when we should have a look at this...

Cool some progress :) Let us know how you are getting on here

Let's push this thing on  :)

keeping this alive as I think this is still the direction we want to go in

bump


Path incorrect

Just pointing out that the path to ACR image should be: <ACR_name>.azurecr.io/<imagename>:<version>
instead of
<ACR_name>.azureacr.io/<imagename>:<version>

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

ID: 3fc38ecf-87ef-cc6f-dd84-1df3d59081fe
Version Independent ID: 04721d96-e83a-6d5f-f276-5cb9d4d39762
Content: Deploy a model tutorial for Azure Machine Learning services
Content Source: articles/machine-learning/desktop-workbench/tutorial-classifying-iris-part-3.md
Service: machine-learning
GitHub Login: @aashishb
Microsoft Alias: aashishb

@jxjia Thanks for bringing this to our attention. Your feedback has been shared with the content owner for further review.

@jxjia - thanks for letting us know. I've checked in a fix that will go live tomorrow morning. Thanks for your report. If you are satisfied with the fix, #please-close this issue. Thank you!

Thanks team !


Port stack tracing to Windows

This set of patches implements the stack trace, symbolizer, and demangler for Windows, and their unit tests. It utilizes the Windows debugging APIs in "Dbghelp.h".
There is one TODO for IsFailureSignalHandlerInstalled as I'm unsure yet how to implement it for Windows. That said, in order to make stack trace reporting work "as expected" for test failures, the data dump needs to be done immediately, instead of in the signal handler (see commit message for details).
I've integration tested this with Mesos, and so far it is working well. I've also updated the unit tests where appropriate.

Also note: I updated the CMakeLists.txt build system, as that's what I'm familiar with, but there appear to be several Windows build systems maintained in parallel.

Note: The contents of this PR have been applied to the Windows build of Apache Mesos (https://github.com/apache/mesos/commit/ef3ebf3fda475ac0d8d51d12ba5c2e10cb0607df).

@ukai can a maintainer please take a look?

@ukai and @shinh anything blocking this, please, can it at least be reviewed?

Adding @sergiud for a possible review.

Ping @sergiud @ukai @shinh

Thanks for the patch! Sorry for the huge latency... Could you update AUTHORS and CONTRIBUTORS as well (see CONTRIBUTING.md)? I'm a bit worried by the use of malloc and Windows APIs in signal handler, but I think it's definitely much nicer than nothing. So I'm planning to merge this PR if others don't objects.

@serguid and @shinh Thank you so much for getting to this and reviewing it! I'll commit to updating it per reviews (plus feedback on some confusing Windows-y parts) by the end of the week. Talk to you soon!

With a fresh set of eyes (and more Windows knowledge) I actually managed to get the signal handler working properly today (just tested an integration with Mesos). I'll get it cleaned up and the PR posted.

@shinh and @sergiud this is ready for a final review I believe. I fixed the mentioned issues, and fixed the deeper issue of the signal handler not being all the way hooked up. From my previous comments, I mentioned that I'd plumbed around the signal handler "not working as expected" on Windows; but I now have it working as expected, and undid the unnecessary changes. Users should use InstallFailureSignalHandler() and expect LOG(FATAL), CHECK(...) and abort() etc. to all work.

Just to add some test results:
CentOS 7 (ensuring I didn't break anything):
$ ./autogen.sh
$ ./configure
$ make -j8
$ make check
============================================================================
Testsuite summary for glog 0.3.5
============================================================================
# TOTAL: 6
# PASS:  6
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

$ mkdir build
$ cd build
$ cmake3 ..
$ make -j8
$ ctest
Test project /home/andschwa/src/glog/build
    Start 1: demangle
1/6 Test #1: demangle .........................   Passed    0.00 sec
    Start 2: logging
2/6 Test #2: logging ..........................   Passed    0.53 sec
    Start 3: signalhandler
3/6 Test #3: signalhandler ....................   Passed    0.01 sec
    Start 4: stacktrace
4/6 Test #4: stacktrace .......................   Passed    0.00 sec
    Start 5: stl_logging
5/6 Test #5: stl_logging ......................   Passed    0.00 sec
    Start 6: symbolize
6/6 Test #6: symbolize ........................   Passed    0.00 sec

100% tests passed, 0 tests failed out of 6

Total Test time (real) =   0.55 sec

Windows 10:
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build . --config Debug
$ ctest -C Debug
Test project C:/Users/andschwa/src/glog/build
    Start 1: demangle
1/6 Test #1: demangle .........................   Passed    0.05 sec
    Start 2: logging
2/6 Test #2: logging ..........................***Failed    0.47 sec
    Start 3: signalhandler
3/6 Test #3: signalhandler ....................   Passed    0.02 sec
    Start 4: stacktrace
4/6 Test #4: stacktrace .......................***Failed    0.97 sec
    Start 5: stl_logging
5/6 Test #5: stl_logging ......................   Passed    0.01 sec
    Start 6: symbolize
6/6 Test #6: symbolize ........................   Passed    0.03 sec

67% tests passed, 2 tests failed out of 6

Total Test time (real) =   1.58 sec

The following tests FAILED:
          2 - logging (Failed)
          4 - stacktrace (Failed)
Errors while running CTest

The stacktrace test tends to fail in Debug because of the incremental linking table making function and return addresses unreliable. The symbolizer should now be expected to fail because the Release configuration doesn't have symbol information.
$ cmake --build . --config Release
$ ctest -C Release
Test project C:/Users/andschwa/src/glog/build
    Start 1: demangle
1/6 Test #1: demangle .........................   Passed    0.00 sec
    Start 2: logging
2/6 Test #2: logging ..........................***Failed    0.45 sec
    Start 3: signalhandler
3/6 Test #3: signalhandler ....................   Passed    0.02 sec
    Start 4: stacktrace
4/6 Test #4: stacktrace .......................   Passed    0.02 sec
    Start 5: stl_logging
5/6 Test #5: stl_logging ......................   Passed    0.01 sec
    Start 6: symbolize
6/6 Test #6: symbolize ........................***Exception: Other  3.15 sec

67% tests passed, 2 tests failed out of 6

Total Test time (real) =   3.69 sec

The following tests FAILED:
          2 - logging (Failed)
          6 - symbolize (OTHER_FAULT)
Errors while running CTest

And finally, the logging test fails just due to a difference in padding:
$ ctest -V -C Debug
2: Test with golden file failed. We'll try to show the diff:
2: --- C:/Users/andschwa/src/glog/src/logging_unittest.err.munged       Tue Jun 27 11:36:39 2017
2: +++ C:\Users\andschwa\AppData\Local\Temp\/captured.err.munged        Tue Jun 27 11:36:39 2017
2: @@ -78,7 +78,7 @@
2:  IDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: foo bar 10 3.400000
2:  WDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: array
2:  IDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: const array
2: -IDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: ptr 12345678
2: +IDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: ptr<PHONE_NUMBER>345678
2:  IDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: ptr<PHONE_NUMBER>000000
2:  EDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: foo 1000<PHONE_NUMBER> 3e8
2:  IDATE TIME__ THREADID logging_unittest.cc:LINE] RAW: foo 1000
2: diff command was failed.
2: Check failed: MungeAndDiffTestStderr(FLAGS_test_srcdir + "/src/logging_unittest.err")
2/6 Test #2: logging ..........................***Failed    0.45 sec

The golden file has 12345678 and we print<PHONE_NUMBER>345678.
Finally, I've also linked this library into Mesos and tested some expected failures with an abort(), a CHECK_EQ(true, false) and a LOG(FATAL) << Failing, and stack traces are being generated properly.

Yeah, further changes can be done in a separate PR if necessary. Thanks!

Woo! Thank you :)

Filed to issues to improve this: issue 534 and issue 535.


Portrait video is rotated by 90 degrees counter-clockwise after using samples

Hi, using the samples I tried transcoding, for example using Cut Video . I opened a video I had recorded in portrait mode with my other custom app. When you view the video in a mediaplayer it shows correctly in portrait mode!
Now when I press cut and it transcodes and outputs a file the video that was output is rotated by 90 degrees counter-clockwise!
Its the samples so I did not do custom stuff in there and I saw this piece of code which should make the output retain the original orientation in "ComposerTranscodeCoreActivity" class :
`    protected void setTranscodeParameters(org.m4m.MediaComposer mediaComposer) throws IOException {
    mediaComposer.addSourceFile(mediaUri1);
    int orientation = mediaFileInfo.getRotation();
    mediaComposer.setTargetFile(dstMediaPath, orientation);

    configureVideoEncoder(mediaComposer, videoWidthOut, videoHeightOut);
    configureAudioEncoder(mediaComposer);
}`

Additionally landscape videos do not seem to get rotated and show correctly after transcoding.

So I tried the cutter again. When I input a video recroded from screen (with DU Recorder app) I have no problems (except it saying missing audioformat)
When i use the camera app to record and open that file it 1) displays wrongly on the last activity where you press start (rotated by -90 degrees) and 2) the output is very weird , it has big black borders? and the original video is small in the middle taking up  only 50% space.


fix(db): inherit generics in snapshotChanges, stateChanges, auditTrai…

…l interface
valueChanges already support it (refer to https://github.com/angular/angularfire2/issues/1214 ) but this one need change to @firebase
I submit separate PR to @firebase here https://github.com/firebase/firebase-js-sdk/pull/590
Checklist

Issue number for this PR: #1523 (required)
Docs included?: no
Test units included?: no
In a clean directory, yarn install, yarn test run successfully? (yes/no; required)

Description

link to issue #1214 ang PR https://github.com/firebase/firebase-js-sdk/pull/590
Code sample
this.db.list<SampleModel>(`/users/${uid}`).snapshotChanges().subscription(a => {
const b = a[0].payload.val(); // b have SampleModel type
});

Needed more work, superseded by #1644 #1643

@jamesdaniels look like @firebase willing to support generic type for DataSnapshot. Should we wait for their decision before extend it by ourselve?

@iNViTiON I'm fine implementing here as that pull request has been open for some time... paging @jshcrowthe


SAK-41021 - Date/Time screens for Signup events: confirmed and waitlisted

Commit to register and show the date and time in which a student signed
up to event. This information is also shown in exported Excel files.
Order in both Inscription (by name) and Waiting (by list_index) lists is
not modified.

I have attached 3 snapshots showing the results of this Pull Request in both the view and the exported Excel. The Excel can have two different formats based on the property "signup.export.group.participants.by.slot".


Serve a fulcio signed certificate of the rekor public key

In cosign we're currently working on bundling all necessary proofs into the signature (https://github.com/sigstore/cosign/issues/181) -- the idea is that we can verify the signature is in rekor without having to actually access the rekor tlog.
Ideally, we would like cosign to verify these signatures with as few public keys required as possible. Instead of having to store rekor's public key in the code, we could:

Create a fulcio signed cert that contains the rekor public key
Store that cert in the cosign signature

That way we can get rekor's public key, but only have to trust the fulcio root CA to get it from the cert.
I was planning to create the cert, and then making it accessible from the rekor API in the same way the rekor public key is currently accessible.

+1! We can add it onto the API here: https://github.com/sigstore/rekor/blob/main/pkg/api/tlog.go#L122
When we get the certificate signed.

Opted to store the public key in cosign instead, so this is no longer needed!