New interface for G Module N

The new interface for manipulating G-Module N, when N is an abelian group, is cumbersome and not suitable for computation of extensions of N by G. It also can't be used for modeling character computations, but it only simplifies reading. Restricting computation for N abelian, or the center of N, becomes mandatory since it corrects many bugs occurred when computing extensions of Dihedral Group D8 by C2.
Perhaps it would be better to use the previous object for manipulating polynomials of multiple indeterminates over the finite field Fq. Reducing systems could be done with Groebner, which is already possible and tested for trivial action, and group action could be possible through permutations of unknowns but it needs to be tested for evidence.
The book, Cohomology of Finite Group from Alejandro Adem and R.James Milgram will be very useful for that. The subject is becoming challenging, profound, and captivating.

Decomposing the group N into Abelian elementary factors is a more effective approach for reducing systems obtained through cochains than decomposing into Abelian invariants.
The next improvement is how the systems of equations for 2Coboundaries and 2Cocycles can be used in conjunction to deduce 2Cohomology and compute only representatives of cosets, rather than exploring all possibilities.

It is now feasible to compute H2(C2xC2xC2, C2xC2) or H2(C3xC3, C3xC3). Although the process is slow, it is significantly more efficient than a brute-force Depth-First Search (DFS).
However, the current version encounters difficulties computing H2(G,N) when N contains Z/p^2Z subgroups.

Significant advancements have been made in computing H2(G, N) when the group G acts trivially on any abelian group N, and when G acts non-trivially on N cyclic pGroup, which is not always simple. However, the case when G acts non-trivially on N, a direct sum of pGroup, such as C4 x C8 or C3 x C9, remains to be addressed.

The newly implemented interface is operational and is better compared to the previous Depth-First Search (DFS) method. The next step in our development process will be to make it faster.


[stable/redis-ha] Add liveness and readiness probe to redis server

Signed-off-by: Prabhu Jayakumar<EMAIL_ADDRESS>
What this PR does / why we need it: Add liveness and readiness probe to redis server
Which issue this PR fixes

fixes #8520

Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/assign @viglesiasce

cc @smileisak and @ianmaddox for review. Was it intentional to leave off the liveness/readiness probe?

@viglesiasce Any update on this?


Added a description of factory usage.

Also added a list of advanced contribution topics.

Overall, I'm very appreciative of this documentation. It wasn't that long ago that I myself got the infamous ModuleNotFoundError (#263). Looking back, I see that I ended up using MagicMocks (which I prided myself for learning) instead of the toga_dummy factory, which led to @freakboy3742 patching the tests in #264. These docs reduce the "barrier to entry", something that every open-source project longs for. I'll be especially excited to see some more first-time contributors getting their code merged on the first try (or at least not getting a nasty ModuleNotFoundError). :+1:


Stites flash list category picker

Details

Fixed Issues

$ GH_LINK
PROPOSAL: GH_LINK_ISSUE(COMMENT)
Tests

[ ] Verify that no errors appear in the JS console

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[ ] I linked the correct issue in the ### Fixed Issues section above
[ ] I wrote clear testing steps that cover the changes made in this PR

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[ ] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[ ] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Use the links below to test this build in android and iOS. Happy testing!

:test_tube::test_tube: Use the links below to test this build in android and iOS. Happy testing! :test_tube::test_tube:

android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/14639/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/14639/index.html

desktop :computer:
web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/$PULL_REQUEST_NUMBER/NewExpensify.dmg
https://$PULL_REQUEST_NUMBER.pr-testing.expensify.com


This condition will always return 'false' since the types have no overlap.

TypeScript Version:  3.0.0-dev.20180712
Error: This condition will always return 'false' since the types 'A' and 'I' have no overlap.
TypeScript Version:  2.9.2
Error:  Operator '===' cannot be applied to types 'A' and 'I'

Search Terms:
Operator '===' cannot be applied to types
This condition will always return 'false' since the types have no overlap.
Code
class A {
  private field: string;
}
interface I {
  pub: string;
}
class B extends A implements I {
  pub: string;
}
let b = new B();
let a: A = b
let i: I = b;
if (a === i) { // on TS 2.9.2: Operator '===' cannot be applied to types 'A' and 'I'
// on TS 3.0.0-dev.20180712:  This condition will always return 'false' since the types 'A' and 'I' have no overlap.
  console.log('qq');
}

Expected behavior:
no error
Actual behavior:
error
Playground Link: link
Related Issues: no
This case found from real project. Class and interface may be implemented and extended by another class, and in this case this error is pointless.

Another case for classes without interfaces
class A {
  private field: string;
}
class B {
  public anotherField: string;
}
class C extends A implements B {
  public anotherField: string;
}
let c = new C();
let a: A = c
let b: B = c;
if (a === b) { // on TS 2.9.2: Operator '===' cannot be applied to types 'A' and 'I'
// on TS 3.0.0-dev.20180712:  This condition will always return 'false' since the types 'A' and 'I' have no overlap.
  console.log('qq');
}

Playground

//cc @RyanCavanaugh and @DanielRosenwasser for error message details.

The rule for the type assertion is that the compiler can verify that either of the two types is comparable to the other. In simpler terms, can you assign one to the other either upcast or downcast. if neither is true, then it is likely an error.. e.g. 3 === "string".

On one hand, it looks like a code smell to compare types like this.
On the other, if such a check passes, I would expect it to behave like some sort of type guard, where both a and i are now of type A & I or something to that effect.

In simple cases yes, looks good. But in some cases it alerts on absolutely correct code. Found this case in complicated code that works with heirechical system using abstract interfaces. All parent - child links is interfaces, and nodes implemets this interfaces.
Think thak this error should be emitted if both arguments primitive or nominal types only. If type of one side is not nominal, its incorrect to prevent equality check.

@RyanCavanaugh And how do you propose to correct these "incorrect" errors? What developers should do?

Oops!...I Did It Again

How you guys solve this?

@AntiMoron
Shouldn't it be process.env.<someIdentifier> == 'development'?

@AnyhowStep  Thank you...I redefined process.env as a string...
Seems to be my problem.

How about giving us the ability to silence an error - in my case I have a build script that generates code that contains constants based on the target platform (browser, android, ios...), and in this case if(BUILDTYPE === 'ANDROID') generates this error when the condition is false.

How about giving us the ability to silence an error

// @ts-ignore

Derp. Seems my google-fu failed me again. Thank you, Ryan.

is there a way to silence the error or an easy way to fix the error. I am using geolocation and need to check if the connection was good it just gives a string and it also works but it still gives the error.

How you guys solve this?

If you're using node, it's process.env.NODE_ENV. It's a string.

How you guys solve this?

use String(process.env) == 'development'
Typecasting :)

process.env is an interface ProcessEnv with [key: string]: string | undefined property. Why you're typecasting something totally unrelated from a string to be a string is beyond me.
please use process.env.<someIdentifier>

Here's another variant of this problem, in case it's useful. I have code where T and U may be the same type or different types.
const x = <T extends SomeType, U extends SomeType> (t: T, u: U) => {
    return t === u;
}

Here's another simplified example:
import { Bar1, Bar2 } from './foo'

class Baz implements Bar1, Bar2 {
    bar1() {}
    bar2() {}
}

const baz = new Baz()
const bar1: Bar1 = baz
const bar2: Bar2 = baz

if (bar1 === bar2) { // ERROR!
}

foo.ts:
export interface Foo {}

export interface Bar1 extends Foo {
    bar1(): void
}

export interface Bar2 extends Foo {
    bar2(): void
}

The comparison bar1 === bar2 causes the error "This condition will always return 'false' since the types 'Bar1' and 'Bar2' have no overlap."
Surprisingly, this error only appears if the interfaces are in a different module.

Pretty new to Typescript and I came across what might be this error. I've got the code below (screenshots underneath). Am I falling for a 'gotcha' somewhere? Is this expected behaviour or am I doing something wrong that I am being blind to?
Thanks in advance for any pointers!
// Both triggerVar and userVarId are typed as a string, and TS seems to know this
if (!triggerVar === userVarId) {
  return false;
}

What irks me here is that the error message implies that the code is provably incorrect ("This condition will always return 'false'"). It is clearly demonstrated that such a comparison may be perfectly valid.
The premise of the error is not factual, it's heuristic, and that should have been reflected in the error message. "This condition may always return 'false' since the declared types have no overlap."
It might sound like a nitpick, but the phrasing cues the user on how to resolve the issue. It should reduce confusion instead of creating confusion.

How you guys solve this?

import _ from 'lodash';
if(_.isEqual(process.env,'development')){
than .....
}

@niezw A correct answer was already provided above. All you're doing is misusing a library function because it happens to circumvent the type system and suppress an error message, when in fact the error message is correctly identifying a problem with the program logic.
process.env is not a string. It is an object. If for some strange reason it ever were a string, the correct solution would be to fix the type declaration or, as a bandaid, use //@ts-ignore or perform a cast: if(process.env as unknown as string === 'development') {.... But due consideration should be given to the fact that TS is reporting process.env as type ProcessEnv and not string.

This is a very poorly worded "error". For example the following code: "1" == 1 triggered the error. While the error claims "This condition will always return 'false'" it in fact evaluates to true. This is incredibly misleading.
Playground Link

I got the same error-message with the following code:
let x = null;
if ( some-condition ) {
  x = 0;
} else {
  x = 1;
}
if ( x === 0 ) {
  // Do something
}

On the x===0 condition I got the error, which was strange in my view because I was sure the x is either 0 or 1.
But the culprit was the initialization to null.
Changed that to:
let i;

And it solved the problem.
If it's a casting problem then its still strange because the program has x casted to an int the moment of the first condition. (x = 0 or x = 1)

typeof a === b,试一下咯

I solved this situation

using String()

I solved this situation

This is just another example of someone introducing a bug into their program to try to fix this error message. There is generally no good reason to use String, and now you have a function that is supposed to return a boolean that is instead returning String('true') or String('false'), both of which are objects, thus truthy.
@RyanCavanaugh Is there any chance we can re-open this issue to consider re-wording the error message? I think it should convey:

That the comparison is probably erroneous
That the comparison may also merely require a cast to help unconfuse the compiler.

Perhaps something along the lines of:

This condition may always return 'false' since the declared types have no overlap. Consider casting if the compared values are known to be of compatible types.

I'm also having this error while doing in-runtime typechecking for strings. I know that by the typing system definition my condition seems to be always true/false. But this is true only for compiling face. In the runtime I get theese values from the user, so I need to check them at a runtime. And in those checking conditions TS says that it's always 'true'/'false' =(

@NeliHarbuzava Your code is wrong, it currently always returns true, even if imageFormat is "png" or "jpg". The correct code would be
if (typeof imageFormat !== 'string' || (imageFormat !== 'png' && imageFormat !== 'jpg')) {
//                                                            ^^ problem solved
      console.warn('Invalid "imageFormat" property. Expected one of: "png", "jpg".');
}

This condition will always return 'true' since the types '"png"' and '"jpg"' have no overlap

This demonstrates the actual utility of the error message. imageFormat !== 'png' || imageFormat !== 'jpg' will always return true, because it will always be inequal to at least one of the two ('jpg' or 'png'). It would be nice if TS could distinguish between genuine "will always return true" versus heuristic "may always return true", but I'd settle for any improvement to how the error is reported.

@tenedor - thanks for the succinct  MWE - I'm in the same situation.

const x = <T extends SomeType, U extends SomeType> (t: T, u: U) => {
    if (t === u) {
        ...
    } else {
        ...
    }
}

One simple workaround is to set u: T | U, although that may have unintended consequences I'm not aware of.

As far as I can tell, this is still an issue. As @kevincox points out, the simple expression '1' == 1 throws this error, which is extremely misleading. @RyanCavanaugh can you clarify why the wording of the error is useful? (I.e., "will always return false" as opposed to "may return false"). Thank you!

See #26592

@RyanCavanaugh I guess I don't see how that answers the question. I can see the use of pointing out the potential bug-iness of using ==, but the language of the error message is misleading and also incorrect, isn't it?

Ahhh okay, sorry for the confusion. Thank you!

@RyanCavanaugh could you point me to where this check happens in the code?


What is the setting that controls viewable page templates?

Hello,
I can hardly set page templates..
I get the below screenshots, this defers from a page to another.
How can I control which one I want it to appear?
I want to set a page as (info) or (gallery), but can`t set it, as the other one appears instead.
(1)

(2)

You can override the page template field in custom blueprint for the page type you are working on.  You can then provide the list of specific templates you want in that field.
https://learn.getgrav.org/17/forms/blueprints


Local environment setup for contributing

Hey! I want to contribute with plugins, and stuff but I don't know how to setup a local environment in order to develop and test the plugins.
For example like connecting with Github.
Any guidance?
thanks.

GitHub has a lot of guides available to get your started: https://help.github.com/

Also if you use strider init it will create a template plugin directory.

Thanks for the help!
My major doubt is about connecting my local strider to Github, because Github wont be able to reach my local environment, right?

@sebas5384 If you want to make use of service hooks, you will need to have a system that can be reached online. But you can always deploy manually, I guess.

hmmm @oliversalzburg good point, I could test it deploying manually, but what about connecting the Strider to Github account and cloning the repos?

@sebas5384 That should work just fine. You just need to configure the GitHub provider. I'm not sure where the process is documented though.

It should be automatic, as long as you set all of the env variables, see the strider-github (and strider) readme.

Thanks I'll try to install locally and then make some step-by-step guide :+1:

@sebas5384 I'm going to close this in favor of a PR :+1:


[Orca-104]/hello world dag

This PR adds a dag that leverages sagetasks to launch the hello world nextflow workflow. I have successfully tested the dag in the new ec2 instance that I created. The dag itself is a very simple two-part process: 1. Open tower workspace, 2. Launch Tower Workflow.

In general, this looks great!

Can you paste the DAG image from Airflow here?

Do you mean the graph view?

Is the Airflow UI ready to be viewed?
I still have not figured out why it is not showing at the public-facing address in the ec2 instance.


Trying to block certain requests

I wrote a test like below to try to stop svgs from being downloaded. But the only Request is to stack overflow. Right now is playwright able to pick up all the requests to svgs on the page? If so shouldn't the RouteAsync catch them?
`
[Fact]
public async Task StopImageDownloads()
{
        await Playwright.InstallAsync();
        using var playwright = await Playwright.CreateAsync();
        await using var browser = await playwright.Chromium.LaunchAsync(headless: false);
        var page = await browser.NewPageAsync();

        // Abort based on the request type

        await page.RouteAsync("**", (route, _) =>
        {
            if (route.Request.ResourceType.ToString() == "image") {
                route.AbortAsync();
            }
            route.ContinueAsync();
        });

        await page.GoToAsync("http://www.stackoverflow.com");
    }

`

@alethcoe Could you try using the enum?
if (route.Request.ResourceType == ResourceType.Image)

Hey thanks that works, thank you for your help. I was planning on doing a youtube video on Playwright Sharp this weekend. And I plan on showing this off thanks!

Awesome @alethcoe!
Share the video when is ready :)

Awesome @alethcoe!
Share the video when is ready :)

https://youtu.be/V4CE_mNpmXU
Sorry it took so long. I actually recorded it yesterday decided it wasn't good enough rewrote it and recorded it again tonight. I think you guys did an awesome job on the Playwright Sharp project. If you want me to follow up with corrections or think I missed something that is super awesome let me know.

Great video @alethcoe, Can you reach me out on the Slack channel or by email so we can chat about testing?


JPL Patch 001. Refactored: 100 lines app.

It's about 100 lines app.
I did not test.

It's about 100 lines app.
I did not test.

Hello, this was one of the first programs I ever wrote. I will test your changes, I have longed to do an update to this.

These changes break the program. The first issue I saw is that gen_year will output invalid spec years for the OEM key.
I did find this https://github.com/MobCat/Windows-95-Product-Key-Check which seems okish to verify without setting up a win95 vm. Still real VM is ideal to verify any changes in.
I will update this eventually...

@alex-free show me difference.

@alex-free show me difference.

I see you figured it out, this bug was introduced by your pull request in your fork right?
Left side is your (old?) fork, right side is v1.0. As you can see, the year digits are always valid in mine but yours sometimes go to 07 (2007!)
Sorry about closing this hastily. I'll look at your changes and lets get this committed once it works.

I think the issue is your code changes just miss too many edge cases. It doesn't really make sense to do it like that IMO, it seems harder to cover every edge case in the while loop.
i did refactor this a different way, it appears to work the same but I need to do some more tests:
/*
Open95Keygen version 1.0 - Febuary 7th 2021
BSD 3-Clause License
Copyright (c) 2021, Alex Free
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DIGIT_RANGE 10
#define OEM_DAY_RANGE 367
int oem_key_year[2];
int oem_key_5[5];
int oem_key_5_random[5];
int retail_key_1[3];
int retail_key_2[7];
int oem_key_day;
int digit;
int sum7;
void gen_oem_day()
{
while(1)
{
oem_key_day = rand() % OEM_DAY_RANGE;
    if(oem_key_day != 0)
        break;
}

}
void gen_oem_year()
{
while(1)
{
for(digit=0; digit<2; ++digit)
oem_key_year[digit] = rand() % DIGIT_RANGE;
    if((oem_key_year[0] == 9 && oem_key_year[1] >= 5) || (oem_key_year[0] == 0 && oem_key_year[1] < 3))
        break;
}

}
void gen_5digits_oem()
{
while(1)
{
for(digit=0; digit<5; ++digit)
oem_key_5[digit] = rand() % DIGIT_RANGE;
    sum7 = oem_key_5[0] + oem_key_5[1] + oem_key_5[2] + oem_key_5[3] + oem_key_5[4];

    if(sum7 % 7 == 0)
        break;
}

}
void gen_5digits_random_oem()
{
for(digit=0; digit<5; ++digit)
oem_key_5_random[digit] = rand() % DIGIT_RANGE;
}
void gen_3digits_retail()
{
while(1)
{
for(digit=0; digit<3; ++digit)
retail_key_1[digit] = rand() % DIGIT_RANGE;
    if(!(retail_key_1[0] == 3 && retail_key_1[1] == 3 && retail_key_1[2] == 3) || (retail_key_1[0] == 4 && retail_key_1[1] == 4 && retail_key_1[2] == 4) || (retail_key_1[0] == 5 && retail_key_1[1] == 5 && retail_key_1[2] == 5) || (retail_key_1[0] == 6 && retail_key_1[1] == 6 && retail_key_1[2] == 6) || (retail_key_1[0] == 7 && retail_key_1[1] == 7 && retail_key_1[2] == 7) || (retail_key_1[0] == 8 && retail_key_1[1] == 8 && retail_key_1[2] == 8) || (retail_key_1[0] == 9 && retail_key_1[1] == 9 && retail_key_1[2] == 9))
        break;
}

}
void gen_7digits_retail()
{
while(1)
{
for(digit=0; digit<7; ++digit)
retail_key_2[digit] = rand() % DIGIT_RANGE;
    sum7 = retail_key_2[0] + retail_key_2[1] + retail_key_2[2] + retail_key_2[3] + retail_key_2[4] + retail_key_2[5] + retail_key_2[6];

    if(sum7 % 7 == 0)
        break;
}

}
int main()
{
srand(time(NULL));
printf("Open95Keygen by Alex Free (C)2021\n");
gen_3digits_retail();
gen_7digits_retail();
printf("Retail Product Key: %d%d%d-%d%d%d%d%d%d%d\n", retail_key_1[0], retail_key_1[1], retail_key_1[2], retail_key_2[0], retail_key_2[1], retail_key_2[2], retail_key_2[3], retail_key_2[4], retail_key_2[5], retail_key_2[6]);
gen_oem_day();
gen_oem_year();
gen_5digits_oem();
gen_5digits_random_oem();
printf("OEM Product Key: %03d%d%d-OEM-00%d%d%d%d%d-%d%d%d%d%d\n", oem_key_day, oem_key_year[0], oem_key_year[1], oem_key_5[0], oem_key_5[1], oem_key_5[2], oem_key_5[3], oem_key_5[4], oem_key_5_random[0], oem_key_5_random[1], oem_key_5_random[2], oem_key_5_random[3], oem_key_5_random[4]);
return(0);
}

Going to close this, I updated to v1.0.1 with some optimizations.

@alex-free
Thank you. I have fixed year.

@alex-free Thank you. I have fixed year.

Thanks, releasing v1.0.2 now and your credited!


feat(core): support TrustedType

Description
Replace this paragraph with a description of what this PR is doing. If you're modifying existing behavior, describe the existing behavior, how this PR is changing it, and what motivated the change.
Related Issues
closes #10311
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (melos run analyze) does not report any problems on my PR.
[ ] I read and followed the Flutter Style Guide.
[ ] I signed the CLA.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

@kevinthecheung I've added some documentation on Trusted Types. Let me know if you think this documentation should be placed somewhere else.

I'll merge it for release, let me know if I should open another PR for moving the documentation.

Guys is this something related?
https://github.com/firebase/flutterfire/issues/10474


Moving rails dependency as a dev one

There is no need to have a rails dependency, specially because it's requiring gems like we don't actually need on specific rails apps like APIs.
sprockets/railtie: 3.6641 MiB
      sprockets/rails/context: 2.1406 MiB
        action_view/helpers: 2.1406 MiB
          action_view/helpers/form_helper: 1.6328 MiB (Also required by: action_view/helpers/form_options_helper)
            action_view/helpers/form_tag_helper: 1.5547 MiB
              action_view/helpers/text_helper: 1.4219 MiB
                action_view/helpers/sanitize_helper: 1.4219 MiB
                  rails-html-sanitizer: 1.4219 MiB
                    loofah: 1.375 MiB
                      nokogiri: 1.1719 MiB
                        nokogiri/xml: 0.4063 MiB
                        nokogiri/html: 0.3672 MiB
      sprockets: 1.3672 MiB (Also required by: sprockets/rails/context, sprockets/rails/helper)
        sprockets/environment: 0.543 MiB
          sprockets/base: 0.5117 MiB (Also required by:

Hello @mustela
Do you think you can adapt it to the new version?
I think Knock is currenlty strictly linked with Rails because the controllers/routes way. However your proposal seems to make the gem more lightweight, depending only of the rails installed in the project hosting that's Knock gem. Is that right?
Thank you!


Fix _destinationOfSymbolicLink behaviour on Windows

_destinationOfSymbolic should return a relative path if the symlink is a
relative symlink. Now instead of returning the resolved symlink path, we
read the ReparsePoint to get the path it contains.

Changed to use a UnsafeMutableRawBufferPointer
@swift-ci please test

@swift-ci please test

Used MAXIMUM_REPARSE_DATA_BUFFER_SIZE
Check if it's actually a reparse point
Add support for Mount points
Add extra bounds checking
Hard coded the offset sizes

@swift-ci please test

@swift-ci please test linux

@swift-ci please test linux

@swift-ci please test linux

@swift-ci please test linux

@swift-ci please test linux

The Windows code looks fine to me now. cc @compnerd


github: issue template should prompt if toolchain is go1.23 and above use go env -changed report bug

See #34208 , it background is that report an bug usually require the user to provide a go env, which has a problem the output is getting larger and larger, and most of it is usually useless.
Now that go env -changed has been added, issue template should prompt the user to use it when the toolchain is greater than or equal to go1.23.

go env -changed is not enough.  In particular we really need go env GOOS and go env GOARCH and go env GOVERSION.

go env -changed is not enough. In particular we really need go env GOOS and go env GOARCH and go env GOVERSION.

issue template need go version output , it contain GOOS GOARCH GOVERSION

I don't think we should do this. the full set of env vars is quite useful in picking out details which the reporter may not have otherwise thought to tell us about.

I think we can decline this for the same reason as #67769


Feature Suggestion: Applitools Visual Testing

Hey Folks, my name is James Spivey. I work with This Dot and we have teamed up with Applitools to offer free visual testing to great open source projects such as this one. Even better, they want to support helping women juniors through an apprenticeship program to do this work. This Dot would handle the pull request for this issue through the Apprenticeship program.
If you're not familiar with visual regression testing there's a pretty good summary in the Storybook docs (most of the page is unrelated to Storybook) but the tl;dr it involves rendering components individually in the DOM and taking a snapshot of the pixels and doing comparisons of it against baselines.
Most solutions do normal 1:1 pixel comparing, but this often results in false positives because the exact pixels can vary. e.g. different GPUs render things differently, so your local tests will fail against baselines created on another computer, or if the CI changes its GPU or there's a browser update, etc, etc, etc. Applitools on the other hand tries to visually compare like a human would, ignoring differences that a human wouldn't perceive or care about. The whole AI thing and such.
Maintaining a separate set of visual tests can could be a pain so what I am thinking instead was take advantage of the wonderful existing docs setup this project has. Since this project already has the ability to render the component examples all by themselves e.g.https://material.preactjs.com/component/button/ this could make rendering and testing the components easy.
My suggested solution would be to integrate Cypress and Applitools to load the docs, render the examples, and snapshot test the dom elements created from the docs.
Looking forward to talking further about this idea and the value it could add to Preact Material!

CC: @prateekbh

+1 and happy to answer questions! :)

Hi @myspivey
I checked out applitools and it looks good 👍
We currently have pixel to pixel matching using puppeteer but it not the most amazing thing that we like to maintain.
So any replacement needs to have following things

Cross browser testing on already chrome and Firefox (edge would be good to have)
A better way to see diff between images(currently we compare the pics Manually)
Testing on smashed viewport to emulate phones

Does those get covered by your suggested setup?
P.S. Please keep all your work based on next branch instead of matter, as that's where we are developing code for our next major release

Also can we add support for doing interactions on screen and comparing results post that?
E.g.
Load page => do a swipe => compare screenshot to check if the sidebar opened

Cross browser testing on already chrome and Firefox (edge would be good to have)

Edge (Trident) will be chromium soon anyway leaving Blink and Gecko the only mature engines (besides Webkit, but that's buggy like hell)

P.S. Please keep all your work based on next branch instead of matter, as that's where we are developing code for our next major release

The branch is called 2.0

@prateekbh Pixel to pixel is quite frail which is one of the advantages of Applitools.

Chrome and Firefox are both fully supported
This process is handled in the Applitools UI where you can see baselines and new images as well as a map of what the perceived changed are. It is a great UI for this! It even handles the ability to approve or deny changes.
You can set any viewport size you would like in the config or browsers so if you would like to test chrome or firefox at multiple different resolutions, Applitools will handle this for you.
For interactions, this would be E2E testing so a proposed solution of Cypress tied to Applitools would be ideal for this. With Cypress you can interact with your UI as you would expect, and then take a screenshot at any point during to determine if the UI looks as though you would expect. You can of course do this solely in Cypress as well by determining if the dom elements are present after the click, it is at your discretion if you want to have a visual result test or simply know it worked.

Let me know if there are anymore questions!

For interactions, this would be E2E testing so a proposed solution of Cypress tied to Applitools would be ideal for this. With Cypress you can interact with your UI as you would expect, and then take a screenshot at any point during to determine if the UI looks as though you would expect. You can of course do this solely in Cypress as well by determining if the dom elements are present after the click, it is at your discretion if you want to have a visual result test or simply know it worked.

At Applitools it is also stated that selenium works

If Cyprus can do the job cross browser I'd like it to, instead of selenium.
Cyprus definitely seems nicer

I just had a quick look at it and I think we should discuss this later when we have tried some things

Like?

I am kinda super eager to get this in because as we add components in 2.0, I don't want to keep using images to my PR.
That too when we are getting an external contributor to do just this.
Also, this gives us stuff which we don't have right now.
I honestly think I'd want to land this PR as soon we can after it is submitted.

I think we should land this first and then think about Cypress vs. Selenium and co.

Oh ok fair enough

@myspivey we'd just like screenshot tests without Cypress for now, and we'll add whatever we need later on.

@prateekbh understood, however I would advise this will make it substantially harder and even potentially lose a bunch of the advanced value you can get out of Applitools. Without an E2E runner to help pluck the dom elements, you are using the pure image comparison approach which could lead to false positives/negatives. When instead of sending images, you send dom elements to Applitools, they will ensure they get rendered in a consistent manner so that you do not get differences between different contributor machines. If you do not end up with that runner, the only choices will be the CLI or pure JS libraries that deal simply in images. You would continue to have to ensure that something takes accurate photos per browser, and then deal with upload. You can find documentation on those solutions here (https://applitools.com/tutorials/screenshots-javascript.html#run-your-first-test) and here (https://applitools.com/tutorials/screenshots-cli.html#steps-for-running-tests)

@myspivey I mean if we start with Cypress change it in the end right?

@cromefire yes, it is a very lightweight approach. You can see an example of adding Cypress together with Applitools here (https://github.com/auth0/lock/pull/1597/files)

Well then I don't think there's anything speaking against it

This is now implemented


Reverse synchronize deletes of elements with random ExternalSourceAspects

see #118 for description

I had to adjust the ESA scope to not conflict with the targetScopeElement, but otherwise old and new test are passing under the fix. Merging and publishing prerelease


[Android][Animation] Interpolated translateY value causes android view to jump.

[+] Review the documentation: https://facebook.github.io/react-native
[+] Search for existing issues: https://github.com/facebook/react-native/issues
[+] Use the latest React Native release: https://github.com/facebook/react-native/releases

Environment
React Native Environment Info:
System:
OS: macOS 10.14
CPU: x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
Memory: 862.68 MB / 16.00 GB
Shell: 3.2.57 - /bin/sh
Binaries:
Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node
Yarn: 1.10.1 - ~/.nvm/versions/node/v10.9.0/bin/yarn
npm: 6.2.0 - ~/.nvm/versions/node/v10.9.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 11.2, macOS 10.13, tvOS 11.2, watchOS 4.2
IDEs:
Android Studio: 3.1 AI-173.4819257
Xcode: 9.2/9C40b - /usr/bin/xcodebuild
npmPackages:
react: 16.6.0-alpha.8af6728 => 16.6.0-alpha.8af6728
react-native: ^0.57.3 => 0.57.3
npmGlobalPackages:
react-native-cli: 2.0.1
Description
I'm trying to implement collapsible header using React Native Animated API. using event method i get AnimatedHeaderValue and interpolate it into translateY value.
This value i apply to container of my listView (so listView moves vertically).
IOS animation works perfectly, but Android animation jumping and lagging when i scroll. I tried to inscrease scroll value and Android animation became more smooth.
This is scrollView container that passes onScroll to scrollView (listView)
 <ScCompanyNewsFeedList optimizeHeight                  getRef={scrollView => {                   console.log("SCROLL VIEW", scrollView)                   this._scrollView = scrollView;                 }}                   scrollEventThrottle = { 2 }                 onScroll={Animated.event(                     [{ nativeEvent: { contentOffset: { y: this.AnimatedHeaderValue }}}],                 )}                  companyId={this.props.companyId}/>               }
this is base container that contains tabs and my scrollView. It's moving when scroll.
  <Animated.View style={[{flex: 1}, {transform: [{translateY: headerHeight}]}]}> ... </Animated.View>
Interpolation
   const animationRange = this.AnimatedHeaderValue.interpolate({       inputRange: [0, scrollRange],       outputRange: [0, 1],       extrapolate: "clamp"     });     const headerHeight2 = animationRange.interpolate({       inputRange: [0, 1],       outputRange: [0, -200]     });

The issue still exists on rn 0.57

Hi, I'm maintaining react-navigation-collapsible.
This issue is critical for this module and I tried many things for a workaround but no luck.

https://github.com/facebook/react-native/issues/15445
It has not been fixed for a long time though.

Are there any PRs open to try and fix this? Or commits already on master?

any news on this issue, it's a pretty annoying and visually nasty bug
thx

I think this is a serious issue, but nobody has any solution,hahah

Is anyone looking into this?

+1

+1

+1

bump again, can we get at least a milestone / time frame when this will be addressed?

1 Eternity Later...............
This bug still exists on v0.59

can we get at least a milestone / time frame when this will be addressed?

AFAIK this issue is not in the roadmap - the best idea would be for someone actually concerned with this issue to investigate it more and submit a PR. A lot of work has been done to improve the PR to master timing so that would be the best way.
We are currently re-thinking how to approach issues so maybe in the next few days someone will be able to pick this up - but, again, since you are experiencing the issue you may have more time to dedicate to it.

@benevbright Hello, I started using your react-navigation-collapsible unfortunately the bug on android where the header started to jump when scrolling slowly. I made a hack way to avoid the "jumping bug" but i dont how to implement it on your library but i hope it helps
https://snack.expo.io/r1hwBv0wV - Here's the one with "Jumping Bug"
https://snack.expo.io/Hk34BPCDN - Here's the one without the bug
I just add the following style
position: 'absolute',
zIndex: 999,
top: 0

i dont know but i think the position: 'absolute' removes the bug

Any update on this?

+1

They dont give a sh*t anymore to this bug. This is the reason why RN devs are going flutter.

Hey @kelset, how much time until Mid-Priority issues get fixed?

I don't know, as I mentioned previously:

AFAIK this issue is not in the roadmap - the best idea would be for someone actually concerned with this issue to investigate it more and submit a PR. A lot of work has been done to improve the PR to master timing so that would be the best way.

Also, we are trying to focus on getting an RC for 0.60 out this week, so 🤞, maybe it's fixed on master?

@AaaChiuuu ， I think it‘s not a good workaround. Demo without the bug just because header layout Animation do not affect scrollview.
https://snack.expo.io/@wuchangming/bad-donut-x

Unsubscribe
On Mon, May 27, 2019, 9:33 PM wuchangming<EMAIL_ADDRESS>wrote:

@AaaChiuuu https://github.com/AaaChiuuu ， I think it‘s not a good
workaround. Demo without the bug just because header layout Animation do
not affect scrollview.
https://snack.expo.io/@wuchangming/bad-donut-x
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/facebook/react-native/issues/21801?email_source=notifications&email_token=AMDLXR7PCPTSA7JG2ACPZWLPXSDWTA5CNFSM4F3TABE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWKXCLQ#issuecomment-496333102,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMDLXR6HQNBPNOT544GQFSLPXSDWTANCNFSM4F3TABEQ
.

@kelset I am using 0.59.8 version. This issue still persists. Is it fixed in 0.60?

In react-native version 0.64.0 this issue has been resolved as this commit has been merged to the master https://github.com/facebook/react-native/commit/f954f3d9b674b13977f722bc3b8dc6c1b99fe6c7

Has any idea for below 0.60.4?

@HarshitMadhav react-native version 0.64.0? you mean 0.60.4....?
The bug still persist on RN v0.60.4

@Albert0405 read out this comment https://github.com/react-native-community/releases/issues/130#issuecomment-519191161

I referenced this issue to the react-native latest discussions and got to know that this has been resolved in react-native version 0.64.4 refer here https://github.com/react-native-community/releases/issues/130#issuecomment-519191161

cc @benevbright

I just tried the latest RN, 0.60.5. But the issue is still happening.
Feel free to try this example.
https://github.com/benevbright/react-navigation-collapsible/tree/master/example
GIF

@HarshitMadhav  That commit had been merged since 0.47.

Why do you think that old commit is related to this issue?

Ok, I guess we totally misunderstood.
Thanks! @sunnylqm

@sunnylqm Yeah, I think we totally misunderstood these commits. Thanks!

Anyone has solution?

@benevbright, I'm implementing an application to document a component library I own.
In the app, the header is animated and I went through the same problem described here.
To solve the problem, I made the following adjustments to my component.
1 . Additional content is passed through the page to NavigationHeader via props
2. NavigationHeader looks at content height and tells page about new size
3. The page, which has ScrollView (or SectionList and etc), renders an empty element with this height received (a padding at the top), so the page does not use "transform: [{translateY: translateY} animation ] "(which is the source of the problem)
4. On the page, another aesthetic adjustment was to remove the vertical scroll bars (showsVerticalScrollIndicator = {false}). In the future I intend to create a virtual scroll bar, just to allow the visual response to the user about the screen position, discounting the height of the empty component.
The implementation files (and most important lines) are:

https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/NavigationHeader.tsx#L264-L288
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/NavigationHeader.tsx#L232-L235
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/GradientHeader.tsx#L29-L54
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/GradientHeader.tsx#L69-L70

Below are two videos with the result, (you can also run the application https://github.com/nidorx/rn-components-ui/tree/master/example and see the result [still under development] for yourself)
AnimationHeader - https://youtu.be/IyThm01At1g
Page padding top -  https://youtu.be/kNwCq6xYEHQ

@nidorx
Hi, Thanks for the comment.
But your solution is off the topic.
Because you don't use translateY on ScrollView but gave top margin and translate "Header".
This bug is about using translateY on ScrollView.

@nidorx
Hi, Thanks for the comment.
Nice workaround.
But your solution is off the topic.
Because you don't use translateY on ScrollView but gave top margin and translate "Header".
This bug is about using translateY on ScrollView.

...so the page does not use "transform: [{translateY: translateY} animation ] "(which is the source of the problem)
It is not offtopic in reality, in the previous implementation I suffered from the same problem described, to solve the problem, I stopped using translateY and started using a padding at the top.

@nidorx
Yes, I understood.
But what I’m saying is that it’s a workaround.
And here we want this bug will be fixed so we can use translateY on ScrollView.

Hi !
Is there any update ?
I'm using expo SDK 35 so RN 0.59.8 and we still have this problem  using transform: [{ translateY: contentTranslate }] where contentTranslate is an interpolate() of Animated.Value

Hi there,
The problem seems to be related to the animation range of the interpolate function. There seems to be some kind of "resonance" in the scroll animation for certain relative values.
In my case (I am using it to make a header parallax effect), a simple workaround I found was to change the input range :
From
inputRange: [0,(HEADER_EXPANDED_HEIGHT-HEADER_HALF_HEIGHT)], to inputRange: [0,(HEADER_EXPANDED_HEIGHT-HEADER_HALF_HEIGHT)*1.5],
I then put some bottom padding to the Animated.Scrollview component: contentContainerStyle={{paddingBottom: 25}}
It is not very clean but it did the trick for me.

I ended up to look into RN android.
https://github.com/facebook/react-native/issues/15445#issuecomment-326680200
@janicduplessis
You pointed the place out where this bug started. Could you help us?

@kelset @janicduplessis
https://github.com/facebook/react-native/blob/0ef0d3167e291f31ce01ceb729df77cc679d2330/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.java#L39
We need to compose the current translateY value here.
Do you know how to get the android ScrollView's transitionY?
I tried using every member getter like this.getTransitionY() but couldn't get desired value.

any update regarding this issue. It persists on Android 0.60.6 when I use a collapsible header for a scrollview

"react-native": "0.61.5"
issue still persist

has anyone had the chance to test with the RC0 of 0.62?

@kelset Did we have some PR for this issue?

I don't know tbh, but between 0.61 and 0.62 there is a "delta" of commits of 1200, so there is a small chance that there is a fix. I haven't been paying close attention so I can't tell for sure. Maybe what you could check is (via github) the history for the folder that has the logic for the translation and see if any commit seems to be referring to it.

@kelset Ok, thanks for your response.

@kelset
on 0.62.0-rc.0
still persists.

any updates on this?

Could this be related to #27049?

@luco I dont think so as because this issue is active on android only in iOS it is working fine. The demo that you provided might be an another issue.

Any advance on this?

@benevbright Hello, I started using your react-navigation-collapsible unfortunately the bug on android where the header started to jump when scrolling slowly made it not suitable for production release. I made a hack way to avoid the "jumping bug" but i dont how to implement it on your library but i hope it helps
https://snack.expo.io/r1hwBv0wV - Here's the one with "Jumping Bug"
https://snack.expo.io/Hk34BPCDN - Here's the one without the bug
I just add the following style
position: 'absolute',
zIndex: 999,
top: 0

i dont know but i think the position: 'absolute' removes the bug

I thought it was nonsense, but it helped me! Animation became smooth on Android. Thank you!

@benevbright, I'm implementing an application to document a component library I own.
In the app, the header is animated and I went through the same problem described here.
To solve the problem, I made the following adjustments to my component.
1 . Additional content is passed through the page to NavigationHeader via props
2. NavigationHeader looks at content height and tells page about new size
3. The page, which has ScrollView (or SectionList and etc), renders an empty element with this height received (a padding at the top), so the page does not use "transform: [{translateY: translateY} animation ] "(which is the source of the problem)
4. On the page, another aesthetic adjustment was to remove the vertical scroll bars (showsVerticalScrollIndicator = {false}). In the future I intend to create a virtual scroll bar, just to allow the visual response to the user about the screen position, discounting the height of the empty component.
The implementation files (and most important lines) are:

https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/NavigationHeader.tsx#L264-L288
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/NavigationHeader.tsx#L232-L235
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/GradientHeader.tsx#L29-L54
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/GradientHeader.tsx#L69-L70

Below are two videos with the result, (you can also run the application https://github.com/nidorx/rn-components-ui/tree/master/example and see the result [still under development] for yourself)
AnimationHeader - https://youtu.be/IyThm01At1g
Page padding top - https://youtu.be/kNwCq6xYEHQ

This seems to be a reasonable solution. However, when it comes to pull to refresh, the pull to refresh indicator (little circle) won't surface because there is an empty block on the top. I haven't figure out a good way to handle that...

@benevbright, I'm implementing an application to document a component library I own.
In the app, the header is animated and I went through the same problem described here.
To solve the problem, I made the following adjustments to my component.
1 . Additional content is passed through the page to NavigationHeader via props
2. NavigationHeader looks at content height and tells page about new size
3. The page, which has ScrollView (or SectionList and etc), renders an empty element with this height received (a padding at the top), so the page does not use "transform: [{translateY: translateY} animation ] "(which is the source of the problem)
4. On the page, another aesthetic adjustment was to remove the vertical scroll bars (showsVerticalScrollIndicator = {false}). In the future I intend to create a virtual scroll bar, just to allow the visual response to the user about the screen position, discounting the height of the empty component.
The implementation files (and most important lines) are:

https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/NavigationHeader.tsx#L264-L288
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/NavigationHeader.tsx#L232-L235
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/GradientHeader.tsx#L29-L54
https://github.com/nidorx/rn-components-ui/blob/master/example/src/components/GradientHeader.tsx#L69-L70

Below are two videos with the result, (you can also run the application https://github.com/nidorx/rn-components-ui/tree/master/example and see the result [still under development] for yourself)
AnimationHeader - https://youtu.be/IyThm01At1g
Page padding top - https://youtu.be/kNwCq6xYEHQ

This seems to be a reasonable solution. However, when it comes to pull to refresh, the pull to refresh indicator (little circle) won't surface because there is an empty block on the top. I haven't figure out a good way to handle that...

Actually I solved the problem by applying contentInset and contentOffset for IOS and progressViewOffset for android. Note that for Android I added an additional on the top of the list as a place holder while for iOS, it is not needed. And everything works perfectly for me now.

@esdotzed could you please show a demo ? thx

@react-native-bot @shergin @hramos @sahrens this issue is not fixed till now, Please if possible will you guys look into this issue.
it's almost 2 years gone but still, this issue is open.

@react-native-bot @shergin @hramos @sahrens this issue is not fixed till now, Please if possible will you guys look into this issue.
it's almost 2 years gone but still, this issue is open.

Those who are looking for a solution to this issue, Just make your input range 2 times of that output range
like this
inputRange: [0, 2*HEADER_EXPANDED_HEIGHT],
outputRange: [0, -HEADER_EXPANDED_HEIGHT]

@react-native-bot @shergin @hramos @sahrens this issue is not fixed till now, Please if possible will you guys look into this issue.
it's almost 2 years gone but still, this issue is open.

Those who are looking for a solution to this issue, Just make your input range 2 times of that output range
like this
inputRange: [0, 2*HEADER_EXPANDED_HEIGHT],
outputRange: [0, -HEADER_EXPANDED_HEIGHT]

This works well on Android! Thanks :)

Same problem here. Multiplying input range by 2 is interesting, but it changes the behaviour of animation (slowing down animation). Is there a chance that there will be a fix to this problem?

Same problem here. Multiplying the input range by 2 is interesting, but it changes the behavior of animation (slowing down animation). Is there a chance that there will be a fix to this problem?

I don't exactly know how multiplying input range 2 times solving this issue but what you can do is that in final animation output you can multiply some value to get the desired result.
Example like if you want same input range and output range, you can use animation multiplication to multiply your final animation value with 2 and get desired value.

Same problem here. Multiplying input range by 2 is interesting, but it changes the behaviour of animation (slowing down animation). Is there a chance that there will be a fix to this problem?

Yes, @vikasg603 is right.
You have to play with the numbers until you reach the expected result! This has a little math :)

The problem is, that I want the same behavior on Android and iOS. On iOS it works perfectly, on Android not. When I multiply input by 2 it works better (but still there is flickering). It works even better when I multiply input by 4...
const scrollY = useRef(new Animated.Value(0)).current;

const headerTranslateY = scrollY.interpolate({
  inputRange: [0, 2 * HEADER_SCROLL_DISTANCE],
  outputRange: [0, -HEADER_SCROLL_DISTANCE],
  extrapolate: 'clamp',
});

What I mean, is by doing that (with hiding header) i do slow down the animation, meaning the header is hiding slower. When I multiply my output to make it faster I'm back in the point where there is a lot of flickering - screen is jumping.
  const scrollY = useRef(new Animated.Value(0)).current;

  const headerTranslateY = scrollY.interpolate({
    inputRange: [0, 2 * HEADER_SCROLL_DISTANCE],
    outputRange: [0, -2 * HEADER_SCROLL_DISTANCE],
    extrapolate: 'clamp',
  });

Finally for your desired result multiply your headerTranslateY with some desired number so your final answer will be something like
const scrollY = useRef(new Animated.Value(0)).current;
const headerTranslateY = scrollY.interpolate({
inputRange: [0, 2 * HEADER_SCROLL_DISTANCE],
outputRange: [0, -2 * HEADER_SCROLL_DISTANCE],
extrapolate: 'clamp',
})
const headerTranslateYNew = Animated.multiply(headerTranslateY, 2); //Check this multiply by 2
Note : I am not sure about this, You have to try this by yourself.

Unfortunately the result is the same as before - jumping screen... But thanks for your answers @vikasg603

iOS

Android

iOS

Android

iOS was never a problem, but it was android which was causing the issue,
I also don't have any other suggestion If it's not working :(

I still stuck on android. Anyone have solutions for this ?

Same issue here... hic hic. Hope they will fix it soon

any update pls

The issue still exists on rn 0.63

Dissapointed. The issue still open for more than two years...
I think this framework is dead.

Dissapointed. The issue still open for more than two years...
I think this framework is dead.

try this:
const headerHeight = isIos() ? HeaderHeight : HeaderHeight * 2;

For me also HeaderHeight * 1.2 helped, which put it in the range of the acceptable

Still happening in RN 0.63 😬

Any workaround for this issue?
Does anyone have a working example to share?

I can't believe such a fundamental mobile app feature can't be handled due to a bug that's been around for ages. It 2021, this thing is still unsolved. I am wowed.

It can be a little tricky but try to avoid set translate prop to FlatList`s style, or component that wrap Flatlist, jumps will disappear. For adding empty space before first item you can set contentContainer={{paddingTop:}}. It was in my case, hope this help someone.

It can be a little tricky but try to avoid set translate prop to FlatList`s style, or component that wrap Flatlist, jumps will disappear. For adding empty space before first item you can set contentContainer={{paddingTop:}}. It was in my case, hope this help someone.

whether you can give an example of his code

Has anyone tested this one RN 0.64?

Has anyone tested this on RN 0.64?

Yup, still the same :(((((

The problem isn't in android but lies somewhere in your code which deals with the height values. You can, smoothly transform, translateY number of Animated.Views simultanously e.g. Header view, middle view, bottom view using Pan, ScrollView or Flatlist.
Note: You cannot animate using height property while using useNativeDriver: true, it should be false.

Interpolation negative outputRange value should be less than equllTo inputRange value e.g. iR:[0, 200], oR:[0, -199]. Always greater than -201 and less than 200.
Adjust paddingBottom in contentContainerStyle. You need to make it sure virtually that you have same invisible height as the visible scrolling area.
useNativeDriver: true

any luck ?

Dissapointed. The issue still open for more than two years...
I think this framework is dead.

try this:
const headerHeight = isIos() ? HeaderHeight : HeaderHeight * 2;

try this workaround, you can even *4 for smoother

The problem isn't in android but lies somewhere in your code which deals with the height values. You can, smoothly transform, translateY number of Animated.Views simultanously e.g. Header view, middle view, bottom view using Pan, ScrollView or Flatlist.
Note: You cannot animate using height property while using useNativeDriver: true, it should be false.

Interpolation negative outputRange value should be less than equllTo inputRange value e.g. iR:[0, 200], oR:[0, -199]. Always greater than -201 and less than 200.
Adjust paddingBottom in contentContainerStyle. You need to make it sure virtually that you have same invisible height as the  sum of visible animating items area.
useNativeDriver: true

I've these value and isn't smooth ...
    const flatListTop = scrollY.interpolate({
        inputRange: [0, 200],
        outputRange: [0, -190],
        extrapolate: 'clamp',
    });

Any idea?

I can confirm this issue still persists on 0.64.2.
It's a real bummer because we can't implement our chosen designs on Android meanwhile they work perfectly well on iOS. 😢 Hoping this issue gets the attention it deserves, as animations are quickly becoming a standard in react native dev's toolkits. I'm still seeking a useful workaround, I will share if/when that comes around!

0.65, still an problem :(

anyone fixed?

Having a similar problem currently with an Animated.View that uses translateY.
It jumps about when the page reloads or anything causes it to update.
https://user-images.githubusercontent.com/83917938/140329992-0416d629-a2e6-43dc-b3c3-6175ccae0a9e.mp4

0.66.3 same

Are there any PRs open to try and fix this? Or commits already on master?

nope

I was trying to implement collapsible header and meet this dumb problem on Android. No matter what I use to animate ScrollView (paddingTop, translateY, height). This is quite serious bug and it exists for a really long time, I don't believe that using react-native I cannot implement such an easy animation on Android...
It has redproduced since 2017: https://github.com/facebook/react-native/issues/15445
If there aren't any blocks, contributors please pay attention to this problem

@Deodes maybe you could try   react-native-reanimated instead of Animated ?

Any updates on this? Just ran into this problem on react-native 0.69.5.

can not make animatable header with Tab View
due to this bug

we are in 2023 and still a bug, the UI gets vibrated while scrolling on the Android platform RN 0.71.4
when this bug may be resolved !!

we are in 2023 and still a bug, the UI gets vibrated while scrolling on the Android platform RN 0.71.4
when this bug may be resolved !!
i hope to be resolved as soon as possible, it's critical one

+1

It's really weird that this bug still exist till the day, I'm not a senior but I managed to overcome it like that so I noticed that the scrollview was bouncing by the height of the translateY, so you can use these conditions on android also you will need the marginBottom on the view of the list to hide the white part on the bottom when translating hope this will help.
  const scrollY = useSharedValue(0);
  const headerHeight = 90; // Height of the header
  const progress = useSharedValue(0);
  const translateTheshold = 50; // Threshold to start the animation
  const scrollHandler = useAnimatedScrollHandler(event => {
    const offsetY = event.contentOffset.y;

    // scroll down
    if (offsetY > scrollY.value && progress.value === 0) {
      if (offsetY > translateTheshold) {
        progress.value = withTiming(1, {
          duration: 500,
        });
        // subtract header height to scrollY value to fix android bounce issue
        scrollY.value =
          scrollY.value - headerHeight < 0 ? 0 : scrollY.value - headerHeight;
      }
      // scroll up
    } else if (offsetY < scrollY.value && progress.value === 1) {
      // add header height to scrollY value to fix android bounce issue
      scrollY.value = scrollY.value + headerHeight;
      progress.value = withTiming(0, {
        duration: 500,
      });
    }

    scrollY.value = withTiming(offsetY);
  });

  const translateYStyle = useAnimatedStyle(() => {
    return {
      transform: [
        {
          translateY: interpolate(
            progress.value,
            [0, 1],
            [0, -headerHeight],
            Extrapolate.CLAMP,
          ),
        },
      ],
    };
  });

 <ScreenContent style={styles.ph0}>
      <HorizontalPaddingView>
        <Animated.View
          style={[
            {
              backgroundColor: 'red',
              height: 90,
              alignItems: 'center',
              justifyContent: 'center',
            },
            translateYStyle,
          ]}>
          <Text preset="header">{t('claim.summary.heading')}</Text>
      </HorizontalPaddingView>

      <Animated.View
        style={[{flex: 1, marginBottom: -headerHeight}, translateYStyle]}>
        <AnimatedFlashList
          showsVerticalScrollIndicator={false}
          bounces={false}
          scrollEventThrottle={16}
          onScroll={scrollHandler}
          data={claim.attributes.groups}
          renderItem={renderItem}
          estimatedItemSize={350}
        />
      </Animated.View>
  </ScreenContent>

@MDG-MMeksasi could you explain how your solution works? I'm having a hard time trying to understand

I'm facing this same issue on RN 0.71.5

@jvfalco1 @caiopngoncalves did you try my solution? could you try it please

@MDG-MMeksasi Yeah, It works. I just wanted to understand more about the problem

@jvfalco1 @caiopngoncalves did you try my solution? could you try it please just to see if it works properly

Actually dont, because Im facing the same issue but Im not translating it, Im reducing the Height of the component.

it should be better if you target translateY, otherwise it should always be laggy on android

@MDG-MMeksasi Even with translation I get the same error, Unfortunately I have to use the height. Unfortunately I think ill not be able to fix this

+1

Any answer for this? It since 5 years and still don't see the solution

.


[REVAMP]: Event Space Cards || Event space Event Detail page

Modify color grading on cards on explore event page
Modify color scheme on event-space-explore/spaceId page
revamped the design
add icons

Okay correct @MastanSayyad


replace MUPQ namespace with PQCA

Removed MUPQ namespace, and replace them with PQCA namespace in test files

I don't think we need these macros anymore. We don't have multiple cryptosystems, so there is no need to pass the namespace via this compiler flag. You can simply remove it entirely and use a fixed name space.
Please go for something like MLKEM_CRYPTO_BYTES or something like that.
You may also want to replace the KYBER_NAMESPACE(x) with MLKEM_NAMESPACE(x) and all parameters called KYBER_x with MLKEM_x

I've replaced all occurence of kyber into mlkem. Please review again for me, thanks!
And, actually I am wondering if the following macros are needed ?
https://github.com/pq-code-package/mlkem-c-embedded/blob/eaeb6d0a9327fbe912a30ae3a3e2e325f57b67b8/test/test.c#L8-L16


All file and folder permissions are set to 777 in new update, why?

By default all files and folders permissions are set to 777, why is that? I'm wondering this causes serious security risks. Plus I get error 500 when i tried to install the new version exactly because of these crazy pre-set 777 permissions.

You get an "Error 500" because of folder permissions ? That's more than odd :) Maybe you should (try) to explain the link between those two to myself ?
Oh, and by the way, if you have time... It would be great if you gave me a list of the software you wrote in your life and your expertise in development ? Just so I know the background of the person who come to make such critics !

So you're saying that all files and folders 777 pre-set doesn't look odd to you?

I'm not saying I'm a professional programmer, but this error caused by permissions, why I'm sure? because when I change the _install folder permission to 755 it's working. I'm just worry about all those 777 permissions on every single file and folders. It just looks very wrong to me.

@kevinbkk It is not because you do one thing and your problem goes away that you have found what caused it. At most have you did something that makes it go away :dancer:
If you'd take the time to read the documentation of pH7CMS then you would have already understood that some folder are needing to be 777 and others not.
https://ph7cms.com/doc
https://ph7cms.com/doc/en/install
That's what I call a RTFM case !

@kevinbkk It is not because you do one thing and your problem goes away that you have found what caused it. At most have you did something that makes it go away 💃
If you'd take the time to read the documentation of pH7CMS then you would have already understood that some folder are needing to be 777 and others not.
https://ph7cms.com/doc
https://ph7cms.com/doc/en/install
That's what I call a RTFM case !

Your install documentation says "all folders":
Warning, these permissions don't allow editing and creating files in the File Management admin module.
If you want to allow it, you need to set in numerical values 777 for all folders and 666 for all files.

The 500 error isn't related to the 777 permissions.
To see what are the reasons of your 500, please open _protected/data/log/php_error.log file and you should have more details in there.

Thanks for your answer. But my question is why should I give 777 permissions to all folders? Why in new update all folders and files has 777 permissions by default. These are my questions and still didn't get a clear answer.

@kevinbkk Go back and read the message that I wrote you.
You have your answer.
And even better, you have the installation instruction saying the permissions for folders.
If you extract a tar archive and get everything to 777 then take the time to read the tar manual to learn how to extract permissions or simply set them by hand.

Ok, so please fix this 2 line in your manual as it gives so much confusing:
Warning, these permissions don't allow editing and creating files in the File Management admin module.
If you want to allow it, you need to set in numerical values 777 for all folders and 666 for all files.

OK thanks, I do get guys. looks like the file manager system is not a critical module. So I will keep the 777 permissions limited to only those 10 folders suggested in installation manual.

Good @kevinbkk :) Good luck and all the best with your website Kevin :)


Surface all OSV schema fields on vulnerability details.

Right now the vulnerabilities page is missing rendering of several fields that are part of the OSV JSON.
E.g.

purl: https://ossf.github.io/osv-schema/#affectedpackage-field
per-range ecosystem/database_specific: https://ossf.github.io/osv-schema/#affectedecosystem_specific-field
Credits: https://ossf.github.io/osv-schema/#credits-fields
Severity: https://ossf.github.io/osv-schema/#severity-field
And probably more.

I'm planning to work on this issue.

Regarding per-range ecosystem/database_specific, if I understand it correctly, currently the both ecosystem_specific and database_specific are displayed if provided:
https://github.com/google/osv.dev/blob/0f4e0c28da6fd9535d483ab63584d60a925bb3b9/gcp/appengine/frontend3/src/templates/vulnerability.html#L133-L156
Do we need to expose top level database_specific field (https://ossf.github.io/osv-schema/#database_specific-field)?

Yes, we should expose the top level database specific field, though I'm not sure which entries have a top level database specific field.

Hi OSV team! Before creating a new issue, I would like to do a followup on the database_specific top-level field. It's still missing from the UI and several sources use it like:

Go vulns
OpenSSF format
GitHub Advisories

It would be great to have this top-level information available on the UI too. Thanks!

Thanks for pointing this out @litios ! We'll take a look.


docs : Update installation-deployments.md

Documentation : Update installation-deployments.md
Added steps of deployment for

Vercel
Fastly
AWS Lambda
Lambda@edge
Supabase Functions

Motivation:

Enhances ease for users (devs).

Deployed and tested portkey on

Supabase Function
Fastly

And added steps of deployment for the same.


[Website]:  Split custom.scss file into multiple files

Description
Subtask of #3820

This pull request addresses the issue described here:

Split custom.scss file into multiple .scss files into separate .scss files.

Import all back into custom.scss file.

Note: Live Sass Watcher Extension added a comment at the bottom of all CSS files. Left them there for now but please let me know if you want me to remove. This is ths reason there looks to be many files modified in this PR.
cc: @asafkorem

There is a problem. I expected that all the *.css would have gone away. Instead, I see good old CSS files along with the new SCSS files.
@moutro, could you explain how you ended up with these quasi-duplicates?

@noomorph - I believe that what I did was to keep the *.css files includig the custom.css file in the projects but should have deleted all of them since I am using the SASS plugin and also including it in the config file to point to the custom.scss file.  Based on this, I should have deleted the css files and will do so now. Thanks!


Remove plus_zero_test,plus_one_test from lit tests since they are no …

…longer needed.
I am going to leave in the infrastructure around this just in case. But there is
no reason to keep this in the tests themselves. I can always just revert this
and I don't think merge conflicts are likely due to previous work I did around
the tooling for this.

@swift-ci smoke test and merge

Just debug info lines need to be updated.

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge

@swift-ci smoke test and merge


verify_state_blocks() with a max is O(n)

verify_state_blocks() with a max parameter (added in #1450) is O(n)
with 1000000 items in the state_blocks deque it takes much more time to do the swap than with 10000 items, given the same "max" parameter

Relevant section: https://github.com/nanocurrency/raiblocks/blob/49b047d0c78c440cdd283cbdfb3f97bd09731446/rai/node/node.cpp#L1311

Here are my notes:
auto position = std::distance(state_blocks.begin(), state_blocks.end () - keep_size); => 2048
so swap_ranges gets to iterate the whole shebang minus max_count
that said, resize is taking even more time in my measurements depending on deque size


Compatibility with segment replication

Summary
With 2.9.0 release, there are lot of enhancements going in for segment replication[1][2] feature (went GA in 2.7.0), we need to ensure different plugins are compatible with current state of this feature. Previously, we ran tests on plugin repos to verify this compatibility but want plugin owners to be aware of these changes so that required updates (if any) can be made
What changed
1. Refresh policy behavior

RefreshPolicy.IMMEDIATE will only refresh primary shards but not replica shards immediately. Instead post refresh, primary will start  a round of segment replication to update the replica shard copies leading to eventual consistency.
RefreshPolicy.WAIT_UNTIL ensures the indexing operation is searchable in your cluster i.e. RAW (Read after write guarantee). With segment replication, this guarantee is not promised due to delay in replica shared updates from asynchronous background refreshes.

2. Refresh lag on replicas
With segment replication, there is inherent delay in documents to be searchable on replica shard copies. This is due to the fact that replica shard copies over data (segment) files from primary. Thus, compared to document replication, there will be on average increase in amount of time the replica shards are consistent with primaries.
3. System/hidden indices support
With https://github.com/opensearch-project/OpenSearch/pull/8200, system and hidden indices are now supported with SEGMENT replication strategy. We need to ensure there are no bottlenecks which prevents system/hidden indices with segment replication.
Next steps
With segment replication strong reads are not guaranteed. Thus, if the plugin needs strong reads guarantees specially as alternative to change in behavior of refresh policy and lag on replicas (point 1 and 2 above), we need to update search requests to target primary shard only. With https://github.com/opensearch-project/OpenSearch/pull/7375, core now supports primary shards only based search. Please follow documentation for examples and details
Open questions
In case of any questions or issues, please post it in core issue
Reference
[1] Design
[2] Documentation

Request owners to add v2.9.0 label on this issue.

Hi Plugin Owners,
Gentle reminder to look into this issue as code freeze date for 2.9.0 release is near i.e. July 11th.

Gentle reminder for plugin owners as we are past code freeze date for 2.9.0 release

similar to https://github.com/opensearch-project/observability/issues/1562#issuecomment-1696019563, reporting uses term search queries that already do not provide strong reads, closing

Thanks @joshuali925 for looking into this.
Caution: Please do verify that your plugin does not need strong reads. I am asking as it is still possible to have strong reads with queries you mentioned above by using IMMEDIATE refresh policy during indexing operations. I did a quick search in your repository but did not find references of IMMEDIATE usage. So, I suspect there is no action needed but I will leave it upto you to validate.


Get-ChildItem -Path $null returns current directory

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
Get-ChildItem -Path $null

Expected behavior
Some kind of error similar to other *Item CmdLets when Path is $null
Remove-Item -Path $null
Remove-Item: Cannot bind argument to parameter 'Path' because it is null.

Looking at the source this is not unexpected, but it can have some unexpected consequences.
Consider the following:
I have two folders setup like this:
C:\temp\saveeverythinghere> Get-ChildItem

    Directory: C:\temp\saveeverythinghere

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2022-07-28    15:08              0 SaveEverythingHere1.txt
-a---          2022-07-28    15:08              0 SaveEverythingHere2.txt
-a---          2022-07-28    15:08              0 SaveEverythingHere3.txt

C:\temp\saveeverythinghere> Get-ChildItem ..\deleteme\

    Directory: C:\temp\deleteme

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2022-07-28    15:08              0 DeleteMe1.txt
-a---          2022-07-28    15:08              0 DeleteMe2.txt
-a---          2022-07-28    15:08              0 DeleteMe3.txt

Now run this code:
$ScanExtensions = '.ps3'
$PathToDeleteFilesFrom = 'C:\temp\deleteme'

# This whill return 0 files
$ScanFiles = Get-ChildItem $PathToDeleteFilesFrom -File -Recurse | Where-Object -Property Extension -in $ScanExtensions

# This will now remove _all_ files in $PWD
Get-ChildItem $ScanFiles.FullName | Remove-Item

(In this very hypothetical scenario we can solve it using Set-StrictMode -Version 7.2 to get $ScanFiles.FullName to throw an error, but I still think it's unexpected.)
Actual behavior
Get-ChildItem -Path '.'

Environment data
PSVersion                      7.2.5
PSEdition                      Core
GitCommitId                    7.2.5
OS                             Microsoft Windows 10.0.22622

Visuals

Unlike remove-item  (rm / del)  and copy-item (cp / copy)  The  Get-item and Get-ChildItem  commands (dir / ls) work without any parameters so inside the command path being null/empty selects the current directory.
This does not, of itself, prevent the Path parameter from rejecting null/empty input.  However there will be many things out there which look like this
function myfn  {
    param (
        #omit for current directory
        [String]$MyPathParmeter
    )

    # blah blah blah
    Get-ChildItem $MyPathParameter
# blah blah blah
}

By not rejecting null/empty values Get-ChildItem saves whoever writes that script from having to either default $MyPathParmeter to $pwd, or change how Get-ChildItem is called depending on whether the parameter is passed.  I would expect many scripts to rely on this behaviour.
Of course if the line is   Get-ChildItem $MyPathParameter | remove-item  the way of working we have requires the script author to check that the value isn't null or empty.

It's a breaking change. ls $nonExistingVar" in bash and dir %nonExisting%` in cmd behaves the same.

@jhoneill I'm sure someone has done it intentionally but I doubt it's common.
Most built-in Get commands don't allow you to provide a null value to the "target" parameter, Get-Disk, Get-Process, Get-Service, Get-NetAdapter, Get-Vm all fail if you try to use null. I honestly can't think of any command besides Get-ChildItem that has this odd behavior.
When basically every other command forces the user to validate, or set a default value in their function I would expect most users to develop a habit of doing it like this.
IMO it's more likely that someone is negatively impacted by this due to a variable typo or whatever than someone intentionally wanting/expecting it to default to $pwd when given a null value.

It's a breaking change. ls $nonExistingVar in bash and dir "" (not entirely the same) in cmd behaves the same.

I am very much aware of this as it changes a default behaviour. In fact, I do not really expect this behaviour to change or be fixed, but I am very curious as to why this decision was made.

The Get-item and Get-ChildItem commands (dir / ls) work without any parameters so inside the command path being null/empty selects the current directory.

@jhoneill Get-Item not only does not have the same behaviour.
It also makes a difference between $null and [string]::Empty, something I think Get-ChildItem also could do (Assuming there is a valid reason to list folder contents in a folder with no name for example.)

@jhoneill Get-Item not only does not have the same behaviour. It also makes a difference between $null

Sorry brain fade on my part.  Of course only Get-Childitem works with no path.
Get-ChildItem  could have been designed to reject null or empty, but it wasn't. And over the last 15 years a decent number of scripts have been written which depend on the present behaviour. So this is breaking change where the benefit is small. (@MartinGC94  we can argue how big the number is but the example I gave of one natural way to write it - i.e. not splatting ps bound params will pass an empty string if the parameter is not specified, and so will be break if empty is rejected, so I think its a breaking change which would have quite a wide effect)

WG-Engine discussed this today.
The original intent here (if there was any) is not fully remembered, but folks echoed the points raised before here around similarity to ls or dir commands that behave similarly.
Given the change here would be a breaking one, and that it is generally a bit of an edge case, we aren't confident we should go ahead and fix this. It's also mostly a non-issue; it's fairly trivial to do one's own validation in a script before calling Get-ChildItem in most cases, either with an if statement or a Where-Object in a pipeline to discard or otherwise ignore null values.
We understand the discomfort for inconsistency and occasional confusion this behaviour can sometimes cause, but our consensus is that the benefit from the change here isn't compelling enough for this breaking change to be acceptable.


Added storyboard / xib support

Added initWithCoder: initializer
extracted configuration code into new method

has been added in develop branch, so i think i can close this one ;)

When will xib support be ready for the master branch?
Or can i use the developers branch, too?
Really nice piece of work btw. :)

We'll merge the develop branch in the master one soon... just a few details to sort out first.
You wouldnt advice using the develop branch as we might change the APIs and that might just piss you off ;)


item js rearrangement

@evanwill I've rearranged and added parameters to functions in item-js. I think this will work for sheets now? Try it out and let me know!

Thanks @owikle, definitely still a monster... I tweaked some stuff to make it directly compatible with Sheets--and it works! porting to Sheets now.

@owikle can you review what I did just to check again for bugs.

@evanwill looks great to me! Functionality all seems the same. I think it's ready for merging.


[nanoflann] update to 1.5.0

Fixes #32055.

Update nanoflann to 1.5.0.
The following error occurred when testing usage, so add dependency Threads for nanoflannConfig.cmake.

1> [CMake] CMake Error at E:/vcpkg01/installed/x64-windows/share/nanoflann/nanoflannTargets.cmake:60 (set_target_properties):
1> [CMake]   The link interface of target "nanoflann::nanoflann" contains:
1> [CMake]
1> [CMake]     Threads::Threads
1> [CMake]
1> [CMake]   but the target was not found.  Possible reasons include:
1> [CMake]
1> [CMake]     * There is a typo in the target name.
1> [CMake]     * A find_package call is missing for an IMPORTED target.
1> [CMake]     * An ALIAS target is missing.
1> [CMake]
1> [CMake] Call Stack (most recent call first):
1> [CMake]   E:/vcpkg01/installed/x64-windows/share/nanoflann/nanoflannConfig.cmake:27 (include)
1> [CMake]   E:/vcpkg01/scripts/buildsystems/vcpkg.cmake:853 (_find_package)
1> [CMake]   CMakeFindUsage/CMakeLists.txt:15 (find_package)
1> [CMake] -- Generating done (0.0s)

The API changes of nanoflann caused two errors when installing the downstream pdal, which were fixed in fix-dependency.patch. Reported upstream: https://github.com/PDAL/PDAL/issues/4081

E:\vcpkg01\buildtrees\pdal\src\2.5.3-f9d28ae14f\pdal\private/KDImpl.hpp(100): error C2039: 'SearchParams': is not a member of 'nanoflann'
E:\vcpkg01\buildtrees\pdal\src\2.5.3-f9d28ae14f\pdal\private/KDImpl.hpp(100): error C3861: 'SearchParams': identifier not found

E:\vcpkg01\buildtrees\pdal\src\2.5.3-f9d28ae14f\pdal\private/KDImpl.hpp(128): error C2664: 'unsigned __int64 nanoflann::KDTreeSingleIndexAdaptor<nanoflann::L2_Simple_Adaptor<double,pdal::KD2Impl,double,uint32_t>,pdal::KD2Impl,-1,size_t>::radiusSearch(const double *,const double &,std::vector<nanoflann::ResultItem<IndexType,double>,std::allocator<nanoflann::ResultItem<IndexType,double>>> &,const nanoflann::SearchParameters &) const': cannot convert argument 3 from 'std::vector<std::pair<size_t,double>,std::allocator<std::pair<size_t,double>>>' to 'std::vector<nanoflann::ResultItem<IndexType,double>,std::allocator<nanoflann::ResultItem<IndexType,double>>> &'
        with
        [
            IndexType=size_t
        ]

No feature needs to be tested, the usage test passed (header files found):

nanoflann provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(nanoflann CONFIG REQUIRED)
    target_link_libraries(main PRIVATE nanoflann::nanoflann)

[X] Changes comply with the maintainer guide
[X] SHA512s are updated for each updated download
[ ] The "supports" clause reflects platforms that may be fixed by this new version
[ ] Any fixed CI baseline entries are removed from that file.
[ ] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

I don't understand the need for this patch to PDAL. While we haven't updated the vendored nanoflann inside of PDAL for two+ years, it shouldn't be necessary to update our KDtree implementation to use a newer system-available nanoflann. Something is causing the system-available nanoflann to be scooped up as an include before the vendored one. Some local testing shows this doesn't happen for me on OSX with a condaforge install of a public nanoflann.

@hobu It is very simple: The vcpkg port replaces the vendored copy with vcpkg's nanoflann port.

The vcpkg port replaces the vendored copy with vcpkg's nanoflann port.

Ok, Monica's ticket wasn't explicit the packager was swapping out nanoflann instead of implying that there was some kind of confusion with a system-installed nanoflann and what PDAL has vendored. This caused me to spend time to investigate the issue. I would not have bothered if I had known you were essentially trying to update the vendored version.
As for updating the vendored nanoflann, I tried this about 10 months ago and found the new version was 30% slower for PDAL's usage. Package systems like vcpkg having policy to go run the last version of whatever vendored software a package might provide is not always the best policy. This is one of those cases.

As far as I can see PDAL doesn't move the vendored copy's symbols into a private namespace. I

We do that for nlohmann, which PDAL also vendors. I would expect it wouldn't be difficult to do that for nanoflann, and I have ticketed it at https://github.com/PDAL/PDAL/issues/4085

I hope you reported the performance problem to nanoflann.

No I didn't. nanoflann's recent development tact has kind of de-emphasized the nano part 😄 Our vendored nanoflann usage had been working fine for years, so we were happy to leave it alone.

As far as I can see PDAL doesn't move the vendored copy's symbols into a private namespace.

Can you show me how this is true? My investigation showed that we bury the nanoflann usage in a private class that isn't exported https://github.com/PDAL/PDAL/blob/master/pdal/private/KDImpl.hpp

I doubt I can show this. What I tried to say before is that there may be no actual problem here in the particular case of PDAL. It has a combination of dynamic linkage, private classes and hidden visibility by default.
In general, there are good reasons to be concerned about vendored copies which haven't been updated in three years, and about packages which come with vendored copies of multiple packages.


Merge doesn't trigger new Deployment - single commit is working

When we merge from develop branch to master the deployment isn't triggered.
When we do a commit direct in master branche the commit is recognized and deployment is triggered.
Here you can already find the different events fired from codecomit to SNS:
Event for merge:
	"Records": [
		{
			"awsRegion": "eu-central-1",
			"codecommit": {
				"references": [
					{
						"commit": "8be857ce6952d0592ed2fe700fd1cd6f90515db7",
						"ref": "refs/heads/develop"
					},
					{
						"commit": "39c28e6accc49c317843ee88c78d20512a82fd76",
						"ref": "refs/heads/master"
					}
				]
			},

Event for single commit
	"Records": [
		{
			"awsRegion": "eu-central-1",
			"codecommit": {
				"references": [
					{
						"commit": "c76f39a77e221bba9af9a063c498fa3f376c7b61",
						"ref": "refs/heads/master"
					}
				]
			},

I assume that the references are not correct interpreted by the called endpoint https://tbm3nwvot5.execute-api.eu-central-1.amazonaws.com/Prod/codecommit

Hello @chkrause,
We have a fix in the pipeline for this, will let you know once its deployed.

Hello @chkrause,
We have a fix in the pipeline for this, will let you know once its deployed.

@abhi7cr Any word on the fix for this? Or any recommended workarounds?

@abhi7cr Not sure if it's the same problem, but my latest commit hasn't triggered a commit in my project either. Can you provide a status and or workaround?

Hi @chkrause @treywhite21 @palfvin - following up here, are you still facing this issue? Let me know, otherwise I will go ahead and mark it as closed.

Sorry, I've pretty much abandoned this app, so couldn't tell you if it's
still a problem. I personally have no objections to closing it.
On Thu, Jun 8, 2023 at 3:33 PM Dan Kiuna @.***> wrote:

Hi @chkrause https://github.com/chkrause @treywhite21
https://github.com/treywhite21 @palfvin https://github.com/palfvin -
following up here, are you still facing this issue? Let me know, otherwise
I will go ahead and mark it as closed.
—
Reply to this email directly, view it on GitHub
https://github.com/aws-amplify/amplify-hosting/issues/1500#issuecomment-1583484706,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQ2VU6WXTM2HFRKLAMWYZ3XKJHLDANCNFSM4WSHTNNQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Feel free to close. I've switched courses as well.

I’m fine if you close it.


CallFile fails using Context instead of Action

In callfile.py line 71 is_valid returns false when a  Context is passed as Action
           if not isinstance(self.action, Action):
                   return False

It's been a while since I've worked on this -- should it be:
if not (isinstance(self.action, Action) or isinstance(self.context, Context))
    return False

?

Close... but self.context does not exist - this works:
if not (isinstance(self.action, Action) or isinstance(self.action,

Context)):
return false

On Fri, Apr 3, 2015 at 2:44 PM, Randall Degges<EMAIL_ADDRESS>wrote:

It's been a while since I've worked on this -- should it be:
if not (isinstance(self.action, Action) or isinstance(self.context, Context))
return False
?
—
Reply to this email directly or view it on GitHub
https://github.com/rdegges/pycall/issues/8#issuecomment-89387225.

Thanks, I'm going to work on this a bit later and get it sorted out. Been a longgg time since I hacked on this project, so going to clean up some of the old cruft while I'm at it.

Works great with that small change. I just completed a python cgi script that allows my security system to call me when there is an issue. Thanks. Good work.

Just pushed this fix, and cut a new release. If you install the latest version this will work =)