Support correlated subquery within select list

This is a subset of https://github.com/crate/crate/issues/9320
Use case
Using tools like Grafana, or client drivers like  PostgreSQL JDBC client (getMetaData().getUDTs), TypeORM and many others.
Feature description
Allow a subquery in the select list to use the table from the outer query.
Examples
SELECT
    CASE WHEN t.typtype = 'd' THEN
    (
        SELECT
            CASE WHEN typname = E'date' THEN
                91
            ELSE
                1111
            END
        FROM
            pg_type
        WHERE
            oid = t.typbasetype)
ELSE
    NULL
    END AS base_type
FROM
    pg_catalog.pg_type t

PostgreSQL explain output:
                                      QUERY PLAN
-----------------------------------------------------------------------------------------
 Seq Scan on pg_type t  (cost=0.00..5365.03 rows=644 width=4)
   SubPlan 1
     ->  Index Scan using pg_type_oid_index on pg_type  (cost=0.28..8.29 rows=1 width=4)
           Index Cond: (oid = t.typbasetype)

SELECT
    (SELECT
            column_name
        FROM
            information_schema.columns c
        WHERE
            c.table_schema = t.table_schema
            AND c.table_name = t.table_name
            AND udt_name IN ('timestamptz', 'timestamp')
        ORDER BY ordinal_position LIMIT 1) AS time_column
FROM
    information_schema.tables t

PostgreSQL explain output
 Hash Left Join  (cost=35.15..4100.86 rows=107 width=64)
   Hash Cond: (c.reloftype = t.oid)
   ->  Hash Join  (cost=1.09..32.68 rows=107 width=132)
         Hash Cond: (c.relnamespace = nc.oid)
         ->  Seq Scan on pg_class c  (cost=0.00..30.82 rows=143 width=72)
               Filter: ((relkind = ANY ('{r,v,f,p}'::"char"[])) AND (pg_has_role(relowner, 'USAGE'::text) OR has_table_privilege(oid, 'SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER'::text) OR has_any_column_privileg.
.e(oid, 'SELECT, INSERT, UPDATE, REFERENCES'::text)))
         ->  Hash  (cost=1.05..1.05 rows=3 width=68)
               ->  Seq Scan on pg_namespace nc  (cost=0.00..1.05 rows=3 width=68)
                     Filter: (NOT pg_is_other_temp_schema(oid))
   ->  Hash  (cost=26.01..26.01 rows=644 width=4)
         ->  Hash Join  (cost=1.09..26.01 rows=644 width=4)
               Hash Cond: (t.typnamespace = nt.oid)
               ->  Seq Scan on pg_type t  (cost=0.00..21.44 rows=644 width=8)
               ->  Hash  (cost=1.04..1.04 rows=4 width=4)
                     ->  Seq Scan on pg_namespace nt  (cost=0.00..1.04 rows=4 width=4)
   SubPlan 1
     ->  Limit  (cost=37.68..37.69 rows=1 width=68)
           ->  Sort  (cost=37.68..37.69 rows=1 width=68)
                 Sort Key: ((a.attnum)::information_schema.cardinal_number)
                 ->  Nested Loop Left Join  (cost=2.05..37.67 rows=1 width=68)
                       ->  Nested Loop Left Join  (cost=1.65..37.14 rows=1 width=70)
                             Join Filter: ((dep.refobjid = c_1.oid) AND (dep.refobjsubid = a.attnum))
                             ->  Nested Loop  (cost=1.36..28.80 rows=1 width=74)
                                   ->  Nested Loop Left Join  (cost=1.23..28.63 rows=1 width=78)
                                         Join Filter: (t_1.typtype = 'd'::"char")
                                         Filter: (COALESCE(bt.typname, t_1.typname) = ANY ('{timestamptz,timestamp}'::name[]))
                                         ->  Nested Loop  (cost=0.83..28.03 rows=1 width=147)
                                               ->  Nested Loop  (cost=0.55..27.71 rows=1 width=78)
                                                     ->  Nested Loop  (cost=0.27..9.37 rows=1 width=8)
                                                           Join Filter: (c_1.relnamespace = nc_1.oid)
                                                           ->  Index Scan using pg_class_relname_nsp_index on pg_class c_1  (cost=0.27..8.30 rows=1 width=12)
                                                                 Index Cond: (relname = c.relname)
                                                                 Filter: (relkind = ANY ('{r,v,f,p}'::"char"[]))
                                                           ->  Seq Scan on pg_namespace nc_1  (cost=0.00..1.06 rows=1 width=4)
                                                                 Filter: ((NOT pg_is_other_temp_schema(oid)) AND (nspname = nc.nspname))
                                                     ->  Index Scan using pg_attribute_relid_attnum_index on pg_attribute a  (cost=0.28..18.31 rows=3 width=78)
                                                           Index Cond: ((attrelid = c_1.oid) AND (attnum > 0))
                                                           Filter: ((NOT attisdropped) AND (pg_has_role(c_1.relowner, 'USAGE'::text) OR has_column_privilege(c_1.oid, attnum, 'SELECT, INSERT, UPDATE, REFERENCES'::text)))
                                               ->  Index Scan using pg_type_oid_index on pg_type t_1  (cost=0.28..0.32 rows=1 width=77)
                                                     Index Cond: (oid = a.atttypid)
                                         ->  Nested Loop  (cost=0.41..0.58 rows=1 width=68)
                                               ->  Index Scan using pg_type_oid_index on pg_type bt  (cost=0.28..0.41 rows=1 width=72)
                                                     Index Cond: (oid = t_1.typbasetype)
                                               ->  Index Only Scan using pg_namespace_oid_index on pg_namespace nbt  (cost=0.13..0.16 rows=1 width=4)
                                                     Index Cond: (oid = bt.typnamespace)
                                   ->  Index Only Scan using pg_namespace_oid_index on pg_namespace nt_1  (cost=0.13..0.16 rows=1 width=4)
                                         Index Cond: (oid = t_1.typnamespace)
                             ->  Nested Loop  (cost=0.29..8.32 rows=1 width=8)
                                   ->  Seq Scan on pg_sequence seq  (cost=0.00..0.00 rows=1 width=4)
                                   ->  Index Scan using pg_depend_depender_index on pg_depend dep  (cost=0.29..8.31 rows=1 width=12)
                                         Index Cond: ((classid = '1259'::oid) AND (objid = seq.seqrelid))
                                         Filter: ((deptype = 'i'::"char") AND (refclassid = '1259'::oid))
                       ->  Nested Loop  (cost=0.41..0.52 rows=1 width=4)
                             ->  Index Scan using pg_collation_oid_index on pg_collation co  (cost=0.28..0.35 rows=1 width=72)
                                   Index Cond: (oid = a.attcollation)
                             ->  Index Scan using pg_namespace_oid_index on pg_namespace nco  (cost=0.13..0.17 rows=1 width=68)
                                   Index Cond: (oid = co.collnamespace)
                                   Filter: ((nspname <> 'pg_catalog'::name) OR (co.collname <> 'default'::name))

Out of scope

Any kind of optimization / query rewrite. Queries can be executed using a naive approach.

References & Resources

https://dl.acm.org/doi/abs/10.1145/376284.375748
https://www.csd.uoc.gr/~hy460/pdf/ExecutionStrategiesforSQLSubqueries.pdf

We could consider rewriting this to a JOIN, see https://justinjaffray.com/join-the-ultimate-projection/.

We could consider rewriting this to a JOIN, see https://justinjaffray.com/join-the-ultimate-projection/.

I didn't look into Unnesting Arbitrary Queries in detail, but I had the impression it might have a higher complexity than implementing some kind of "apply" operator. And it seems that a apply operator is also similar to what's needed for recursive CTEs

Done with https://github.com/crate/crate/pull/12851
Created some issues for follow up work: https://github.com/crate/crate/issues/12888, https://github.com/crate/crate/issues/12887, https://github.com/crate/crate/issues/12859


Add support for array type validator

Coverage remained the same at 100.0% when pulling 6886fbcb077d3f11dadec826d1318f4553349ac1 on ktutnik:master into d8e31d31e35a2d82b630dbfe6f8ef22b6d7f53fc on kambojajs:master.


Use any_enabled in AST checker

This was introduced in a separate PR, but the AST checker has a lot of usages that can be shortened with it.

Current dependencies on/for this PR:

main

PR #3601   👈

PR #3606

This comment was auto-generated by Graphite.


Status column (OneDrive, Dropbox, etc)

Hi
does this program provide a way to get rid of this "Status" column? I thought it was a Dropbox thing, but apparently it's a windows thing, applying to all file sharing softwares that use a certain API. It was apparently first designed for OneDrive.

I hate that useless column taking up space, and I can't find a way to remove it for good, from everywhere.

Presumably you already tried setting the columns you want, using WinSetView, but that Status column appears anyhow. IIRC, it automatically appears for any folder that is set to be synced. I'm not sure if using a local account, instead of a Microsoft account, for your Windows login makes a difference, but that's something I would try.

I am not using a Microsoft Account, it's a local account.

Presumably you already tried setting the columns you want, using WinSetView, but that Status column appears anyhow.

Actually, I didn't. Note that I just installed WinSetView yesterday to try and fix this issue, I didn't tell it to make any changes yet... and I am probably just being dumb... but I can't find any way to change settings for the Status column.
In the Global options for "Details" I see 3 different lines with "Status" but everything is unselected, I believe it shouldn't be showing the column?

In the main screen, the other entries mentioning Onedrive are all set to "inherit".
Thank you for your patience.

There wouldn't be anything to change. As you noted, Status is already unselected, so if you hit Submit, your new view defaults will be set. However, I'm pretty sure the Status column will still automatically reappear on any folder that is synced.
Not that it makes any difference, but you can hover over those Status labels and it will show you the internal property name. The one named "StorageProviderUIStatus" is the sync status. The other two are the system properties "Device.Status" and "Device.Status1" and are therefore not applicable to normal folders.

I read that if you disable files-on-demand by unchecking the OneDrive option "Save space and download files as you use them", the Status column won't show. I'm not sure if this will affect DropBox though. Anyhow, details here.
The low-tech "solution" is to move the Status column to the far right. You can set the column order in WinSetView and that should apply everywhere. I've never done any testing with the Status column, so please let me know if that works for you.


Remove runtime feature do_not_count_mapped_pages_as_free

Commit Message: Removing legacy behavior and runtime guard flag
Additional Description: As per issue #26902 This behavior has been in place for over 6 months and it's time to clean up the flag. PR 22585  implemented said change
Risk Level: Low
Testing: Removed legacy behavior from tests
Release Notes: Added note to changelog for removal of flag

@KBaichoo Since you helped review the first PR, would you mind taking a look at this one as well?

/retest

/retest

/assign @KBaichoo

Talked with Kevin offline and tragically found the legacy behavior was still default and the last PR didn't implement correctly. Closing this PR


fix: Correct args override behavior in runtime and predictor containers

The current args from two container specs are being merged in a naive way and cannot handle complex use cases.

Key and value are separated to different args, e.g. --foo bar  vs --foo=newBar
Boolean flags, especially when it comes to merging/overriding, e.g. --bool-flag
Handle duplicates and different ordering of args

The code can be complex if we want to cover these cases.
if there's an overlap, we don't merge them since the merge result will be incorrect and contain duplicates. In addition, instead of overriding individual args, we should simply replace the entire list of args by the list of args defined in InferenceService. This PR corrects the behavior.

/lgtm

We no longer need this fix/enhancement. Closing for now.


Add KalSeed selection

This PR restructures REve access to KalSeeds, using the indirection the a art::Ptr collection to allow more flexibility in defining which KalSeeds to view. It akso fixes some inefficiencies where KalSeeds were being copied instead of passed by reference.  It also adds EventID selection to the default path, resulting in simplification for the examples.

One issue: with this change the KalSeed infobox no longer provides information on what kind of track fit this is: all tracks come from the same collection.  It's easy enough to fix, and I've already fixed it for the terminal dump printout, but it needs fixing before this should be merged.  I'll try to append a fix to this PR.


13a Functions

The previous chapter, Procedures, introduced us to many new concepts that we will need here: use of a local frame, as well as passing by value.
The 9608 pseudocode reference guide says the following for functions:

Functions operate in a similar way to procedures, except that in addition they return a single value to the
point at which they are called. Their definition includes the data type of the value returned.
A procedure with no parameters is defined as follows:
FUNCTION <identifier> RETURNS <data type>
 <statements>
ENDFUNCTION

A procedure with parameters is defined as follows:
FUNCTION <identifier>(<param1>:<datatype>,<param2>:<datatype>...) RETURNS <data type>
<statements>
ENDFUNCTION

The keyword RETURN is used as one of the statements within the body of the function to specify the value to
be returned. Normally, this will be the last statement in the function definition.
Because a function returns a value that is used when the function is called, function calls are not complete program statements. The keyword CALL should not be used when calling a function. Functions should only be called as part of an expression. When the RETURN statement is executed, the value returned replaces the function call in the expression and the expression is then evaluated.
Example – definition and use of a function
FUNCTION Max(Number1:INTEGER, Number2:INTEGER) RETURNS INTEGER
    IF Number1 > Number2
      THEN
        RETURN Number1
      ELSE
        RETURN Number2
    ENDIF
ENDFUNCTION
OUTPUT "Penalty Fine = ", Max(10,Distance*2)

In principle, parameters can also be passed by value or by reference to functions and will operate in a similar way. However, it should be considered bad practice to pass parameters by reference to a function and this should be avoided. Functions should have no other side effect on the program other than to return the designated value.

What this means for us:

We'll have to figure out how to parse a FUNCTION statement
We'll have to implement a RETURN statement
We'll have to type-check function returns with their declared type
We'll have to figure out how to evaluate() a function as an expression with a resulting value, instead of execute()`ing it as a statement
We'll assume function parameters can only be defined BYVALUE, and treat any attempts to define them BYREF as a ParseError

That's four mouthfuls to chew. One at a time.

Parsing function statements
Much of the work has been done in parsing procedures. We'll use most of that code, take out the BYREF/BYVALUE handling.
And we add in some code to handle the RETURNS:
https://github.com/nyjc-computing/pseudo/blob/283723f8ba535d4e2f46d9d5ce74d51b66748e0e/parser.py#L361-L365
And add that to our function stmt:
https://github.com/nyjc-computing/pseudo/blob/de19a53a2bd6eeb73275c87bb3dcc9da3d92a0e1/parser.py#L371-L378

Parsing RETURN statements
RETURN statements aren't too hard to parse:
https://github.com/nyjc-computing/pseudo/blob/8b6e326bfb4a067d70f637bc61ae185668d5ace1/parser.py#L381-L388
Let's test that:
DECLARE Five : INTEGER
FUNCTION AddOne(Num : INTEGER) RETURNS INTEGER
    RETURN Num + 1
ENDFUNCTION
Five <- 5
OUTPUT "5 + 1 is ", AddOne(Five)

Result:
Expected \n

We haven't implemented parsing function calls yet ...

Parsing function calls
Functions can be called anywhere a value or expression is expected. This is parsed by value(); that's the natural place to start adding code to handle function calls.
The first token in a function call is the function name: this is a 'name'-type token, which gets parsed as a get expression:
https://github.com/nyjc-computing/pseudo/blob/17826c09512831a37e47811cae4c927c8464f515/parser.py#L53-L56
Let's check for a '(' after that; we also parse any args, and then expect a ')' (most of this code is repeated from callStmt()):
https://github.com/nyjc-computing/pseudo/blob/17826c09512831a37e47811cae4c927c8464f515/parser.py#L57-L64
Hmm ... what kind of expression should we return?

Function expressions
We made an early decision to represent expressions as binary expressions, with an 'oper', 'left', and 'right'. Should we stick with this format or make a new type of expression?
A get operator won't be enough for us to evaluate() a function value. And our interpreter is going to return oper(left, right) in evaluate()...should we make acall()operator? But this operator would need to know aboutexprs and stmts, so putting it in builtin.py doesn't feel appropriate.
It looks like we do need a new kind of expression after all; a call expression. It's kind of difficult to think about how to evaluate() a call expression before we've even resolve()d a FUNCTION statement. Let's do that first.

Resolving FUNCTION statements
This is going to look very similar to resolving PROCEDURE statements, but with 'passby' always being 'BYVALUE', and with an extra 'returns' key:
https://github.com/nyjc-computing/pseudo/blob/857be1acad4643fd4da7022d8c379c136058f3e2/resolver.py#L145-L165

Call expressions
A call involves a function, and its arguments; that's two things. Still feels very binary. It would be a waste to make a new kind of expression, with all the complexity that adds.
Let's make a simple call operator that doesn't need to know about tokens, functions, or statements:
https://github.com/nyjc-computing/pseudo/blob/f70800dd08cfcee745fff04c172500e610168cba/builtin.py#L46-L47
And construct a function call as a binary expression with a call operator:
https://github.com/nyjc-computing/pseudo/blob/4d4f0d88bdea02ef26f9f5068b318c777250f51f/parser.py#L60-L68
'left' is a get expression for the function, and 'right' is the list of arguments. (resolve() is not going to like that list of args ...)

Resolving call expressions
Our function expression is going to be handled by resolve() in the resolver, so let's make it work.
https://github.com/nyjc-computing/pseudo/blob/947b5f0fdc053fa41360c751a66541b2d15aa8a4/resolver.py#L26-L32
Our work in [aaaac2a242603b2267add29ab8c4c0411b57dbe0] made this really easy.

Executing function declarations
Hah! That's done in the resolver already:
https://github.com/nyjc-computing/pseudo/blob/55bdc42bf3c6545712f211fb331c10e149a83e88/interpreter.py#L69-L70

Evaluating function calls
Okay this is the tricky part. Up to this point, evaluate() has always been able to just return oper(left, right). But that's not going to be the case for call(); the poor statement trying to evaluate() a call expression would end up with a func, args tuple.
So let's add some conditional evaluation:
https://github.com/nyjc-computing/pseudo/blob/f46fbcc1857139fd3fa85daf44e57c627f2dac64/interpreter.py#L17-L22
Hold on ... we forgot about RETURN statements! (We need to type-check RETURN statements against the function RETURNS.)

Resolving return type
It's easy enough to get the return type with the help of resolve():
https://github.com/nyjc-computing/pseudo/blob/99a3466d5fc801bc9606f42febe0e278261ffad0/resolver.py#L172-L176
We don't expect to be getting RETURN statements anywhere but in a function, so we can assume local as the frame. We resolve() the return expression to get its type.
Now we need to capture that return type and use it somewhere:
https://github.com/nyjc-computing/pseudo/blob/f44c8ca5cca33c519ba08c7e90ac39661e5d134e/resolver.py#L204-L205
Notice that this is the only verifier that returns something. Everything else returns None. Let's type-check that return value within verifyFunction():
https://github.com/nyjc-computing/pseudo/blob/60898e91010d9176ba3aba517532c4c7a71b5c4e/resolver.py#L160-L163

Back to evaluating function calls
Let's execute RETURN statements:
https://github.com/nyjc-computing/pseudo/blob/1da2198722083b1979639dae922ce2315296ed31/interpreter.py#L116-L120
Now we can capture return values:
https://github.com/nyjc-computing/pseudo/blob/504b5c7afc4f6f1de1d25ee0edf428c914c1c2fe/interpreter.py#L25-L33

Testing and bugfix
We forgot to resolve() function call args: [56dc061da4ab2a3e89636712d26c06d3ea86c328]
And we also forgot to return the return value in execute(): [8a8d166802f9247815d2a3cdad267cf57b3a6a21]
Test code:
DECLARE Five : INTEGER
FUNCTION AddOne(Num : INTEGER) RETURNS INTEGER
    RETURN Num + 1
ENDFUNCTION
Five <- 5
OUTPUT "5 + 1 is ", AddOne(Five)

Result:
5 + 1 is 6

Annnnnd ... we have working functions 🙌


rainfallPlots is missing.

Dear developer,
I tried to tested the example code of SigProfilerClusters at (https://osf.io/qpmzw/wiki/5. Quick Start Example/)
My input file is BRCA-UK_SP116353.snv_mnv.vcf
My code is as following:
from SigProfilerMatrixGenerator.scripts import SigProfilerMatrixGeneratorFunc as matGen
from SigProfilerMatrixGenerator import install as genInstall
from SigProfilerSimulator import SigProfilerSimulator as sigSim
from SigProfilerClusters import SigProfilerClusters as hp
Output_Dir = "/Users/z-1-Test/SigProfilerClusters-test"
sigSim.SigProfilerSimulator("BRCA", Output_Dir, "GRCh37", contexts = ['288'], chrom_based=True, simulations=100)
hp.analysis("BRCA", "GRCh37", "96", ["96"], Output_Dir)
However, in my output Dir (/Users/z-1-Test/SigProfilerClusters-test/plots), I can only get BRCA_intradistance_plots_288_corrected.pdf.
There is no rainfallPlots_clustered_project_corrected.pdf
Is there something wrong with the example code or current package? Or do you have extra parameters for the rainfallPlots ?
Thanks

Hi,
You will need to set subClassify=True. The rainfall plot relies on the subclassifications of clustered events, so without these categories, the rainfall plot is not produced.
I will close this issue, but please feel free to reopen if you experience further issues!

Thanks for your reply. This time I try the following commands:
hp.analysis("BRCA", "GRCh37", "96", ["96"], subClassify=True, Output_Dir)
hp.analysis("BRCA", "GRCh37", "96", ["288"], Output_Dir, analysis="all", sortSims=True, subClassify=True, correction=True, calculateIMD=True, max_cpu=4, TCGA=True, sanger=False)
But the rainfall plot is still missing.
Here is the output from my terminal, with no errors reported.
======================================
Beginning SigProfilerClusters Analysis
Calculating mutational distances...Completed!
Determining sample-dependent intermutational distance (IMD) cutoff...Completed!
Analyzing clustered mutations...
Starting matrix generation for SNVs and DINUCs...Completed! Elapsed time: 2.06 seconds.
Matrices generated for 1 samples with 0 errors. Total of 2257 SNVs, 701 DINUCs, and 0 INDELs were successfully analyzed.
Analyzing non-clustered mutations...
Starting matrix generation for SNVs and DINUCs...Completed! Elapsed time: 1.83 seconds.
Matrices generated for 1 samples with 0 errors. Total of 1198 SNVs, 0 DINUCs, and 0 INDELs were successfully analyzed.
Plotting SigProfilerClusters Results...Completed!

Hi,
Can you please add a forward slash(/) when you mentioned the output directory and run again?
For example: Output_Dir = "/Users/z-1-Test/SigProfilerClusters-test/"
Hope that solve your problem and let me know if you had any issues.


[🐞] QWIK ERROR  ReferenceError: $localize is not defined during SPA after upgrading from 0.17.5

Which component is affected?
Qwik Runtime
Describe the bug
After upgrading Qwik from 0.17.5 to 0.18, 0.19, 0.20, and 0.21.0, Qwik no longer loads $localize following https://github.com/mhevery/qwik-i18n
Reproduction
I will add one soon unless you know what the issue is already
Steps to reproduce
Reproduction repo is TBC
System Info
Not applicable

Additional Information
No response
UPDATE
Looks like its only happening on the preview server

Ok turns out it wasnt enough to just update Qwik, i had to pnpm up --latest and that got it all working


Expect a stub doesn't work

I use a stub to make get_post available, which returns a mock of WP_Post:
        $post = Mockery::mock(\WP_Post::class);
        $post->ID = 1;
        $post->post_content = '

Heading 1

This is content.

';
        $post->post_status = 'publish';
        $post->post_type = 'page';
        stubs(
            [
                'get_post' => $post,
                'get_queried_object_id' => 1,
            ]
        );

This is my test:
expect('get_post')->once();
$this->assertEquals(true, My_Class::get_instance()->has_content('This is content.'));
$this->assertEquals(true, My_Class::get_instance()->has_content('This is content.'));

My_Class:
<?php
final class My_Class {
	/**
	 * @var		array A list of available content
	 */
	private array $has_content = [];

	public function has_content( string $content ): bool {
		// already searched for this content, return stored value
		if ( isset( $this->has_content[ $content ] ) ) {
			return $this->has_content[ $content ];
		}

		$post = \get_post( \get_queried_object_id() );

		if ( ! $post instanceof WP_Post ) {
			$this->has_content[ $content ] = false;

			return false;
		}

		// search in post content
		if ( \strpos( $post->post_content, $content ) !== false ) {
			$this->has_content[ $content ] = true;

			return true;
		}

		return false;
	}
}

Since I want to test whether I already searched for the content, which would result in an early return for the second run, I thought expect('get_post')->once(); would be correct. However, the error message implies it is not:
[Mockery\Exception\InvalidCountException] Method get_post(<Any Arguments>) from Mockery_1 should be called
 exactly 1 times but called 0 times.

Am I doing wrong here?
As a workaround, I currently test for expect('strpos')->once();, which works when allowing redefining internals for strpos in the patchwork.json.

I think this is failing because you are both doing a stub and an expectation from the same function.
On the same test, you can't do both things to the same function. This should be documented IIRC.
I would suggest to use the expectations only, like this:
class MyTest extends TestCase
{
    public function testHasContentCallGetPostOnce(): void
    {
        $id = random_int(1, 100);

        $content = <<<'TXT'

Heading 1

This is content.

        TXT;

        $post = $this->stubPost($id, ['content' => $content]);

        \Brain\Monkey\Functions\expect('get_queried_object_id')
            ->once()
            ->andReturn($id);

        \Brain\Monkey\Functions\expect('get_post')
            ->once()
            ->with($id)
            ->andReturn($post);

        $class = My_Class::get_instance();

        static::assertTrue($class->has_content($content));
        static::assertTrue($class->has_content($content));
    }

    private function stubPost(int $id = 1, array $properties = []): \WP_Post
    {
        $post = \Mockery::mock(\WP_Post::class);
        $post->ID = $id;
        foreach ($properties as $key => $value) {
            $property = "post_{$key}";
            $post->{$property} = $value;
        }
        $post->post_content ??= '';
        $post->post_type ??= 'page';
        $post->post_status ??= 'publish';

        return $post;
    }
}

Thank you, that worked just fine!
I’ll leave it open since adding it to the documentation would be indeed nice. 🙂


WIP: IEKF with simple dynamic model

The goal here is to see if we should go the dynamic model route. I have px4tools working pretty well to sysid vehicles via log files so it might be feasible to fly with an estimator like lpe and then get the params from the sysid to load into IEKF.

How can i test this pr? if i have no Mocap.
It really exciting for going this route. In this way we can estimate some disturbance in the future right?
Cheer.

Not yet ready for testing. We're ironing out the bugs, and it will take some time.

Closing in favor of #7115


New flags

This PR will add 9 new pride flags to the repository, namely the following :3 :

ambiamorous
omnisexual
bigender
demigender
polysexual
queer
abrosexual
pangender
xenogender

LGTM, thanks!


Turn this post into a page checkbox is missing

Issue Summary
"Turn this post into a page" checkbox is missing. I have two static pages in my site data and they are shown correctly under "Pages" in the admin menu. However, I am not able to turn new posts into pages or to disable the page status of the two current pages. The checkbox is not shown, neither for new posts nor for existing ones.
Not sure: Is this a feature or a bug (Do I have to enable the checkbox globally somewhere?)
Technical details:
Ghost Version 2.23.1
Environment production
Database mysql
Mail Direct
Browser/OS: Safari, Chrome, Firefox
Node-Version 8.12.0

Hi @HeikoMueller! The short answer is: this a feature :smiley:
Posts and pages were deliberately separated into more distinct resources when working on Admin API v2 a specific set of changes that removed this checkbox is here.
You can still turn a post into a page with a single flag in the database: posts table page field, in case you really need to do so :wink:

Thank you @gargol for pointing this out ! :)
One little remark: I was a bit confused by the fact that in the sidebar of the admin menu, there is a 'plus' button next to posts, but not to pages. I now see that there is also a green "New page" button on the upper right. Might it be a good idea putting a plus button next to pages in the side panel as well ?

there is a 'plus' button next to posts, but not to pages

@HeikoMueller this is intentional, the plus button is next to the Posts menu item because it's the most common action. Creating new pages is rare after the initial site setup so an extra button would add noise/clutter to the UI.

@kevinansfield  ...sounds reasonable. thanks for explaining.

How do we get the docs updated?  (assuming it has been wrong from 2+ years)
How to convert post to a page
https://ghost.org/docs/publishing/
Inside Ghost-Admin, any post can be turned into a page by checking the relevant box at the bottom of the Post Settings Menu. Equally, within the Content API, a page is just a post with a parameter of "page": true.


Detect when I press F11 in Chrome

Hello, I've find an issue with screenfull: even in your sample (https://sindresorhus.com/screenfull.js/) when I press F11 on Chrome (Windows) to go in Full Screen mode, you don't detect that we're in full screen (you still write "Is fullscreen: false"). How can I detect when F11 is pressed to enter (or exit) the full screen mode?
Thanks

Duplicate of #26


Unable to Log in to the Base Sepolia Testnet Environment via Houston

Description: I am experiencing issues logging into the Base Sepolia Testnet environment using the Houston interface. My goal is to connect and register additional wallets, but Houston does not allow me to log in with my original operational and management wallets.
Steps to Reproduce:
Attempted to log in with multiple operational and management wallet key pairs.
Tried using different browsers (Brave, Chrome).
Each login attempt results in the same error.
Expected Behavior: Successful login into the Base Sepolia Testnet environment to register additional wallets.
Actual Behavior: The login process fails every time, regardless of the wallet key pair or browser used.
Additional Information:
Browsers tried: Brave, Chrome.

Hi @drMurlly, v8 is not support by Houston

I thought it is supported because there is a possibility of selecting this option.
How do you connect additional operational wallets to the management wallet?
Or is there no need to connect them to the testnet environment?
Thanks.

@drMurlly Thanks for posting the issue.
Your query would be best dealt with by the support team.
Please see the link below to our dedicated support line:
Support : Help Center
Note: Click on the live chat icon at the bottom corner of the page to start a conversation

There is currently no need for more wallets, as v8 progresses there will be tools for management of operational wallets


Update .gitignore

Ignore netbeans project directory.

Please use global git ignore feature.
On linux it is most likely located at $HOME/.config/git/ignore For other systems refer to git documentation

Cool thanks!


Feature Request: Support apple_universal_binary

Changed a target to an apple_univeral_binary from a macos_command_line_application and saw this error:
ERROR: /Users/buildkite/builds/mbr-buildkite-agent-ios-prod-bcer-1/slack/ios-pull-request/tooling/needle/BUILD.bazel:18:23: in @com_github_buildbuddy_io_rules_xcodeproj//xcodeproj/internal:default_automatic_target_processing_aspect.bzl%default_automatic_target_processing_aspect,@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj/internal:xcodeproj_aspect.bzl%xcodeproj_aspect aspect on apple_universal_binary rule //tooling/needle:detector:
Traceback (most recent call last):
	File "/private/var/tmp/_bazel_buildkite/7a258e1e8c20cba7a42ee679660a55e6/rules_xcodeproj/build_output_base/external/com_github_buildbuddy_io_rules_xcodeproj/xcodeproj/internal/xcodeproj_aspect.bzl", line 58, column 33, in _xcodeproj_aspect_impl
		create_xcodeprojinfo(
	File "/private/var/tmp/_bazel_buildkite/7a258e1e8c20cba7a42ee679660a55e6/rules_xcodeproj/build_output_base/external/com_github_buildbuddy_io_rules_xcodeproj/xcodeproj/internal/xcodeprojinfo.bzl", line 474, column 35, in create_xcodeprojinfo
		info_fields = _skip_target(
	File "/private/var/tmp/_bazel_buildkite/7a258e1e8c20cba7a42ee679660a55e6/rules_xcodeproj/build_output_base/external/com_github_buildbuddy_io_rules_xcodeproj/xcodeproj/internal/xcodeprojinfo.bzl", line 263, column 36, in _skip_target
		_create_envs_depset(
	File "/private/var/tmp/_bazel_buildkite/7a258e1e8c20cba7a42ee679660a55e6/rules_xcodeproj/build_output_base/external/com_github_buildbuddy_io_rules_xcodeproj/xcodeproj/internal/xcodeprojinfo.bzl", line 292, column 23, in _create_envs_depset
		test_env = getattr(ctx.rule.attr, automatic_target_info.env, {})
Error in getattr: in call to getattr(), parameter 'name' got value of type 'NoneType', want 'string'

I haven't looked too deep into it but noticed there was no sibling issue for this from #99

Yeah, it's not supported right now. Even before that breakage, there are oddities with transitions, and the multiple archs, that make it so you currently only want to include the underlying binary in rules_xcodeproj. See generator for an example: https://github.com/buildbuddy-io/rules_xcodeproj/blob/0ad6162d7c97e218d07c4892b864ceaaff150e5a/tools/generator/BUILD#L33-L62

This is for any tool that is used within the build graph of any top_level_target, and in our case is used to generate code.
We'll want it universal and traversed in rules_xcodeproj, just likely removing the source of the error without needing to support an Xcode target with a universal_binary.

I changed the title, since your fix will prevent the generation failure, but it won't add full support for it per the discussion above. I'll add a new issue for fully supporting it.


Orbit tracing offset

On the current release (v0.5) there's an issue with how the orbits are traced, they currently have a weird offset.  The trace doesn't exactly follow the objects path from the center of the object.
This issue is more predominant on some simulations than others.

No longer relevant with switch to js/canvas


Make Encodable extend CustomStringConvertible

In all of the Gloss models I have I found myself doing this:
var description: String {
    return toJSON()!.description
}

Have you considered making Encodable inherit the CustomStringConvertible protocol and provide a default implementation for description similar to the one above?

will look into this @milancermak - thanks for the suggestion

sorry it took me a couple days to come around. gave this a try and only received obscure errors. if you find a way to include this one, i'd encourage you to submit a PR!


Review data downloads static file information before 21.09 release

Several datasets will change in 21.09. We need to review the blacklisted datasets and probably add descriptions to some of the newly available datasets

Once the ETL pipelines have been run, I will ask the back-end team to generate a JSON with the list of datasets and can update the descriptions and list of datasets to be shown and hidden.
21-04-release-datasets-mapping-file-downloads-page.zip

Code to generate downloadData.json file with list of all datasets:
gsutil cat 'gs://open-targets-pre-data-releases/21.09.2/output/etl/*/metadata/*/part-*.json'

Note: replace 21.09.2 with the relevant pipeline release version

Dataset mapping files with names, descriptions, and show/hide status:
https://docs.google.com/spreadsheets/d/1_266iRiVlCRii9cVLJ6__GCQVCw88QypEp6kXz8OcfQ

Ticket closed as work completed, merged into main, and included in the 21.09.5 platform-app release bundle.


Is this plugin still supported?

Hi,
Is this plugin still supported? I see issues with 4.26.2 and no release for 4.27

It's not only working like a charm it also compiles successfully in an c++ project (tested with UE 4.27.2)


Derive defmt::Format for structures with unaligned fields?

When a structure has unaligned fields, e.g. to read structures from wire formats, #[derive(defmt::Format)] causes an unaligned read error with recent Rust versions (e.g. on 1.77.1 or 1.78.0):
#[repr(C, packed)]
#[derive(defmt::Format)]
pub struct Packet {
    pub length: u8,
    pub ty: u8,
    pub data: u16,
    // ...
}

error[E0793]: reference to packed field is unaligned
   --> src/main.rs:12:9
    |
120 |     pub data: u16,
    |         ^^^^
    |
    = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
    = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
    = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)

Expanding the macro, it's because of the destructuring of the fields:
impl defmt::Format for Packet {
    fn format(&self, f: defmt::Formatter) {
        defmt::unreachable!()
    }
    fn _format_tag() -> defmt::Str {
        // ...
    }
    fn _format_data(&self) {
        match self {
            Self {
                length,
                ty,
                data, // <--- here
            } => {
                defmt::export::u8(length);
                defmt::export::u8(ty);
                defmt::export::u16(data);
            }
        }
    }
}

A solution could be something like this:
fn _format_data(&self) {
    defmt::export::u8(&{ self.length });
    defmt::export::u8(&{ self.ty });
    defmt::export::u16(&{ self.data });
}

Obviously, for most cases that is worse since it copies the fields and requires fields to be Copy. Maybe you'd consider supporting it via an attribute on the existing derive proc-macro or a new proc-macro?
Understandable if you don't think it's worth it. My current work-around is a proc-macro to derive a custom defmt::write! implementation, which works fine. Ultimately, I don't know how common this use-case it.

I think this is a good addition.
Is is possible to detect if a struct is packed from within a derive macro? Then we could just generate a different implementation based on that information.
Otherwise I think we have three options for the API:

New derive macro FormatPacked
Derive helper attribute #[defmt(packed)] on the struct
Derive helper attribute #[defmt(packed)] on the field

// Option 1
#[repr(C, packed)]
#[derive(defmt::FormatPacked)]
pub struct Packet {
    pub length: u8,
    pub ty: u8,
    pub data: u16,
}

// Option 2
#[repr(C, packed)]
#[derive(defmt::Format)]
#[defmt(packed)]
pub struct Packet {
    pub length: u8,
    pub ty: u8,
    pub data: u16,
}

// Option 3
#[repr(C, packed)]
#[derive(defmt::Format)]
pub struct Packet {
    pub length: u8,
    pub ty: u8,
    #[defmt(packed)]
    pub data: u16,
}

I prefer option 2, because it keeps things simple by not introducing another macro. Also it allows adding more options in a non-breaking way.
While option 3 would allow to only copy the necessary fields, I think it is too tedious to mark all the fields that are not u8. And maybe we can still minimize copying by checking the type.
What do you think?

Is is possible to detect if a struct is packed from within a derive macro? Then we could just generate a different implementation based on that information.

I just looked into this a bit. syn::DeriveInput does include the struct's attributes. So it's possible to check if the struct has #[repr(packed)] (or similar). There are two alignment modifiers (The Rust Reference), but as we'll see later, rustc only uses packed for Debug.
I don't really have a strong opinion. Option 1 is nice because it's explicit, but don't "just work". Option 2 is nice because it's automatic, but introduces Copy bounds on types and incurs a slight penalty. Option 3 is nice, because only some fields would need the extra copy... wait, right?
Ugh, so turns out #[repr(packed)] is weirder than I expected, but likely you knew this already? The Rustonomicon warns about using it, and e.g. Rust issue #87368 is an example. To summarize, packed also changes how the structure can be aligned. Take the example I gave. Intuitively, access to the data field should be aligned, because on many platforms, u16 has an alignment of 2. Yet because packed also sets the structures alignment, Packet could have any offset, so anything other than u8 (or the same layout) could be misaligned. I think a lot of code misuses packed, like the code I was working with. Anyway, so packed should probably not be used as much as I thought, and that does change how valuable supporting #[repr(packed)] is.
Given all the issues around packed, I think it would also be reasonable to not implement support for that.

If defmt wants to follow how std::fmt::Debug/core::fmt::Debug works, then option 2 makes the most sense. I expanded the #[derive(Debug)] for a packed/not packed struct:
// #[repr(C)]
impl ::core::fmt::Debug for Packet {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_struct_field3_finish(
            f,
            "Packet",
            "length",
            &self.length,
            "ty",
            &self.ty,
            "data",
            &&self.data,
        )
    }
}

// #[repr(C, packed)]
impl ::core::fmt::Debug for Packet {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_struct_field3_finish(
            f,
            "Packet",
            "length",
            &{ self.length },
            "ty",
            &{ self.ty },
            "data",
            &&{ self.data },
        )
    }
}

I'm unsure why the last field is expanded to &&, but it happens consistently. Note that the expansion must be done with e.g. cargo expand or rustc --profile=check -- -Zunpretty=expanded, as rust-analyzer incorrectly expands Debug.
rustc only checks if the struct has the packed attribute. Also interesting is https://github.com/rust-lang/rust/blob/1.78.0/compiler/rustc_builtin_macros/src/deriving/generic/mod.rs#L1571, which has two exceptions for str and [u8].
So that would suggest option 2.

Well ... I asked around and using repr(packed) seems indeed to be frowned upon. Let's not support it in the derive macro then. If people really want to use it, they can always implement defmt::Format manually.


dgswem-hpx is no longer scaling with increased numbers of threads

...which represents a performance degradation.
Proposed solution:

add HPX-based performance tests
add LBM test
add n-body test
add unstructured grid test
rework threading in UpdateFunctor

@zbyerly @hkaiser Here's the tracker ticket for the performance degradation Zach reported. Sorry for causing trouble for you guys, I'll fix this ASAP.


Preprocessors4x

Import nbconvert
Also fold % magic
Make preprocessors less brittle using try/except

Better do it separately.


Make it build with ghc-9.8

Description
Make it build with ghc-9.8
Checklist

Branch

[x] Updated changelog files.
[ ] Commit sequence broadly makes sense
[ ] Commits have useful messages
[ ] The documentation has been properly updated
[ ] New tests are added if needed and existing tests are updated
[ ] If serialization changes, user-facing consequences (e.g. replay from genesis) are confirmed to be intentional.

Pull Request

[x] Self-reviewed the diff
[ ] Useful pull request description at least containing the following information:

What does this PR change?
Why these changes were needed?
How does this affect downstream repositories and/or end-users?
Which ticket does this PR close (if any)? If it does, is it linked?

[ ] Reviewer requested

Does this PR really need an entry in all the CHNAGELOG files?

The Haskell CI / build (9.8, windows-latest) (pull_request) build is failing due the partial functions like head and tail now having a warning in ghc-9.8 and  -Werror turning that into an error.
The Nix job failure is due to a heap exhaustion error which is suspicious.

The Nix job failure is due to a heap exhaustion error which is suspicious.

We added heap limits quite recently and we're improving memory footprint of io-sim & our test suite.  Sometimes on larger test cases the memory consumption is much higher that average.


Error executing task on Client -  java.lang.IllegalArgumentException: Default value cannot be lower than minimum value!

Describe the bug
@BillyGalbreath Similar to this issue https://github.com/Spottedleaf/Tuinity/issues/55 except the client seems to spam this separate error to the client, unique to connecting with Purpur.
[09:09:45] [Render thread/FATAL]: Error executing task on Client
java.lang.IllegalArgumentException: Default value cannot be lower than minimum value!
	at alx.<init>(SourceFile:21) ~[1.15.2.jar:?]
	at dnp.a(SourceFile:2167) ~[1.15.2.jar:?]
	at pf.a(SourceFile:70) ~[1.15.2.jar:?]
	at pf.a(SourceFile:15) ~[1.15.2.jar:?]
	at lv.a(SourceFile:21) ~[1.15.2.jar:?]
	at lv$$Lambda$2356/71536207.run(Unknown Source) ~[?:?]
	at ais.c(SourceFile:144) [1.15.2.jar:?]
	at aiw.c(SourceFile:23) [1.15.2.jar:?]
	at ais.w(SourceFile:118) [1.15.2.jar:?]
	at ais.bk(SourceFile:103) [1.15.2.jar:?]
	at dbn.d(SourceFile:956) [1.15.2.jar:?]
	at dbn.d(SourceFile:619) [1.15.2.jar:?]
	at net.minecraft.client.main.Main.main(SourceFile:204) [1.15.2.jar:?]

To Reproduce
Connect with a vanilla 1.15.2 client on Purpur dev 507 with Citizens2 dev 1852.
purpur.yml
https://paste.ubuntu.com/p/yYd9vk74JS/
tuinity.yml
https://paste.ubuntu.com/p/KzV4Y4j43j/
Plugins
[08:35:03 INFO]: Plugins (1): Citizens
Version
This server is running Purpur version git-Purpur-508 (MC: 1.15.2) (Implementing API version 1.15.2-R0.1-SNAPSHOT)
Is bug present on Paper, Spigot, CraftBukkit, or Vanilla
No to all. Just Purpur as far as I can tell from testing.

This error is saying the client has received some attribute value that's lower the minimum allowed value.
I am unable to reproduce this with just Purpur (no plugins).

@BillyGalbreath Are you sure it isn't a conflict with a Purpur patch and Citizens (fake player entities)? Here is a self contained zipped test server you can use to easily reproduce the problem.
https://www.dropbox.com/s/7kafyl1yebhwpsr/test.zip?dl=1
Launch start-purpur.bat to run purpur dev 518.
Launch start-tuinity.bat to run tuinity dev 22 .
Launch start-paper.bat to run paper dev 146 .
Use a vanilla 1.15.2 client with Open output log when games start toggled on in the launcher settings. Only fatal log levels need to be enabled. Connect with localhost as the IP on the client. The errors should occur on login and also occur when flying away and back (triggering unload/reload of entities).
This error only occurs on Purpur. It does not occur with Tuinity or Paper.
Error executing task on Client
java.lang.IllegalArgumentException: Default value cannot be lower than minimum value!

This error occurs on Tuinity and Purpur, caused by Tuinity's patches. It does not occur with Paper.
Error executing task on Client
java.lang.NullPointerException

When testing with just Paper, no errors occur and client lag spikes when loading chunks are significantly less impactful.

java.lang.IllegalArgumentException: Default value cannot be lower than minimum value!

Ok, so i spent more time looking into this than I wanted to. In the end, this is actually a vanilla bug in the client.
alr = dh.b(new alx(null, a2.a(), 0.0, Double.MIN_NORMAL, Double.MAX_VALUE));

Here is the constructor of the attribute
    public alx(alq a, String sb double d0, double d1, double d2) {
        super(a, b, d0);
        this.a = d1;
        this.maximum = d2;
        if (d1 > d2) {
            throw new IllegalArgumentException("Minimum value cannot be bigger than maximum value!");
        } else if (d0 < d1) {
            throw new IllegalArgumentException("Default value cannot be lower than minimum value!");
        } else if (d0 > d2) {
            throw new IllegalArgumentException("Default value cannot be bigger than maximum value!");
        }
    }

The middle check is the bit of code that's causing the error. The problem is 0.0 is evaluating to be smaller than Double.MIN_NORMAL so the condition is always true.

There is nothing I can do to fix this.
I was able to easily recreate the problem, even without Citizens, by simply summoning a bat into the game. Purpur sets the generic.flyingSpeed of the bat to 0.6, which is not a normal value for the bat so it sends this update attribute packet to the client. Sadly, the client has the above mentioned error in the code that is not fixable from the server's end.

As for the NPE
java.lang.NullPointerException: null

This is something to do with Tuinity's optimized tracker. The error goes away if you disable that in tuinity.yml

Is there any reason as to why it only occurs with Purpur? I was not able to reproduce it on Tuinity or Paper. Is Purpur doing something to update or check attributes when entities are loaded into view of the client?

RE: NPE, are you sure the error goes away if you disable the optimized tracker? I have optimized-tracker: false set in all the worlds in the tuinity.yml but I still get the error. I'm able to trigger it by flying away from the NPCs and flying back -- forcing the NPCs to load into view again (but be invisible due to Tuinity's patch).
It seems unrelated to the optimized tracker setting.

RE: NPE, are you sure the error goes away if you disable the optimized tracker? I have optimized-tracker: false set in all the worlds in the tuinity.yml but I still get the error. I'm able to trigger it by flying away from the NPCs and flying back -- forcing the NPCs to load into view again (but be invisible due to Tuinity's patch).
It seems unrelated to the optimized tracker setting but caused by the Tuinity patch.

You'll have to take this to Tuinity as it is tracker related. Tuinity optimizes the entity tracker for performance, but Citizens also modifies the tracker for their own use as well. The two are known to conflict.


@StevenMHernandez

          @StevenMHernandez

hai, i can not found this
Component config > Common ESP32-related > Channel for console output > Custom UART
i just find
Component config > Common ESP-related >
there is something wrong or not i don't know, but i use
version (v4.4) of ESP-IDF.
Originally posted by @mtijan in https://github.com/StevenMHernandez/ESP32-CSI-Tool/issues/5#issuecomment-1985293959

you can find that in older version, correct if im wrong


API picks sensible defaults for variables that aren't defined

I am not sure if the goal here was to close this with https://github.com/neurobagel/bagelapi/pull/17. It seems to be checked off in #1 . @rmanaem could you take a look and see if this is still open. If it is open, could you put in the description which parameters you still need good defaults for?

Yea you're right. I think it was left out of the first PR.


fix(reflect): fix target-is-object check

Fix checking for non-null objects as suggested by doktordirk.

@jdanyow Where is this at exactly? Can we merge this? Or does it need further work?

I think we need to get rid of the check that disallows Reflect.defineProperty on a function.

Yes, if we can remove that, it's probably good to go.

maybe i missunderstand you, but it's not disallowing, it's allowing

Gotcha. I was looking at the snippet and didn't see what was going on. I think this is ok then. @jdanyow Confirm?

I'd say it should become something like this:
if (typeof Reflect.defineProperty !== 'function') {
  function isObject(obj) {
    return typeof obj === 'object' ? obj !== null : typeof obj === 'function';
  };
  Reflect.defineProperty = function(target, propertyKey, descriptor) {
      if (!isObject(target) || !isObject(descriptor)) {
        throw new TypeError();
      }
      try {
        Object.defineProperty(target, propertyKey, descriptor);
        return true;
      } catch (e) {
        return false;
      }
  };
}

(The error message is browser specific anyway.)

looks good


Update grammar script to check for version number in other places

https://github.com/jeff-hykin/cpp-textmate-grammar/issues/293

Fixed with https://github.com/microsoft/vscode/commit/922ab6db6251a58ac7761174a7208c9d62116a02


agate: 3.3.0 → 3.3.1

Description of changes
https://github.com/mbrubeck/agate/releases/tag/v3.3.1
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] 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 rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 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 248685 run on x86_64-linux 1

1 package built:

agate

Test is failing on linux, but seems unrelated.

The test failure might be unrelated (it seems like the gmni client itself is segfaulting, not the server under test) but I don't feel super comfortable merging anything that has broken tests. Especially when that's the only test that this service has!
This failure seems very reproducible given that both x86_64-linux and aarch64-linux are failing in exactly the same way. Have you tried rebasing to see if it goes away with a dependency update? If not, maybe you could ask the gmni maintainers for their help (cc @bsima @jb55)

(I'll also note that gmni is not under active development anymore and is unmaintained upstream, so maybe another fix is to swap in another client for the agate nixos test. And remove gmni from nixpkgs along the way... given that it's dead.)

I've replaced gmni with gemget.


[test] Style fixes for "Modify test scripts for aarch64 and modern NDKs"

Some style fixes that @compnerd proposed in PR #19503.

Instead of checking for the two known ARMv7 subarchitectures, check for everything that starts with armv7 and consider it armv7.
Try finding the current platform to select the right prebuilt directory for the NDK tools.
Use -isystem for the system header includes when passing them to
clang.
Modify the format strings which started to be very wild into simpler ' '.join([...]) which, IMO, read better.
Hoist some common path parts to not repeat the same long paths in a
couple of places.
Add more library search paths (missing for atomic)

@swift-ci please smoke test


Easier Django upgrades by caching a plain list instead of ValuesListQuerySet

waffle.views._generate_waffle_js was storing the result of values_list in a cache key. Although it looks like a list, it's actually an instance of ValuesListQuerySet. I encountered a bug in an application that was using a cache backend that pickled complex Python objects: upgrading major Django versions meant the values currently in the cache wouldn't deserialize correctly, throwing an error in the wafflejs view. Using vanilla lists of strings (which is really the intended effect here) makes it slightly more resistant to these upgrades.
I also fixed a brittle test case that broke on Django 1.9 (the @never_cache decorator now returns a few more directives).

Thanks!


SRS/6.0.59(Bee) dvr: ignore video error code=3085(Mp4AvccChange)(MP4 does not support video AVCC change) : write video : encode video : write sample : doesn't support avcc change

[2024-03-21 03:49:26.843][INFO][59274][24m4e713] Hybrid cpu=2.00%,22MB
[2024-03-21 03:49:26.843][INFO][59274][24m4e713] RTC: Server conns=2
[2024-03-21 03:49:26.855][INFO][59274][9px00497] Process: cpu=3.00%,22MB, threads=2
[2024-03-21 03:49:26.871][INFO][59274][82386l8o] <- RTC RECV #13, udp 347, pps 34/34, schedule 347
[2024-03-21 03:49:28.603][INFO][59274][4x2p5h8u] RTC: to rtmp bridge request key frame, ssrc=2250532740, publisher cid=3n8j41k4
[2024-03-21 03:49:28.612][INFO][59274][3n8j41k4] 35B video sh, codec(7, profile=Baseline, level=3.1, 640x360, 0kbps, 0.0fps, 0.0s)
[2024-03-21 03:49:28.612][INFO][59274][3n8j41k4] set ts=2236129523, header=3761, lost=3762
[2024-03-21 03:49:28.752][INFO][59274][3n8j41k4] 35B video sh, codec(7, profile=Baseline, level=3.2, 960x540, 0kbps, 0.0fps, 0.0s)
[2024-03-21 03:49:28.752][WARN][59274][3n8j41k4][11] dvr: ignore video error code=3085(Mp4AvccChange)(MP4 does not support video AVCC change) : write video : encode video : write sample : doesn't support avcc change
thread [59274][3n8j41k4]: on_video() [./src/app/srs_app_dvr.cpp:654][errno=11]
thread [59274][3n8j41k4]: write_video() [./src/app/srs_app_dvr.cpp:153][errno=11]
thread [59274][3n8j41k4]: encode_video() [./src/app/srs_app_dvr.cpp:510][errno=11]
thread [59274][3n8j41k4]: copy_sequence_header() [./src/kernel/srs_kernel_mp4.cpp:6139][errno=11]
[2024-03-21 03:49:28.752][INFO][59274][3n8j41k4] set ts=2236141043, header=3772, lost=3773
[2024-03-21 03:49:28.827][INFO][59274][4a155412] https: connected to https://<IP_ADDRESS>:4433, cost=74ms
[2024-03-21 03:49:29.002][INFO][59274][4a155412] http hook on_dvr success. client_id=3n8j41k4, url=https://<IP_ADDRESS>:4433/dvr.jsp, request={"server_id":"vid-548049c","service_id":"xd7b9836","action":"on_dvr","client_id":"3n8j41k4","ip":"<IP_ADDRESS>","vhost":"defaultVhost","app":"1","tcUrl":"webrtc://<IP_ADDRESS>/1","stream":"v_server1","param":"upstream=rtc","cwd":"/usr/m2m/java/media","file":"./objs/nginx/html/1/v_server1_1711007362640.mp4","stream_url":"/1/v_server1","stream_id":"vid-74w69e2"}, response=
Esteemed expert, the SRS version 6.0.59 (Bee) is unable to record in MP4 format properly, however, recording in FLV format works. What needs to be adjusted to fix this?
TRANS_BY_GPT4

这个错误日志非常清楚了，如果你完全看不懂，请不要使用开源软件，你应该买商业服务。
该Issue会被删除


#3731 post fixes

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR type

[ ] Bugfix
[ ] Feature
[x] Refactoring

What's new?

[x] PR closes #3731
[ ] Requires deployment <rubick/magick_issue>
[ ] <brief_description_of_what_I've_added>

Before submitting Pull Request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[ ] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </rmrk/collection/26902bc2f7c20c546a-1FVG7>
[ ] I've tested PR on mobile and everything seems works
[ ] I found edge cases
[ ] I've written some unit tests 🧪

Had issue bounty label?

[x] Fill up your KSM address:
Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

I can't see no difference in gallery-search icon could you please share screenshot?

find another issue in darkmode, I can't see what I'm typing

I can't see what I'm typing

Yeah, I thought I reported it somewhere; thanks for the reinforcement 😅

gallery-search

removing the gallery-search class will make the icon white

I can't see no difference in gallery-search icon could you please share screenshot?

find another issue in darkmode, I can't see what I'm typing

fixed

Is everything good to go? :)

pay 50

😍 Perfect, I’ve sent the payout
💵 $50 @ 49.71 USD/KSM ~ 1.006 $KSM
🧗 EzGc4s9PgCPx1YnF3fqzhLzVHpHMTL4LWPScwpDrR8JKgSU
🔗 0x1766a7e911d600af7b7029dc1a08b7a323fbcba722ca8ae1adb7c0326d68f432
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Update meta.yaml

create new version 0.11.0

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

@conda-forge-admin, please rerender

Apparently, some unwanted files ended up in the PyPi release, needs new PyPi release.