Support for Python 3.10

Python 3.10 introduced some breaking changes that have not yet been fixed in dbt-core https://github.com/dbt-labs/dbt-core/issues/4974
Until this is fixed, dbt-impala will not work with Python 3.10.
You may see errors such as
  >Runtime Error
  PY_SSIZE_T_CLEAN macro must be defined for '#' formats

@tovganesh  Have we double checked impyla works with 3.10 yet?

@sdairs I installed 3.10.3 locally using pyenv, and tried to reproduce the error - but I was able to run basic dbt tests without issue (I pip3 installed fresh dbt-core and dbt-impala to the new env). Can you elaborate where exactly this error is coming from?

Running dbt debug fails when connecting to the Impala endpoint
dbt-core 1.0.4
dbt-impala 1.0.4
Python 3.10.3
macOS-10.16-x86_64-i386-64bit

dbt_impala_demo:
  outputs:
    dev:
     type: impala
     host: ****
     port: 443
     dbname: dbt_demo
     schema: dbt_demo
     user: abrown
     password: ****
     auth_type: ldap
     use_http_transport: true
     use_ssl: true
     http_path: ****
  target: dev

@sdairs able to reproduce this issue, for some reason pyenv was still pointing to 3.9.x for me

@tovganesh Have we double checked impyla works with 3.10 yet?

i checked impyla with a separate test connection script using 3.10.3, and it seems to be working fine, so guessing this won't be a blocker

https://github.com/dbt-labs/dbt-core/releases/tag/v1.1.0b1 dbt-core 1.1 seems on track to add 3.10 support - though it does deprecate support for <3.7.2

https://github.com/cloudera/dbt-impala/pull/30
fixes this issue


Line2D.points.append( Vector2 ) not work correctly

Godot version:

v3.2.3.stable.official
OS/device including version:

GLES2
Issue description:

Line2D.points cannot use append()
when I use points.append(A), nothing happened. (in the comment part of following code)
	extends Line2D
	const WIDTH = 2
	#const star_line_texture := preload("res://image/star.png")
	func _init(A:Vector2,B:Vector2):
		width = WIDTH
# correctly set Line2D.points
		var point :PoolVector2Array= []
		point.append(A)
		point.append(B)
		points = point

# nothing happened for Line2D.points
#		points = []
#		points.append(A)
#		points.append(B)

Steps to reproduce:
Minimal reproduction project:

Try doing this in func _ready() instead of func _init().

Try adding points in func _ready() instead of func _init(). _init() is called before the node is fully ready, and this may cause problems in specific cases.

I have tried again but useless.
example
extends Line2D
func _ready():
	self.points = []
	self.points.append(Vector2(0,0))
	self.points.append(Vector2(100,100))
	print("1: ",self.points)

	var tmp:PoolVector2Array = []
	tmp.append(Vector2(0,0))
	tmp.append(Vector2(100,100))
	self.points = tmp
	print("2: ",self.points)

output
Godot Engine v3.2.3.stable.official - https://godotengine.org
OpenGL ES 2.0 Renderer: GeForce GTX 1650/PCIe/SSE2
OpenGL ES 2.0 Batching: ON

1: []
2: [(0, 0), (100, 100)]

This is expected, because PoolVector2Array is passed by value rather than reference in 3.2. It's not the case in 4.0 anymore. But not sure whether this would work in 4.0 in all cases, since setting a property may do something else as well as assigning the value, like calling update() callback, in which case you'd need to call it yourself in 4.0. (?)
So I suggest always making a copy (the second case in your snippet):
var tmp:PoolVector2Array = []
tmp.append(Vector2(0,0))
tmp.append(Vector2(100,100))
self.points = tmp

See also #17896.

For reference, caveats of Pool*Array being passed by value are now documented in https://github.com/godotengine/godot/pull/59637.


Don't convert everything to an object?

Right now VOM makes a deep array-to-object conversion of the data to be denormalized (except for indexed arrays). The idea behind that was to always work with the object property-access syntax, which is a bit more readable, and that's the only benefit. It works well, but also it costs performance/processing time.
Make a decision if that is acceptable or if we just require the dev to know what data he operates on, so he is responsible to choose the proper syntax (array or object). It might be acceptable for an api with paginated content, but slow down batch processing too much.
Maybe introduce a (context) option for VOM if it should make the deep conversion or not?

Now sticking to standard symfony behavior of property-access. Updated all tests and the docs.


please tag and version this project

Hello,
Can you please tag and version this project?
I am the Debian Maintainer for go-lz4 and versioning would help Debian keep up with development.

Is there preferable way to version it?
Is this ok?
1.0.49

Where 49 comes from git rev-list --count HEAD.

It would be great if you used semver: http://semver.org/

Added https://github.com/bkaradzic/go-lz4/tree/v1.0.0

thanks!


Create blank semantic model with lakehouse connection and required tables and columns

Describe the bug
What I am trying to do is to create a blank semantic model, connect it to a lakehouse in the workspace, define the tables and the columns that I need from the Lakehouse and to add them to my semantic model.
I am able to create a custom semantic model using the create_blank_semantic_model function along with the add_table and add_column functions. The issue that I'm facing is I want to connect this semantic model to a lakehouse in the workspace where I'm creating this semantic model in so that the data is linked to the semantic model.
Possible solution:
Create blank semantic model.
Use directlake subpackage to import all tables and columns from the lakehouse
Hide / delete objects from the semantic model as required.
I would like to avoid the above approach as it's duplicate work (Add all columns and then remove the ones that you don't need)
Expected behaviour
Being able to use different functions to create a blank semantic model, connect to the lakehouse, add the necessary tables and the required columns in the semantic models
Additional context
I am not sure how can we achieve this functionality

Try using the generate_direct_lake_semantic_model function in 0.7.0.


Q: CascadeType.PERSIST after deleting Entity from List  A: Use @PrivateOwned

I have a persisted entity of type TestSave with a persisted List<Child>. When I remove an entity a from that list and save TestSave again, that entity a is still assigned to that certain TestSave object in the database.
For clarification consider the following two files.
Child.java:
package model;

import java.util.UUID;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

@Entity
public class Child {
	@Id public UUID id;
	@ManyToOne public TestSave parent;
}

TestSave.java:
package model;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServerFactory;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.config.DataSourceConfig;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.text.PathProperties;

@Entity
public class TestSave {

    @Id
    private UUID id;

    @OneToMany(cascade=CascadeType.PERSIST, mappedBy="parent")
    private List<Child> childs;

    public TestSave() {
    	childs = new ArrayList<>();
    }

    public void addChild(Child child) {
    	childs.add(child);
    	child.parent = this;
    }

    public void removeChild(Child child) {
    	childs.remove(child);
    	child.parent = null;
    }

    public static void main(String[] args) {
        // setup
        String databaseName = "test";

        DataSourceConfig ds = new DataSourceConfig();
        ds.setUsername("sa");
        ds.setPassword("");
        ds.setUrl("jdbc:h2:./data/" + databaseName + ";DB_CLOSE_DELAY=-1");
        ds.setDriver("org.h2.Driver");
        ds.setMinConnections(1);
        ds.setMaxConnections(25);
        ds.setHeartbeatSql("select 1");
        ds.setIsolationLevel(Transaction.READ_COMMITTED);

        ServerConfig config = new ServerConfig();
        config.setName(databaseName);
        config.setDataSourceConfig(ds);
        config.setDefaultServer(true);

        config.setDdlGenerate(true);
        config.setDdlRun(!new File("./data/" + databaseName + ".mv.db").exists());

        EbeanServerFactory.create(config);

        // test case
        TestSave testSave = new TestSave();
        Child child = new Child();
        testSave.addChild(child);
        testSave.addChild(new Child());

        Ebean.save(testSave);

        testSave.removeChild(child);
        Ebean.save(testSave);

        PathProperties pathProperties =
		        PathProperties.parse("(id,childs(*))");
        TestSave persistedTestSave = Ebean.find(TestSave.class).apply(pathProperties).findUnique();

        System.out.println(Ebean.json().toJson(testSave));
        System.out.println(Ebean.json().toJson(persistedTestSave));
    }

}

When I run the main in TestSave I get this output:
{"id":"618008b8-66ca-4b48-9ef7-daf98576fd60","childs":[{"id":"9b290575-59d0-48e5-bbda-fccfae787a13"}]}
{"id":"618008b8-66ca-4b48-9ef7-daf98576fd60","childs":[{"id":"98ecee07-6bd0-4b32-a427-3fd4552e6d6e"},{"id":"9b290575-59d0-48e5-bbda-fccfae787a13"}]}

I would however expect that both outputs are equal, i.e. the second line is wrong to my understanding (because child was removed from testSave.childs and testSave was saved afterwards).

Removing a child bean from a @OneToMany List has no effect unless the
collection has the @PrivateOwned annotation.
You need to add the @PrivateOwned annotation to get that behavior.
Cheers, Rob.
On 26 March 2016 at 12:23, jsh0<EMAIL_ADDRESS>wrote:

I have a persisted entity of type TestSave with a persisted List.
When I remove an entity a from that list and save TestSave again, that
entity a is still assigned to that certain TestSave object in the
database.
For clarification consider the following two files.
Child.java:
package model;
import java.util.UUID;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Child {
@Id public UUID id;
@ManyToOne public TestSave parent;
}
TestSave.java:
package model;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServerFactory;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.config.DataSourceConfig;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.text.PathProperties;
@Entity
public class TestSave {
@Id
private UUID id;

@OneToMany(cascade=CascadeType.PERSIST, mappedBy="parent")
private List<Child> childs;

public TestSave() {
    childs = new ArrayList<>();
}

public void addChild(Child child) {
    childs.add(child);
    child.parent = this;
}

public void removeChild(Child child) {
    childs.remove(child);
    child.parent = null;
}

public static void main(String[] args) {
    // setup
    String databaseName = "test";

    DataSourceConfig ds = new DataSourceConfig();
    ds.setUsername("sa");
    ds.setPassword("");
    ds.setUrl("jdbc:h2:./data/" + databaseName + ";DB_CLOSE_DELAY=-1");
    ds.setDriver("org.h2.Driver");
    ds.setMinConnections(1);
    ds.setMaxConnections(25);
    ds.setHeartbeatSql("select 1");
    ds.setIsolationLevel(Transaction.READ_COMMITTED);

    ServerConfig config = new ServerConfig();
    config.setName(databaseName);
    config.setDataSourceConfig(ds);
    config.setDefaultServer(true);

    config.setDdlGenerate(true);
    config.setDdlRun(!new File("./data/" + databaseName + ".mv.db").exists());

    EbeanServerFactory.create(config);

    // test case
    TestSave testSave = new TestSave();
    Child child = new Child();
    testSave.addChild(child);
    testSave.addChild(new Child());

    Ebean.save(testSave);

    testSave.removeChild(child);
    Ebean.save(testSave);

    PathProperties pathProperties =
            PathProperties.parse("(id,childs(*))");
    TestSave persistedTestSave = Ebean.find(TestSave.class).apply(pathProperties).findUnique();

    System.out.println(Ebean.json().toJson(testSave));
    System.out.println(Ebean.json().toJson(persistedTestSave));
}

}
When I run the main in TestSave I get this output:
{"id":"618008b8-66ca-4b48-9ef7-daf98576fd60","childs":[{"id":"9b290575-59d0-48e5-bbda-fccfae787a13"}]}
{"id":"618008b8-66ca-4b48-9ef7-daf98576fd60","childs":[{"id":"98ecee07-6bd0-4b32-a427-3fd4552e6d6e"},{"id":"9b290575-59d0-48e5-bbda-fccfae787a13"}]}
I would however expect that both outputs are equal, i.e. the second line
is wrong to my understanding (because child was removed from
testSave.childs and testSave was saved afterwards).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/ebean-orm/avaje-ebeanorm/issues/624

I'll close this. Reopen if needed. Thanks.

Thanks for your answer.
When I observed the behavior of @PrivateOwned correctly, it also deletes the child entity. This is not what I want. I want to keep the child.
Is there any possibility to remove (only) the relationship from TestSave to Child but not removing the certain child by persisting the certain testSave?
I also tried saving child (not testSave), but the relationship is not removed:
package model;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServerFactory;
import com.avaje.ebean.Transaction;
import com.avaje.ebean.config.DataSourceConfig;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.text.PathProperties;

@Entity
public class TestSave {

    @Id
    private UUID id;

    @OneToMany(cascade=CascadeType.PERSIST, mappedBy="parent")
    private List<Child> childs;

    public TestSave() {
    	childs = new ArrayList<>();
    }

    public void addChild(Child child) {
    	childs.add(child);
    	child.parent = this;
    }

    public void removeChild(Child child) {
    	childs.remove(child);
    	child.parent = null;
    }

    public static void main(String[] args) {
        // setup
        String databaseName = "test";

        DataSourceConfig ds = new DataSourceConfig();
        ds.setUsername("sa");
        ds.setPassword("");
        ds.setUrl("jdbc:h2:./data/" + databaseName + ";DB_CLOSE_DELAY=-1");
        ds.setDriver("org.h2.Driver");
        ds.setMinConnections(1);
        ds.setMaxConnections(25);
        ds.setHeartbeatSql("select 1");
        ds.setIsolationLevel(Transaction.READ_COMMITTED);

        ServerConfig config = new ServerConfig();
        config.setName(databaseName);
        config.setDataSourceConfig(ds);
        config.setDefaultServer(true);

        config.setDdlGenerate(true);
        config.setDdlRun(!new File("./data/" + databaseName + ".mv.db").exists());

        EbeanServerFactory.create(config);

        // test case
        TestSave testSave = new TestSave();
        Child child = new Child();
        testSave.addChild(child);
        testSave.addChild(new Child());

        Ebean.save(testSave);

        testSave.removeChild(child);
        child.parent = null;
        Ebean.save(child);

        PathProperties pathProperties =
		        PathProperties.parse("(id,childs(*))");
        TestSave persistedTestSave = Ebean.find(TestSave.class).apply(pathProperties).findUnique();

        System.out.println(Ebean.json().toJson(testSave));
        System.out.println(Ebean.json().toJson(persistedTestSave));
    }

}

Output is still:
{"id":"654c32d4-75ce-411b-944f-800b5ac73d4a","childs":[{"id":"73ae805e-f17b-4094-82cc-38e68b6e56fa"}]}
{"id":"654c32d4-75ce-411b-944f-800b5ac73d4a","childs":[{"id":"948e2b7a-5b22-4843-a753-6570ea99b836"},{"id":"73ae805e-f17b-4094-82cc-38e68b6e56fa"}]}

A little less abstract example for this would be that I have car where there can be some persons in. So Car contains a @OneToMany List<Person> passengers as field. When a person leaves the car I want to get it removed from passengers, but the person should still exist. So only the bidirectional relation from Car to Person should be removed.

In that case Child will have a @ManyToOne back to TestSave and you just need to null that and save (which effectively removes the relationship / sets the foreign key column to NULL) which is what you are wanting to do.

But this is what I did in the code in my last comment, isn't it? Or am I missing something?
I just took a look at it again: I set parent to null by invoking testSave.removeChild(child); and then execute Ebean.save(child);. I double checked with the debugger, child.parent is indeed set to null. But the log says:
[main] DEBUG com.avaje.ebeaninternal.server.persist.DefaultPersister - Update skipped as bean is unchanged:model.Child@9dc35954
[main] TRACE org.avaje.ebean.TXN - txn[1004] Commit - query only

Am I doing something wrong?

child.parent = null;

That isn't going to work (field access PUTFIELD). You need to use a setter (otherwise Ebean doesn't know it's dirty).

Thanks for your help, it works with a setter.
To conclude: I have to use Ebean.save on the child, not on the parent to remove the relationship. There is no way to remove it by using Ebean.save on the parent.

to conclude

Yes. To say it a SQL way - we want to set the foreign key column to NULL.  The foreign key column is on the Child.  So child.setParent(null); child.save(); does this for us.
We can do the above without fetching/loading the parent (TestSave entity).  Fetching/loading the parent (TestSave entity) just to remove the child is actually wasteful if all we really need to do is (set the parent to null on child and save).
We only need to concern ourselves with "removing the child from TestSave.childs" IF we have further processing/use for TestSave.


Exclude the generated RLBot.cs file from the repo

Generated files like flatbuffer definitions RLBot.cs should not be included in the repository, but generated during of project setup, ideally automatically

I already did

Can we close this issue?

#4


Do all webviews have XSS by default? (Web IDEs)

From what I understand webviews use a "parentOrigin" URL parameter. https://github.com/microsoft/vscode/blob/99305570d885bce929ba8f24d90f2c3ee54c5c2f/src/vs/workbench/contrib/webview/browser/pre/main.js#L25
However an attacker can also embed {{uuid}}.vscode-webview.net and use there own parentOrigin exposing anything using that endpoint.
If the uuid is not known this cant be exploited but because DNS is unencrypted Im not sure its safe.
If this is a valid issue, maybe the parentOrigin could be encoded into the subdomain instead. (So parentOrigin gets a reserved origin)

If you feel there is a security issue, please follow this guide to report it: https://github.com/microsoft/vscode/security/policy (be sure to include a proof of concept)

It was intended to just be a suggestion, since that I know of the uuid would have to be leaked from network or other.
I dont think MSRC would consider it a valid security bug. As I have nothing better to do I may try to create a PoC although you already know of the behavior.


feature request, item weight

I've been looking for a new good packing list app
So I will be watching the development of this app.
Personally I need to have weights added to my list items
With a running total of weight for each list.
Would be nice if there was a luggage group option with weight of all luggage
(Ie a running total of bag, suitcase, carry on separately and together, but I've never seen this before)
These are just ideas when the time comes
And extra great this open source.
Thanks for contributing to the community.

Hello Nupantz,
Thanks for the suggestion, it is a good idea.
I need to add a possibility to add detail on item like quantity, category, value...
This needs a few new screen and model update, I will keep you informed.
Best regards, Nicolas

Hello Nupantz,
I have added most of what you suggested in release 0.8. (available since today 9th of april).
Please have a look.
Best regards, Nicolas

Looks great to start. Two  thoughts only
it would be nice to see total weight of packed items not total weight of all list items
(Some things in the list don't always get packed)
Total packed item weight in the trips screen.
I don't pack for different trips as I have a list for the bag based on season and activities
Ie list of swimming gear for a bag, for when I might so swimming
list of winter clothes to take. In winter. Etc.
So the trips screen is really a list of bags or packs for me.
Very nice work,

Hello Nupantz,
I am happy it (partly suits your need).
Concerning the packed item weight I have created issue #22 , please subscribe to it, il will be easily and consequently quickly done :-)
Concerning your activities lists, I think you have the right approach, I am planning to allow user to pre create thematic lists corresponding to his usual activities and then when creating a new trip, user will be asked if he plans to do each activity. New trip will then be pre-filled with an item list corresponding to activities he agreed.


support dbt-core between 1.6.0 to 1.7.8

Description
resolves
https://github.com/fal-ai/dbt-fal/issues/909
https://github.com/fal-ai/dbt-fal/issues/880

Integration tests
Adapter to test:

bigquery

Python version to test:

3.11

https://github.com/dbt-labs/dbt-core/issues/7300

@mederka  i tried to understand the tests, it seem complicated for me, can i have more details on how to do the test locally please, i'm sorry in advance i'm new in the open source community :)


Create area_of_square.py

program to find area of square

Why am I getting an error in pytest, can anyone help me out please. I don't see any issues with my code.


Invite players/team to qualifier lobby

Inviting players/teams only works for non-qualifier lobbies, for qualifier lobbies it only shows "Qualifier lobby" as both players/teams
Maybe a list where you can select players/teams for the qualifier lobby?

Implemented with #63


build failure with libtool thing

libtool:   error: cannot find the library 'adwm-adwm.la' or unhandled argument 'adwm-adwm.la'

Happened to me once too.  Try ./rebuild.sh  or at least 'make clean' then 'make'.

btw, it was the aur package, and also the roxterm git is the real source and not a fork

Hmm, I'm having trouble upgrading adwm-git also. I deleted my yay cache adwm directory, but it still failed with the same error as OP.
I did a clean clone, ./autogen.sh, ./configure.sh, then make and got this:
Making all in src
make[1]: Entering directory '/home/milk/src/adwm/src'
make  all-am
make[2]: Entering directory '/home/milk/src/adwm/src'
  CC       adwm.o
  CC       actions.o
  CC       config.o
  CC       draw.o
  CC       imlib.o
  CC       pixbuf.o
  CC       xcairo.o
  CC       render.o
  CC       ximage.o
  CC       xlib.o
  CC       ewmh.o
  CC       image.o
  CC       layout.o
  CC       parse.o
  CC       resource.o
  CC       tags.o
  CC       texture.o
  CC       icons.o
  CC       session.o
  CC       save.o
  CCLD     adwm
libtool:   error: cannot find the library 'adwm-adwm.la' or unhandled argument 'adwm-adwm.la'
make[2]: *** [Makefile:807: adwm] Error 1
make[2]: Leaving directory '/home/milk/src/adwm/src'
make[1]: *** [Makefile:617: all] Error 2
make[1]: Leaving directory '/home/milk/src/adwm/src'
make: *** [Makefile:461: all-recursive] Error 1
make  34.33s user 2.68s system 97% cpu 37.794 total

Then I did ./rebuild.sh and that worked and left me with an adwm etc. in src.

Both build fine for me, both with makepkg  on a full blown system as well as in a clean chroot for both 64 and 32.

Very confusing. I'm stuck not being able to do a full system upgrade with yay. I'll try to build with mkchrootpkg, as soon as I can figure out how to get the chroot to syncdeps from the net..

aurbuild.tar.gz
That's what I use (the makem script in the tarball) for creating a 64- and 32-bit chroot in a  development directory (I usually put it in /u8/aur).  After the chroot is created you can
arch-nspawn /u8/aur/64/root

to get into the chroot.  You can do yaourt -Syu from there to update the chroot.  CTRL-D to exit.  The [custom] repository defined in pacman{32,64}.conf goes to my AUR repo which contains all my AUR packages.  In fact you can just download my pre-built adwm package from there.


Refactoring

Uses the new xeus-lite package (the implementation of xeus server for kernels in the browser)
Adds a dedicated bundle for the worker
Copies web_worker_kernel.ts and wroker.ts from xeus-lite and parametrizes them
uses the serviceWorkerRegistrationWrapper for mounting drives

Thanks @JohanMabille!
Mind providing a quick summary of the refactoring items in the top comment of the PR?

sure, done. The idea is to factorize out as much as possible in xeus-lite and eventually have this repo generated by a cookie cutter.

Sounds good, thanks!


Update script to use correct argument

Bug Report

[ ] main
[ ] 4-2-stable

https://github.com/irods/irods_rule_engine_plugin_logical_quotas/blob/df75c52f6d8aa89a2b452aeb56626c2f944b5986/packaging/run_logical_quotas_test.py#L4

Because the mtime plugin no longer exists separately?

This is a copy pasta. Logical Quotas doesn't rely on the mtime plugin in any way.

I don't think anything relies on this script. We should just remove it.


[SPARK-45613][CORE] Expose DeterministicLevel as a DeveloperApi

What changes were proposed in this pull request?
Expose DeterministicLevel as a DeveloperApi
Why are the changes needed?
RDD.getOutputDeterministicLevel is a DeveloperApi - unfortunately, this cannot be overridden by users as DeterministicLevel is private[spark].
Expose it as a DeveloperApi to allow users to override this.
Does this PR introduce any user-facing change?
Yes, updates the visibility of DeterministicLevel
How was this patch tested?
Visibility change, no test required.
Was this patch authored or co-authored using generative AI tooling?
No

+CC @cloud-fan, @Ngone51, @dongjoon-hyun

Merged to master.

Thanks @HyukjinKwon, @cloud-fan  !


Infer component metadata from JS function

A lot of times I have a component as a plain JavaScript function, and then have the component call this function. I like to write this kind of style even for new components, as it makes the 'business logic' of the component very clear.
When doing this one needs to create in/out ports that match the function, and a process function that calls the inner JS function. This is pretty mechanical, so maybe it could be provided by NoFlo?
Original component code
const noflo = require('noflo');

function apiUrl(tenant, username, password, token, base) {
  ....
  return { foo: 'bar' };
}

exports.getComponent = () => {
  const c = new noflo.Component();
  c.description = 'Parse';
  c.icon = 'file';

  c.inPorts.add('username', { datatype: 'string' });
  c.inPorts.add('password', { datatype: 'string' });
  c.inPorts.add('tenant', { datatype: 'string' });
  c.inPorts.add('token', { datatype: 'string' });
  c.outPorts.add('out', { datatype: 'string' });
  c.outPorts.add('error', { datatype: 'object' });

  c.process(((input, output) => {
    const ports = [ 'username', 'password', 'tenant', 'token' ];
    if (!input.hasData(ports) {
      return;
    }
    const username, password, tenant, token = input.getData(ports);
    const url = apiUrl(tenant, username, password, token);
    output.sendDone({
      out: url
    });
  });

  return c;
}

With inferred metadata
const noflo = require('noflo');

function apiUrl(tenant, username, password, token, base) {
  ....
  return { foo: 'bar' };
}

exports.getComponent = () => {
  const c = new noflo.Component();
  c.description = 'Parse';
  c.icon = 'file';

  noflo.component.infer(c, apiUrl);

  return c;
}

Those not used to NoFlo (but know JavaScript) might find this style extra welcoming.

Might be nice to call this asComponent, as it is basically the opposite of asCallback.
Cases to handle:

Basic synchronous function (return value sent to out, thrown error sent to error)
Function returning a Promise (resolved sent to out, failed sent to error)
Function that has a callback as last argument (given (err, out) => function)

The asComponent function should return a component instance. As the second argument one could supply an options object for things like icon, description, list of control ports, etc.
Then it can be as easy as:
const foo = require('some-library');
const noflo = require('noflo');
module.exports = noflo.asComponent(foo, {
   description: 'Do foo',
});


fix: use keccak256 instead of poseidon

Uses keccak256 instead of Poseidon, bringing gas used by the operation down. Constrains the resultant value to 254 bits.

CI fails since the tests dont use the new argument to the withdraw fn, proof


JReleaser failed with Could not determine remote for 3.6.1

+ ./work/quarkus/devtools/cli/distribution/release-cli.sh 3.6.1 3.6 false false
~/work/release/release/work/quarkus/devtools/cli/distribution ~/work/release/release
Cleaning up target
Copying java-binary structure to target/quarkus-cli-3.6.1
Downloading CLI runner jar into target/quarkus-cli-3.6.1/lib/
Creating archives
~/work/release/release/work/quarkus/devtools/cli/distribution/target ~/work/release/release/work/quarkus/devtools/cli/distribution ~/work/release/release
  adding: quarkus-cli-3.6.1/ (stored 0%)
  adding: quarkus-cli-3.6.1/LICENSE (deflated 65%)
  adding: quarkus-cli-3.6.1/bin/ (stored 0%)
  adding: quarkus-cli-3.6.1/bin/quarkus (deflated 59%)
  adding: quarkus-cli-3.6.1/bin/quarkus.bat (deflated 57%)
  adding: quarkus-cli-3.6.1/README (deflated 22%)
  adding: quarkus-cli-3.6.1/lib/ (stored 0%)
  adding: quarkus-cli-3.6.1/lib/quarkus-cli-3.6.1-runner.jar (deflated 13%)
~/work/release/release/work/quarkus/devtools/cli/distribution ~/work/release/release
[jbang] Resolving dependencies...
[jbang]    org.jreleaser:jreleaser:1.3.0
[jbang] Dependencies resolved
jreleaser 1.3.0. Consider becoming a patron at https://www.patreon.com/aalmiray
[INFO]  JReleaser 1.3.0
[INFO]  Configuring with jreleaser.yml
[INFO]    - basedir set to /home/runner/work/release/release/work/quarkus/devtools/cli/distribution
[INFO]  Reading configuration
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Could not determine remote
null
~/work/release/release

This should hopefully be fixed by the latest changes.


Compute CircularBlob's noise position in the DrawNode

Should potentially fix iOS visual issue, but it's hard to tell beforehand.
Calculating the same value for each pixel was not clever anyway.

Relevant conversation on discord: https://discord.com/channels/188630481301012481/589331078574112768/1036618137744977931

@frenzibyte / @peppy any chance this could be tested on device before merge?

Doesn't seem much better to me...

Pushed a fix. Looks better on my device now.


Should support configuration of sample rates

Right now the middleware accepts a minimal set of options (write key, dataset, and api_host) and occludes direct event creation.

This is supported in v1.0.0 of the beeline now!


feat(sqllab): save query parameters in database

SUMMARY

Saves template parameters when query is saved.
Updates frontend to use v1 saved query rest api,
Removes unnecessary parameters from the payload which api doesn't need.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

Enable ENABLE_TEMPLATE_PROCESSING flag
write any query in sqllab with params eg.: SELECT '{{ p1 }}' and set parameters {"p1": "value from params"}
save the query and close the tab then go to saved queries
when saved query is opened, paramter values should show up exactly as it was saved, and when query is run it should show 1 column with value value from params
updating the query with sql or parameters should correctly update the query.
also test changing the query name, and it should update tab name.

ADDITIONAL INFORMATION

[x] Has associated issue: #20576
[x] Required feature flags: ENABLE_TEMPLATE_PROCESSING
[ ] Changes UI
[x] Includes DB Migration (follow approval process in SIP-59)

[x] Migration is atomic, supports rollback & is backwards-compatible
[x] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided -> not needed, cuz it just adds 1 column without default value

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@mayurnewase I sometimes wonder what purpose query parameters have in SQL Lab, other than while developing virtual table queries that are meant to accept query parameters. Do you have a clear use case for persisting query params? It would be great to understand how this feature is usually leveraged in the wild.

hi @villebro I have seen similar issue raised in the associated ticket.
And 1 more case when people write and save query with parameters and share with other people who are not familier with sql and just want to modify the parameters, so sql writers need to send parameters json separately.
Do you think its worth to save it in the db?

hi @villebro I have seen similar issue raised in the associated ticket. And 1 more case when people write and save query with parameters and share with other people who are not familier with sql and just want to modify the parameters, so sql writers need to send parameters json separately.
Do you think its worth saving it in the db?

Hi,
yes, I think the params should be persisted if they weren't previously if there's a clear use case for it. Personally I've just never really seen a very clear use case for query params in SQL Lab, but that may just be me and how I use SQL Lab. But IMO this PR looks good, so I'm happy to review/test when it's ready.

@mayurnewase
Thank you so much for adding this feature!!
I was one of those who asked for that, because I had some complex jinja templated SQL query and I had trouble using the Native Dashboard filter to allow users to click and select the desired values for substitution.
https://github.com/apache/superset/issues/20576#issuecomment-1264367419
With your new feature, users can simply take the templated SQL, update the saved paramters and press RUN to get the output (as raw data without visualisation).
THank you :)))
Now I cannot wait until a new release is ready with your feature :))

Thanks @kenho811 for sharing your use case! And thanks again @mayurnewase for taking this on and doing a thorough cleanup of the related code + adding tests, really stellar work!


change the clusterName field in propagationPolicy and overridePolicy

This PR changes the ClusterName(s) field in the propagationPolicy and overridePolicy CRD to Cluster(s).

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

LGTM, @SOF3 and @limhawjia pls take a look as well


Changing package name causes crash

Describe the bug
A clear and concise description of what the bug is.
I've been working with a clean installation and the app crashes when recognize starts,
on the example everything works great so is started to upgrade the packages
all good, app still works as expected.
the moment i change the package name to anything beside com.example the app crashes  at the return from createTesseractAPI with error:
F DEBUG   :     #17 pc<PHONE_NUMBER>000eac  /dev/ashmem/dalvik-classes5.dex extracted in memory from /data/app/gr.example-tHMzooWQXpPE7PsvR3vs1A==/base.apk!classes5.dex_27171_27171 (deleted) (com.reactlibrary.TesseractOcrModule$2.run+80)
Dependencies (please complete the following information):

"@react-native-community/art": "^1.2.0",
- "react": "16.13.1",
- "react-native": "0.63.3",
- "react-native-image-crop-picker": "^0.35.0",
- "react-native-progress": "^4.1.2",
- "react-native-tesseract-ocr": "^2.0.1"

To Reproduce
Steps to reproduce the behavior:

create new react-native app example
react-native-tesseract-ocr
Make sure it works
Change package name
app crash

Expected behavior
Should work with any package name
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):

Device: samsung galaxy s8 plus
OS: android 9

Is this package abandoned?


[block_synchronizer] implement retry mechanism

Story

Parent story: https://github.com/MystenLabs/narwhal/issues/67
Description
Currently the block_synchronizer does not perform any retry when either a header or a payload is failed to get synchronized. Ideally, we would like the component to perform some retry before letting the consumer know that it failed to retrieve them (they can later retry them selfs if they need to).
As part of this task a retry mechanism should be introduced to allow the block_synchronizer perform an automatic retry in case of a failure. Special attention should be given to the fact that the commands we send to the component they are working in batches fashion:

SynchronizeBlockHeaders
SynchronizeBlockPayload

but the responses are emitted one by one back to the consumer and as soon as a failure has been detected. For example, on the SynchronizeBlockPayload command, which is a 2-step protocol - (1) scouting for peers who are able to serve the payloads & (2) fetch the actual payloads - if we fail to find any peer available to serve a payload on step (1) we immediately notify the consumer about it , although we continue the process with the rest of them. In this case we practically have two main approaches:
(1) wait enough time to "gather" failures of a specific requests and retry them again in a batch fashion
(2) retry immediately as soon as we have a failure for a single entity
pros and cons in both approaches and something to discuss about.
Also, we should pay attention on the selection of the peers that we want to send the retry requests to. We probably don't want to retry syncing the entities from the same peers again.

Won't do for now. We consider that this can be driven by client.


preloading displays experiment fails to load when loading many items

I preload 560 images around 10mb of data for my experiment...in addition to the buggy progress bar (#603 ) the loader displays Experiment failed to load in the background after around 60s. Though loading seems to go on correctly in the background and when it is finished the experiment is displayed correctly. I assume it is running into a timeout or something? Can I somehow increase the loading timeout before displaying this message?
When display of the progress bar is activated it also displays this error msg in the console after a while:
132jspsych.js:2372 Uncaught TypeError: Cannot read property 'style' of null     at update_loading_progress_bar (jspsych.js:2372)     at Image.img.onload (jspsych.js:2284)
See http://www.ibbmgroup.de/florian/mmg/

was able to fix by increasing       'max_load_time': 60000,
Why is this set to only one minute? :)

I set the default at one minute because most experiments do load in under a minute, and the timeout is sometimes useful for diagnosing a server issue. But I think it's a reasonable point that maybe the default should be longer.
I think ideally the pre-loading routines would be a little bit smarter. If the algorithm knows that there are 500 images to load and that progress is steady, then there's no reason to time out. I'd be very open to improvements along this line.
We do need to fix the behavior that the experiment continues to load after this time out message, so I'm leaving this issue open as documentation of that problem (and maybe as a nudge to change the default).

This is obsolete with the shift of preloading behavior to the preload plugin.


[WIP] Trace view

TODO

[ ] Bug with last spike

Closes

Closes #16
Closes #177
Closes #223
Closes #227
Closes #228

Coverage decreased (-0.12%) to 94.94% when pulling fd93c32d8c7aa1fbeb452d01f42056ccd6333b2a on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.15%) to 94.92% when pulling 78b33437be3232dc39e3bfa95f231534529e6281 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.35%) to 94.72% when pulling 8f4d608be5551ec1fdf4554b41a01749160869e9 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.26%) to 94.81% when pulling a8dee58d91177d0836020299ed70404f70d3338e on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.29%) to 94.78% when pulling 2cd0d7db779f2670a9055a1415b87d39d4d27700 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.27%) to 94.8% when pulling 2cd0d7db779f2670a9055a1415b87d39d4d27700 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.89%) to 94.18% when pulling 82e5f9b41f8c388f38e04bdb949dc4a96e19c640 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.93%) to 94.13% when pulling c30ca74dc31325e17ee47a90b5b464ce9e0c7936 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.99%) to 94.08% when pulling bb9fd27388b2d60e14a013dd00375fc7912969c9 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-0.89%) to 94.18% when pulling 1dd9c964d43e0394407f152ea738849c3cb8d36d on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.11%) to 93.96% when pulling aba0b8ce85014059915fc5a6c8bd30fb43a291ba on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.11%) to 93.96% when pulling aba0b8ce85014059915fc5a6c8bd30fb43a291ba on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.38%) to 93.69% when pulling a242dc73715b8edaacdb36294713a5f8482e1864 on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

@nippoo this is ready for review/merge!

Coverage decreased (-1.39%) to 93.68% when pulling e42788dc2496bb26e8e045b051e9bb4b047af07d on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.39%) to 93.68% when pulling e42788dc2496bb26e8e045b051e9bb4b047af07d on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.49%) to 93.58% when pulling d2f437ae4484282bd7b90d65994697bf166b61ad on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.66%) to 93.41% when pulling f3b6d44b64f2e40674a777876be32eb0cf4ee4af on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.72%) to 93.35% when pulling 76bfa895d1adc44aa68a438538a5c7fb1738072f on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.81%) to 93.26% when pulling 5117c56ea2b5b5c1da3150e10d3e51f9bc6cb39a on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.

Coverage decreased (-1.85%) to 93.22% when pulling c7f0d2acf3fbc70f2f3c10c343ad7d07b64781cb on rossant:trace-view into 41d1b1e30434904c6ea5bd47198025a61c2d7b5d on kwikteam:master.


HDDS-9300. Instruct admins to use OZONE_MANAGER_CLASSPATH for RangerOzoneAuthorizer

What changes were proposed in this pull request?
The doc should ask admins to configure RangerOzoneAuthorizer classpath using OZONE_MANAGER_CLASSPATH instead of OZONE_CLASSPATH so as to narrow down the effective scope of it to OMs only.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9300
How was this patch tested?

CDP is already using OZONE_MANAGER_CLASSPATH.

Thanks @smengcl for the improvement.


Type '{ path: string; component: string; }' is not assignable to type 'RouteMetadata'

At ngConf I keep seeing examples of dynamic component loading with the component router using a string for the component property of RouteMetaData:
@Routes([
  {path: '/page1', component: 'Page1Component'}
])

But I get a TS compile error
The Broccoli Plugin: [BroccoliTypeScriptCompiler] failed with:
Error: Typescript found the following errors:
  /Users/richardcollette/code/ngclitest/Experimental/tmp/broccoli_type_script_compiler-input_base_path-bIVm8AbG.tmp/0/src/app/experimental.component.ts (13, 9): Argument of type '{ path: string; component: string; }[]' is not assignable to parameter of type 'RouteMetadata[]'.
  Type '{ path: string; component: string; }' is not assignable to type 'RouteMetadata'.
    Types of property 'component' are incompatible.
      Type 'string' is not assignable to type 'Type'.
    at BroccoliTypeScriptCompiler._doIncrementalBuild (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:115:19)
    at BroccoliTypeScriptCompiler.build (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:43:10)
    at /Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/index.js:152:21
    at lib$rsvp$$internal$$tryCatch (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/node_modules/rsvp/dist/rsvp.js:1048:17)
    at lib$rsvp$$internal$$publish (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/node_modules/rsvp/dist/rsvp.js:1019:11)
    at lib$rsvp$asap$$flush (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/node_modules/rsvp/dist/rsvp.js:1198:9)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

The broccoli plugin was instantiated at:
    at BroccoliTypeScriptCompiler.Plugin (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/node_modules/broccoli-plugin/index.js:10:31)
    at BroccoliTypeScriptCompiler.CachingWriter [as constructor] (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/broccoli-caching-writer/index.js:21:10)
    at BroccoliTypeScriptCompiler (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:26:49)
    at Angular2App._getTsTree (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/lib/broccoli/angular2-app.js:280:18)
    at Angular2App._buildTree (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/lib/broccoli/angular2-app.js:101:23)
    at new Angular2App (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/lib/broccoli/angular2-app.js:42:23)
    at module.exports (/Users/richardcollette/code/ngclitest/Experimental/angular-cli-build.js:6:10)
    at Class.module.exports.Task.extend.setupBroccoliBuilder (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/lib/models/builder.js:55:19)
    at Class.module.exports.Task.extend.init (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/lib/models/builder.js:89:10)
    at new Class (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/node_modules/core-object/core-object.js:18:12)
    at Class.module.exports.Task.extend.run (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/lib/tasks/serve.js:15:19)
    at /Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/lib/commands/serve.js:64:24
    at lib$rsvp$$internal$$tryCatch (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1048:17)
    at /Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:331:11
    at lib$rsvp$asap$$flush (/Users/richardcollette/code/ngclitest/Experimental/node_modules/angular-cli/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1198:9)

I'm not sure if this is a CLI setup issue or something in Angular itself.

@rcollette You are supposed to assign the component itself not the component's name as string. Just remove the quotes arround Page1Component.
@Routes([   {path: '/page1', component: Page1Component} ])

I know that works but the examples I keep seeing here at ngConf for deferred component loading, they are showing it as a string.   It seems @Routes at one point had a name property which might have been useful for this but that is no longer present as well.
Maybe they were using @RouteConfig instead and I just missed that fact?  I know they weren't doing anything like setting a loader property though.    I'll see if I can find the guy who was giving the router talk before the conf is over.

Talking to other people here, apparently we got an early look at this functionality.  I'm going to close this.

thanks sabbirrahman for that tip.  it helped me continue with the tutorial.

i got above error though i didn't put inverted commas to components.


Organize tests into subdirs based on what feature is being tested.

Is there a reason this issue is still open? Tests currently seem to be organized into subdirs depending on the bug they are testing for

I think the original idea was to organise them a bit further.  E.g., tests which should succeed, tests which should fail, tests which require deployment could all be separated.  And then, maybe parser, core and backend tests could be organised even more.


tracing: update the tracingConfig() to return opt ref

Signed-off-by: wbpcode<EMAIL_ADDRESS>Commit Message:
Additional Description:
The #22987 triggered a bug, that envoy may access dangling reference when router set_start_child_span is set to true and there's no HCM trace config.
And @alyssawilk fixed it in the #23490.
But after talking with @alyssawilk offline, we both agree to optimize the current API to make it more clear to avoid similar problem.
Risk Level: mid. core code update.
Testing: n/a.
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

Hi, @alyssawilk, could you take a look for this PR to ensure it match our expection and will not break your previous fix? Thanks.

yeah this looks about what I expected but let's get CI sorted out
/wait

/retest

sorry for any confusion I'd asked for an e2e test. If that's not plausible you could runtime guard and/or see if there's another maintainer familiar enough with the tracing code they'd be comfortable approving. /wait-any

It's a little strange to create a test to ensure envoy will report nothing when there is no reporter (HCM tracing config or global tracing config.)
Maybe I can add a guard directly. Anyway, it would be removed after six months. 🤔 Or cc @mattklein123 could you take a look to this when you have free time. I haven't found a maintainer in the OWNERS that could help to review the tracing related code. orz.

I checked the code again. If there is no HCM tracing config, only null span will be created. So, I will merge it without the runtime guard.


Not deleting 'output' fills up workers

When using GCS the output is kept in the configured output folder while it has already been written to GCS. Making sure the output folder is cleaned after each request prevents filling up the folder and failing tasks (due to no disk space left)

Similar issue for the TMP_DIR as well.  For tmp we can probably use a temp cleaner cron job.


Source pinning seems to be ignored during updates

Given a Gemfile where a gem is pinned to a secondary source:
source "https://rubygems.org"
source "private" do
  gem "pony"
end

It appears that running bundle update --source pony (and possibly even just bundle update) will install the pony gem from RubyGems if the version available from RubyGems is higher than the version available from the private server.

While you're at it, could you whip up a test for the benefit of future andre?

This spec seems to pass on the current Bundler master branch.
  it "will update only from pinned source" do
    install_gemfile <<-G
      source "file://#{gem_repo2}"

      source "file://#{gem_repo1}" do
        gem "thin"
      end
    G

    update_repo2 do
      build_gem "thin", "2.0"
    end

    bundle "update"
    should_be_installed "thin 1.0"
  end

hooray! @b-ggs, can you open a PR that adds that spec, so we can guarantee this won't break again?

@indirect Will do! :+1:


Use Bootstrap-Flask accessibility features

For example, render_icon accepts title and desc parameters which it says are "for accessibility support". Does one of these become alt-text? What's the best practice for icons that are on buttons with text already?

@mfisher87 The desc parameter becomes alt-text I suppose. In my humble opinion the practice that I saw in some places was to provide and alt-text parameter with these icons which describe the core functionality of the component (button in this case).


Refactor parsing of hie.yaml files

Takes care of #315
This introduces a Hie.Bios.Config.YAML module which defines datatypes a bit closer to the YAML structure.
It allows writing simpler FromJSON instances (without using CPP !) and should be equivalent to the types existing in the Hie.Bios.Config module.

Hi! Looking good!
Since CI has a failure, can you add the failing hie.yaml to the parser-tests? If I read this correctly, should be this one: https://github.com/haskell/hie-bios/blob/master/tests/projects/failing-cabal/hie.yaml

@fendor all should be good now !

Unfortunately, the generic variant suffers currently from the issue of ignoring unknown keys. Example:
cradle:
  cabal:
    comp:
    - "exe:hie-bios"

is an invalid hie.yaml.
and currently hie-bios reports:
hie-bios: AesonException "Error in $.cradle: Not a valid Cabal configuration, following keys are allowed: component"

but with this patch, this becomes:
Config {cradle = CradleConfig {cradleDependencies = [], cradleType = Cabal {component = Nothing}}}

It successfully parses, and ignores that you mistyped or misnamed the argument.
Can we do better than that?

Oh I see. I've got few questions on this point.
As I've seen in the test suite, empty objects are allowed right ?
Regarding unknown keys, what should be the behavior when the object we provide contains a valid config but with extra keys that we will ignore ?
Failing on missing keys is pretty straightforward, but failing on extra unwanted keys might be a bit trickier to do.

Regarding unknown keys, what should be the behavior when the object we provide contains a valid config but with extra keys that we will ignore ?

Until now, we threw an error message. The point being that you notice you didn't write the correct configuration and something is not right.
The idea being that subtle typos are discovered ASAP, and not just ignored.
At the moment, I think it is better if we throw an error if there are extra keys we don't know.
It is indeed trickier :/

f2f16ecf9d80d2d56b29f821216b7c607c3ecb10 is a proposal for fixing this particular point.
The downside is that we have to duplicate a bit the keys between parsing and checking but the implementation is relatively simple.
Let me know what you think !

BTW, I did not forget, just didn't have time for an in-depth review (since this is important to get right). So far it looks good, and I am going to review in depth until the end of the weekend.

Sure, absolutely no worries ! I won't be responsive this week-end, but I'll remain available to work on it next week :)

I see your point and did not consider this angle before. @ThomasCrevoisier Would it be hard to turn these errors into warnings?

👋 Truely sorry @fendor, those past months have been quite busy and I forgot to come back to this PR 😞
Feel free to move forward with it (I don't have any simple solution in mind regarding extra keys handling unfortunately), and again, sorry for the lack of reactivity.

No need to apologise, life can be stressful (speaking from experience), and we all deeply appreciate the time you have spent on this!


'str' object has no attribute 'extend'

Seems something potentially changed in the SimpleLogin API and broke the workflow. This is the error I get the first time I try to update aliases (after setting the API key):
[14:23:27.159] SimpleLogin[Run Script] Passing output '{
  "items": [
    {
      "title": "Error in workflow 'SimpleLogin'",
      "subtitle": "'str' object has no attribute 'extend'",
      "valid": false,
      "icon": {
        "path": "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertStopIcon.icns"
      }
    }
  ]
}' to Post Notification

I need the exact place this error is happening.. From the debug logs for this workflow,


Improvement for k8s.io/docs/tasks/administer-cluster/cpu-management-policies/

This page only discusses the semantics of single-container pods. When pods are scheduled that consist of multiple containers, all of them need to be Guaranteed QoS. Even init containers are taken into account.
(To be honest, I find these semantics a bit weird. Why couldn't cpusets be set up properly for individual containers, even when the pod as a whole isn't Guaranteed QoS?)

/kind feature
/language en
This issue seems to be about making clear that multi-container Pods must consist only of containers where requests == limits, in order to be treated as Guaranteed.
/triage accepted
/priority backlog

/remove-lifecycle rotten


Incorrect "Type application has too few types" when constructing generic Series type

from pandera.typing import Series

x = Series[int]([1, 2, 3])

or
from pandera.typing import Series
import pandas as pd

df = pd.DataFrame([[1]], columns=['a'])
df['a'].pipe(Series[int])

cause mypy to produce errors like error: Type application has too few types (2 expected)  [misc]
Please complete the following information:

OS: Windows + Linux
python version: 3.9
mypy==0.991
pandas-stubs==<IP_ADDRESS>213  (issue not present in <IP_ADDRESS>124 and earlier)

Additional context
May be similar/same issue as #197 but for Series rather than DataFrames?

Why are you using Series from pandera?  I think you might be in the wrong repo, as I don't think we support anything other than direct pandas use.

Well, I'm using pandera, which uses pandas-stubs, and I'm claiming a regression in pandas-stubs has broken pandera. Exactly like it was broken for pandera's DataFrame type in #197.
Here's a repro that doesn't involve pandera, hacked together from @cosmicBBoy's repro in #197. It's mypy-happy with pandas-stubs  <IP_ADDRESS>124 and mypy-unhappy with <IP_ADDRESS>213 (same error as above).
from typing import Generic, TypeVar

import pandas as pd

T = TypeVar("T")

class MySeries(pd.Series[int], Generic[T]):
    ...

def func() -> MySeries[float]:
    return MySeries[float]([1, 2, 3])

Can you write a reproducer using only pandas and not subclasses?

Can you write a reproducer using only pandas and not subclasses?

No, I don't think so.
Reading #197 more carefully I see that (assuming it's similar) it's caused by a mypy issue (https://github.com/python/mypy/issues/13437 ). However, previously (#197) @Dr-Irv seemed happy to mitigate this with a change in pandas-stubs to avoid breaking pandera. Would be really helpful if a similar thing could be done here.

My current hypothesis on this is as follows:

The error from mypy is correct.  In pandas-stubs, Series is Generic and in the example above, MySeries is also Generic, so the error message error: Type application has too few types (2 expected) [misc] is saying that you need two types when declaring MySeries (one from MySeries, the other from Series)
Why mypy picked this up in pandas-stubs v1..5.2.221213 and not in v<IP_ADDRESS>124 might be a mypy bug of some kind
We'll have to try git bisect to determine the particular commit that changed the mypy behavior.

My sense now is that when we find the commit, it will be an innocuous change.  I think the fundamental issue will be that to declare MySeries, you have to pass in two types to the declaration, i.e., something like MySeries[int,int] .  That might not work well for pandera.

git bisect reveals that commit https://github.com/pandas-dev/pandas-stubs/commit/dc9a094bdcd6b00e0f727d9324a0b2fed26435ae caused things to change between stub versions  <IP_ADDRESS>124  and <IP_ADDRESS>213


Only issue matching token errors on non-dupe locations

Instead of unconditionally retrieving the last error and attaching a related span, parseErrorAt and friends now return the last error and
return false when there is none.
Also make one more place use parseExpectedMatchingBrackets that I missed last time.
Previously open questions:

Does returning a value slowdown parseErrorAt and friends?
Would returning Diagnostic | undefined be faster than Diagnostic | false?
Would it slow down parseExpected to delegate to parseTokenForError and convert the return to boolean?

Answers:

No.
No, but it reads better, so I did.
I decided to inline parseTokenForError, so this is moot.

Fixes comment on #40884.

@typescript-bot perf test this

Re 2: it reads less strangely to use undefined, so I'm going to do that.

@typescript-bot perf test this

Thank you!


Add Save button and Print Json File

Issue that this pull request solves
Closes: #192
Proposed changes
Brief description of what is fixed or changed
Changed File Upload icon. Implemented file upload function with addBlockEditor function. Added Save Button and created a JSON Object with the map object. Implemented type PluginType as well.
Types of changes
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] My changes does not break the current system and it passes all the current test cases.

Screenshots
Please attach the screenshots of the changes made in case of change in user interface

Other information
Any other information that is important to this pull request

Will submit a new PR after implementing new Changes


Prezto is not installed as a package.

As such it is not automatically updated with the system. There is a prezto package. Might be worth investigating.

The following message shows when installing the prezto package:

It seems we can just keep our configuration files but skip the git clone --recursive https://github.com/sorin-ionescu/prezto.git /mnt/etc/skel/.zprezto.
I am not sure if we need to keep the zsh_setup_configs.sh scripts.

System-wide configuration files are installation-dependent but are installed in /etc by default.
User-local configuration files have the same name as their global counterparts but are prefixed with a dot (hidden). Zsh looks for these files in the path stored in the $ZDOTDIR environmental variable. However, if said variable is not defined, Zsh will use the user's home directory.

We could make our configurations the global default for all users.

Ok I tested this in vbox and it seems:

by default the files in /etc/zsh/ are used
modifying the default files will have global effect
we can also just keep the user (dot-) files if we want
we can remove the zsh_setup_configs.sh step
/usr/lib/prezto/ is the install folder, where we can put our prompt_plasmon_setup file

Setting it globally is nice. Having a clean home folder after install is definitely better. If the user then decides to change settings he can still create the required files

Branch automatic_prezto is not yet working (tested 2d6e37be076c807ad21e7cdf7873ad8588298b6d).


fix: don't use guilds scope [CU-3ygghvg]

Task linked: CU-3ygghvg Discord rate limits preventing logon


Bug: DocChatAgent not using stand-alone query

In a multi-round dialog, although we are converting the curr query
to a stand-alone query (via the LLM), we are not actually using this when
generating the final answer.

fixed in PR #232


AUDIT: Variable err not assigned but used inside if condition

Surfaced from @informalsystems audit of Stride at commit f9736fe0

finding:
id: IF-STRIDE-STAKEIBC-HOST_ZONE_UNBOINDING_2
title: Variable err not assigned but used inside if condition
severity: Informational
impact: None
exploitability: None
type: Implementation
issue:
status: Unresolved
Involved artifacts

x/stakeibc/keeper/unbonding_records.go

Description
Variable err doesn’t have associated value but it is used inside if condition:
for _, validator := range validators {
		valAddr := validator.GetAddress()
		valUnbondAmt := newUnbondingToValidator[valAddr]
		currentAmtStaked := validator.GetDelegationAmt()
		if err != nil {
			errMsg := fmt.Sprintf("Error fetching validator staked amount %d: %s", currentAmtStaked, err.Error())
			k.Logger(ctx).Error(errMsg)
			return nil, 0, nil, nil, sdkerrors.Wrap(types.ErrNoValidatorAmts, errMsg)
		}
		...
	}

Function GetDelegationAmt() doesn't return any errors.
Problem Scenarios
Existing of dead code inside for loop. Even though err should never be different than nil in the current implementation, reading the code could lead to wrong conclusions.
Recommendation
Remove if condition from the code in Description. Handle the 0 delegation amount (currentAmtStaked) case if there is a need for that.

@asalzmann Just check the main branch, i think the err has been removed already

Son, I don't think it is -- though I am not yet sure how to handle the feedback....

Resolved here https://github.com/Stride-Labs/stride/pull/518/files#diff-ba71e9ef6bf1ebcc5243683cbd44405947d8109d7ffb825c7c353d256f7e2179R77


module 'pyparsing' has no attribute 'downcaseTokens'

I think maybe my Arch upgraded the package too forward and broke a dependency.
Downloads i3-agenda -c /home/zack/drive/else/Configs/google_calendar_credentials.json -ttl 10
Traceback (most recent call last):
  File "/usr/bin/i3-agenda", line 33, in <module>
    sys.exit(load_entry_point('i3-agenda==1.6.3', 'console_scripts', 'i3-agenda')())
  File "/usr/lib/python3.9/site-packages/i3_agenda/__init__.py", line 59, in main
    events = load_events(args)
  File "/usr/lib/python3.9/site-packages/i3_agenda/__init__.py", line 39, in load_events
    from API import get_events
  File "/usr/bin/API.py", line 9, in <module>
    from googleapiclient.discovery import build, Resource
  File "/usr/lib/python3.9/site-packages/googleapiclient/discovery.py", line 42, in <module>
    import httplib2
  File "/usr/lib/python3.9/site-packages/httplib2/__init__.py", line 52, in <module>
    from . import auth
  File "/usr/lib/python3.9/site-packages/httplib2/auth.py", line 20, in <module>
    auth_param_name = token.copy().setName("auth-param-name").addParseAction(pp.downcaseTokens)
AttributeError: module 'pyparsing' has no attribute 'downcaseTokens'

I rebuilt the package via reinstallation. Thanks!


Struct references as imported function argument

Summary
Is there a way to pass in a reference to a struct as an argument to an imported function. The following code errors with the trait "wasm_bindgen::convert::traits::IntoWasmAbi" is not implemented for "&Test"
use wasm_bindgen::prelude::*;

#[wasm_bindgen(module = "/import.js")]
extern "C" {
    fn callable(test: &Test);
}

#[wasm_bindgen]
struct Test {}

Additional Details
I imagine there is some technical reason why this doesn't work but my brain isn't big enough to know why. 😂 Awesome project BTW!!

This is currently due to how lifetime management is different in JS than it is in Rust. By handing out a &T you're handing out a temporary loan to JS from Rust, but JS has no concept of this. It can be done by creating a JS object and then clearing its internal info when the function returns, but that's not currently implemented yet.
It should be ok to implement this, it just needs to be carefully done so.

Unfortunately, yeah. For now you'll have to pass a struct-by-value.


Error Installing iPython Notebook Extensions

Hello,
I used the install command
 pip install https://github.com/ipython-contrib/IPython-notebook-extensions/archive/master.zip --user
It looks like everything is working fine until it is configuring extensions. That is when there is an error, see below.
I am running Python 2.7 and Jupyter 4.1.0 on a Windows 7 64 Bit

    Installing Jupyter notebook extensions.
    Done!
    Configuring extensions...
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "c:\users\moyp\appdata\local\temp\6\pip-neykdl-build\setup.py", line
54, in <module>
        import configure_nbextensions
      File "configure_nbextensions.py", line 81, in <module>
        except (psutil.ZombieProcess, psutil.AccessDenied):
    AttributeError: 'ModuleWrapper' object has no attribute 'ZombieProcess'

    ----------------------------------------
Command "c:\users\moyp\dev\anaconda\python.exe -u -c "import setuptools, tokeniz
e;__file__='c:\\users\\moyp\\appdata\\local\\temp\\6\\pip-neykdl-build\\setup.py
';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n',
'\n'), __file__, 'exec'))" install --record c:\users\moyp\appdata\local\temp\6\p
ip-3fuaog-record\install-record.txt --single-version-externally-managed --compil
e --user --prefix=" failed with error code 1 in c:\users\moyp\appdata\local\temp
\6\pip-neykdl-build\

upgrading psutil was the solution?


[BUG] Why it does not show drive letter

Description

It does not show drive letter
Steps To Reproduce
As mentioned above
Requirements
How to make it show drive letter, i need it.
Files Version
<IP_ADDRESS>
Windows Version
Windows 11 Pro Insider Preview - 22H2 - 23545.1000
Log File
debug.log

Thanks for the report, can you send a screenshot of Windows File Explorer This PC section.

Okey

This is This PC in Files APP

and this is Windows File Explorer This PC

Thank you, i had solved it, thanks again for spend time for me.

@MeiVinEight what was the issue?

I am also having this issue. Any ideas?

Check Windows File Explorer if it also doesn't show them then you will rename the drives to add them.


Native pretty-print required

scala.xml.PrettyPrinter does not generate validate W3 html markup language, and alters the orginal placements of tags.
For example
script(src:=""/assets/jquery.min.js"")
generates
< script src="/assets/jquery.min.js"></script>
and is converted to
< script src="/assets/jquery.min.js"/>
When in development it is useful to see the structure of the HTML, however by using scala.xml.PrettyPrinter as described in the readme.md the output is changed and becomes invalid.
Would it be possible to create a basic pretty-print within scalatags itself, I don't think you would need to wrap long lines of text, but showing the correct indentation would be enough.

Ahh, yes, I ran into this as well. At a minimum, this should perhaps be mentioned in tho docs.

I messed around with this today:
scala> import scalatags.PrettyText.all._
import scalatags.PrettyText.all._

scala> val frag = html(
     |   head(
     |     script("some script")
     |   ),
     |   body(
     |     h1("This is my title"),
     |     div(
     |       p("This is my first paragraph"),
     |       p("This is my second paragraph")
     |     )
     |   )
     | )
frag: scalatags.PrettyText.TypedTag[String] =

      This is my title

        This is my first paragraph

        This is my second paragraph

Basically PrettyText is a cloned Text backend with prettier output.  It's just a newline per tag and two spaces indent.  I had to add a depth parameter to Frag.writeTo (strb, depth) but otherwise core scalatags is unchanged.  I could perhaps make the additional parameter exclusive to PrettyText with some more effort.
What do you think?  You've had a few spurious issues caused by pretty printing using scala.xml.

For my use case this is perfect.
I just need to see how the HTML is visually rendered (when using complex functions that generate HTML). The above indentation method allows me to do this quickly. I will only use this when in development and switch to the standard Text backend for production.
Regarding the technical aspects of the implementation, if PrettyText is a lot of cloned code this might make maintenance of the code more effort going forward. As both PrettyText and Text might potentially need to be changed. Not sure if PrettyText functionality could be added as a method of Text to reduce any potential code duplication  ( caveat... I've not looked at the code in detail )
Thanks again.

I'll make a fork and push the branch when my power comes back on...  It's certainly not slick but for 100 loc or so , mostly copied, it's a decent result.

200 loc or so actually, and I was hoping @lihaoyi would weigh in before I put more effort into this...

Sorry, will take a look
On Apr 9, 2015 05:13, "mark lister"<EMAIL_ADDRESS>wrote:

200 loc or so actually, and I was hoping @lihaoyi
https://github.com/lihaoyi would weigh in before I put more effort into
this...
—
Reply to this email directly or view it on GitHub
https://github.com/lihaoyi/scalatags/issues/76#issuecomment-91211959.

  Not a pull request as it's pretty rough, just for discussion really.

I had much better idea which I'll implement soon.  Sorry about the noise.

branch prettytext2
It provides an implict class on a Text.TypedTag which has basic structured output.  Totally non-invasive to scalatags and controlled by an import.  First try and again, for discussion.
Welcome to Scala version 2.11.4 (OpenJDK Server VM, Java 1.7.0_75).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import scalatags.Text.all._
import scalatags.Text.all._

scala> import scalatags.text.Pretty._
import scalatags.text.Pretty._

scala> div(
     |   div(id:="ch1Panel", role:="tabpanel", aria.labelledby:="ch1Tab")(
     |     "Chapter 1 content goes here"
     |   ),
     |   div(id:="ch2Panel", role:="tabpanel", aria.labelledby:="ch2Tab")(
     |     "Chapter 2 content goes here"
     |   ),
     |   div(id:="quizPanel", role:="tabpanel", aria.labelledby:="quizTab")(
     |     "Quiz content goes here"
     |   )
     | )
res1: scalatags.Text.TypedTag[String] =

Chapter 1 content goes here

Chapter 2 content goes here

Quiz content goes here

scala> res1.pretty
res2: scalatags.text.Pretty.PrettyFrag =

    Chapter 1 content goes here

    Chapter 2 content goes here

    Quiz content goes here

Want to send a PR? This sounds pretty self-contained and uncontroversial

@lihaoyi you can take a look, it's PR #80....

Native pretty print is a good choice.
Meanwhile if you need html pretty print, try HtmlCleaner: http://htmlcleaner.sourceforge.net/
One might say that it is overkill, but it works.
Example:
val h = html(
    head(
      script("some script"),
      script(src:="/assets/jquery.min.js")
    ),
    body(
      h1("This is my title"),
      div(
          h1(backgroundColor:="blue", color:="red")("This is my title"),
          div(backgroundColor:="blue", color:="red")(
            p(cls := "contentpara first")(
              "This is my first paragraph"
            ),
            a(opacity:=0.9)(
              p(cls := "contentpara")("Goooogle")
            )
          ),
          "A B C",
        p("Hello World!!!"),
        p("I am ScalaTags!!!"),
        p("onclick".attr:="... do some js")(
          "This is my first paragraph"
        ),
        a("href".attr:="http://www.google.com")(
          p("Goooogle")
        )
      )
    )
  )

  logger.debug("html = \n" + "<!DOCTYPE html>" + h.render)

  import org.htmlcleaner

  // create an instance of HtmlCleaner
  val cleaner = new org.htmlcleaner.HtmlCleaner();

  // take default cleaner properties
  val props = cleaner.getProperties();

  val tag = cleaner.clean("<!DOCTYPE html>" + h.render)

  val pretty = new PrettyHtmlSerializer(props, "  ")
  logger.debug("html = \n" + pretty.getAsString(tag))

This will produce:
13:42:24.243 [run-main-1] DEBUG Main$ - html =
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

This is my title

This is my title

This is my first paragraph

Goooogle

A B C

Hello World!!!

I am ScalaTags!!!

This is my first paragraph

Goooogle

@lihaoyi, please merge

Side note: pretty-printed HTML may yield different rendering in browser. Example:

hello

world

hello

world


Does it support PHP 7.1 and 7.2 too?

Hi!
I guess your code does support. :)
I just see some limitations in composer.json file.
Could you test your code and update requirements?
Thanks for the module, by the way!

Off-topic...
@Seldaek , you may simplify path src/Seld/JsonLint. Just update composer.json to PSR-4 for \Seld\JsonLint\ namespace.
  "autoload": {
    "psr-4": {
      "\\Seld\\JsonLint\\\": "src/"
    }
  },

Yep, I just missed "^" sign near "7.0" in versions requirement.
Thx for the answer.


Rename repo from Sphinx-Needs-VsCode to sphinx-needs-vscode

The most silly question perhaps :)
Why Sphinx-Needs-VsCode for repo name and not sphinx-needs-vscode ?

Also thought about it and will rename it now :)


Distributed planning evaluation framework with GCP

Instruction of setup
Requirements

To be able to access the GCS bucket, make sure you have the read/write permissions of the target bucket in your GCP project.
Check out the how-to guide in Google Cloud Storage to learn more about GCS bucket.

Install Cloud SDK following the instruction. Then, to authenticate the terminal session with your google account, run the following commands in your terminal:

gcloud auth login
gcloud auth application-default login

Log in with your Google account that is granted with read/write permissions in the pop-up browser. Note that the permission is granted only for the current terminal session. If the session is closed, the same commands need to be run again.

Please follow the steps to install the Apache Beam SDK with Dataflow support in your virtual environment.

To use the non-PyPI dependency in Dataflow mode, cardinality_estimation_evaluation_framework, we need to create a tarball file of it, so we can pass it to Dataflow for installation. To get the tarball, in your terminal session, cd to the directory that contains setup.py of the cardinality_estimation_evaluation_framework repo and run the command:
python setup.py sdist

Please see more details in this document about why a tarball is needed.

Execution Command

Running the whole evaluation is done by running the main function in experiment_driver.py by executing this command in the terminal.

Hey @matthewclegg, thanks for the feedback! Please see the following as the response:

Add a step at the beginning instructing the user to download and install the Cloud SDK, and give a link to the page for doing so.

The installment should be done if the steps mentioned in the instruction are done:

Please follow the steps to install the Apache Beam SDK with Dataflow support in your virtual environment.

Basically, pip install 'apache-beam[gcp]' mentioned in the hyperlink will install Apache Beam and required GCP dependencies. Please let me know if the installment doesn't work for you to get the Cloud SDK, and if you want me to explicitly list pip install 'apache-beam[gcp]' in the instruction.

Add link to page that explains about GCS buckets and how to create/use them.

Thanks for the suggestion. The link is added.

The document that was linked regarding creating a tarball for the cardinality estimation framework doesn't seem to say anything about creating tarballs.

In the linked document, it said:

If you have the setup.py for that package then you can build the tarball with the following command:
 python setup.py sdist

which I think should provide the information of creating tarballs. Please let me know if that is not clear to you.

Investigated the usage of Python3.9. Based on the truth that Python3.9 is not officially supported by the Dataflow runner and on the test that the program would be stuck with Python3.9 in the Dataflow mode, we highly recommend using Python3.8 for this repo.


Rust and WebAssembly Working Group Meeting #45

Our next meeting will be Thursday, June 6st at 17:00 UTC.
Add agenda items here: https://paper.dropbox.com/doc/RustWebAssembly-WG-dcXi5F7Bqlvg10zd7dKve
As usual, we'll be holding open office hours, so if you have any questions about Rust and WebAssembly, feel free to add a bullet point to the agenda!
We use Zoom for video meetings, so make sure you've downloaded the client! (It's free, but you have to sign up.) Here is our meeting room: https://zoom.us/j/715879536
Anyone interested in Rust and WebAssembly is invited to join! Yes, that includes you!

@fitzgen When the next meeting issue is made. Would you be so kind to ping me. I would like to show off a documentation project I have been working on 😄


VRF V2 Direct funding docs

Closing issues

closes #845
Description

Document a new way for requesting for randomness: VRF v2 Wrapper model. It's an alternative to the subscription model

This looks good. I'll do a final review before you merge.

Will review this again Friday morning EDT.


Phrase search returns stemmed results

When the user uses a phrase search, i.e. a query with quotation marks around it, like for example "friends and family", I-Analyzer returns results that are stemmed and also have stopwords removed, see below:

Query "friends and family"

Result based on 'their friends, their family'
I think this is not the behaviour that the user expects, since phrase search is a way to search exact phrases, stopwords and all: should we change this in the tool?

That may be difficult to execute, as the query government "friends and family" should then search for government in the stemmed field but for "friends and family" in the exact field. Gets even more difficult with something like government "friends and family" society disease ~2.
In any case, I don't think this is necessarily a problem - it can actually quite useful to search for phrases with in a field with stopwords removed. I think your screenshots actually show a nice example of that. That said, whether stemming or stopword removal happens is not communicated very clearly, which can make this more confusing.

Just a thought: https://github.com/UUDigitalHumanitieslab/I-analyzer/issues/1099 could provide clarity for cases like this.


unreal enum not find

Currently we can import classes, structs and enums from unreal_engine, unreal_engine.classes/structs/enums . However, as for the SWindow, I want to set the activation_policy and auto_center properties in the constructor. They are just EWindowActivationPolicy and EAutoCenter in the original unreal C++. I can find any way to import these enums in my python script, even with unreal_engine.find_structs method! If I use some classes/structs/enums to code in C++, how can I properly find them and export them to python scripts.

OK, as for these enums, I can just directly assign the integer value. They are just not exposes by UnrealEnginePython. I wonder if we can write some code to automatic expose every enums or structs to python?

Most enums and structs are exposed automatically - there isn't explicit code in UEPy for them. The problem is that some enums are not declared as BlueprintType in the engine. Compare, for example, how these two enums are declared in UE4:
enum class EWindowActivationPolicy
{...

versus
UENUM(BlueprintType)
enum ECollisionChannel
{

The first one isn't accessible to Python (or Blueprint for that matter), but the second one is. In order to use the first one from Python, you have a couple of options:

Do what you're doing, and just assign an integer value. You could even do something like the following to minimize magic numbers in your code:

class EWindowActivationPolicy:
    Never, Always, FirstShown = range(3)

Submit a patch to Epic, adding UENUM(BlueprintType) to the enum. :)
Write a tool to scan the UE4 source and generate Python code for enums/structs that aren't BlueprintType.

Being declared as BlueprintType is what makes them dynamically accessible at runtime - without it, there's nothing really that can be done at runtime.


Change difficulty

closes #140

Codecov Report

Merging #146 into master will decrease coverage by 0.26%.
The diff coverage is 50%.

@@            Coverage Diff             @@
##           master     #146      +/-   ##
==========================================
- Coverage   78.64%   78.37%   -0.27%
==========================================
  Files          42       42
  Lines        2266     2247      -19
==========================================
- Hits         1782     1761      -21
- Misses        484      486       +2

Impacted Files
Coverage Δ

nekoyume/models.py
75.64% <50%> (ø)
:arrow_up:

nekoyume/api.py
60% <0%> (-1.74%)
:arrow_down:

tests/conftest.py
96.55% <0%> (-0.17%)
:arrow_down:

tests/api_test.py
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Ensure integer operand for string length constraints

Description
String length constraints should only allow integer values. null and non-integer values are invalid and should be reported as such.
Changes

Check to see if the operand (value) for shorterThan, longerThan or ofLength is an integer, then use it
Check to see if the operand (value) for shorterThan, longerThan or ofLength is a decimal value with no scale (fraction), then use it
Check to see if the operand (value) for shorterThan, longerThan or ofLength is non-numeric or null, throw an error
Check to see if the operand (value) for shorterThan, longerThan or ofLength is a numeric and has a non-zero scale (fraction, throw an error
Tests created for the above scenarios
Cucumber scenarios un-ignored & updated
Documentation updated to clarify the need for a whole number

Issue
Resolves #234

I think I have addressed all comments @cakehurstryan, if you are happy can you approve?