Usage of ExactSizeIterator is incorrect

The other day, I noticed the following in the docs for ExactSizeIterator:

Note that this trait is a safe trait and as such does not and cannot guarantee that the returned length is correct. This means that unsafe code must not rely on the correctness of Iterator::size_hint. The unstable and unsafe TrustedLen trait gives this additional guarantee.

Unfortunately, we currently rely on the correctness of the length of ExactSizeIterator in PyTuple::new and PyList::new to assume that we are filling all the elements of the newly-created list (or tuple).
Instead, I guess we should track the number of elements we've inserted and the current container of the list / tuple, and then ensure that when we hit the capacity of the container we do a few things:

For tuples, we can use _PyTuple_Resize to grow the allocation manually
For lists, we probably just fall back to using PyList_Append

Similarly, when the iterator is exhausted we may need to shrink the allocation down so there's no uninitialized elements in the tail of the container. For tuples, this again works with _PyTuple_Resize. For lists, I'm not sure - we might need to fill the tail of the list with None for safety reasons and then slice the list to create a new list of the correct size. That seems a bit painful so maybe there's a better idea.
Unfortunately this will be a de-optimization of our tuple / list creation code, but I think it's necessary. On the upside, we can switch from ExactSizeIterator to just Iterator bound on PyTuple::new and PyList::new, allowing them to construct from more types!
If someone wants to take this on, might be a nice fun algorithmic one :)

It looks like we're also leaking memory if a ToPyObject implementation panics. And we're not checking whether PyList/Tuple_New returns null.

Unfortunately this will be a de-optimization of our tuple / list creation code

I imagine the majority of implementations start from vectors or slices, which have correct ExactSizeIterator implementations, and don't need this. Therefore I am inclined to just check whether ExactSizeIterator was truthful, and panic if it isn't.

Therefore I am inclined to just check whether ExactSizeIterator was truthful, and panic if it isn't.

Indeed. While unsafe code cannot rely on that length being correct, I would still call it a logic bug if it is hence a panic seems more appropriate than trying to fix things up at runtime.

I think you folks are correct, let's just add assertions and also guard against memory leaks on panics 👍

(if anyone wants to claim this please feel welcome, otherwise I'll do it in a couple weeks time as one of the last bits before releasing 0.16)

I wrote a bunch of tests we'll want :) I don't have time  to fix the implementation though, I'm really busy this weekend.
use pyo3::prelude::*;
use pyo3::types::PyList;

use std::ops::Range;

struct FaultyIter(Range<usize>, usize);

impl Iterator for FaultyIter {
    type Item = usize;

    fn next(&mut self) -> Option<Self::Item> {
        self.0.next()
    }
}

impl ExactSizeIterator for FaultyIter {
    fn len(&self) -> usize {
        self.1
    }
}

#[test]
#[should_panic(
    expected = "Attempted to create PyList but `elements` was larger than reported by its `ExactSizeIterator` implementation."
)]
fn buffer_overrun() {
    Python::with_gil(|py| {
        let iter = FaultyIter(0..usize::MAX, 73);
        let _list = PyList::new(py, iter);
    })
}

#[test]
#[should_panic(
    expected = "Attempted to create PyList but `elements` was smaller than reported by its `ExactSizeIterator` implementation."
)]
fn get_null() {
    Python::with_gil(|py| {
        let iter = FaultyIter(0..35, 73);
        let _list = PyList::new(py, iter);
    })
}

#[test]
#[should_panic(expected = "todo")]
fn overflowing_size() {
    Python::with_gil(|py| {
        let iter = FaultyIter(0..0, usize::MAX);

        // Should cause `PyList_New` to return NULL
        let _list = PyList::new(py, iter);
    })
}

#[test]
fn bad_clone() {
    use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};

    static NEEDS_DESTRUCTING_COUNT: AtomicUsize = AtomicUsize::new(0);

    #[pyclass]
    struct Bad(usize);

    impl Clone for Bad {
        fn clone(&self) -> Self {
            if self.0 == 42 {
                panic!()
            };
            NEEDS_DESTRUCTING_COUNT.fetch_add(1, SeqCst);

            Bad(self.0)
        }
    }

    impl Drop for Bad {
        fn drop(&mut self) {
            NEEDS_DESTRUCTING_COUNT.fetch_sub(1, SeqCst);
        }
    }

    impl ToPyObject for Bad {
        fn to_object(&self, py: Python) -> Py<PyAny> {
            self.to_owned().into_py(py)
        }
    }

    struct FaultyIter(Range<usize>, usize);

    impl Iterator for FaultyIter {
        type Item = Bad;

        fn next(&mut self) -> Option<Self::Item> {
            self.0.next().map(|i| {
                NEEDS_DESTRUCTING_COUNT.fetch_add(1, SeqCst);
                Bad(i)
            })
        }
    }

    impl ExactSizeIterator for FaultyIter {
        fn len(&self) -> usize {
            self.1
        }
    }

    Python::with_gil(|py| {
        let _ = std::panic::catch_unwind(|| {
            let iter = FaultyIter(0..50, 50);
            let _list = PyList::new(py, iter);
        });
    });

    assert_eq!(
        NEEDS_DESTRUCTING_COUNT.load(SeqCst),
        0,
        "Some destructors did not run"
    );
}

you folks are correct, let's just add assertions and also guard against memory leaks on panics 👍

We can do a "clever" implementation that doesn't need ExactSizeIterator and also have an optimized impl using TrustedLen, if (ever) that hits stable.


A records are supported as well

A Records are supported as well (at least it works)
If you choose to create a record in Azure DNS you can select the "Alias Record Set" and select your Azure Front Door.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0b19a24a-e9e6-0296-69b2-d1fead57c16c
Version Independent ID: 9d0164f0-1b82-439d-c32d-c93a4c56f314
Content: Tutorial - Add custom domain to your Azure Front Door configuration
Content Source: articles/frontdoor/front-door-custom-domain.md
Service: frontdoor
GitHub Login: @sharad4u
Microsoft Alias: sharadag

@whaakman , Thanks for reaching out. We will investigate and update this thread.

@whaakman, Appreciate your patience. Yes, Azure DNS can be used to create an alias record for zone apex here is the link for more info.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


HBASE-25307 ThreadLocal pooling leads to NullPointerException (#2685)

PoolMap does not discard any elements anymore. If an element is put,
it always stores it. The reason: it stores expensive resources (rpc
connections) which would lead to resource leak if we simple discard it.
RpcClients can reference netty ByteBufs which are reference counted.
Resource cleanup is done by AbstractRpcClient.cleanupIdleConnections().
PoolMap does not implement Map interface anymore, so ensuring
thread-safety has become easier. Put method is replaced with getOrCreate().
ThreadLocalPool doesn't use ThreadLocal class anymore. It stores
resources on thread basis, but it doesn't remove values when a thread
exits. Again, proper cleanup is done by cleanupIdleConnections().

Signed-off-by: Sean Busbey<EMAIL_ADDRESS>Signed-off-by: Wellington Chevreuil<EMAIL_ADDRESS>

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 39s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  1s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
3m 43s
branch-2 passed

+1 :green_heart:
checkstyle
0m 33s
branch-2 passed

+1 :green_heart:
spotbugs
1m  9s
branch-2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 14s
the patch passed

-0 :warning:
checkstyle
0m 33s
hbase-client: The patch generated 36 new + 3 unchanged - 8 fixed = 39 total (was 11)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
11m 34s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1.

+1 :green_heart:
spotbugs
1m 14s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 14s
The patch does not generate ASF License warnings.

30m 17s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2709

Optional Tests
dupname asflicense spotbugs hadoopcheck hbaseanti checkstyle

uname
Linux bac271b2b4bf 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / 3dd425abfa

checkstyle
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-client.txt

Max. process+thread count
94 (vs. ulimit of 12500)

modules
C: hbase-client U: hbase-client

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=3.1.12

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 55s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
4m 32s
branch-2 passed

+1 :green_heart:
compile
0m 32s
branch-2 passed

+1 :green_heart:
shadedjars
7m 45s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 31s
branch-2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m  8s
the patch passed

+1 :green_heart:
compile
0m 34s
the patch passed

+1 :green_heart:
javac
0m 34s
the patch passed

+1 :green_heart:
shadedjars
7m 32s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 33s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
2m 32s
hbase-client in the patch passed.

31m  6s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2709

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 86ffa0bdcff2 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / 3dd425abfa

Default Java
AdoptOpenJDK-1.8.0_232-b09

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/testReport/

Max. process+thread count
350 (vs. ulimit of 12500)

modules
C: hbase-client U: hbase-client

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 15s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
4m 47s
branch-2 passed

+1 :green_heart:
compile
0m 32s
branch-2 passed

+1 :green_heart:
shadedjars
7m 28s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 30s
branch-2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 28s
the patch passed

+1 :green_heart:
compile
0m 33s
the patch passed

+1 :green_heart:
javac
0m 33s
the patch passed

+1 :green_heart:
shadedjars
7m 23s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 27s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
2m 44s
hbase-client in the patch passed.

31m 28s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2709

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux d9e3afbf50d1 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / 3dd425abfa

Default Java
AdoptOpenJDK-11.0.6+10

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/testReport/

Max. process+thread count
218 (vs. ulimit of 12500)

modules
C: hbase-client U: hbase-client

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

I did the backport of the mentioned Jiras. This commint should be the same as my previous PR.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m  8s
Docker mode activated.

-0 :warning:
yetus
0m  8s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
3m 38s
branch-2 passed

+1 :green_heart:
compile
0m 27s
branch-2 passed

+1 :green_heart:
shadedjars
5m 58s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 26s
branch-2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 18s
the patch passed

+1 :green_heart:
compile
0m 27s
the patch passed

+1 :green_heart:
javac
0m 27s
the patch passed

+1 :green_heart:
shadedjars
5m 52s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 24s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
2m 14s
hbase-client in the patch passed.

25m 16s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2709

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 27c6d02e293a 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / 751b4f040e

Default Java
AdoptOpenJDK-1.8.0_232-b09

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/testReport/

Max. process+thread count
343 (vs. ulimit of 12500)

modules
C: hbase-client U: hbase-client

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 33s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
3m 37s
branch-2 passed

+1 :green_heart:
checkstyle
0m 34s
branch-2 passed

+1 :green_heart:
spotbugs
1m  9s
branch-2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 11s
the patch passed

-0 :warning:
checkstyle
0m 32s
hbase-client: The patch generated 34 new + 7 unchanged - 2 fixed = 41 total (was 9)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
11m 38s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1.

+1 :green_heart:
spotbugs
1m 14s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 15s
The patch does not generate ASF License warnings.

30m  1s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2709

Optional Tests
dupname asflicense spotbugs hadoopcheck hbaseanti checkstyle

uname
Linux 9274deb4e16a 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / 751b4f040e

checkstyle
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-client.txt

Max. process+thread count
94 (vs. ulimit of 12500)

modules
C: hbase-client U: hbase-client

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/console

versions
git=2.17.1 maven=3.6.3 spotbugs=3.1.12

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m  9s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
4m 49s
branch-2 passed

+1 :green_heart:
compile
0m 31s
branch-2 passed

+1 :green_heart:
shadedjars
7m 28s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
branch-2 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 28s
the patch passed

+1 :green_heart:
compile
0m 33s
the patch passed

+1 :green_heart:
javac
0m 33s
the patch passed

+1 :green_heart:
shadedjars
7m 27s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 28s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
2m 37s
hbase-client in the patch passed.

31m 20s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2709

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux e9423cfb5f0c 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / 751b4f040e

Default Java
AdoptOpenJDK-11.0.6+10

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/testReport/

Max. process+thread count
217 (vs. ulimit of 12500)

modules
C: hbase-client U: hbase-client

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2709/2/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


azure: Remove exposed env vars in Makefile

These comments are output as extrapolated values, there by exposing the env var's values. I think this can expose the secrets when run in CI environments. So these should be removed and some other mechanism should be used to report errors. Or simply remove the env vars as they are documented and used in CI code.
code that can expose sensitive information: https://github.com/confidential-containers/cloud-api-adaptor/blob/65ca44b149ea429b7d0ebbff9b288c35b8536633/azure/image/Makefile#L14-L17
Steps to recreate:
export AZURE_RESOURCE_GROUP="thisIsRg"
export AZURE_REGION="someregion"
export AZURE_CLIENT_ID="thisIsClientId"
export AZURE_CLIENT_SECRET="thisIsRandomSecret"
export AZURE_SUBSCRIPTION_ID="thisIsMySubscription"
export AZURE_TENANT_ID="andHereIsMyTenantId"

cd image
export PKR_VAR_resource_group="${AZURE_RESOURCE_GROUP}"
export PKR_VAR_location="${AZURE_REGION}"
export PKR_VAR_subscription_id="${AZURE_SUBSCRIPTION_ID}"
export PKR_VAR_client_id="${AZURE_CLIENT_ID}"
export PKR_VAR_client_secret="${AZURE_CLIENT_SECRET}"
export PKR_VAR_tenant_id="${AZURE_TENANT_ID}"

# Optional
# export PKR_VAR_az_image_name="REPLACE_ME"
# export PKR_VAR_vm_size="REPLACE_ME"
# export PKR_VAR_ssh_username="REPLACE_ME"

export CLOUD_PROVIDER=azure
PODVM_DISTRO=ubuntu make image && cd -

Output
...
warning: the following packages contain code that will be rejected by a future version of Rust: lalrpop v0.19.8
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 28`
make[1]: Leaving directory '/home/surajaz/code/work/kata-containers/src/agent'
install -D --compare "../../../kata-containers/src/agent/target/x86_64-unknown-linux-musl/release/kata-agent" "/home/surajaz/code/work/cloud-api-adaptor/podvm
/files/usr/local/bin/kata-agent"
mkdir -p toupload
# export the required packer variables as PKR_VAR_<var_name>
# export PKR_VAR_client_id="thisIsClientId"
# export PKR_VAR_client_secret="thisIsRandomSecret"
# export PKR_VAR_subscription_id="thisIsMySubscription"
# export PKR_VAR_tenant_id="andHereIsMyTenantId"
# export PKR_VAR_resource_group="thisIsRg"
# export PKR_VAR_location=""
# export PKR_VAR_az_image_name="podvm-0927a70-amd64"
# export PKR_VAR_vm_size=""
# export PKR_VAR_ssh_username=""
# export PKR_VAR_az_gallery_name="caaubntcvmsGallery"
# export PKR_VAR_az_gallery_image_name=""
# export PKR_VAR_az_gallery_image_version=""
packer build ./ubuntu/
...

The funny thing is I cannot recreate this one on the staging branch but I sure can do that on the branch azure-cvm-boot. I couldn't figure out why it happens only while trying to test this PR: https://github.com/confidential-containers/cloud-api-adaptor/pull/861

to be on the safer side, we can just remove the assignments and use "REPLACE_ME"


SW-2878 Notify admins when reports are created

Generate email and in-app notifications when a new report is created. The
notifications only go to owners and admins, not to managers and contributors.

Current dependencies on/for this PR:

main

PR #999   👈

This comment was auto-generated by Graphite.


tabs在 dir = rtl 下切换时 content内容没有自适应，依然是 margin-left

[ ] I'm sure this does not appear in the issue list of the repository

Basic Info

Package Name And Version<EMAIL_ADDRESS>Framework version: vue 3
Browser: chrome<IP_ADDRESS>

What is expected?
arco 适配 rtl
Steps to reproduce
将html增加 dir=rtl 属性

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

What is this？


makePrismaSchema does not generate code due to an exception from mkdir

I'm trying to run the prisma-examples/typescript/graphql/ example.
I think the problem is in the following code:
https://github.com/prisma/nexus/blob/7dc2ac7aedc7992fb709ed580a13435993aeffe7/src/typegenMetadata.ts#L93
which causes:
{ Error: EEXIST: file already exists, mkdir '/home/test/prisma-examples/typescript/graphql/src/generated'
  errno: -17,
  code: 'EEXIST',
  syscall: 'mkdir',
  path: '/home/test/prisma-examples/typescript/graphql/src/generated' }

just noticed it, fix post a fix soon and write a test

looks like it throws if dir already exists in node 10.9 but not in 10.15.3

my node version is however v8.15.1

it was anything below a specific version, not sure which exactly

FYI, I fixed that issue with nexus-prisma-generate by simply ignoring the EEXIST error
https://github.com/prisma/nexus-prisma/blob/907d819b5918dd8ea135efdd332475a30ae6294d/packages/nexus-prisma-generate/src/index.ts#L83-L88


Ambiguous warning message shown on console

Hello. I notice that several warning messages unfortunately come with the application of this addon, and they even appear when the example storybook in this repository is started on my local. They can be reproduced once you

clone the repo
run yarn && yarn storybook
open / reload for http://localhost:6006/?path=/story/storybook-addon-mock-request--mocking-fetch-and-axios

It is quite annoying to have them in the development process, even when the mocking works perfectly well. Are there any possible fixes able to come soon?
Anyway thanks for your great work.

@jimmy-leung-coherent This issue is fixed in version 1.1.0. Closing this issue.


[Proposal] Add option to customise  DataTable sorting icon

Currently there's no way to change the standard sorting indicator.

That's an arrow I have to draw

Please add the sortIcon parameter.
(also it would solve https://github.com/flutter/flutter/issues/61038 as Icon has a color property)

@dheerajv09 wrote a PR to solve this issue but unfortunately it was not completed so the PR has been closed. If anyone would like to start from that PR and apply the review comments and drive this PR to completion, you are definitely welcome to do so!


Scatterplot Color Remapping

User story
Right now, only the heatmap can rescale the color intensity int he visualization of expression data but we should be able to do the same for scatterplots as well with a slider.
Preferred solution
I think we could implement a layer extension to be shared between the scatterplot and spatial layers.  This will require a somewhat large rethinking of how we do rendering right now, but seems worth it.
Possible alternatives
There aren't that many points, even in the worst case, so a webworker could be an option.  We could also in the interim debounce the slider so it isn't smooth but it still works.

Fixed in http://vitessce.io/?dataset=vanderbilt&theme=dark&debug=true


Add support for optional yahoo domains

Yahoo offers two alternative domain names ymail.com and rocketmail.com.
These optional domains are currently not supported.dev discussion
https://sip-communicator.dev.java.net/servlets/BrowseList?list=dev&by=thread&from=3047435I'd be nice if SIP Communicator has this support allowing (few?)users with those domains to add their accounts
(Issue migrated from https://trac.jitsi.org/ticket/863)

I'd like to add that currently Jitsi is truncating usernames which require a domain suffix such as<EMAIL_ADDRESS>This functionality should be added as it prevents many Yahoo accounts from access via Jitsi


Create template - allows the addition of an invalid topic

Steps:

create a template with an invalid topic:

publish data in a device of this template:

Expected result:

The system should not accept filling in required fields with invalid values.
Help messages in the fields must be displayed.

Affected version: 0.3.0-nightly20180604

the error does not apply:


hosts/devosSystem: pass modules as attrset

This is a fairly simple change that only changes the lib api for devosSystem. But doesn't add any features by itself. Hosts now pass modules to devosSystem as an attrset. And devosSystem just grabs all modules in the set and passes it to nixosSystem.
I plan to use this in #197 to selectively import modules. And I think it could help with nix-darwin - and other config systems - support, since not all profiles and modules are config system agnostic. This could be a workaround to add rudimentary support for other config systems by only importing the necessary modules.
Overall I think its a useful change and extends the abilities of devosSystem

bors try

bors r+


I used ropsten test network but the minted NFTs are not showing on opens!

Try https://testnets.opensea.io/get-listed/step-two
It only accepts lower case letters


[UX] Publisher login page error message not showing after click on close notification icon

Description:
Publisher login page error message not showing after click on close notification icon
Suggested Labels:
bug
Affected Product Version:
2.1.0 update 13
Steps to reproduce:

load publisher
Enter incorrect user name and password
click on the close button in error message
reenter  incorrect user name and password
click sign in
Now you can't see the error message

but XHR return comes with correct info
{"error" : true, "message" : "Login failed. Please recheck the username and password and try again.."}
Related Issues:

This is fixed in the API Publisher login page of APIM 3.0.0


Adding .tgz support

This PR adds support for the .tgz format.
Additionally, I’d like to ask: why are there asterisks (*) at the end of patterns like *.tar.gz*?

I think the wildcard at the end was because some URLs were erroring out at that point.
Perhaps it can be removed now.


prove: Add remember to proof additions

A separate slice of uint32s can now be passed into proof modification
which indicate the hashes that should be cached in the cached proof.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

30 of 30 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 83.71%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
2076

Relevant Lines:
2480

💛  - Coveralls


Update SonarCloud organization

I believe we still need to update the SonarCloud organization to get its updated reports.
@pnrobinson could we have a short call do tackle that?

@LucaCappelletti94 is this still active?

Yes, when do you have time to tackle this? Maybe tomorrow?

Tomorrow 9AM or 1PM Eastern (=15h, 19h)?

I would go with the latter!

OK, thanks, see you tomorrow 1PM/19h!


Broken link in /community/articles

The link to ReactFAQ is broken.
Not sure if it has been updated. Probably need to remove the link.
React.org articles page
GitHub reference

it works

That's odd. Are you sure this link is working? Seems like the domain name is expired to me. Could you send some screenshots?

Yeah, Sorry

Not working

It seems down
https://reactfaq.site/components/rendering/


Can anyone help me install nussl please? Issue with soxbindings requirement..

Hi, I'm trying to install nussl on Mac with no success. The page just says run 'pip install nussl' but doesn't give any troubleshooting advice if that doesn't complete... I'm running Python 3.10 and have other packages including scipy, soundfile, ffmpeg, sox and librosa working fine in projects.
The error seems to be associated with soxbindings, with the following messages:
python setup.py bdist_wheel did not run successfully
Failed building wheel for soxbindings
Running setup.py install for soxbindings did not run successfully
I've searched and searched for clues on how to fix, but with no success. Any help on how to troubleshoot and resolve this would be very much appreciated.

This might be more relevant to the soxbindings repo, but: do you have sox installed on your machine?

(venv) ➜  nussel2 source /Users/gkostin/PycharmProjects/nussel2/venv/bin/activate
pip install nussl
Collecting nussl
  Using cached nussl-1.1.9-py2.py3-none-any.whl (239 kB)
Requirement already satisfied: torch in ./venv/lib/python3.9/site-packages (from nussl) (1.13.0)
Requirement already satisfied: tqdm in ./venv/lib/python3.9/site-packages (from nussl) (4.64.1)
...
...
...
Requirement already satisfied: oauthlib>=3.0.0 in ./venv/lib/python3.9/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard->nussl) (3.2.2)
Building wheels for collected packages: soxbindings
  Building wheel for soxbindings (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [31 lines of output]
      /Users/gkostin/PycharmProjects/nussel2/venv/lib/python3.9/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
        warnings.warn(
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-universal2-3.9
      creating build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/effects.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/__init__.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/sox_cli.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/transform.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/audio.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      running build_ext
      creating var
      creating var/folders
      creating var/folders/kh
      creating var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr
      creating var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -I/Users/gkostin/PycharmProjects/nussel2/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/include/python3.9 -c /var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmpm7gb2ekl.cpp -o var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmpm7gb2ekl.o -std=c++17
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -I/Users/gkostin/PycharmProjects/nussel2/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/include/python3.9 -c /var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmpngxavk5m.cpp -o var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmpngxavk5m.o -fvisibility=hidden
      creating build/temp.macosx-10.9-universal2-3.9
      creating build/temp.macosx-10.9-universal2-3.9/soxbindings
      creating build/temp.macosx-10.9-universal2-3.9/soxbindings/ext
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -DVERSION_INFO=\"1.2.3\" -I/private/var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/pip-install-u7gf1ynt/soxbindings_e4781c6034b14cb6835cf36b130e57b5/.eggs/pybind11-2.10.1-py3.9.egg/pybind11/include -I/Users/gkostin/PycharmProjects/nussel2/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/include/python3.9 -c soxbindings/ext/sox.cpp -o build/temp.macosx-10.9-universal2-3.9/soxbindings/ext/sox.o -stdlib=libc++ -mmacosx-version-min=10.7 -lsox -std=c++17 -fvisibility=hidden
      clang: warning: -lsox: 'linker' input unused [-Wunused-command-line-argument]
      soxbindings/ext/sox.cpp:4:10: fatal error: 'sox.h' file not found
      #include <sox.h>
               ^~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for soxbindings
  Running setup.py clean for soxbindings
Failed to build soxbindings
Installing collected packages: ffmpy, importlib-resources, soxbindings, pytorch-ignite, pyloudnorm, norbert, matplotlib, librosa, jams, gpytorch, museval, nussl
  Running setup.py install for soxbindings ... error
  error: subprocess-exited-with-error

  × Running setup.py install for soxbindings did not run successfully.
  │ exit code: 1
  ╰─> [28 lines of output]
      /Users/gkostin/PycharmProjects/nussel2/venv/lib/python3.9/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
        warnings.warn(
      running install
      /Users/gkostin/PycharmProjects/nussel2/venv/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-universal2-3.9
      creating build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/effects.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/__init__.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/sox_cli.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/transform.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      copying soxbindings/audio.py -> build/lib.macosx-10.9-universal2-3.9/soxbindings
      running build_ext
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -I/Users/gkostin/PycharmProjects/nussel2/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/include/python3.9 -c /var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmpcokkzs3u.cpp -o var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmpcokkzs3u.o -std=c++17
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -I/Users/gkostin/PycharmProjects/nussel2/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/include/python3.9 -c /var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmp5azo775j.cpp -o var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/tmp5azo775j.o -fvisibility=hidden
      creating build/temp.macosx-10.9-universal2-3.9
      creating build/temp.macosx-10.9-universal2-3.9/soxbindings
      creating build/temp.macosx-10.9-universal2-3.9/soxbindings/ext
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -DVERSION_INFO=\"1.2.3\" -I/private/var/folders/kh/6bbjxnws6h3gwlxmxjnmrmxr0000gr/T/pip-install-u7gf1ynt/soxbindings_e4781c6034b14cb6835cf36b130e57b5/.eggs/pybind11-2.10.1-py3.9.egg/pybind11/include -I/Users/gkostin/PycharmProjects/nussel2/venv/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/include/python3.9 -c soxbindings/ext/sox.cpp -o build/temp.macosx-10.9-universal2-3.9/soxbindings/ext/sox.o -stdlib=libc++ -mmacosx-version-min=10.7 -lsox -std=c++17 -fvisibility=hidden
      clang: warning: -lsox: 'linker' input unused [-Wunused-command-line-argument]
      soxbindings/ext/sox.cpp:4:10: fatal error: 'sox.h' file not found
      #include <sox.h>
               ^~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> soxbindings

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Was able to get nussl to install by creating symbolic links for sox.h and libsox.a
ln -s /opt/homebrew/include/sox.h /usr/local/include/sox.h
ln -s /opt/homebrew/lib/libsox.a /usr/local/lib/libsox.a

Development Environment Highlights
Apple M1 Pro chip running Ventura 13.0.1
Homebrew brew install python sox libsoxr
PyCharm 2022.3 (Community Edition) IDE
Hope it helps.

I used the method provided by gkostin1966 to install the nussl and it succeeded, but when I try to import nussl, it doesn't work.
ModuleNotFoundError: No module named 'nussl'

I used the method provided by gkostin1966 to install the nussl and it succeeded, but when I try to import nussl, it doesn't work. ModuleNotFoundError: No module named 'nussl'

Did you find a way to fix the issue?

I ran these and it fixed the issue:
brew install sox
pip install soxbindings

I'm having the same problem...  can anyone help with a summary of all the changes you need to make nussl running?

I'm having the same problem... can anyone help with a summary of all the changes you need to make nussl running?

If I remember correctly, I had to do this: !sudo apt install -y libsox-dev
in Colab/Kaggle


Food api code development

Continued work building out the code that will take the users main ingredient and input from our own code based on the weather and request information from the food api. Added several variables that are used to store/organize all of these inputs. Added code to combine all the inputs into a useable URL to use in the get request. Created a new js file to store the response from the api so I can work on displaying it in the HTML without having to continue eating away at our budgeted api requests.

it looks good to me


Improve WalletConnect list of sessions screen's empty state

How about something descriptive when it's empty?
Something like "Scan a WalletConnect QR code to start"?

Yeah sounds good. Always A then.


Issues with Buster, dump1090-mutability, mysql-server, php7.3

Dump1090-mutability fails to compile under Buster due to broken(?) versions of librtlsdr0 and librtlsdr-dev, the new version number is 0.6-1+rpt1 armhf
There is no mysql-server package for Buster, instead mariadb-server version 10.3 is suggested. The install script doesn't seem to handle this change.
The install script tries to install php7.0 but 7.3 is the only version currently available for Buster.

#520


Upgrade texstudio.app to v2.10.6

One Cask change per PR, please.

Thank you for the contribution. It was merged directly as 976dafc83067f40b44a2b05c72b7ebb421383a24 to keep commit history cleaner. Your contribution is still credited to you.


Error Stack Trace Overflows Debug Console

I am logging an error using Node's console.error(), however the stack trace is overflowing the debug console. Is there a setting, or better approach to reading errors, that I can utilize to view the entire stack trace?
Using VSCode version 1.27.2 on macOS 10.13.6 (17G65)

Yes this is the current limitation fo the debug console.
As a workaround you can
"workbench.tree.horizontalScrolling": true
Which will add the horizontal scroll to all the trees in vscode - including the debug console. Not that this makes the tree less performant.
Closing as I have no plans of tackling this


Saving records locally in case of network failure while submitting records to the firehose client

I was wondering do we have a method for saving records to local disk in case of network failures?
Something like saveRecord in Android?
I am using PutRecordBatch, PutRecordAsync and PutRecord at some places. I am mainly concerned of losing the records when the user would be offline.

There is not any functionality to do this at the moment, but I think it's a good idea.  We could either build a higher-level kinesis client with this as a configurable option, or perhaps we could provide an additional ClientConfiguration parameter for an implementation of a serialize-somewhere-on-total-failure interface, as well as provide ways to reconstruct serialized requests from a data source.

A general request batched would be a cool feature--especially for cloud watch and kinesis
Sent from my iPhone

On Oct 27, 2016, at 9:07 AM, Bret Ambrose<EMAIL_ADDRESS>wrote:
There is not any functionality to do this at the moment, but I think it's a good idea. We could either build a higher-level kinesis client with this as a configurable option, or perhaps we could provide an additional ClientConfiguration parameter for an implementation of a serialize-somewhere-on-total-failure interface, as well as provide ways to reconstruct serialized requests from a data source.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@JonathanHenson and @bretambrose  so currently the way I handle it is by binding the client to the PutRecordOutcome object and then retry twice until I get success to put the record. Can you think of any other possibility of handling this without having to write the additional function to handle the storage of records?

By the time saveRecord fails back to the user, it has already been retried multiple times via the retry strategy. We just need an offline batcher/metrics pipeline. Will add this to our back log.

@umangmehta12 We are working on cleaning up some of the staled issues. Do you still need this feature?

No not at this moment. @singku Thanks for checking in.


Add support for previous VS versions

First of all, great module, very useful in build scripts!
I am mainstaining a couple of projects where it is desirable that they are buildable using previous versions of VS / tools. I therefore had to create a wrapper around VSSetup to be able to locate VS 2013 and 2015 too.
It would be nice if the VSSetup supported at least 2 previous VS versions natively.

We are considering it, but how we find that information and what we can yield is very different. See Microsoft/vswhere#24 for details.

Also, vswhere might have a better chance getting this functionality. These cmdlets provide much richer information and is meant more for deeper analysis not exposed by vswhere. Much of that information just isn't available for older installs. The setup engine was completely redesigned and rewritten from previous deployments

OK, I get it. It just seemed more logical to me to call a PS cmdlet from a PS build script.
In my build workflows, I only need to locate the newest VsDevCmd.bat file, which might be here
_C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools_
or here
_C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common\Tools_
etc.

vswhere works great with powershell and is a single-file redistributable EXE:
$path = vswhere -latest -property installationPath

If you want to get a couple properties, you can do something like this:
$instance = vswhere -latest -format json
"Instance {0} installed to: {1}" -f $instance.instanceId, $instance.installationPath

Depending on your environment, redistributing vswhere may be a better option to having to run install-module to install the module on other machines.

Thx for the nice sample code.
Just a sidenote, there is no need to run Install-Module at all. I have the module in Git repo and call this to import it from a build script:
$modulePath = Join-Path $PSScriptRoot 'Modules\VSSetup'
Import-Module $modulePath -ErrorAction Stop

If you're checking in the module, vswhere would be a smaller (and likely faster) option as well if you're just getting the installation path. We've talked it over and agree that because the cmdlets provide much richer information not available for older installs, we won't add support for older installs to the cmdlts. We are still considering support in vswhere, though, so feel free to cast on a vote there if you like.
Thanks for the feedback!


Add Spam Referrers from multiple lists

As a GA Admin
I want to add Spam Referrer filters from multiple lists
So that more spam is filtered.
Given multiple spam referrer lists
and a domain that has been added from a previous list
When a domain is added to a filter
Then it should not add the domain to multiple filters


The type system of AST node macro types

#is_a? in the macro language is implemented as a string check:
https://github.com/crystal-lang/crystal/blob/ef05e26d6ecb0c7d1f5f0568af76ed001896a601/src/compiler/crystal/macros/interpreter.cr#L520-L525
Crystal::ASTNode#class_desc_is_a? roughly does the following: it uses some macro magic to obtain the ancestors of the built-in AST node types, extracts their #class_desc (i.e. #class_name in the macro language), then checks for membership of the const_name argument. A Splat receiver, for example, translates this to const_name.in?("Splat", "UnaryExpression", "ASTNode"). This means #is_a? is not actually backed by a type system within the macro interpreter. It also means the following fails, because no AST nodes ever have a #class_name containing spaces:
{% 1.is_a?(NumberLiteral | BoolLiteral) %} # => false

A type system is needed to assign meaning to those type expressions, so that we can reliably use the full set of macro types in #is_a? and other places that (may eventually) accept macro type expressions, such as the restrictions in built-in macro method docs, macros, a different kind of macros, and annotations. The following is an attempt to establish this type system:

ASTNode is the root of all macro types. It is also the top type; all other macro types are strict subtypes of ASTNode. (In contrast, Object is not truly a top type in the regular language.)
Classes and inheritance are defined in the same way as the regular language. All macro types, including ASTNode, are classes.

Abstract classes are expository only; a macro type T is abstract if no AST node can be constructed that belongs to T but not to any strict subtype of T.
All types are implicitly "virtual"; there is no distinction between ASTNode and what one would call ASTNode+.

Generics introduce the same subtyping relationships as the regular language; generic instances are strict subtypes of their corresponding uninstantiated generic macro types.

Generics cannot be inherited from (or rather the macro language doesn't need this). Generic type arguments must be other macro types, never numbers nor expressions like sizeof.
ASTNode#class_name is always that of the uninstantiated generic. Both [1, 2, 3].class_name and %w(a b c).class_name will continue to be "ArrayLiteral" to avoid breakage.
ArrayLiteral(T) denotes an array literal whose element nodes all belong to subtypes of T. The documentation doesn't declare this type as such, but a great deal of return value restrictions try to instantiate ArrayLiteral already. ArrayLiteral is covariant in T. A part of its hierarchy would look like this:graph BT
NumberLiteral --> ASTNode
ArrayLiteral --> ASTNode
a_astnode["ArrayLiteral(ASTNode)"] --> ArrayLiteral
a_numberliteral["ArrayLiteral(NumberLiteral)"] --> a_astnode
a_a["ArrayLiteral(ArrayLiteral)"] --> a_astnode
a_a_astnode["ArrayLiteral(ArrayLiteral(ASTNode))"] --> a_a
etc["..."] --> a_a_astnode
a_n["ArrayLiteral(NoReturn)"] --> a_numberliteral
a_n --> etc
NoReturn --> NumberLiteral
NoReturn --> a_n

It follows that all array literals belong to ArrayLiteral(ASTNode), and all empty ones belong to ArrayLiteral(NoReturn).
We could define HashLiteral(K, V), TupleLiteral(T), and NamedTupleLiteral(V) in a similar fashion, although the docs don't use these notations yet. All these type variables are also covariant.
As seen above, all types can be used as generic type arguments, unlike the regular language.

| is the union operator; the resulting macro type is the smallest set-theoretic union of the operand macro types. It behaves slightly differently from unions in the regular language:

Two types in the same union merge if either is a subtype of the other.
Two types do not merge if they are in the same class hierarchy but neither is a subtype of the other. NumberLiteral | BoolLiteral is not reduced to ASTNode.
The order of variant types within a union macro type is undefined, not even for NilLiteral and Nop.
Subtyping between unions is defined like the regular language; A | B is a subtype of C | D if and only if (A <= C || A <= D) && (B <= C || B <= D).
There are no sealed semantics; And | Or is a strict subtype of BinaryOp, even though the former exhausts the latter.

NoReturn is the empty union of macro types. It is the bottom type; no nodes have this type, and all other macro types are strict supertypes of it. (We need NoReturn because ::raise has this return value restriction.)
There are no metaclasses of macro types; the introduction of a type system does not imply the macro language needs to support introspection of this macro type hierarchy. Metaclasses tied to non-macro types might be introduced on top of TypeNode as a result of https://github.com/crystal-lang/crystal/issues/8835.
There are no modules, aliases, typedefs, or autocast types. There are no namespaces other than the top-level one.
self, typeof, _, the single splat operator, and the short-hand notations ?, *, [N], {}, -> are all unsupported. (Perhaps self could work in some contexts, but the docs don't use it.)
If a constant name does not correspond to a macro type, for compatibility it is treated as NoReturn. This means {{ 1.is_a?(Int32) }} is false, but {{ ([] of Nil).is_a?(Array(Int32)) }} is true.

The description above is mostly complete; it leaves out a definition of the intersection operator, which would be needed by macro type restrictions. #is_a? does not need it because the macro language is interpreted and does not rely on type filters. Once we construct this type system, we could refactor #is_a? into:
def visit(node : IsA)
  node.obj.accept self

  # `NumberLiteral`, `ArrayLiteral(Def)` etc.
  macro_type = lookup_macro_type(node.const)

  # `ASTNode#macro_is_a?` is the membership check for macro types
  # we avoid doing something like `@last.macro_type.implements?(macro_type)`
  # so that in case of e.g. an `ArrayLiteral` we don't have to build
  # the full union of element types
  @last = BoolLiteral.new(@last.macro_is_a?(macro_type))

  false
end

and lookup_macro_type would be readily usable when we need to support macro types outside #is_a?.

Originally, these are the planned generic macro types:
class ArrayLiteral(T); end      # T = union of element types
class HashLiteral(K, V); end    # K = union of key types, V = union of value types
class TupleLiteral(T); end      # T = union of element types
class NamedTupleLiteral(V); end # V = union of value types

I have been thinking if the last two should become variadic, mirroring their normal language counterparts. This makes it possible to declare:
class HashLiteral(K, V)
  def to_a : ArrayLiteral(TupleLiteral(K, V)); end
  # without variadic type vars: `ArrayLiteral(TupleLiteral(K | V))`
  # current restriction: `ArrayLiteral(TupleLiteral)`
end

Instead of making TupleLiteral variadic, an alternative is to make Tuple a variadic subtype of TupleLiteral. Then Tuple(*T) is a subtype of TupleLiteral(Union(*T)). This approach supports tuple literals too, because they always expand to ::Tuple(...):
x = {1, 'a'}
x.class_name          # => "TupleLiteral"
x.is_a?(TupleLiteral) # => true
x.is_a?(Tuple)        # => true

x.is_a?(TupleLiteral(NumberLiteral | CharLiteral)) # => true
x.is_a?({NumberLiteral, CharLiteral})              # => true

x << 2
x.is_a?(TupleLiteral(NumberLiteral | CharLiteral)) # => true
x.is_a?({NumberLiteral, CharLiteral})              # => false

This is similar to how tuples are implemented in TypeScript:
let x: [number, boolean] = [1, true];
let y: (number | boolean)[] = x; // okay
x = y; // Type '(number | boolean)[]' is not assignable to type '[number, boolean]'.
       //   Target requires 2 element(s) but source may have fewer.

and Ruby RBS:
def foo
  [1, 'a']
end

def bar
  x = []
  x << 1
  x << 'a'
  x
end

# TypeProf generates the following:
class Object
  private
  def foo: -> [Integer, String]
  def bar: -> (Array[Integer | String])
end

The benefits are not immediately obvious, because right now macro types only have an effect within #is_a?.

As for short forms other than {}, personally I see little issues expanding T? to T | NilLiteral | Nop, and _ to ASTNode (this makes sense because everything is covariant). The -> form might be related to ProcNotation but I haven't figured how they could be potentially used.

these are the planned generic macro types

I have my doubts that these types should be generic at all.
The thing is, these types in macros work in a dynamic way. I'd dare to say, macros in Crystal is the mini-Ruby inside Crystal.
So for example, if we have this:
{% array = [1, "hello"] %}

then one could say that that's either ArrayLiteral, or ArrayLiteral(IntegerLiteral, StringLiteral). But look at this:
{% begin %}
  {% array = [1, "hello"] %}
  {% puts array[0] + 1 %}
  {% puts array[1].size %}
{% end %}

It "compiles" just fine. Because actually there's no compilation or type-checking involved: array[0] will be an IntegerLiteral, and array[1] will be a StringLiteral. It's not like accessing an element will have the type IntegerLiteral | StringLiteral and then we can't resolve "size".
So... I think an array literal is not generic.
As a side note... what's the benefit of introducing all of this? I'm sure you have something in mind, but at least it's not explained here.


Introduce a mock delegate replacing mockito's @Mock annotation

A ReadOnlyProperty delegate mock will be useful for mocking test instance properties, which will be declared as val instead of lateinit var.
This will remove the need to call MockitoAnnotations.initMocks(this) or the need to use the mockito rule.
Example syntax:
private val mockedInstance by mock<MockedClassType>()

instead of:
@Mock private lateinit var mockedInstance: MockedClassType

You could also just do
private val mockedInstance = mock<MockedClassType>()

I don't think the delegation feature will add any value here?

You're right. Maybe delegation can be useful for hiding how we retrieve that mocked instance, let's say for example if it's retrieved from a DI framework (i.e. the use case of DaggerMock). I was overthinking on an inject delegate.
But for my actual purpose the simple instantiation will do the job.
Thanks anyway! And thanks for providing the library!


Doubt with Path Parameter Validation

Hi, I have the following api speficiation.
{
  "openapi": "3.0.0",
  "info": {
    "title": "API Spec With Mandatory Header and Query Parameters",
    "version": "1.0.0"
  },
  "paths": {
    "/api-endpoint/{id}": {
      "get": {
        "summary": "Restricted API Endpoint",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyHeader": {
        "type": "apiKey",
        "name": "apiKey",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKeyHeader": []
    }
  ]
}

(1) /api-endpoint gives the following error which is expected
GET Path '/api-endpoint' not found
(2) /api-endpoint/ does not give any error. Can anyone confirm if the empty string can be taken as path parameter ? (I have kept path parameter required as true. So, my expectation is if its empty then it should fail)

Path segments can be empty, although some OpenAPI tools are pickier than others.
You could add a pattern requiring at least one character, or be even more restrictive.

This seems to have been well answered by @ralfhandl so I'll close the issue - let us know if you need anything else though!


Change Form Initialize ordering to initialize components first

Up for discussion
Right now in App Inventor, the component onInitialize events get triggered only after the Initialize event is dispatched.
The reason why this might be an issue is that the component onInitialize events (in the future) might set certain states which should be in place before the user accesses the component via blocks. However, in this case, the component's state would only change after the Initialize block, and should the component be accessed in the Initialize block, issues would be caused due to the order.
The following generalized example illustrates the issue:

Can one of the admins verify this patch?

@lightingft I'm still not clear on this. The properties set in the designer are all set prior to Initialize and onInitialize being called. Why isn't this sufficient for what you want to accomplish?

@lightingft I'm still not clear on this. The properties set in the designer are all set prior to Initialize and onInitialize being called. Why isn't this sufficient for what you want to accomplish?

@ewpatton While there may be workarounds for my issue specifically (and it is not a big problem in my case), I believe this order would be somewhat more natural.
A case to consider off the top of my head are internal component states that are set after initialization. For example, there could be functionality in the future that would retrieve the height & width of the component via the getHeight and getWidth components (perhaps not the best example, since this is set by the properties itself), and then with these retrieved properties, some internal state for the component is set (which is used somewhere else, e.g. in a block method call). Now the state set might be crucial for the component, and generally hard to achieve without using the callback. A code example of the situation described would be as follows:
public class ExampleComponent implements OnInitializeListener {
 int internalVariable; // uninitialized by default

 @SimpleFunction
 public void function() {
   // Does something with internalVariable
 }

 @Override
 public void onInitializeListener() {
    internalVariable = ...; // Initializes internalVariable using some logic
    // internalVariable happens after function() if function() is invoked in the Initialize block
    // Can lead to undefined behavior
  }
}

I hope this makes sense, and let me know if you would like to see a fully concrete example of why this (could be) a potential issue. I feel like this change would make it easier for development in the future, as this removes the restriction on finding a workaround when implementing new complex components. Also there currently seems to be only a single component which utilizes the Listener.

State should just be set in the property setters. If there's something that also needs to happen during initialization, have it happen in Initialize. I could imagine that we introduce a beforeInitialize callback, but I don't think we should move onInitialize because it could possibly affect extensions. I would also argue that width/height are bad examples because they can change even during the running of the program (e.g., the user rotates the device), so they have to be handled in many different places, not just immediately before/after initialization. Also note that Form only dispatches events after initialization, so if these state changes you're performing also trigger events then those events will simply be dropped.

State should just be set in the property setters. If there's something that also needs to happen during initialization, have it happen in Initialize. I could imagine that we introduce a beforeInitialize callback, but I don't think we should move onInitialize because it could possibly affect extensions. I would also argue that width/height are bad examples because they can change even during the running of the program (e.g., the user rotates the device), so they have to be handled in many different places, not just immediately before/after initialization. Also note that Form only dispatches events after initialization, so if these state changes you're performing also trigger events then those events will simply be dropped.

Very fair point on onInitialize ordering possibly affecting the extensions. It would indeed make more sense to introduce something like a beforeInitialize as mentioned instead, which I still would believe to be useful in certain scenarios.
With that in mind, perhaps it would also be a good idea to update the documentation for the onInitializeListener, since I feel like it might not  be obvious at first that it happens directly after the Screen's `Initialize' dispatched event.
As for a more representative example (the width and height one was indeed not a good one), the Google doc that I have shared earlier illustrates the need for some mechanism there. The Clear block that I have indicated is not a very good example (since it doesn't really make sense to add the data and clear it right away), but an example could be a block that fetches all the entries (in which case, it will always return an empty List in the current onInitialize implementation). There could, of course, always be arguments that such a sequence should generally not be used (no data operations on the Initialize block), but it is a limitation that can be lifted with small efforts. There could also be workarounds to this to move some logic to the other component to send events to the other component, but I believe this then forces to find a different workaround which could be more complex.

@ewpatton Yes, unless you would see it more worthwhile to have the introduction of the listener that I implemented as a separate PR (rather than it being in #1776). In that case, I could move the implementation to this PR for review.

@lightingft Sure we can use the version in #1776


How to handle Date types?

The Typebox allows to define Date type in a couple of ways :
date: Type.String({ format: "date-time" }), // json schema compatible

// or

date: Type.Date({}), // json schema incompatible

I'd prefer to go with JSON schema compatible way (see first definition). But I have the problem with this definition using @Validate decorator to seriallize result returned from controller. The data I get from service/db uses raw javascript Date and therefore there is type conflict between the types if i return result with js date (e.g. { date: new Date() }.
What is the best way to avoid this kind of type conflicts between? In zod it was possible to address via z.coerce.date(), so wondering if there is something like this in Typebox or Nestjs-typebox.
Thanks in advance!

@jayalfredprufrock yeah I was wondering if that's the way i should use, then i'll probably have to use date: Type.Date({}) definition (as the most of my code uses raw JS Dates), and wherever it's required, i should do something like:
Type.Transform(MySchema).Decode((value) => ({
  ...value,
  myDate: `${value.myDate}`,
}))

Is it necessary to define both decode and encode methods?

Hi again! Encode is definitely optional but I think things work best if you define both. Your example should work, but I think the more canonical approach would be to define your own custom date type and use that:
// this assumes format date-time has been registered
const IsoDate = (options) => Type.Transform(Type.String({ format: 'date-time', ...options }))
  .Decode(value => new Date(value))
  .Encode(value => value.toISOString())

// Some schema consuming the type helper
MySchema = Type.Object({
    createdAt: IsoDate()
});

Now here's the thing - I think this library needs to adjust the encode/decode semantics. I sort of threw in support without thinking through it fully. The way it should work is that for request schemas, this library should call Decode() and the type should be inferred as StaticDecode<typeof T>. For response schemas, it should be the exact opposite. This library should call Encode() and the return type should be inferred as StaticEncode<typeof T>. This will ensure that you can work with a Date() object within your code, but successfully transform to/from it for responses/requests. Note that Static<typeof T> is equivalent to StaticEncode<typeof T> which means that within your code base you will need to be sure to always use the StaticDecode<typeof T> helper to make sure your code aligns with what this library hands you in requests.
This change should be relatively easy to make and I'm keen to get it in place, but the change is definitely breaking and will require a major version bump. It's likely I'll knock this out over the weekend or early next week. Let me know if you have thoughts regarding any of this.

@jayalfredprufrock Yeah, it sounds good and reasonable to me, thanks!
Btw, i'm a bit new to Typebox, are the string formats (e.g. format: 'date-time') should be manually registered or Typebox uses them out of the box?

@anotheri  all string format types require registration for typebox. My library does automatically register email, and I'll probably add some other reasonable format implementations as well. I'll just yoink the super common ones out of typebox's reference implementations here: https://github.com/sinclairzx81/typebox/tree/master/example/formats
But to unblock yourself you can manually register them using the code examples above.

@anotheri I have released a new prerelease version that addresses what I mentioned above. (4.0.0-next.1)
Namely, it performs response transformation before validating, request transformation after validating, and uses TransformDecode as the inferred schema type everywhere (except the example, which expects a true Static type, i.e. what the client will be providing). This should allow you to work with decoded types like Date within your codebase while handling serialization in both directions properly.
I also exported the IsoDate type for convenience, and also added several new string formats based on the typebox examples (url, date, time, date-time, uuid, email).
Besides the breaking behavior of how transform types work and are inferred, I also bumped up the typebox peer dep version to the latest, 0.34.0. It had some breaking changes that affected this library, hence I had to drop support for older typebox versions. I'll probably keep things on a prerelease next branch for a little while until typebox has worked out any kinks on 0.34.x. If things appear stable by the beginning of the year I'll officially release v4.

@jayalfredprufrock awesome, thank you a lot! 🙌

@jayalfredprufrock it works great in the Nestjs application itself, but for some reasons in e2e test (fwiw, i use Vitest environment, with isolated DB, and @nestjs/testing module which initiates the whole application module, so i expect the same behaviour), it fails response validation with message: "Unknown format 'date-time'",, although controller returns the same data format for both test and main application like this, with dates returned
[
  {
    id: 1,
    createdAt: 2024-11-18T23:19:19.291Z, // Date, not string
    updatedAt: 2024-11-18T23:19:19.291Z, // Date, not string
    title: 'hoge',
    content: 'hello world!!',
    published: false,
    accountId: 1
  }
]

Test response looks like this:
{
  statusCode: 400,
  message: 'Validation failed (response)',
  errors: [
    {
      type: 49,
      schema: [Object],
      path: '/0/createdAt',
      value: '2024-11-18T23:19:19.291Z',
      message: "Unknown format 'date-time'",
      errors: []
    },
    {
      type: 49,
      schema: [Object],
      path: '/0/updatedAt',
      value: '2024-11-18T23:19:19.291Z',
      message: "Unknown format 'date-time'",
      errors: []
    }
  ]
}

Any ideas what may cause this behaviour? or how can i debug it?

I'm guessing the bootstrapping code in main.ts isn't being run when executing things in your test harness. Try adding the following code in your testing setup:
configureNestJsTypebox({
    setFormats: true,
});

@smiley-uriux yeah, thanks, that was it! completely forgot about that configuration.

@jayalfredprufrock @smiley-uriux
Btw, is there a way to import and reuse the same typebox instance which is used in nestjs-typebox? So in case i need to do some decoding/encoding in my codebase (not as a part of @Validate interceptors), i don't need to re-configure those formats in every file where i use typebox? Any suggestion here?
I see only setFormats and individual exports for each format. Should I import those individual formats and register with typebox instance I use? Because as far as i tried to reuse setFormats it doesn't allied to instance i import locally (e.g. in isolated unit-test for service, where the nestjs-typebox is not used at all).


[GHSA-f7q4-pwc6-w24p] Elliptic's EDDSA missing signature length check

Updates

Affected products
Severity

Comments
This seems to have been patched in version 6.5.7:
https://github.com/indutny/elliptic/pull/317
https://github.com/indutny/elliptic/compare/v6.5.6...v6.5.7

This seems to be captured in our advisory as well 👍
https://github.com/advisories/GHSA-f7q4-pwc6-w24p


adding CITATION file

I added @roualdes, @sethaxen, and @WardBrian as authors.  We could add @mike-lawrence, too---he added some doc.
The CITATION.cff file should produce a pull-down with citation info on the site.  See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files
It'd be nice to add Zenodo DOIs.  I hear some authors like that for citing things.

Oh, I only fixed transposed urls in the readme, no need to add me for that!

We will need an Zenodo (or equivalent) DOI eventually if we get accepted at JOSS:
https://joss.readthedocs.io/en/latest/submitting.html#the-review-process
It might be worth @roualdes getting everything set up to do that now (I'm assuming he needs to as the repo owner, I've never gone through the process myself).
Those DOIs are specific to a version, so we'd need another one for JOSS if they requested any changes, but it wouldn't hurt to get one going for now?

It seems like @roualdes can log into Zenodo with Github and then set it up such that this repo will have a DOI for every automatically published release.
It seems very easy, but it's another one of those things that requires repository admin rights (I can log into Zenodo but then I only see my own repos and things on stan-dev)

I just tried to set up Zenodo such that this repo will have a DOI for every automatically published release.  Maybe we need a new release to kick-start things?

Since we just added the ability for the python interface to download the source it would be appropriate to do a release soon anyway, I can try it tomorrow?

Sounds good to me.


Custom Axes with fixed scale and labels

Is it possible to create a custom axes with a custom, fixed scale? The reason I need this is that I am adding data dynamically to my plot and if the range of data changes, so those the size of my axes. Thank in advance

It occurs to me that it might be better to post this on elm-discuss, I will move over there. Sorry for the noise.


feat(Resources): add multiple render pipeline materials

The prefab now uses the Pipeline Material Applier to provide multiple material types for the main render pipelines to improve compatibility.

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
v2.1.0
GitHub release

Your semantic-release bot :package::rocket:


Update source_table to source_object

If you try to use the code provided, you get error 21827 as below. Source_object needs to be used instead.
Msg 21827, Level 16, State 1, Procedure sys.sp_MSrepl_addarticle, Line 286 [Batch Start Line 6]
The @source_table parameters have been deprecated and should no longer be used. For more information, see the 'sp_addarticle' documentation.

Docs Build status updates of commit 8b5456f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/relational-databases/replication/codesnippet/tsql/administer-a-peer-to-pee_3.sql
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

#sign-off thanks a bunch James!

Invalid command: '#sign-off'. Only the assigned author of one or more file in this PR can sign off. @

#sign-off

Invalid command: '#sign-off'. Only the assigned author of one or more file in this PR can sign off. @


Separating files into submodules

Coverage decreased (-10.0%) to 55.952% when pulling 7ae2c22d0ca3bca4afa71a1850830acda8c0dae6 on dev into a07e44adeeba997d154d5e764ebcc9eb4bacab25 on master.


StringPalindrome

Description
Given a string S, check if it is palindrome or not.
Example 1:
Input: S = "abba"
Output: 1
Explanation: S is a palindrome
Example 2:
Input: S = "abc"
Output: 0
Explanation: S is not a palindrome
Domain
Data Structure
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign

/assign


[Coverage]: Add tests for Web/Undertow subsystem configuration: Global Settings

Description
Coverage of the undertow subsystem configuration (Configuration => Subsystem => Web (Undertow) => Global Settings) is missing.
One spec file is expected.
Resources to be covered

[ ] /subsystem=undertow

You can get inspired in legacy tests.
Affects
configuration
Subsystem
undertow

Fixed with #99


Thorn automagically fills required fields even when their values have been supplied

While creating fixtures, if one supplies a falsy (from a JS perspective) value to a required field, Thorn automagically fills those fields as if no values have been supplied.
E.g.:
Module: Opportunities
Field: amount
Value: 0.0

E.g.:
var x = 0.0;
console.log(!x ? 'foo' : 'bar'); // foo is printed

The bug seems to be here.

Coverage increased (+0.6%) to 94.798% when pulling 794c128d3f9d9b52bd4615f32c77ca7eb06b088b on jcsmorais:134 into 127fb984a05e0abd883da3894667085aa5835948 on sugarcrm:master.

Coverage increased (+0.6%) to 94.798% when pulling 4e8994f8814237730cc3259f81adb4c3b68484de on jcsmorais:134 into 127fb984a05e0abd883da3894667085aa5835948 on sugarcrm:master.

Coverage increased (+0.6%) to 94.842% when pulling 474ce35663908de5fd44f51d77ac9b96e0f7e46b on jcsmorais:134 into 5eee52c76859f21fdff06254968570647a08ae81 on sugarcrm:master.


Easier language for description of Waypoint: Passing Values to Functions with Arguments

Replaced existing first sentence:
"Functions can take input with parameters. Parameters are local variables that take on the value of the arguments which are passed into the function."
With user suggested sentence:
"Parameters are variables that act as placeholders for the values that are to be input to a function when it is called. When a function is defined, it is typically defined along with one or more parameters. The actual values that are input (or "passed") into a function when it is called are known as arguments."
closes #5800

It looks like the original first sentence is still there, making it pretty redundant?

Damn sorry, I've removed the old line now.
I went through it all a few times as I was figuring out the commit process. Didn't realise you couldn't use the browser editor so went and did it from scratch in c9.io and obviously missed a pretty crucial point.

Please squash your commits.

woah, I clearly did something wrong - maybe easiest to just reject this PR outright?
I was trying to rebase and clean up the different branches I'd made while messing around in my own repo. Don't really understand how I've pulled in other peoples commits but I don't want to mess with them without knowing 100% what I'm doing is right.
Very sorry for the mess around everyone!

@krisgesling Been there, done that.  Wrote the guide:
https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/How-To-Fork-And-Maintain-a-Local-Instance-of-Free-Code-Camp
Hope that will help!


Nulltype shown for Timestamp and varchar types using Clickhouse <IP_ADDRESS>

We're using Clickhouse database and have troubles with tables showing "Nulltype" for timestamp and varchar running on Superset 0.34.0rc1.
It's strange as JDBC like DBeaver work fine and also show correct column data. Also Superset seems to get the correct metadata as the error message shows "No field class for timestamp" or "No field class for varchar".
All other columns on the same table work ok and have no issue (int). Also this is the case for tables and views. This showed up in charts first, but also happen in SQL Lab. See screenshots attached:

I'm guessing that error is emitted by the sqlalchemy-clickhouse library. Can you get the stacktrace out of you server logs and share that here?

I agree with @mistercrunch , this is a problem in sqlalchemy-clickhouse: https://github.com/cloudflare/sqlalchemy-clickhouse/blob/master/connector.py#L99

Ok following up there. Thanks for the quick feedback - will close the issue.
Thanks for the great work in superset!


[Feat]: UPGRADE to App Router

Describe the feature in detail (code, mocks, or screenshots encouraged)
App Router provides more flexibility for nested layouts and data fetching.
What type of pull request would this be?
Other
Provide relevant links or additional information.
No response

Hello @Jackdrakes this issue is related to #80 about upgrading Next JS to v14
Can you join this conversation #80 and explain how are you going to approach it before the task is assigned to you.

Sure  @daoodaba975
Can go through the documentation and upgrading routing to route layout.
Migrating Pages and Hooks .
Must update the Data Fetching methods.


Update phpseclib (PHP 7 compatibility)

Fix Methods with the same name as their class will not be constructors in a future version of PHP; Net_SSH2 has a deprecated constructor

:+1: sweeeeeet. thanks!


ripme not working after deleting history

Ripme version: 1.7.94
Java version:
Operating system: Mac

Exact URL you were trying to rip when the problem occurred:
Please include any additional information about how to reproduce the problem: I'm running this on a mac, deleted the history to rerip some items

Expected Behavior
Detail the expected behavior here.
Actual Behavior
Detail the actual (incorrect) behavior here. You can post log snippets or attach log files to your issue report.
After doing so, any time I enter a link, it will correctly identify the website, but when I hit enter to actually rip the link, the link will disappear without actually ripping anything or showing anything in the log.
I have removed and reinstalled ripme, done the same with java, and reinstalled ripme through homebrew cask, and I still have the same error.

you mind trying this one: https://github.com/ripmeapp2/ripme/releases ?

Sorry, have already tried that one, have the same problem there.

@zebxen would be helpful to get an error message, and the exact version you tried. there was one fix which might be related:
https://github.com/ripmeapp2/ripme/commit/c52c34ab999d7982a7f5afc63f8912024e52b995

@zebxen i noticed something which might be related for instagram, see https://github.com/ripmeapp2/ripme/issues/32. but i have no idea tbh.


Create brand_impersonation_bbb.yml

Description
Brand Impersonation of the Better Business Bureau (BBB)

/update-test-rules

added "mybbb.org" to exclusions

/update-test-rules


Tree green dashboard is incorrectly showing 100% green

Both flutter and engine tree are showing 100% green for recent two weeks, which should not be the case.

The tree green data is updated via git-build-status-to-github API, and the status should be the same as GitHub luci-flutter status. However the GitHub PR luci-flutter status seem correct when status changes:
2021-08-16 22:07:59.278 PDT
Updating status of flutter/flutter#87280 from success to failure
2021-08-16 22:07:59.651 PDT
Updating status of flutter/flutter#87203 from success to failure
2021-08-16 22:08:00.029 PDT
Updating status of flutter/flutter#87197 from success to failure

https://github.com/flutter/cocoon/pull/1312 was submitted around that time, and seemed to be the culprit.
It updated to use forEach instead of for..in loop, whereas the former calls next without waiting the asynchronous operations to return, causing unexpected results.


Command failed: prisma migrate deploy Error: P3018

Describe the Bug

Use MySQL 5.7.42 to connect to the database but execute: yarn start gives an error
Database
MySQL
Relevant log output
✗ Command failed: prisma migrate deploy
Error: P3018

A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve

Migration name: 02_report_schema_session_data

Database error code: 1064

Database error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COLUMN `event_data_type` TO `data_type`;
ALTER TABLE `event_data` RENAME COLUMN ' at line 2

Please check the query number 1 from the migration file.

Which browser are you using? (if relevant)
Chrome
How are you deploying your application? (if relevant)
No response

Looks related to column renaming syntax using older MySQL version #2118, but you figured it out.


get result from db.exec

some time,we need run multiline sql and get the execute result,but now the api "exec" return no execute result

The goal of db.exec() is to be an easy-to-use function for executing large SQL script, typically stored in files (for example, database migrations). In such cases, the query results are generally not needed.
There are many problems with adding query results to db.exec(). For one, since there can be multiple statements, it's not easy to know which results are actually desired. Second, there are different types of results a user might be interested in (for example, prepared statements have four different methods, each for getting different types of results: run, get, all, and iterate).
Because of these complications, the API for db.exec() would need to be quite complicated to support all use-cases. For this reason, it's purposefully dumb, and users are encouraged to use prepared statements for most tasks.

maybe it can return the last execute result as the final result.
some time,the sql is from other people and i can't get only 'one' sql.

Perhaps there could be a function like db.parse(), which could take a multi-statement SQL string and return an array of prepared statement objects. That way, the user would still have complete control over how each statement gets executed, and which results they are interested in.


Error when trying to create dictionary file

Hello,
when I try to create a dictionary file I get this error message:
Error opening file: open languages/ru/dictionary.txt: The system cannot find the path specified.
Seems like the directory is called 'russian' instead.

Yes you're right let me check the source code. What version of the program are you using?


Braflix

Source name
Braflix
Source link
https://www.braflix.ru/
Source language
English
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a title with source name.
[X] I have checked that the extension does not already exist on the website extensions list or the app.
[X] I have checked that the extension does not already exist by searching the GitHub repository and verified it does not appear in the code base.
[X] I will fill out all of the requested information in this form.

Due to a DMCA notice, we won't make any more extensions.


LFS-317: Computed Question

Add computed question using eval()
A testing branch has been pushed which shows examples of calculations, notes and value based error messages. These examples are at the top of the Demographics page.

Changes in progress:

Looking into duplicate description field and spacing between them
Improving input format for expressions.
Before evaluating an expression, said expression will be checked for input variables in the format @{input}. When found, these inputs will have the wrapper stripped (@{input}->input) and the input will be provided as a function argument based on the input question's value.

Changes completed. Expression input format changed as described, and duplicate description field has been removed.


exploitdb: 2021-11-09 -> 2021-11-11

Motivation for this change
Update to 2021-11-11
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 145505 run on x86_64-linux 1

1 package built:

exploitdb

[nix-shell:~/.cache/nixpkgs-review/pr-145505]$ ./results/exploitdb/bin/searchsploit Employee Daily Task Management System 1.0
[i] Found (#1): /nix/store/5fjw4cwlag0a1y4j9hkg494bdgnk5xv7-exploitdb-2021-11-11/share/exploitdb/files_exploits.csv
[i] To remove this message, please edit "/nix/store/5fjw4cwlag0a1y4j9hkg494bdgnk5xv7-exploitdb-2021-11-11/share/exploitdb/.searchsploit_rc" for "files_exploits.csv" (package_array: exploitdb)

[i] Found (#1): /nix/store/5fjw4cwlag0a1y4j9hkg494bdgnk5xv7-exploitdb-2021-11-11/share/exploitdb/files_shellcodes.csv
[i] To remove this message, please edit "/nix/store/5fjw4cwlag0a1y4j9hkg494bdgnk5xv7-exploitdb-2021-11-11/share/exploitdb/.searchsploit_rc" for "files_shellcodes.csv" (package_array: exploitdb)

------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                                                |  Path
------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------
Employee Daily Task Management System 1.0 - 'Name' Stored Cross-Site Scripting (XSS)                                                                        | php/webapps/50506.txt
------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------
Shellcodes: No Results

Result of nixpkgs-review pr 145505 run on x86_64-linux 1

1 package built:

exploitdb


[Feature Request] In manager file previews like Ranger or Vifm?

Are there plans to support in manager file previews like Ranger or Vifm that let you see file contents on the side?

Thank you for the request.
I have no plans to do that, I'd like to keep this app's feel and look as simple as possible.

Added preview feature in v0.9.0 #62 . Will soon publish to crates.io and AUR. Again thank you for the request and inspiring me!


Component style in error.vue is missing on initial load

Environment

Operating System: Linux
Node Version:     v18.16.0
Nuxt Version:     3.4.3
Nitro Version:    2.4.0
Package Manager<EMAIL_ADDRESS>Builder:          vite

Reproduction
https://codesandbox.io/p/sandbox/nuxt-missing-styling-error-md91h6
View https://md91h6-3000.csb.app/nope with JS disabled to see the styling on the 'greetings' component missing. (Index page has the same component with the styling being properly shipped: https://md91h6-3000.csb.app/ )
Describe the bug
A component with styling in error.vue does not ship with it's CSS on initial render, this only happens if the component is also used in another page.
Additional context
No response
Logs
No response

+1. Same with nuxt.config.ts -> experimental.inlineSSRStyles = false

This is no longer reproducible, with or without inlineSSRStyles.

Curious what caused it but happy it's fixed anyway! :)


Implement bind for Nullable, in analogy to Haskell's monad operation

bind is an operation for Nullables that unpacks the nullable, if it's non-null, and then repacks the result in another appropriately-typed nullable. This replaces a lot of awkward thingy.isNull ? Nullable!SomeType.init : op(thingy.get) with thingy.bind!op.
"Monads are underrated."

Also note that NullableRef already has a bind method.

IMO this would be better setup as a method of Nullable.

I thought you couldn't do templated methods with alias parameters that take closures as methods.

I don't think bind is a good name, because NullableRef already has a bind method that does something different, and because it only makes sense in the context of a Haskell's particular implementation of Monadic containers. The (more or less) equivalent in D is a range that you apply a map function to, but Nullable is not a range (though it could easily be given a range interface).

apply?

I had originally called it map, but I thought that might be too confusing. Should I change it to map?

@JackStouffer's suggestion sounds fine to me.

More analagous to Haskell's Maybe monad (well, exactly like Haskell's Maybe monad), monads overall are more general than that.  Think it'd be interesting if they were added to Phobos at some point. Still, a good start.

The main problem with Nullable (and it has many problems) is that it is not like the Maybe monad. It implicitly converts to the underlying value which, it turns out, causes all sorts of problems when you try to use Nullable seriously.

I try my level best to never use that functionality.

Renamed to apply.

Think it'd be interesting if they were added to Phobos at some point. Still, a good start.

Instead of introducing foreign concept, let's just reuse the range analogy. In fact range API + std.algorithm/std.range may work like a monad to an extent

I'd be very leery about treating Nullable as a range. Conceptually, I'd consider a Nullable and a range to be quite different, though I can see an argument for treating them similarly. However, it gets particularly iffy if Nullable is wrapped around a range, since then the range API on the Nullable suddenly wins out over the range API on the wrapped type, which could break code.

This only breaks code because Phobos is horribly broken in the first place in not forcing programmers to call .get explicitly.

This only breaks code because Phobos is horribly broken in the first place in not forcing programmers to call .get explicitly.

Maybe having get is a design flaw, but the fact of the matter is that it's there, so we have to deal with that.

Having get is fine, the problem is alias get this.

@jmdavis that's a good point that I had not considered... maybe an idiomatic D implementation of an Option-like range should actually invert the API such that the traditional member functions an Option type would have are just free functions that work on ranges. I think this would square better with Andrei's concerns that we already have std.range.Only which is basically Some!T.

Ping?

@FeepingCreature Can you please email @andralex (email can be found at https://erdani.com/index.php/contact/) about reviewing this name addition? Thanks.

Wait a second. The title says add bind but the code adds apply. What gives?
I'm okay with adding apply but as a method of Nullable, not an alembicated free function.

Sure, as soon as that actually works.
`struct S
{
void apply(alias fun)() { fun(); }
}
void main()
{
int k = 5;
S().apply!(() => k);
}
Error: template instance apply!(delegate () => k) cannot use local __lambda1 as parameter to non-global template apply(alias fun)()`

@andralex ping

I'm going to stick my neck out here and move forward with this.
@andralex Feel free to revert if you disagree.

Cool. How about taking auto ref? Presumably some functions might want to modify their argument.

Since this is pretty much copied from Haskell's monads, it's very much a pure functional approach, meaning you're supposed to construct a new Nullable and assign it instead of modifying in-place. I feel like if you're modifying the parameter, you may be doing the idiom wrong.
Not sure if that's a sufficient reason not to do it?

@FeepingCreature the only problem is we're not disallowing functions that take ref. Ideally we'd either disallow them or let them run with the expected behavior. Right now the results may be surprising.
Generally: principles of FP apply slightly differently (and not always elegantly) to languages with mutation.

Can we please instead of sticking our necks out, have an experimental stage for new functions?
Rust is showing the way here by making news additions "unstable" first and then stabilizing them after this testing period, e.g. https://blog.rust-lang.org/2018/02/15/Rust-1.24.html (they do the same thing for language features too: https://doc.rust-lang.org/unstable-book)
I proposed a few things at https://github.com/dlang/phobos/pull/6178#issuecomment-374574728 (I don't care which one is picked).
However, any mechanism that allows us to mark it unstable for one or two versions is a lot better than immediately releasing it and releasing that we have made a mistake / slight oversight which happens far too frequently.

Sounds like a good topic for a DIP.

For new free entities great, for methods marking something as unstable is more difficult. Perhaps we could add a new attribute @unstable.

Can we please instead of sticking our necks out, have an experimental stage for new functions?

-> https://github.com/dlang/phobos/pull/6389 (a start anyhow)