Circular reference detection is not lazy enough

TypeScript Version:  3.8.0-dev.20191105

Search Terms:
circular
Code
type A<T> = { x: T }
type R = A<R> // FAIL

type B = { x: B } // OK

Expected behavior:
Both cases throw no error.
Actual behavior:
Type R is rejected due to a circular reference.
Playground Link:
Link
Related Issues:
https://github.com/microsoft/TypeScript/pull/33050
Regression: https://github.com/microsoft/TypeScript/pull/33050#issuecomment-526637037

Could you please also add this test case into a test suite for this issue? It's closer to the supposed real-world usage of this pattern.
interface A<T> { B: {x: T} }
type C<T extends keyof A<any>, U> = A<U>[T]
type R = C<'B', R>

I would personally say type B = { x: B }  should be an error. What value satisfies type B?

Well, I could have put original code with several mutually recursive union types over several hundred cases, but I think turtles are fine too.

My initial reaction was that the recursion has to stop at some point. And that constructing an infinitely recursive type can't really be performed without as casts at some point.
But I guess there's also,
class SelfRecursive {
  self : SelfRecursive;
  constructor () {
    this.self = this;
  }
}

type B = { x: B };

While this is a legal type, it's worth noting that it's also a Droste type: every inhabitant of this type contains another instance of the same type, and therefore such types can only represent cyclic data (assuming you never lie to the type system).  While this doesn't strike me as a particularly useful constraint, it's a perfectly acceptable type with well-defined semantics.  On the other hand...
type R = A<R>

This is the type that baffles me.  In order to know what R is, we have to instantiate A.  But we can't instantiate A until we know what R is, which requires instantiating A... unlike with B there's no place where we can stop going down the rabbit hole with R.  Even if you lazy-evaluate it, no matter how many times you go around in that circle, you'll never have a concrete type you can use.  It's a different kind of circularity than B: you're essentially calling an infinitely recursive function at the type level.  R becomes A<R> which becomes A<A<R>> which becomes A<A<A<R>>>, ad infinitum.

type Level<V, A> = {type: 'node', left: A, right: A} | {type: 'leaf', value: V}
type Annotated<T> = {note: string, value: T}

type Tree<V> = Level<V, Tree<V>>
type AnnotatedTree<V> = Annotate<Level<V, AnnotatedTree<V>>>

@fatcerberus Does it make more sense?

I think this comment explains the problem: https://github.com/microsoft/TypeScript/pull/33050#issuecomment-543365074
Specifically:

[...] the recursive reference is an argument to a type alias and is not known to be guarded. TypeScript won't peek inside the type alias to see if it binds an object type.

Emphasis mine.  This seems to be a deliberate tradeoff.  In @ahejlsberg's example, he used an interface as the target of the recursive type parameter, not a type alias.

Writing code on mobile is hard,
interface TreeNode<NodeT> {
  type: 'node',
  left: NodeT,
  right: NodeT,
}
type TreeBase<V, NodeT> =
  | TreeNode<NodeT>
  | {type: 'leaf', value: V }
;

type Tree<V> = TreeBase<V, TreeNode<V>>

type AnnotatedTree<V> = {
  note: string,
  value: TreeBase<V, AnnotatedTree<V>>,
};

Playground
I'm too lazy to figure out how to clean it up

http://www.typescriptlang.org/play/#code/FAFwngDgpgBAKgJylAQgQwM5QDwDUA0MAcgPYAmUcAfDALzAwwA+MA3jONAFwwDkAduSi9CAGygAzED1IU4hBAEsA5gAtpxIXBgBfBszYdIUHr3FoJImADc0ogK4mYuXcADcwUMfhIcuGvSMLOycTgJCVuJSPIjIeFQKKuoxvvGuQYahpuaWhLYOTi56Hl7QMACC-IIgaCBQZLF+AWz61U4YIEr8yvj6+Y4pyOhYeISV1bX1jfEJwDoeQA

Stolen from fp-ts,
export interface URItoKind<A> {
  Tree : Tree<A>,
  AnnotatedTree : AnnotatedTree<A>,
}
export type URIS = keyof URItoKind<any>
export type Kind<URI extends URIS, A> = URI extends URIS ? URItoKind<A>[URI] : any

type TreeBase<V, NodeT extends URIS> =
  | { type: 'leaf', value: V }
  | { type: 'node', left: Kind<NodeT, V>, right: Kind<NodeT, V> }
;

type Tree<V> =
  TreeBase<V, "Tree">
;

type AnnotatedTree<V> = {
  note: string,
  value: TreeBase<V, "AnnotatedTree">,
};

const x : Tree<number> = {
  type : "node",
  left : { type : "leaf", value : 1337 },
  right : {
    type : "node",
    left : { type : "leaf", value : 9001 },
    right : { type : "leaf", value : 69 },
  },
}

const y : AnnotatedTree<number> = {
  note : "Stolen",
  value : {
    type : "node",
    left : {
      note : "From",
      value : {
        type : "leaf",
        value : 3,
      },
    },
    right : {
      note : "fp-ts",
      value : {
        type : "leaf",
        value : 4,
      },
    },
  },
}

http://www.typescriptlang.org/play/#code/FAUwHgDg9gTgLgAgJYDs4hgMwIYGMQICqASgJJxQDSqAJgDwCCAfAgN7AIIAqMIBAXN14hGTADQcEDFCihxs6Gjz4JB02fMXKRzCQF9QkWIjgBPCARKkAyggC8CANYhTUTETIVqKethSmmQ2h4BDMLBG96KwRwdB8AZw8bMSkWB2jYkASk2wB+JK9aUQBtKwBdVQQ-U2BasIJtACFseJEANRSAOSgaEC4YsDiaRKtrNMkAHzZQ8xBBAHIAGxBsTHmUgDdsRYBXOYQ2hANOKdYZiwXZXvWEZcw4QUi6bt6uFLbxBBgkAHMACweESKLz67xYBgA3HVZkI+HQPvZJE0Wu0UgAibRowJQ4D1KQyOQKEBKYTwtJsSQafbxODfFA-CScLa7fbI1rw9HqQlaYRY-Q43BQFA0hBgSraOgoHYAWwARhhyexOHjBGiriA0YzbiB7pUziqEGjlqtNQhmXtKgBGADM1oA7Ectd9-ohBErOOcBIb1ZrJJw7q7pgajStMKbzV6AJwABmjlsdfq+vwBes9lRDJs22wtggAbJGE5w9PpaoLhYhTJUuZpiRKpXKFfYKZwqenrBRlihfUzs173cqYaqfVr-TrA-2Pa3VQAxGBQaXdj09ll6xNL4PGsMjpdm3uVa3bovb4uJ50pt1rhBTw2YCAAWjg8UXS4jq53Ho3oefO9fggALIehYeieR7AAYQA

type B = { x: B } is obviously uninhabitable, but the very reasonable type type C = { x?: C } is quite terminable and not meaningfully different.
type R = A<R> when A is an object type is one thing, but A could easily be a conditional type, at which point the declaration becomes immediately truly circular. Whether or not type R = A<R> should be illegal sort of depends on whether you think generic type aliases should have some level of opacity over their definition.
Tagging this as a feature request since this has never "worked" in any meaningful sense and it's unclear why it's a strict necessity.

type B = { x: B } is obviously uninhabitable

Funnily enough, this isn’t actually true.  I thought the same for a while, but it turns out that x could be this, or to another instance of B which referred back to the first one, etc.  This does mean such a type can only represent cyclic data, however, which is quite an interesting constraint.
There is no way to express the initial instance of such a type as an object literal, however, I’ll freely admit.

You know how averse someone is to OOP by their initial reaction to B = { x : B } =P

Sorry to put a description of why I think this is unacceptable behaviour on a more formal side, but I have no idea how to explain better.
When we're refactoring code and trying to keep it DRY, it's common to cut a part of a code, make it a function or a type alias, and put a reference to that thing at the call site.
const f = () => ... som = eth + ing; ...

const f = () => ... something(); ...
const something = () => som = eth + ing;

type T = .... Som<Eth, Ing> ...

type T = ... Something ...
type Something = Som<Eth, Ing>

The ability to do so without a hassle in lambda calculus is described by a rule called η-conversion. It literally means that you can convert x => f(x) into just f or vice versa. While it's not true for JS/TS runtime, as we perfectly know from the classic example where we have to create IIFE inside of a loop, types do not have any mutable state, and are expected to support η-conversion. Surprisingly, when I do
type T = {x: T}

type T = A<T>
type A<T> = {x: T}

this little refactoring shoots my leg off, and I certainly do not expect that. I'm afraid this has something to do with internal represenation of types in TS that keeps track of type aliases for the purposes other than improved error messages. Probably, someone mistakenly used that representation as if type aliases were not ephemeral, but something that does really exist.

This does mean such a type can only represent cyclic data, however, which is quite an interesting constraint.

I don't like to be sidetracked with a discussion of a single arbitrary type from an example, but it's already been started, so I have to mention that it's not just circular: it represents lasso structures.

He probably meant "cyclic" as in, "contains at least one cycle".
But I can see how that terminology can be confusing. Just to be sure, I looked it up and Wolfram also says "cyclic" can mean "not acyclic", but is a confusing term outside of graph theory.
Since it can be confused with the term "cycle graph".

Also, regarding η-equivalence, I understand what you mean.
It has also been my experience that, even though there are infinite equivalent ways to express a computation at the type level, some ways are more emit-friendly (easier for developers to read in .d.ts files), others are more Instantiation-friendly (letting you compute more complicated and deeply nested types before hitting the depth error), others just don't work (despite intuition/math saying it should work), and some hit that sweet spot and do exactly what you want, as you want.

Both issues come from the fact there is something called "instantiation", which doesn't really make sense. Type alias is an alias, there is nothing to create an instance of.

Without an answer, I just copy-paste the issue link to a comment in my code, and hope I'll understand some day.

@AnyhowStep Thank you, this approach literally changes quality of life. I just started marking places with dangerous casts with references to bugs in compiler, and have so much less anxiety by now.


Add Bau

Add bau a lightweight reactive library.

@FredericHeem bau looks neat! Is it possible to use it directly from a CDN or does it require an NPM install? I skimmed through the docs, but maybe I missed something.


Permission denied for cache files

Hi,
First, thank you for the great work. Setting up Dusk with this docker container was a breeze.
However, I'm running into some issues with file permissions. The following (last part of) the build shows an error occuring in one of the tests. This error occurs because the webserver is unable to create a cache file.
$ chmod -R 775 storage
$ chmod 775 bootstrap/cache
$ chown -R www-data:www-data ./
$ ls -al storage/framework/cache
total 24
drwxrwxr-x. 2 www-data www-data 4096 Sep 29 20:53 .
drwxrwxr-x. 5 www-data www-data 4096 Sep 29 20:53 ..
-rwxrwxr-x. 1 www-data www-data   14 Sep 29 20:53 .gitignore
$ start-nginx-ci-project
 * Starting nginx nginx
   ...done.
$ php artisan dusk || true
Warning: TTY mode requires /dev/tty to be read/writable.
PHPUnit 7.3.5 by Sebastian Bergmann and contributors.

...............F.......                                           23 / 23 (100%)

Time: 1.8 minutes, Memory: 32.00MB

There was 1 failure:

1) Tests\Browser\MapSettingsTest::test_can_store_regions
Did not see expected text [Regions saved.] within element [body].
Failed asserting that false is true.

/builds/project/vendor/laravel/dusk/src/Concerns/MakesAssertions.php:173
/builds/project/vendor/laravel/dusk/src/Concerns/MakesAssertions.php:144
/builds/project/tests/Browser/MapSettingsTest.php:76
/builds/project/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67
/builds/project/tests/Browser/MapSettingsTest.php:77

FAILURES!
Tests: 23, Assertions: 74, Failures: 1.
$ ls -al storage/framework/cache
total 40
drwxrwxr-x. 4 www-data www-data 4096 Sep 29 20:54 .
drwxrwxr-x. 5 www-data www-data 4096 Sep 29 20:53 ..
drwxr-xr-x. 3 root     root     4096 Sep 29 20:54 5a
drwxr-xr-x. 3 www-data www-data 4096 Sep 29 20:54 85
-rwxrwxr-x. 1 www-data www-data   14 Sep 29 20:53 .gitignore

Given the following gitlab yml:
browser test:
  stage: integration_test
  services:
  - mysql:5.7
  image: chilio/laravel-dusk-ci:php-7.2
  artifacts:
    paths:
    - ./storage/logs
    - ./tests/Browser/screenshots
    - ./tests/Browser/console
    expire_in: 1 days
    when: always
  before_script:
  - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
  - apt-get purge php-xdebug -y
  - cp .env.dusk .env
  - chmod -R 775 storage
  - chmod 775 bootstrap/cache
  - chown -R www-data:www-data ./
  - ls -al storage/framework/cache
  - start-nginx-ci-project
  script:
  - php artisan dusk || true
  - ls -al storage/framework/cache

I'm confused, because the build output shows files created as root. I was under the impression that the php process would be running as www-data.
Any input is appreciated.

@thburghout have you tried 'configure-laravel' without modifying file permissions yourself?

I see, there seems to be something else going on.
Tests which previously succeeded now fail because of "invalid domain" errors when setting cookies.
1) Tests\Browser\AdminProductTest::test_user_sees_no_products_until_added
Facebook\WebDriver\Exception\UnrecognizedExceptionException: invalid argument: invalid 'domain'
  (Session info: headless chrome=77.0.3865.90)
  (Driver info: chromedriver=77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}),platform=Linux 4.19.23-coreos-r1 x86_64)

/builds/project/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:158
/builds/project/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:326
/builds/project/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:547
/builds/project/vendor/facebook/webdriver/lib/Remote/RemoteExecuteMethod.php:40
/builds/project/vendor/facebook/webdriver/lib/WebDriverOptions.php:55
/builds/project/vendor/laravel/dusk/src/Concerns/InteractsWithCookies.php:70
...

Which is weird, as those tests would previously succeed. I'm going to investigate this further.

@thburghout please check your .env settings and are you sure you are running all your tests locally in gitlab-runner not hitting remote systems?

I did not change the env settings w.r.t. the previous runs. My .env file looks like this;
APP_ENV=testing
APP_DEBUG=true
APP_KEY=base64:iPNqnlA8ga5QaFJZ5lr+xMIoyGFHBCbLvypGZkNmWUk=
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
QUEUE_DRIVER=sync
BROADCAST_DRIVER=pusher

SESSION_DRIVER=file
SESSION_SECURE_COOKIE=false

MIX_PUSHER_KEY=xxxxxxxxxx
PUSHER_SECRET=xxxxxxxxxxxx
PUSHER_APP_ID=999999

MAIL_DRIVER=log
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
<EMAIL_ADDRESS>MAIL_SENDER="xx xx xx"

MOLLIE_TEST_MODE=true
MOLLIE_KEY_TEST=test_xxxxxxxxx

GOOGLE_MAPS_API_KEY=xxxxxxxx

TELEGRAM_BOT_TOKEN=999999999:aaaaaaaaa-aaaaaaaaaa-aaaaaaaaaaaaaa
TELEGRAM_BOT_NAME=xxxxxx

DEBUGBAR_ENABLED=true

Printing the browser's url before setting the cookie yields http://localhost/_dusk/login/1  in the following snippet;
            $second->loginAs($admin);

            $url = $second->driver->getCurrentURL();
            Log::info($url);
            echo $url . "\n";

            $second->addCookie('device_token', $token)
                ->visit('/')

@thburghout did you check withCookie?
What Laravel version are you on?
Please post your new errors...

Still running into the same issue as https://github.com/chilio/laravel-dusk-ci/issues/52#issuecomment-536753911
I'm using Laravel v5.7.3 and Dusk v4.0.3.
Please also note this output during execution;
System Chrome version: 77
System Chromedriver version: 77.0
Laravel Chromedriver version: 2.35
Chromedriver shipped with your Laravel installation is NOT compatible with current system chrome version!
Don't worry, we are fixing this right now, and you will be able, to test your app anyway.
Read more, about running tests with system inbuilt chromedriver in laravel-dusk-ci docs.
Starting inbuilt Chromedriver (77.0).
Waiting for inbuilt Chromedriver to launch on port 9515...
Starting ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}) on port 9515

Why does it only behave this way when using configure-laravel? Is the chosen Chromedriver version correct?

@thburghout yes the version is correct. Due to problems with chrome <-> chromedriver matching different updates, this package has it's own ability to actually run correct chromedriver on 9515 port.
The procedure is only included in configure-laravel command, therefore it is important to run this command. This approach is transparent and should not interfere with any of your workflows.
After running this command you may issue any other commands specific to your project.
I assume the problem arises when you are trying to set cookie inside dusk test procedure, which I think could not work this way.
Please check https://stackoverflow.com/questions/37441736/how-to-set-cookie-before-test-in-laravel

The link you're providing only considers phpunit and its fake HTTP requests. The same goes for your withCookie suggestion; this is part of local testing, not browser testing with chromedriver.
Today I've further investigated the issue. Unfortunately using configure-laravel causes issues with my dusk + facebook/webdriver version; which does not seem to be aware of cookie domains. I would like to say that the note Don't worry, we are fixing this right now, and you will be able, to test your app anyway. is therefore not correct.
On the other hand, I've successfully updated my Dusk + webdriver to the latest version. Which is a good thing anyway. This resolved the Cookie domain issue with this docker image. However, now I'm back at my original issue regarding file permissions of log files.
So the issue remains exactly the same as it is in my initial comment. The screenshot below shows the browser output during this tests. Logging still shows directories created as root user.
Can you tell me more about which user runs the php-fpm process? It should be www-data right?

It was the php artisan dusk process, running as root, invoking procedures which utilize the cache. The cache was set to file, I needed to change this to array in .env.


Edit application

As a user, I want to be able to edit my applications so that I can rectify any accidental errors and keep my internship book up to date with the latest changes.

Done on the separate branch and merged to master


Don't call install by default in Makefile for hipBusBandwidth

Makes it easier and less confusing for non-root users

ping

Closing all existing pull requests that do not target the develop branch. In case this pull request is still valid, please rebase your changes against develop branch and resubmit.


UI issue

The background colors of 64 and 512 are duplicate.
Except: They should be different.

Fixed by commit 1dd276d.


Backport PR#1252 to rhel-9.2.0

Backport https://github.com/osbuild/osbuild/pull/1252 to rhel-9.2.0

Thanks for preparing this.


GroundMarker plugin: Clear local markers option

Option to clear ground markers in current region. (64x64 tiles)

Simple solution for some cases where people can't clear their markers
(PR #2208 already solved this but it got closed)

Changes look good, and I'm happy to see this feature - just a couple of questions

I noticed in your video that you right clicked the second row of marked tiles to remove them and it didn't do anything. You had to run into the region to remove them - do we want to base the current region based on the position of the player or the position of the clicked tile?

Looks like author of this PR deleted GH account, closing


Styling the Dropdown Button on top right of Meshery's Docs page

Styling the Dropdown Button

Screenshots / Mockups

Contributor Guides and Resources

🎨 Wireframes and designs for Meshery Site in Figma
🖥 Contributing to Meshery Website
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

I want to work on this

Same here @Himanshu664

Maybe we can work together?

It's my first time Raising an issue and contributing

@Himanshu664 where can i find files for the Meshery's Doc page?

@legendarykamal i am not able to find files relevent to this issue

hey @anirudhp26 I see , just mention what changes you expect to do.

@Himanshu664 where can i find files for the Meshery's Doc page?

you can find it on the meshery repo.

ok open your issue there https://github.com/meshery/meshery/issues would be great .
I am closing it here :+1:

ok thanks


Enable link tracking per message

This adds support for the newly announced link tracking feature in PostmarkClient::sendEmail() and PostmarkClient::sendEmailWithTemplate().
However, it doesn't add support to get click counts and related new API calls in the stats/ namespace.
I'm looking forward to hearing feedback on this PR and hopefully see it merged soon!

@limenet Awesome! Yes, I plan to add all the new endpoints ASAP, but wanted to get the feature out for folks to start using. This PR looks good, so I can merge to master. If you want to use this before I release to packages, you can reference dev-master in your composer.json until we cut another release. Thanks again for adding this!

@atheken really happy to see this merged!


use List::MoreUtils uniq for legacy compatibility

There is currently a dependency on a newer version of List::Util than the one that ships with Ubuntu 16.04 LTS
$ perl ./duprule.pl
"uniq" is not exported by the List::Util module
Can't continue after import errors at ./duprule.pl line 4.
BEGIN failed--compilation aborted at ./duprule.pl line 4.
Options include:

switching to a standalone implementation of uniq

requiring List::Util 1.44 and giving a warning

requiring List::MoreUtils instead (not included with Perl, but packaged as liblist-moreutils-perl in Ubuntu)

Thanks!


Add Memory Peak Counter

adds an extra bit of information on the fpsVar by showing how many memory megabytes the game used in total
looks like:

also makes it so you can hide the fps and the counter individually

i already did this
https://github.com/ShadowMario/FNF-PsychEngine/pull/9333

There was already a mem peak counter

There was already a mem peak counter

the difference between this and the other one is something minor, you can hide them indvidually
https://user-images.githubusercontent.com/45212377/177898124-921aa578-d361-4cfb-a5c4-01a8886cbe6e.mp4
was kinda annoying that the fps counter option also got rid of the memory one, so I added that as an option along with it having a memory peak counter

Oh uh, adding that as an option ig


How to package this project?

hi, I changed source code, can you help me How to pack this project into a zip package, Thanks!

+1. I would also like to know the same please.

@vikkikanhaua  I solved it, execute  sbt dist，the file in target/universal/cerebro-0.x.x.zip

Wow, thanks so much. This helped me a lot.
On Fri, Jul 31, 2020 at 20:09 Kyle.K.Zhao<EMAIL_ADDRESS>wrote:

@vikkikanhaua https://github.com/vikkikanhaua I solved it, execute sbt
dist，the file in target/universal/cerebro-0.x.x.zip
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lmenezes/cerebro/issues/469#issuecomment-667459504,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA5QHVSQMPFAS4VBBZNPG3R6OBQNANCNFSM4PQEFVRA
.

--
Best regards,
vikas


Add gmloader-next support

Is it possible to add gmloader-next (https://github.com/JohnnyonFlame/gmloader-next) support? It can run some games that couldn't work with gmloader.

this is a possibility. i will have to take a better look at it. thanks


Add SingleTaskDataPublisher and restore DataPublisher to the original API

@ibuenros could you review?

@ibuenros updated d2d4423

LGTM


Allow specifying environment variables from secrets.

I am currently still using the node-red Helm chart from https://github.com/k8s-at-home/charts and want to switch to this chart. I am specifying environment variables with secrets using envFrom, this adds support for the corresponding values.
Also verify you have:

[x] Read the contributions page.
[x] Read the DCO, if you are a first time contributor.
[x] Read the [code of conduct](Code of Conduct).

Should be good to go now.


TabTypeface

How can I change the tab's typeface? thanks

please look at the PagerTabTitleStrip readme please
https://github.com/jpardogo/PagerSlidingTabStrip


Add wait_for_active_shards parameter to the Index Open API

This PR adds the missing parameter to the _open API call, introduced in ES 6.1
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/indices-open-close.html
https://github.com/elastic/elasticsearch/issues/20937

Will be part of the next release. Thanks for being a contributor. 👍


Signed integer datatype of inputs

Oftentimes, input datasets show signed integer data types in their headers while reconstructed MR data is, intrinsically unsigned (except for particular acquisitions like complex-type phase difference maps).
Unless you hold me back, @effigies and @chrisfilo, I'll quickly add to the input validation an additional check that converts niftis with signed integer types into the corresponding unsigned type.
A new warning will be issued in the reports when this is done.

Couple of questions:

what if input data is unsigned and includes values below zero?
will this increase space requirements for working dir?

Couple of questions:

what if input data is unsigned and includes values below zero?
If input data is unsigned the proposed solution would not change anything. That said, if input data is unsigned but includes values meant to be below zero I don't think any software would understand that.

Only the signed data types are problematic because most of the software assume that data are unsigned anyways and everything works.

will this increase space requirements for working dir?
No, as the equivalent unsigned types will be assigned (i.e. int16 takes as much space as uint16).

Is there any reason to think having a signed data type is a problem? Or is the issue a lost bit of precision?
Not sure what the trade-offs are here.

Signed integer data types are problematic. Many scans in OpenfMRI have that. Most software tools (ants, FSL, AFNI, etc.) will use them as if they were unsigned. However, our custom code don't, except for visualization since nilearn automatically adjusts the colormaps to the image limits.
I would turn around the argument. Is there any reason not to normalize the data type when we know that they cannot not be signed?
There is no loss of precision as types would be replaced with their unsigned equivalents.

Supposing you have a signed type and a negative value, what's the proposed fix for that file?

How that could happen? Except for particular types of fieldmaps, all other images should strictly be non-negative.

So it would be an error condition? I'm okay with making that decision, but I'm just a little uncomfortable saying "This can never happen, so we don't need to worry about it."

FMRIPREP would write a WARNING on the report, noticing the user that their headers contain potentially problematic data.
Right now we are saying (in this respect only): "I better don't look into the headers, everything seems to be working fine".
What about this? We look into the headers AND also check the scl_inter header. If it is not zero, it is clear that there is an intention of setting a signed data type. Otherwise, we assume that the datatype is wrong.

I understand the warning bit. I'm just saying if we then find an int16 value that can't be coerced into the uint16 range (i.e. negative), then it should be an error, or at least a bigger warning. It sounds like you're convinced that it would be pretty rare for that to be an issue, in any event.
I don't think using scl_inter in the way you suggest is valid. It doesn't seem to follow that having a floating point interpretation of the data signals an intention to use signed values.
But to be clear, I'm fine with the warnings. I just wanted to understand the issue here. And make sure that we actually cover edge cases that should never happen.

I am reconsidering this idea. While I liked the correctness in the beginning, it is true that after some resamplings (and depending on the interpolation kernel, but Lanczos and BSplines will do this) we may have negative values. Then using unsigned reference would introduce truncation errors.
Since it is not clear if this actually solves a problem (as @effigies said), I'll put this on hold and close for now. If I can come up with a more developed idea of the issue and solution, I'll reopen then.
Thanks for the comments @effigies :)


Make Zimtohrli python version easier to jit.

Changes:

Make the Cam class static from the point of view of jax. To allow jitting, the _hz_freqs array should not be a jax array, because depending on the values of the hyperparameters, the array shape should be different, making it impossible to jit. When attempting to jit the previous version of the code, creating that array under a jit context would fail. -> This requires adjusting the test tolerance from 1e-7 to 1e-5. The equivalent test in c++ uses 1e-2.

For Channels and Signals class, mark which fields are data_fields vs. meta_fields (that can be used for JIT cache)

Remove default arguments that are jnp.array by np.array

Make the Masking class static and remove the jit over non_masked_energy self being the first argument makes it unsuitable for jitting.

Added a test to check that:

Jitting works
Results are the same with/without jitting.

Great, thank you!
I enabled merge-as-soon-as-tests-pass.


Getting binary data (octet-stream)

I have an service that provides binary data (octet-stream). How do i receive binary data using superagent ? I checked the docs:
http://visionmedia.github.io/superagent/
But it seems to cover only formats that superagent knows and can parse, or text (the text and body fields of the response).
On my case body is empty and text is undefined when my server responds with a 'application/octet-stream'.

This worked for me using a stream:
var fs = require('fs');
var request = require('superagent');

var output = fs.createWriteStream('path/to/file.zip');
request.get('http://domain.com/path/to/file.zip').pipe(output);

// "output" contains the raw data.

Use a module like memorystream if you don't want to store the output on the file system.


ci: do_not_merge: convert to python, pass instead of skip

I've been troubleshooting some PR not showing on the merge list dashboard and I have a vague feeling that one of the issue could be GitHub mishandling workflows that fails and then skip but never succeed.
Try to address this by converting the do not merge run to something that passes instead of skipping, and also rewrite it in python while at it, which is probably unnecessary but kindof nice if we want to add more complex conditions down the road.

Not too sure it'll actually help but I think it's nice to have this in python anyway


refactor!: remove deprecated Collection.group helper

Description
The group command was deprecated in MongoDB 3.4 and removed in
MongoDB 3.6, this PR removes it from the driver.
NODE-1487
What changed?
Are there any files to ignore?

@emadum did you mean to request reviewers on this?

@emadum did you mean to request reviewers on this?

Oops meant to make this a draft, not quite ready yet.


Convert Dataset trees into sub controllers and remove Dataset from path to shorten PVs

PR here: https://github.com/DiamondLightSource/odin-fastcs/pull/37/files

Fixed in #37


Question/Idea: ability to install and update something like "2.1-latest"?

Hello,
first, a clarification: I like using rbenv & rbenv-build without the shims, by referring directly to the interpreter (then I use bundler with binstubs & shebang to create binstubs that directly point to the proper interpreter); I prefer this way since it removes a level of indirection caused by the shims/variables (especially useful in nonteractive environments, as build scripts, ecc).
In my workflow I install a ruby interpreter, I update rubygems, and I install bundler, nothing else; the ruby interpreter is as clean as possible and everything is done via bundler with a specific path. This way I keep the concerns (project vs basic interpreter) quite decoupled.
By the way, what I'd like to do is to have something like
rbenv install 2.1-latest

such command should fetch the latest stable release for the 2.1 series (i.e. 2.1.6 as of this writing) and create a symlink for it in ~/.rbenv/versions/2.1-latest (or maybe just ~/.rbenv/versions/2.1)
This way I could just use something like
~/.rbenv/versions/2.1-latest/bin/ruby

Without minding what's actually the currently latest revision of ruby (and without needing to explicitly update the minor revision in my own project)
Two questions:

is there any way to perform such task in the current rbenv status quo?
would you accept a pull request for such a feature? Where do you think it belongs? To a separate plugin or to a patch to ruby-build?

Historically, rbenv avoided implemented such features. You should take a look at available plugins and consider using something like rbenv-aliases.


⚠ It's normal?

I think someone reverse engineered the output file

Why would you think so?

Why would you think so?

Wait whatttt is it possible ??????

Wtf??
How
I think he knows abt this blank graber
@Blank-c do smth!

Disable reverse engineering

Its not something we can disable, I can make it harder to do but it would increase detections

Documents.txt

Tree.txt
Whoever this person is, he want me to open one of those files . He opened my file on more than 6 virtual machines. I guess I found in the documents my file the reverse engineered:
├── output_file
│ │ db.json
│ │
│ └── tab-scripts.

The anon files zip link it's over 75MB, ands it's full of this junk virus files

Documents.txt  Tree.txt Whoever this person is, he want me to open one of those files . He opened my file on more than 6 virtual machines. I guess I found in the documents my file the reverse engineered: ├── output_file │ │ db.json │ │ │ └── tab-scripts.

I don't see any reverse engineered file there.

Inside Documents.txt there is
├── output_file
│ │ db.json
│ │
│ └── tab-scripts.

Ye those files are totally unrelated with the grabber.

"output_file" is not the real name of the file grabber. I renamed the file name to not put the real one.

No the output_file is a folder in the user's document folder

I renamed into Documents.txt the "output_file". The original folder name matches the name of my Grabber file

I am not getting what you mean.  Can you explain in detail.

Inside of the Documents.txt file, I censored the folder name by putting "output_file", the real folder name is exactly the name of my Grabber file. Before sending the "Documents.txt" file to Github, I changed the real name of the folder to "output_file".

Oh I understand now.
But it looks like the "output_file" folder contains 1 file and 1 folder, and the folder is empty. Possibly analysis is going on there.

Can you advice me another obfuscator for this Grabber?

Can you advice me another obfuscator for this Grabber?

I am afraid you didn't understand what I meant to say, the user (or bot) is analysing your file. The files you received inside your rar file maybe just dummy files. The grabber isn't reverse engineered. The grabber is simply being ran inside the VM.

Also, any obfuscator would work, it would just needs to be modified.

If the file is large, the grabber sends automatically to anonfiles the zip file and then shares me the link?

Also, any obfuscator would work, it would just needs to be modified.

I tried some obfuscators but no one can open this file or obfuscate this file.

Python obfuscators work on Python file, not Executable file.

I tried some obfuscators for executable files but no one works

Pyinstaller generated executables are hard to crypt. You first need to split the stub and the CArchive and then obfuscate the stub and then put them both together again. And almost all of the free crypters available are more detected that the grabber itself. Not worth it.

 The're 100% rat files

he is trolling u with vm say it only works on main pc

Idk who is

Someone is just analysing the malware, You can always delete the webhook and regenerate a new one (you'll lose live clients).

The first time I saw his files, I knew he was trolling me. The're 100% rat files

No they are just dummy files for building VM reputation, if you think they are malicious, scan them using virustotal.

Already done, they are flagged as trojan, stealer..

Already done, they are flagged as trojan, stealer..

Can you send me the virustotal link.

These are some file hashes:
18ce24dd08dd5f5ac0f5ceca3d6551dfdbbd4893a4a9a9a9331e8adb67061a33
4efc0b5e75e9b1a642f3bc4facae7c8f8c77dfad5f6c0f3f2c807b3654576616
06e706536cb7d543e6068c98c90721cad89c23d16d37444f46f9b01c4380df9e
9ecf07708d59e0b3ae33ed553978f4b2bb806b2fb805296f73f9270c4ae01b84
8700bf8369d39fd5df142f9482ce8860bd8a26a3304efbc57cbf9e45782c7a3a

Look the relations from these files in virus total

The files themselves are not malicious, it can be possible that these files are dropped by other malwares tested in the same vm in the past.


Update to deck.gl 9 and TypeScript

Update to deck.gl 9 and TypeScript

Fixed in https://github.com/zakjan/deck.gl-leaflet/commit/2a716934064a416b70b258d9c1429ecb5f30c9b6, released as 1.3.0


Removed an extra 'by' from line # 71

removed an extra 'by' from this sentence - you can quickly and easily prepare them by by installing - Line no. 71

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

ValidatePublishRequest
:warning:Warning

Details

[Error] Cannot sync git repo to specified commit because branch master has been deleted or has been force pushed: fatal: Could not parse object '1908f63791f06339a16f835daa5cb4c0547f7e62'.

ValidatePublishRequest

[Warning] Owner Pacort of repository https://github.com/MicrosoftDocs/vsts-docs has lost Admin permission. Please use Transfer Owner via OPS portal https://ops.microsoft.com to assign a new owner.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@subhankars Thank you for your contribution. We have had some trouble with syncing between this public repo and our private repo, which has been resolved, but has caused an issue with PRs submitted during the interval in which the problem was unresolved. One of the side effects is a lot of extra files added to the PR and also some merge conflicts.
Can you respond and let me know which file in this PR has your changes and I will get them merged, or if you wish to close this PR and create a new PR with your changes in a branch based off the latest upstream master that would work as well (although that is more trouble and I apologize for that)
Thank you and thank you again for your contribution.

Creating a new PR for the same, since it has some conflicts


[Bug]: metadata backup file must exist in advance

Version Number
Version: 1.17.3-develop93
What branch are you on?
nightly
Describe the Bug
I enabled metadata backup as a test, using the default path:
libraries:
  Movies:
...
    operations:
      metadata_backup:
        sync_tags: true
        add_blank_entries: true

The run failed with:
[CRITICAL] | Config Error: no path attribute found and the default path /config/Movies_Metadata_Backup.yml could not be found

On the command line I then did:
touch config/Movies_Metadata_Backup.yml

and restarted the run, which is continuing without error.
I would have expected PMM to create the export file rather than complaining it isn't present.
Relevant Collection/Overlay/Playlist Definition
No response
Logs
https://gist.github.com/chazlarson/5f4dd610efe92150066cad7c0ddadbf9

fixed in 1.18.0


Include references to font files in core-react

Today, as a user of eds-core-react you have to add a reference to our CDN in your index.html file to get the correct font (Equinor font).
This can be easy to overlook and we have seen instances of people forgetting to do this.
I suggest we add this reference to the CDN to be included in eds-core-react, either by including a css file or styled-components createGlobalStyle
This way we ensure that the users of our component library are using the correct font. This will be even more important with the inclusion of Nunito Sans as a secondary font.

EDS is an open source design system but the font is not. As long as we don’t allow users outside of Equinor to use the Equinor font, we can’t include it in the components. Closing this issue.


Activate parallel feature for Plonky3

On my system, this brings proof time for Keccak with plonky3-composite on main from 180s -> 22s.

OK, done!


The output of the P2H node is not taken into account in the graph

As a result of the flexibility calculation, the P2H node (blue) might get a demand. This demand is, however, not communicated to the red node. Assigning @ChaelKruip to look into this.

Currently, the shares to the right of households_useful_demand_for_hot_water_for_houses_with_p2h are fixed at 0, 1 for the top and bottom edges respectively. So, even though (after https://github.com/quintel/etsource/pull/1066) the node receives a demand, 100% of that demand flows downwards to the non-p2h hot water options.
I can image two solution directions both of which I am not sure will work:

Create an input statement which updates the shares to match the demand of households_flexibility_p2h_electricity (set by Merit) and the demand of households_useful_demand_for_hot_water_for_houses_with_p2h. Merit should somehow 'trigger' this input statement I imagine.
Have ETE/Merit update the shares described above directly (i.e., without an update statement in AD-format).

@antw do you have any ideas on the feasibility of these two options? Or do you see another way of doing this?


Twitter Connection Error in Azure Logic Apps

Describe the Bug with repro steps
I am trying to connect twitter with the credentials using consumer key and consumer secret as i do not find any other options to proceed with connection like choosing default, But struct at getting some error as i passed the credentials correctly
What type of Logic App Is this happening in?
Consumption (Portal)
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON
No response
Screenshots or Videos

Browser

Browser: Chrome

Additional context
No response
AB#24573376

@AshokButra unfortunately twitter recently changed their API rules such that we aren't able to provide a default connection experience anymore. For you key/secret combo, are you using one of twitters new paid API tiers? I don't think they provide a free tier anymore except in very specific circumstances.
https://developer.twitter.com/en/portal/petition/essential/basic-info


Rollup table per model.

I wonder if there is a way to have different tables instead of store all rollups to one single table?
E.g.:

User rollups to table user_rollups
Order rollups to table order_rollups
etc.

like other gems do (mobility, statesman, closure_tree):

mobility: product_translations
statesman: user_transitions
closure_tree: organization_hierarchies

class User < ApplicationRecord
  self.rollup_table = :user_rollups
end

User::Rollup.series("New users", interval: "week")

Nice gem @ankane, congratulations!

Hi @phlegx, you could try forking and adding, but it's not something I'd like to support (don't want the additional complexity).


Add dfetch diff command

Add a dfetch diff command for #24

I had some "insights" here. The  GitRepo  and  SvnRepo  classes are actually two things folded inside one.
The correct CLI commands for using git/svn + some statefull SVN specialisation that uses the commands.
All the @staticmethod methods should move to a separate place. In the future we might even replace these with something like https://sourceforge.net/projects/pysvn/ and https://gitpython.readthedocs.io/en/stable/.

Todo:

[ ] Create feature test


DDoS management support for APIM

The first note says - PaaS services (multi-tenant), which includes Azure App Service Environment for Power Apps or API management in a virtual network with a public IP, are not supported at present.
However, we've got confirmation from DDoS and APIM PG that API management in a virtual network with a public IP is supported by DDoS Standard.

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

ID: 49e97cc4-3bfc-7675-201e-89d422bea15c
Version Independent ID: 0c211439-f030-c327-4cc1-9eb3a19bf7fd
Content: Azure DDoS Protection reference architectures
Content Source: articles/ddos-protection/ddos-protection-reference-architectures.md
Service: ddos-protection
GitHub Login: @AbdullahBell
Microsoft Alias: abell

@Janhavi-MS Thank you for the feedback. This is being assigned to the content author to evaluate and update as appropriate.

The note is updated! Thanks!

#please-close


Mobile number templet

Kindly add mobile number templet based on country, so we can display as place holder in textinput

Hello, can you describe little bit more detailed?

Sure @GeorgeHop, For example, If we select India then we need to display a sample 10-digit mobile number as a placeholder, if it is Australia then +61 4 1234 5678 etc.,
We want this type of functionality. Thanks

use libphonenumber-js or masked-text

Sure @GeorgeHop, For example, If we select India then we need to display a sample 10-digit mobile number as a placeholder, if it is Australia then +61 4 1234 5678 etc.,
We want this type of functionality.
Thanks

But you can change the placeholder prop based on data you received from onChange picker prop 🤔


Pointer Reform

EDIT: Latest iteration of the proposal: https://github.com/zig-lang/zig/issues/770#issuecomment-368111127
& only used for address-of, no longer designates a pointer type. Necessary because of #588

^ pointer to exactly 1 thing.
[*] pointer to a block of memory of unknown length
[*]null pointer to block of memory, null-terminated (or 0 terminated for integers). #265
[] pointer to a block of memory with runtime known length. status quo slices.
[]null pointer to a block of memory with runtime known length, with a null/0 at ptr[len]
[N] pointer to a block of memory with comptime known length
[N]null pointer to a block of memory with comptime known length, and a null/0 at ptr[N]

All of them support pointer indexing and slicing except ^. Only [*] supports pointer arithmetic. All of them implicitly cast to [*]. []null and [N]null implicitly cast to [*]null.

&ptr[x] and &foo always gives a ^.
ptr[x..y] with comptime known x and y gives a [N].
array[x..] gives a [N].

new array syntax
var array: 4*i32 = undefined;

Now it is clear whether you should do &array or &array[0]. Don't use &array. If you want a [N]T, e.g. a pointer with comptime known length, use array[0..]. If the function wants to access more than one element, you'll do this. Otherwise, &array[0], will give ^T, which would trigger a compile error if the array was length 0, and only this element can be accessed via this pointer.
This paves the way for #733
See also #386
See also #568

If possible I would like to have some other symbol/keyword for:
^ pointer to exactly 1 thing.

This is because ^ isn't ergonomic on all keyboard layouts. On Windows with some international/non-English keyboard layouts you have to type it twice to get ^^ and then you have to remove the extra every time you write it. See this superuser question
Sure it is used in bitwise xor, but you tend to have more pointers in your program than bitwise xors.

That's good to know. Do you have a suggestion for what other symbol to use?

To be honest I have only few possibly reasonable ideas as most commonly used or reasonable sigils have been used for something in Zig already.

$ -symbol is widely used in many programming languages. However this would a "foreign" sigil to learn as it is not used for this purpose in other languages.
ref/ptr -keyword, keyword bloat, takes a common variable name. However might be friendly for the reader  (ref T)/(ptr T)
Change the current & operator to keyword/builtin (@)address_of and then using & as a sigil.

Is the new array syntax flexibly like multiply? Can I do these?
var array1: i32*4 = undefined;
var array2: 4*4*i32 = undefined;
var array3: 4*(4*i32) = undefined;

Or is it restricted to <comptime_int>*<type>? Aka, I would have to write array2 like this:
var array2: (4*4)*i32 = undefined;

@Hejsil great questions. I think that new array syntax is no good because of this. But we have to make something different than [N]T to distinguish from pointers.

4*i32 is no good, because the * operator elsewhere doesn't change the type of something. Even ** turns arrays with a child type into another array with the same child type; it only changes the size. We need a way to turn a scalar into an array, which is not like any infix operator in the language.
Perhaps array[4]i32 where array is a keyword? Having a [4]i32 somewhere in there fits nicely with [4]i32 being a pointer to such.
I expect people will mistakenly declare their structs with [4]i32 instead of whatever the actual array syntax ends up being. Then they'll initialize the pointer to undefined thinking they initialized the elements to undefined, and then begin assigning into the elements, which will cause undefined behavior at runtime. Seems like a footgun.

I agree with @Ilariel, my keyboard is one of these (Portuguese) - If you press the ^ key once, followed by a vowel you get, for example, â. But with a consonant, you get for example, ^w. But tapping twice and erasing can break your typing flow - It's been surprisingly hard to build muscle memory for it. Other characters like this include the tilde ~ and the backtick/grave accent. The caret/circumflex accent ^ requires shift to be pressed and is on the same key as the tilde. The backtick/grave is on the same key as the very similar looking acute accent. I'm not sure about other keyboard layouts but these are very uncomfortable characters for the Portuguese.
I also liked  @Ilariel's 2nd and 3rd suggestions. I don't dislike the idea of a ref/ptr keyword, but I find &?&&?T more readable than ref ? ref ref ? T for types. I think I'd prefer to keep the & as a reference type and instead use a builtin or an operator like # or $ for address-of.
As for the array syntax, would N[]T be possible? An array is a pointer to a block of memory with runtime known length just like status quo slices, so it's conceptually consistent at least.
const a: 3[]u32 = 3[]u32{1, 2, 3};
const a = 3[]u32{1, 2, 3};

const b = (2*2)[]u32{1, 2, 3, 4};

@thejoshwolfe made a good point about * not changing something's type, and ** changing something's size. But changing an array of one size into an array of another size is also changing the type of the array. Why not use ** itself?
const a: 3**u32 = 3**u32{1, 2, 3};
const a = 3**u32{1, 2, 3};

const b = (2*2)**u32{1, 2, 3, 4};

const c = a ++ b;

It communicates that you're creating a value type which is the result of putting N units of that value type together. If you allow ** and ++ to operate on scalars, the following could create an anonymous tuple.
const T = 4**u32 ++ bool

const T : t = 4**u32{1,2,3,4} ++ true;
const t = 4**u32{1,2,3,4} ++ true;

We can't use ** for making arrays out of scalars, because types are comptime values.
const State = 256**u8; // formerly known as [256]u8
const States = 4 ** State; // is this [1024]u8 or [4][256]u8?

I thought the both the ++ and ** operator were already only available with comptime values. In the example you gave, perhaps:
const State = 256**u8; // formerly known as [256]u8
const States = 4**State; // This would be [4][256]u8, ie (4 **(256**u8))
const States = (4 * State.len) ** State.child_type  // this is [1024]u8

Though I can see how this isn't ideal.

So it is documented and can be discussed here, we came up a possible solution in IRC:

* pointer to exactly 1 thing.
[*] pointer to a block of memory of unknown length
[*]null pointer to block of memory, null-terminated (or 0 terminated for integers). #265
[] pointer to a block of memory with runtime known length. status quo slices.
[]null pointer to a block of memory with runtime known length, with a null/0 at ptr[len]
[*N] pointer to a block of memory with comptime known length
[*N]null pointer to a block of memory with comptime known length, and a null/0 at ptr[N]
[N] block of memory (an array).

Advantages:

* is a familiar symbol for "pointer".
* doesn't have the keyboard issues ^ does.
*,[*],[*N] are consistent.
all blocks use [ ]
array syntax doesn't change

Disadvantages:

Slice syntax doesn't contain * even though it points to data 🤷♂
* in [*N] is ambiguous with * as a dereference operator

So if we went this route we'd need a new dereferencing operator. Personally I favor that anyway since prefix * is already a bit weird.
var z = x**y;  //x * (*y)
var a = *s.m.v; //dereferences "v", not s

One thought I had, and I realize this is a bit strange but hear me out, is postfix .. My reasoning is that . already sort of dereferences implicitly when used with structs.
var s = MyStruct{.v = 10};
var sp = &s;
var v = sp.s;

so all we'd be doing is extending this property to non-structs, really.
var s = i32(25);
var sp = &s;
var v = sp.;  //dot dereferences sp
//...
var p = Point{.x = 0, .y = 10};
var pp = &&p;
var x = p..x;  //currently (*p).x,

Advantages:

No new symbols
Consistent with current usage of symbol

Disadvantages:

Subtle, might be easy to miss
Unfamiliar to users of other languages
Confusing when used with range operators .. and ...

So then we'd need new range operators too. -> is available unless it is resurrected for return types.
Other options for deref:

Pre or postfix ^ which has noted issues with some keyboards and would be ambiguous with xor in the postfix case.
Pre or postfix $, which is not unprecedented but is admittedly kind of ugly. introduces a new symbol. could confuse people used to scripting languages.
Postfix [0], which is very C and unambiguous, but does make the pointer look like a block even though it isn't.
Postfix .0, which looks really strange and kind of implies some kind of indexing.
Postfix >, unambiguous as far as I can tell, easy to spot. Everyone seems to hate it though.

[*N] pointer to a block of memory with comptime known length

Why not *[N]? That already means a pointer to a block of memory with comptime known length according to the rest of the proposal, and it doesn't have the ambiguity with *N.

[*N]null pointer to a block of memory with comptime known length, and a null/0 at ptr[N]

Instead of this concept, introduce [N]null which is an array of comptime known length with a null/0 at arr[N]. Then we just do *[N]null for a pointer to it.

Other options for deref:

Zig's grammar depends on knowing if we are at the end of an expression or in the middle of an operator. This means we can't have postfix operators that are identical to infix operators. Here's an example of the ambiguity using ^ as proposed for postfix pointer deref:
// this is ambiguous
const a = b^(1);

// b is a pointer to a function (or double pointer to a function),
// which is being called and given the parameter 1.
const a = (b^)(1);

// b is some integer being xor'ed with 1.
const a = b ^ 1;

We absolutely cannot have ambiguity between infix and postfix operators. This means ^, *, and > can't be used as postfix operators.
There is no problem with ambiguity of infix and prefix operators though, such as with * for deref and multiplation, - for negative and subtraction, & for address of and bitwise and, etc. The ability to distinguish between prefix and infix operators is what we get for having the above limitation with postfix and infix. And since it's so important to have - and ( as infix and postfix operators, the tradeoff to allow prefix/infix instead of postfix/infix is a no-brainer.

One thought I had, and I realize this is a bit strange but hear me out, is postfix ..

This actually does not suffer too horribly from the above ambiguity concern, because . isn't really an infix operator. After a ., you have to have an identifier, and an identifier can't ever be a postfix or infix operator. That being said, it still looks pretty horrible.
a.0 doesn't seem as bad, because at least there's something after the dot. This eliminates the problems with .. as you pointed out. But a.0 is bad because it begs the question: can I do a.1? It looks like the 0 is actually a zero, when it's really more of a keyword. 0 doesn't function like that in any other syntactic context, so this seems pretty bad too.

Personally I favor that anyway since prefix * is already a bit weird.

I'm not too concerned about prefix vs postfix, since this language (and pretty much every other language) has operator precedences that will get weird sometimes like this. Instead of moving operators around, I would propose requiring parentheses sometimes, if the confusion is bad enough. See #114.
The biggest problem I have with * meaning "pointer to" and * meaning "deref pointer" is that those are opposite directions. C has this problem, and I think it's one of the reasons children find pointers hard to learn in C (that and lack of respectable compile errors). If * means "pointer to", then we do need a new "pointer deref" operator, but it could be prefix or postfix. We could use ^ for prefix deref, or even >. There's a lot of space for new prefix operators, but less so with postfix/infix operators.

Ignoring the syntax, I am really happy with the idea of separating pointer-to-1 from pointer-to-unknown-quantity and so on. (Sad that caret doesn't work easily.)

a.0 doesn't seem as bad, because at least there's something after the dot. This eliminates the problems with .. as you pointed out. But a.0 is bad because it begs the question: can I do a.1? It looks like the 0 is actually a zero, when it's really more of a keyword. 0 doesn't function like that in any other syntactic context, so this seems pretty bad too.

We could have a postfix .&. Borrowing @tgschultz's example:
var s = i32(25);
var sp = &s;
var v = sp.&;  // .& dereferences sp

var p = Tuple {.x = s, .y = sp, .z = &sp};
var pp = &&p;
var x: i32 = pp.&.x;  //currently (*pp).x,
var y: i32 = pp.&.y.&; // currently *(*pp).y
var z. i32 = pp.&.z.&.&; // currently **(*p).z

It doesn't imply indexing, no ambiguities with range syntax, analogous to fields in structs: get value at field vs get value at address.

.& looks pretty weird, and it would be the only postfix operator in zig with no variability. The other postfix operators are x{...}, x(...), x[...], x.y, which all take some form of variability as an effective parameter. But I admit I appreciate the symmetry between &x and x.& for the two different ref/deref directions.
I don't think the postfix chaining argument, e.g. ptr.&.&[0].&(0), is very strong, because I think double pointer dereferencing is pretty rare. Even better than array_pointer.&[0] would be array_point[0] that includes an implicit .&. This is already how struct_pointer.member and function_pointer(0) work. We don't want double implicit .&.&, because as claimed above, the double pointer deref usecase is pretty rare, and I think that would be too confusing.
I think .& is the best thing proposed so far for a new pointer deref operator. I'll post an updated proposal in a moment...

(I'm writing this all up in a GitHub issue, but this is intended to go into the documentation somewhere.)
Note: In the following discussion, there is sometimes a distinction between the length of an array and the len field of a thing. An array of length n is defined to be n elements arranged consecutively in memory. The len field of a thing is defined to be whatever is convenient and meaningful in each context it appears.
This proposal does not introduce any new tokens, which means for example that [*]null is equivalent to [ * ] null.
Types
Here T represents any type, which is the "child type". N represents any expression evaluating to a comptime integer. attrs is the place in the syntax where the pointer attributes go, such as const, volatile, align(A), any combination of those, or nothing. The syntax of the attrs is not discussed here, but it's important to note where they go in each syntactic construct.

*attrs T is a pointer to exactly 1 object of type T. No pointer arithmetic.
**attrs T is equivalent to * *attrs T. This rule is only necessary because ** is a token.
[*]attrs T is a pointer to an array of T of unknown length. Pointer arithmetic enabled.
[*]null attrs T is a pointer to array of T of unknown length. There is guaranteed (language-level assertion) to be a null or 0 element in the array somewhere which denotes the last element of the array. "strings" in C APIs are this type. Pointer arithmetic enabled.
[*x]attrs T, where x is any expresesion, is a syntax error. There is a grammar rule for the start of an expression that a [ followed by a * will always be followed by ] and denote the "arithmetic pointer prefix" as defined above. (A [ followed by a ** will be a syntax error no matter what.)
[]attrs T is a struct with members ptr: [*]attrs T, len: usize, where ptr is a pointer to an array of length len. Subscripting at index i: usize effectively subscripts ptr, and is bounded (language-level assertion) by i < len.
[]null attrs T is a struct with members ptr: [*]null attrs T, len: usize, where ptr is a pointer to an array of length len + 1, and where ptr[len] is guaranteed (language-level assertion) to be null/0. Subscripting at index i: usize effectively subscripts ptr, and is bounded (language-level assertion) by i < len + 1.
[N]T an array of type T of length N. The array has a pseudo field len equal to N. Subscripting at index i: usize is bounded (language-level assertion) by i < N.
[N]null T an array of T of length N + 1 with a null/0 at index N. The array has a pseudo field len equal to N. Subscripting at index i: usize is bounded (language-level assertion) by i < N + 1.

Dereferencing
For a pointer p of any pointer type, p.& dereferences the pointer.
This operator is implied in the following contexts:

For an expression p of any pointer type, p.id is equivalent to p.&.id. Status quo.
For an expression p of any pointer type, p() is equivalent to p.&(). Status quo.
For an expression p of a pointer type with no pointer arithmetic, p[i] is effectively p.&[i]. This allows a pointer of type *attrs [N]T to behave the same as a slice of type []attrs T (and the null variants respectively) with respect to subscripting and the len field.

These implicit dereferences do not apply to an expression that is the result of applying one of these implicit dereference rules. For example, p.id is never equivalent to p.&.&.id.
Pointer Arithmetic
For a pointer p of a pointer type with pointer arithmetic enabled, the following operators are allowed, where i is any expression of type usize or isize.

p[i] is equivalent to (p + i).&.

The following infix operators are allowed, but are not precisely defined here. Informally, these operations are defined similar to C, where i is multiplied by the size of p's child type, and then added to or subtracted from the integer value of p. These operators are not commutative; the pointer operand has to be on the left. For example, i + p is a type error.

p + i
p - i
p +% i
p -% i

Pointer subtraction is also allowed in some cases. Given p1: [*]attrs1 T or p1: [*]null attrs1 T and p2: [*]attrs2 T or p2: [*]null attrs2 T, the following is sometimes allowed:

p2 - p1 is of type isize with a value such that @ptrToInt(p1 + (p2 - p1)) == @ptrToInt(p2). This is a type error if @typeOf(p1).alignment < @sizeOf(T) or @typeOf(p2).alignment < @sizeOf(T). This is a runtime assertion failure if p2 - p1 would be outside the range of values for type isize.

Implicit Casting
TODO

@thejoshwolfe, you had slightly different syntax a couple of days ago.  At the risk of bike shedding, it seems like the * before the type being pointed to makes more sense given the way the rest of the syntax works.   I.e. in the rest of Zig:

T  some type T.
[]T some run-time bounds-checked array of T.
*T a pointer to some type T.

So if Tis  []int32, then a pointer to that should be *[]int32.   Putting the * inside the [] seems inconsistent.  Type modifiers are then all right associative (I think, I might be reversing that...).
If you want to make pointers to single objects a supported kind of thing in the language, perhaps make them act like transparent references:
var x: int;
var y: &int = &x; //y and x refer to the same location in memory/register.
                          // y aliases x.

x = 14;

assert(y == 14)...

C++ has moved to this separation of references and pointers (even though we all know that under the hood a reference is syntactic sugar around a pointer!) and it makes a lot of code cleaner.  Think about functions that take or return references. This way, there is no dereference at all for an alias/reference.
Then you can use * for pointers on which arithmetic is possible.
On a more frivolous note.   Here are some other ideas for the various kinds of arrays.

[#]T - an array of T, run-time checked with a hidden fixed bound.  Is undefined at declaration.
[42]T - where 42 is some integer number, an array of T with a bound known at compile time.  Is defined at declaration.  No hidden bound stored since it is known at compile time.
[$]T - is a zero-terminated array.   No hidden bound.  The "zero" value depends on the type T.  The length is calculated at runtime.  Should this be the total memory occupied or one less like C?   I used $ because that is often used as the end of line marker in regex expressions.  Season to taste.

The first one is identical to a C99 dynamic array, the second to a normal C array and the third can be used for C strings.
Apart from the frivolity, I really like the idea of having a pointer to one object (otherwise known as a reference or alias in other languages) and a pointer on which arithmetic can be done.   This is really nice!

@thejoshwolfe the proposal looks great, though I almost thought the .& was too ugly to propose!
While we're discussing different kinds of arrays, what do you think of an enum array? It has a length equal to the member count of the enum and can only be indexed with an enum value.
const Axis = enum { X, Y, Z};
const vec3 = [Axis]f32 {0.0, 0.0, 0.0};
vec3[Axis.X] == 0.0;

You can get close to this with status quo Zig by specifying the tag type and casting
const Value = enum(u2) {  Zero, One, Two };
const vals = [@memberCount(Value)]i32{3, 4, 5};
vals[u2(Value.Zero)] == 3;

But then if you change the backing type of the enum or override the values, you'd need to change a lot of code. And you could still access it with arbitrary integers, so if at any point the index into the array was hardcoded, it would have to be found.
An enum array basically  becomes a typechecked, comptime-hashed map!
It can be implemented in userland with something like this:
fn EnumArray(comptime T: type, comptime U: type) -> type {
return struct {
data: [@memberCount(T)]U,
    const Self = this;

    fn get(&self: Self, tag: T) U {
        return data[@memberIndex(T)];
    }
}

}
var value_map = EnumArray(Value, f32) {
.data = []f32 {3, 4, 5}
}
for (value_map) | value, index | {
value_map.get(Value.Zero) == 3;

While we're discussing different kinds of arrays,

I broke that out into its own issue: #793

[N]null T an array of T of length N + 1 with a null/0 at index N. The array has a pseudo field len equal to N. Subscripting at index i: usize is bounded (language-level assertion) by i < N + 1.
Does the null/0 have to be at index N in that case? C strings are stored in fixed length array but the string length can vary, it is not necessarily equal to the array size. The same applies to null-terminated C arrays.

I usually wouldn't say anything when I have competence in the area, in this case pointers, but I feel compelled to share my abstract thoughts. I hope one of these brainstorming ideas could either be or lead to useful ideas:
*variable_name to set. /variable_name to deference
1*variable_name could work as a singular pointer
*variable_name is a regular pointer
&variable_name is a C++ reference pointer
*variable_name = Pointer.deferAlloc() for runtime (in concept, it doesn't have to a class with a method - but I felt it didn't fit in the same realm as single character symbols next to the asterisk)
@variable_name deletes a pointer and also sets it to null, and maybe do more pointer management
*variable_name: T if you need to add a type declaration
**variable_name get the address
T is also where you could put your brackets if that's what you want for an array
Speaking of arrays, something like [@] or '[]@' could mean a C string. @ seems to be the easiest symbol for null after looking at about 3 wikipedia pages.

[x] change deref syntax to x.*
[x] change pointer syntax from & to *
[x] add syntax for [*] pointers
[ ] disable indexing for single-item pointers
[ ] enable indexing on *[N]T. e.g. array_ptr[1] and array_ptr.len
[ ] disable field access for unknown length pointers
[ ] disable implicit cast from T to [*]const T
[ ] add syntax for [N]null T, []null T, and [*]null T
[ ] add implicit casting

[ ] []null T to []T
[ ] [*]null T to [*]T
[ ] [N]null T to [N]T
[ ] *[N]null T to *[N]T
[ ] *[N]T to []T
[ ] *[N]T to [*]T
[ ] []T to [*]T @thejoshwolfe?
[ ] *T to T

[ ] update @typeInfo for pointers
[ ] add pointer arithmetic for unknown length pointers

I just pushed 96164ce61377b36bcaf0c4087ca9b1ab822b9457 which disables indexing for single-item pointers and enables pointer arithmetic for unknown length pointers.


mDNSResponder-1310.80.1.tar.gz 404 Not Found.

Looks Apple remove mDNSResponder on their website for opensource.
$ ./script/bootstrap
...
wget -4 --no-check-certificate https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-1310.80.1.tar.gz
--2022-11-03 15:24:34--  https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-1310.80.1.tar.gz
Connecting to <IP_ADDRESS>:7890... connected.
Proxy request sent, awaiting response... 404 Not Found
2022-11-03 15:24:36 ERROR 404: Not Found.
...

Expected behavior A clear and concise description of what you expected to happen.
Console/log output If applicable, add console/log output to help explain your problem.
Additional context Add any other context about the problem here.

Thanks for catching this issue. I'm not sure if Apple's website has a temporary issue or they intentionally wants to turn that part down.
Should we consider fetching mDNSResponder from somewhere else? For example https://github.com/apple-oss-distributions/mDNSResponder/releases/tag/mDNSResponder-1310.80.1 @jwhui @wgtdkp

Thanks for catching this issue. I'm not sure if Apple's website has a temporary issue or they intentionally wants to turn that part down.
Should we consider fetching mDNSResponder from somewhere else? For example https://github.com/apple-oss-distributions/mDNSResponder/releases/tag/mDNSResponder-1310.80.1 @jwhui @wgtdkp

Good idea! it stuck setting up Raspberry Pi for now.

Is there anyone here from Apple that can comment on if the https://opensource.apple.com/tarballs/ location is permanently disabled or if its a temporary issue?

Is there anyone here from Apple that can comment on if the https://opensource.apple.com/tarballs/ location is permanently disabled or if its a temporary issue?

@romacdon , the links were changed to what is listed on https://opensource.apple.com/releases/


fix major e2 stealing exploit

fixes #2598

Not fond of the code but can always rewrite later. Merging to workshop

Not fond of the code but can always rewrite later. Merging to workshop

Yeah I wasn't too sure what the proper fix for this would look like, so I just made something that would prevent the exploit and allow for legitimate use to get a fix out asap.


.razr for Atom.io editor

Can you add an extension for atom.io editor? so we can work with .razr files on https://atom.io/
thanks

We released the Pagekit Beta today. I close this issue because the code base completely changed. Please open a new issue if it still exists.


Updated: registry-finder 2.42.0

${}

3d6468f3-252f-4c00-af2c-0670c71dcf1d

Newer version of registry-finder (2.43.0) is now available in master. 88181b9b8e04c89ecd9547cc15fb963057505307


Your requirements could not be resolved to an installable set of packages.

Hi I'm trying to use this package but when I install it I get the following error.
I'm using laravel 10 and livewire
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - masmerise/livewire-toaster[0.1, ..., 0.4] require laravel/framework ^9.0 -> found laravel/framework[v9.0.0, ..., v9.52.9] but it conflicts with your root composer.json require (^10.10).
    - masmerise/livewire-toaster[1.0.0, ..., 1.2.0] require php ~8.2 -> your php version (8.1.10) does not satisfy that requirement.
    - Root composer.json requires masmerise/livewire-toaster * -> satisfiable by masmerise/livewire-toaster[0.1, 0.2, 0.3, 0.4, 1.0.0, ..., 1.2.0].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require masmerise/livewire-toaster:*" to figure out if any version is installable, or "composer require masmerise/livewire-toaster:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Please see https://github.com/masmerise/livewire-toaster/issues/8


Support running npm scripts from a folder in the Explorer

This is a feature request for the PR https://github.com/microsoft/vscode/pull/79960
To test:

create a mono repo with different folders containing a package.json, see https://github.com/microsoft/vscode/pull/79960#issuecomment-540121382
enable the setting npm.runScriptFromFolder
select a folder in the Explorer that contains package.json files and run 'Run NPM Script in Folder...'. This should propose the scripts from the contained package.json files.

Not sure if I miss anything but I didn't get it working

Open a folder which contains package.json
Add another project into the workspace, now we have two folders containing package.json
The NPM Scripts view is not updated at all, only displaying scripts from the first folder
Turn on setting "npm.enableRunFromFolder": true (there is no npm.runScriptFromFolder)
Didn't find command 'Run NPM Script in Folder...'.

@rebornix

Didn't find command 'Run NPM Script in Folder...'.

The command shows up when you select a folder and open the context menu.
Tried to reproduce using the steps you have provided and I see the action in the context menu.
@alexr00 can you please try to verify.

Tested feature and it works nicely.
I used microsoft/vscode-extension-samples as an easy way to test a single folder with many subfolders containing package.json.


How much of token is being used

i have a problem in long answer and the resolution which i received was to increase the --max_new_tokens when running the generate.py command and i tried passing the same in kwargs as well...
even though i followed all these steps the length of answer which i am receiving from h2o is the same as before
i am not sure i am doing the steps correctly or not
if possible please send detailed steps / documentation to solve this and if there a method to identify how many tokens are being utilized so that it can be verified that complete quota of 2048 is being used or not

The length of the answer is truncated or just shorter than desired?  Please show details.


update pf dependencies

Update PatternFly and @redhat-cloud-services packages
https://issues.redhat.com/browse/COST-2684

Codecov Report

Merging #2386 (4947df7) into main (78c8774) will increase coverage by 0.01%.
The diff coverage is 100.00%.

:exclamation: Current head 4947df7 differs from pull request most recent head 9b2354d. Consider uploading reports for the commit 9b2354d to get more accurate results

@@            Coverage Diff             @@
##             main    #2386      +/-   ##
==========================================
+ Coverage   70.06%   70.08%   +0.01%
==========================================
  Files         409      409
  Lines        7778     7781       +3
  Branches     1836     1836
==========================================
+ Hits         5450     5453       +3
+ Misses       2325     2221     -104
- Partials        3      107     +104

Impacted Files
Coverage Δ

src/store/costModels/actions.ts
83.33% <100.00%> (+0.31%)
:arrow_up:

src/store/export/exportActions.tsx
90.90% <100.00%> (+0.21%)
:arrow_up:

src/store/rbac/actions.ts
100.00% <100.00%> (ø)

src/store/store.ts
60.00% <100.00%> (ø)

src/utils/cookie.ts
58.33% <0.00%> (ø)

src/utils/format.ts
67.70% <0.00%> (ø)

src/api/orgs/orgUtils.ts
37.50% <0.00%> (ø)

src/api/queries/query.ts
43.85% <0.00%> (ø)

src/utils/localStorage.ts
79.74% <0.00%> (ø)

src/store/metrics/selectors.ts
75.86% <0.00%> (ø)

... and 28 more

Continue to review full report at Codecov.

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

PF release is published/live


Question: What is the meaning of the new "ZMWs shortcut filters" statistic for CCS?

When comparing the output between CCS version 4.2 and 5.0.0, I noticed that there is a new entry called ZMWs shortcut filters in the text report (id: zmw_2_pass_shortcut in the json report)
How should this number be interpreted? I'm writing a MultiQC module for CCS, should ZMWs pass filters + ZMWs fail filters + ZMWs shortcut filters be equal to ZMWs input?
In version 4.2, the text report had letters for the sections (ZMWs filtered       (C)), which made it possible to know which sections belong together. In the new report, these section letters have been removed, and the json format has all values in a single list under attributes. Is there an overview somewhere of all entries that can be present in the attributes and their interpretation?

https://ccs.how/faq/reports-aux-files.html
https://ccs.how/faq/mode-all.html#how-does---all-work
Knock yourself out with the new docs. If they don't answer your questions, let's work together on clarifying.

Thank you for the link to the FAQ, the example report really helps interpreting the values.
I still have questions about where the ZMWs with tandem repeats field fits. All values under  Exclusive counts for ZMWs failing filters sum to ZMWs fail filters, and ZMWs pass filters + ZMWs fail filters  + ZMWs shortcut filters = ZMWs input. Is ZMWs with tandem repeats part of ZMWs shortcut filters?
I also noticed that the --min-tandem-repeat-length is not listed when you run CCS version 5 with ccs --help.

The identified tandem repeats are not exclusive and the percentage is with respect to ZMWs input.
There are many options not explicitly stated in --help, ~75 overall, as they would overwhelm the average user. More experienced users, use the official documentation to tune further.


BREAKING CHANGE: Set Stack default spacing to zero #DS-741

Description
Removed feature class enabling new Stack behavior and enabled it by default. Improved demos.
Issue reference
#DS-741

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Follow the PR Title/Commit Message Convention.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

coverage: 96.552%. remained the same when pulling acb99b19bc70ead7f77a29f9df10120c4c164e2b on bc/stack-spacing into 77f510017535eae653a718c12bc9ca7d676c37f4 on integration/bc-version-1.

props ➡ prop:
If you need the Stack to have a spacing, add
hasSpacing prop. By default, Stack has zero
inner spacing.


[Feature Request] Pretty print JSONs while saving response to files

[Feature Request] – Pretty print JSONs while saving response to files

Insomnia Version: 5.14.7
Operating System: Windows 7

Details
Currently, if you save a JSON response to a file, the entire
JSON string gets saved as a single line in the file. Do you plan to
support pretty printing while saving to files ? Similar to the Visual Preview
feature but for files.

Since there are three (I think) places where responses can be saved, the best place to specify this would probably be a toggle in the global app preferences.

@gschier I can help on this one as a first issue.

Awesome @geofmureithi! Let me know if you need some help or have questions :)

@geofmureithi Are you still working on this issue?


Components as Templates with Optional Prop

This should probably be labeled "Help Wanted".
Is it possible to call components as templates? I would like to add a prop called "template" and do something like this:
<multiselect v-model="value" :options="options3" field-label="Content Select With Images" template="content-select-images"></multiselect>
<multiselect v-model="value" :options="options3" field-label="Content Select, No Images" template="content-select"></multiselect>

And not have to do this:
              <multiselect v-model="value" :options="options3" field-label="Content Select With Images">
                  <template slot="option" slot-scope="props">

                      {{ props.option.title }}
                      {{ props.option.desc }}

                  </template>
              </multiselect>
...

(FWIW, "fieldLabel" is a prop I already added.)
And then in actual .vue file, where there is currently the multiselect__content-wrapper, I would have v-if and v-else statements on different template options which would be referencing imported components that contain my various dropdown templates.
Is this feasible?

I’m not sure how the template prop could work.
Just put the v-if inside the slot, it should be working with custom components inside.


PushNotification for chatkit

Using the chatkit and want to enable push notification. But it shows error message
undefined is not a function (evaluating '_currentUser.enablePushNotifications()'
In pusher docs, we just need to call enablePushNotifications after connect successful through ChatManager
Any solutions ?

I believe you're confusing JS code with Swift :)
https://docs.pusher.com/chatkit/push_notifications/setup-ios#enable-push-notifications
In order to enable push notifications (properly) on a React Native app, there needs to be some native code (Java/Swift) + some JavaScript method that will be invoked when for example the notification is pressed onNotificationOpened() RN Firebase
I believe the nice folks at Pusher are working hard to make this happen 😊

Yep, right now push notifications aren't supported in the JS SDK. I'll close this issue for now but rest assured that we're aware of the requests for push notification support in the JS SDK 👍

@hamchapman any news on this?
push notification is a MUST in our RN App requirements and this could lead us to choose other solution over chatkit :(
also, why closing the issue if this is, imo, a pending feature request?
best!

@rafaismyname We'll be working on supporting that very soon in RN. However, for now we offer web hooks that you can use to trigger push notifications on your end. This is not ideal and just a workaround, but like I mentioned, it is something we will be working on to support.

@vivangkumar ok cool!
just one question... chatkit's console shows some kind of limit for webhooks, but chatkit's pricing page doesn't mention anything about webhook limits. Is there any limiting for webhooks?
if there is not, using webhooks for push notifications should be fine :)

We need this feature badly too! Any kind of workaround are very hacky (at least what we implemented) . We might have to look for alternatives (as we grow) if this is not implemented soon!

any update or timeline for this feature?

@vivangkumar I want to use Chatkit in an Expo project (iOS, Android, & Web) - is the recommended approach to use web hooks for this at the moment?
Do you have plans to support Expo out-of-the-box?
Are there any limitations of the web hook approach I should be aware of?
Thanks!


new glm_predictive_distribution and corresponding changes in LaplaceRedux.predict

this one should be good to merge as it is now.

@pat-alt @MojiFarmanbar  i tried to cover all the new cases but since there are a lot of ifs i had to add multiple tests.

@MojiFarmanbar do you want to have a quick look as well or should we merge this?

@pat-alt i had a quick look, if you approve it then i would say let's merge it.


Fix invalid link in documentation. Fixes #28

Trivial PR with small change in project documentation file.
The lib directory is not yet part of repository or part of build or install routines.
It would be better to remove this part completely in future versions or mark it as WIP
Thanks!

I'm just going to remove all the links and internal readmes, they're all out of date. Thanks though


Update link to "SQL Server editions"

The link, labelled "SQL Server editions", points to the SQL Server 2017 docs and should be updated with a newer (SQL Server 2019) link. Thanks!

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

ID: 4cf58945-edff-cb3b-ab71-d45d480f1044
Version Independent ID: 8a1c8ac9-a829-837b-5e52-81766c1f545e
Content: Setup & upgrade requirements - Azure DevOps
Content Source: docs/requirements.md
Product: devops-server
Technology: tfs-admin
GitHub Login: @aaronhallberg
Microsoft Alias: aaronha

The link could probably be updated with this one: https://www.microsoft.com/en-us/sql-server/sql-server-2019-comparison


Add possibility to filter parts by non-primary parameters

Feature Request
The new parameters give us the option to query for 'known superranges' of parameters.
We can use this to filter down components in the database.
Makes picking extremely much faster, not to have to compare every single part.
Also gets rid of the e-series stuff which makes comparisons very slow unnecessarily.
(Legacy artifact from sqlite picking, where we had to look in descr string for value).
Strategy:

Make api params from list into P_Set (faebryks new literal class)
Add for all existing api picker classes the missing parameters to pick by
In backend check each param for being unbounded, and if not convert the P_Set into a sql range check

Note:

'known superranges' returns the best estimate we can make before actually merging in more constraints. So normal picking is still needed. It just reduces the count of parts by an insane amount in the cases where the non-primary parameter is the most restrictive.

Code of Conduct

[X] I agree to follow this project's Code of Conduct

[x] Client side done in #634
[ ] Server side


Add scalacheck-datetime section

Scala Exercises features content for Scalacheck. @noelmarkham has developed scalacheck-datetime, library used for working with Date Time related precision constrained for Arbitrary and Gen instances.
Instead of creating a new Library for scalacheck-datetime we are going to merge the content of whatever exercises can be written for it so they show up under the scalacheck top level library.
More info about scalacheck-datetime here:
https://47deg.github.io/scalacheck-datetime/docs

@raulraja : Can we have some more insight what we have to do here ?

@shiv4nsh Description updated, thanks!.


Disable fluidlite in CI.

Fluidlite, added 3 days ago in https://github.com/microsoft/vcpkg/pull/13006 , tries to install the same files as fluidsynth; it's similar to the 'boringssl' situation. Given that fluidlite doens't have any dependencies, this change disables that one rather than fluidsynth,
Starting package 543/1349: fluidsynth:x86-windows
Building package fluidsynth[core]:x86-windows...
-- Downloading https://github.com/FluidSynth/fluidsynth/archive/2393aef3bd0b4e78084cfe16735d402bc1497edd.tar.gz...
-- Extracting source D:/downloads/FluidSynth-fluidsynth-2393aef3bd0b4e78084cfe16735d402bc1497edd.tar.gz
-- Applying patch force-x86-gentables.patch
-- Using source at D:/buildtrees/fluidsynth/src/2bc1497edd-d19340b672.clean
-- Configuring x86-windows
-- Building x86-windows-dbg
-- Building x86-windows-rel
-- Installing: D:/packages/fluidsynth_x86-windows/share/fluidsynth/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: W:\67\67c77d45b2c7b460f24349792075d19b9a2b218f.zip
Building package fluidsynth[core]:x86-windows... done
Installing package fluidsynth[core]:x86-windows...
The following files are already installed in D:/installed/x86-windows and are in conflict with fluidsynth:x86-windows

Installed by fluidlite:x86-windows
    include/fluidsynth/gen.h
    include/fluidsynth/log.h
    include/fluidsynth/misc.h
    include/fluidsynth/mod.h
    include/fluidsynth/settings.h
    include/fluidsynth/sfont.h
    include/fluidsynth/synth.h
    include/fluidsynth/types.h
    include/fluidsynth/version.h
    include/fluidsynth/voice.h

Elapsed time for package fluidsynth:x86-windows: 46.12 s

/cc @Ghabry

Should we add warning or error messages in portfile.cmake to warn users about conflicts?

Should we add warning or error messages in portfile.cmake to warn users about conflicts?

In this case I think we're OK without it because these 2 libraries appear somewhat specialized and it's unlikely that a user is going to want them both at once. We do have a warning like that for boringssl but that's because so many libraries list openssl as an explicit dependency, but nothing declares fluidsynth as an explicit dependency.
On the other hand I can see an argument that we should be consistent about it....

Added warning message

Oh. Yeah, sorry. I didn't consider this conflict. Disable it.
There is no use case for both libs at once (you only pick lite when you don't want this huge glib dependency)


Add google reCAPTCHA

https://developers.google.com/recaptcha/docs/invisible

Changed from recaptcha to using Discord Oauth, this will also allow us to verify username.
https://discord.com/developers/docs/topics/oauth2


Include license file in the crate

The actual license is not only relevant for contributing to the project, but even more for using the library. The license files should thus be shipped in the crate like most other crates do.
I would like to include whoami in Fedora as new dependency of Mercurial. That needs the license files in the crate.
(Also, most other rust projects seem to leave out the .txt extension and the license version from the file names. For consistency, it would thus be even better if the license files were named LICENSE_APACHE, LICENSE_BOOST, and LICENSE_MIT.)

I don't see anything in the failed checks that seems related to the changes.

I don't see anything in the failed checks that seems related to the changes.

Agreed.  I'll try and see what's going on with it.

Thanks for merging. (But FWIW, I much prefer rebasing of my clean history instead of squashing.)
It would be convenient for me if the changes were available in an official 1.4.1 release. Any thoughts about when that will happen? Will you consider making a release just for this reason?

Thanks for merging. (But FWIW, I much prefer rebasing of my clean history instead of squashing.)

I exclusively use squash merging because it makes it easier for me as a maintainer.    Everyone works differently (you used a force-push to keep commits clean, while I usually choose not to, so that history is preserved during the review process up until merge), and I don't want to force volunteers into cleaning up their history into something readable, or working a specific way.  So, I give everyone the same treatment, because it makes it easier for me when volunteering to maintain this project and other crates.  If this is something that would turn you away from making future contributions, I will re-think my stance.

It would be convenient for me if the changes were available in an official 1.4.1 release. Any thoughts about when that will happen? Will you consider making a release just for this reason?

This is already in progress; The release will happen tonight Americas/Chicago time.

Version 1.4.1 is now released with the patch.


🎉 add a way to debug when having metadata issues

Possible fix for https://github.com/owid/etl/issues/1679
I was trying different things that didn't work. But I think this approach may be enough for now:
While working on an ETL step, manually define Table.DEBUG = True, and then:

When running a line of code that creates a table column without an origin, a warning is raised.
When displaying a table that has any column without an origin, a warning is raised.
When loading a table that has indicators without origins, a warning is raised.

@Marigold please let me know if you have other ideas, thanks!

Hi @Marigold, thanks. Yes, I initially thought of using the DEBUG variable from .env (or creating another one called META_DEBUG). But then I realised that lib/catalog doesn't read from ETL .env, right?

Also, @Marigold I was about to merge and noticed that CI was running 222 ETL steps. Is that expected? If so, I'd wait for the end of the day to merge this PR.

But then I realised that lib/catalog doesn't read from ETL .env, right?

Yes, exactly, I got confused by it at first, too. Perhaps we can just load it from os.environ['DEBUG'].

I was about to merge and noticed that CI was running 222 ETL steps. Is that expected? If so, I'd wait for the end of the day to merge this PR.

It's unrelated, feel free to merge this. (I'm working on fixing ETL)


go.mod: github.com/containerd/go-runc v1.1.0

https://github.com/containerd/go-runc/compare/v1.0.0...v1.1.0

would be useful in release/1.x as well


fix VERSION to 1.2.6

When I use druid-1.2.6, there is 1.2.5 in StatViewServlet
By the way, I think its better to get VERSION automatically, such as VERSION.class.getPackage().getImplementationVersion()
But it only works for druid jar

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


currently impossible to build full program + idl

anchor 0.13.0 cant be installed due to removal of branch in one of the submodules, IDL does not build with anchor 0.14.0 due to breaking changes to #[account(init)] as detailed in this comment

Updated to v0.14.0 here https://github.com/project-serum/multisig/pull/17.

thank you! FYi, still running into the 0x65 issue in both the tests and the ui with the newest master


Cart Catalog is not working if I add the conditions like SKU or name or others that available in dropdown

Steps to reproduce :

Go to {domain}/admin/promotions/catalog-rules
Click to Add to Catalog button
Make sure to key in all the mandatory fields
Under conditions sections:
i) For example, select SKU as a condition
Action type, you can select either fixed amount or percentage, and click Save.

Go to frontend, and you will see the price of the product never change.

@kian92
It's working fine at master branch as well as on latest release.
Kindly verify the customer group also for which you have created the rule.
See the below attachment, Here I have followed all the steps mentioned by you & seems to be working fine.

hi @vaishaliwebkul, please try the product type is bundle, thanks

@kian92
catalog discount will not allow for bundle product If you will edit the bundle item check that the price section is not available because the bundle own price doesn't exist, it includes the simple product, so you should apply the catalog rule for simple products.

Thank you, @vaishaliwebkul for the explanation. Please take note if I remove all the conditions, and I go to front end page, I still can see the discounted price if the product type is bundle. So it is kinda confusing.

@kian92
the discount which is visible on bundle product is showing because the catalog rule is still applied on simple product, so to remove this, check the respective simple product should do not have special price added inside or catalog rule doesn't exist for the same.


Automated cherry pick of #1783: glance: fix duplicate data for node db_stats

Cherry pick of #1783 on release/2.11.0.
#1783: glance: fix duplicate data for node db_stats

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.11.0@f7f3d3b). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             release/2.11.0   #1785   +/-   ##
================================================
  Coverage                  ?   7.64%
================================================
  Files                     ?     412
  Lines                     ?   63256
  Branches                  ?       0
================================================
  Hits                      ?    4834
  Misses                    ?   58013
  Partials                  ?     409

Flag
Coverage Δ

#aFlag
7.64% <ø> (?)

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 f7f3d3b...0eaf16f. Read the comment docs.


Issue using rbac.getRole

When I use rbac.getRole, each time I get the following error.
/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/rbac/lib/base.js:19
		return cb(null, this);
		       ^
TypeError: undefined is not a function
    at Role.Base (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/rbac/lib/base.js:19:10)
    at new Role (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/rbac/lib/role.js:16:7)
    at convertToInstance (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/rbac/lib/storage/mongoose.js:44:10)
    at Promise.<anonymous> (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/rbac/lib/storage/mongoose.js:182:12)
    at Promise.<anonymous> (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/mongoose/node_modules/mpromise/lib/promise.js:177:8)
    at Promise.emit (events.js:107:17)
    at Promise.emit (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/mongoose/node_modules/mpromise/lib/promise.js:84:38)
    at Promise.fulfill (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/mongoose/node_modules/mpromise/lib/promise.js:97:20)
    at /Users/bibeksubedi/Personal/Projects/usermodule/node_modules/mongoose/lib/query.js:1400:13
    at model.Document.init (/Users/bibeksubedi/Personal/Projects/usermodule/node_modules/mongoose/lib/document.js:250:11)

My suspect is in mongoose.js at line 44, where Role constructor is called without callback.

Can you try latest version (3.0.0)? It is completely rewritten.

Yes I have updated but documentation doesn't work anymore. Do you have any example using this change?

I have fixed and updated documentation too

This issue was fixed. I am closing it