Expose and manage fine-grained policy

We've had some experience with row-level security policies on the backend. They have helped deliver some practical solutions for projects with non-trivial policy requirements, but introduce new problems.
Problems

The policies are hidden and the client cannot reason about expected behaviors based on their own access rights.
The policies can be difficult to write and review.
The row-level policy feature in PostgreSQL has significant overhead and disrupts query optimization with the available idiom to check web client attributes in a policy.
The row-level policy feature is too open-ended and allows arbitrary SQL expressions which can destroy performance or create totally incomprehensible DB behavior if used poorly.
We have to use row-level security policy for all fine-grained decisions even when they are data-independent, because the idiom treats web client attributes as just another kind of runtime data equivalent to row data.

Approach

[x] Identify a subset of policy modes which can satisfy a range many of our use cases without being baroque.
[ ] Expose new policy resources within the catalog model API
[ ] Implement the policy resources in a way that can be fine-tuned over time

Policy Resources Design Sketch
Enforcement model and goals

Restrict data viewing (select) by hiding data selectively for row-level policies

A table-level ACL can make whole rows disappear
A column-level ACL can replace values with NULL

Restrict data access (select/insert/update/delete) by rejecting operations as forbidden

A table-level ACL can block all access to a table
A column-level ACL can block access to certain columns but still allow other sparse access, e.g. select or update with sparse projection lists.

NOTE: this suggests that we might need separate access modes to distinguish a static ACL that should filter data versus a static ACL which should reject operations for the same kind of data access?
Two flavors of policy resource

Static ACLs, decorating schema, table, and/or column

ACLs are scoped to a model element and control access to data storage associated with the element
A fixed set of ACLs are predefined, e.g. one for each access mode
A default content is defined, e.g. ["*"] for backwards compatibility
Customized ACL content can be supplied while creating model elements
A model-level REST API can manage ACL content on existing model elements

Row-level ACLs, decorating table and/or column

ACL bindings are scoped to a model element and control access to data storage associated with the element
Variable (storage path, access mode) ACL bindings are managed for the fixed set of predefined access modes
A default empty set of ACLs is defined for backwards compatibility
Customized ACL bindings can be supplied while creating model elements
A model-level REST API can manage ACL bindings on existing model elements
The regular data REST API can manage ACL content stored in tables
ACL binding paths can project a  text or text-array column for ACL storage, allowing zero-or-one or zero-or-more ACL members to be associated with each row, respectively.

Complex, community-managed policies can be structured, e.g. a row-level ACL binding on a table can control general access to the table, while ACLs on the column storing the row-level ACL can more specifically control management of ACL content.
The row-level binding path will reuse the attribute projection syntax:

Implicit path root is the table whose access is being controlled by the ACL binding
Path joining elements can optionally cross-walk additional tables to reach an ACL storage table
A final single-column projection element projects ACL content from the ACL storage table

Examples of proposed syntax from a root entity in table R with filter K=v

C1: a simple column projection from the implicit path root

corresponds to full ERMrest query like /attribute/R/K=v/C1.

T2/C1: cross-walk a table T2 to reach the column

corresponds to /attribute/R/K=v/T2/C1

(FKR1)=(T2:K1)/C1: cross-walk using explicit foreign key reference

corresponds to /attribute/R/K=v/(FKR1)=(T2:K1)/C1

etc.

Policy semantics

Layered or multiplicative policy evaluation through model hierarchy

Catalog-level
Schema-level
Table-level
Column-level
All levels must allow in order for data access to be granted

Disjunctive or additive policy within each tier of hierarchy

Multiple overlapping ACLs, e.g. insert vs. modify are each sufficient for some access
Static and row-level ACLs are each sufficient for some access on tables

Is ownership like other ACLs across the hierarchy?

Additive means it inherits, e.g. catalog owner is also implicitly a schema, table, and column owner for everything in the catalog.
Multiplicative means someone authorized to write schema might create a table that is restricted from some catalog owners.

Possible Implementation Strategy

Evaluate data-independent policies during initial query analysis

Can reject some requests due to a static answer
Can accept some requests due to a static answer
Static answer may be indeterminate

For indeterminate static answers, compile row-level decisions into evaluation query

Includes any necessary read permission checks for filtering visible data
For retrieval requests, this is the actual filtered data result
For mutation requests, this checks whether operation will be permitted for all targeted rows

If we have not rejected by this point, go ahead and run mutation requests

This may repeat a filtered read, in order to guarantee we operate on only visible data
The write permissions were checked previously and do not need to be checked again

To make this feasible, we need a reusable query compiler that can produce a query like our current path queries, but with additional optional parts:

Filtering to enforce row-level visibility
Filtering to enforce row-level immutability (negation of mutability authz decision)

A data retrieval request can run with just the row-level visibility filtering.
A data mutation request validation can run with row-level visibility and immutability.  A non-empty result means there is a forbidden row so reject the whole request!

@ljpearlman @robes @hongsudt @carlkesselman
Please see revised issue description for an initial sketch of how we might add fine-grained policy resources...

Another issue is introspecting on or anticipating policy decisions. Can resources be visible while their respective ACLs are hidden?  Or will ACLs always be visible to those who can access the respective resource?
If ACLs can be hidden, perhaps they get replaced with a simpler true, false abstraction?
What about data-dependent decisions?  Do we expose additional columns or just abstract the ACL-storage column in question using the same logic?

A text, text-array, or null is an ACL content which the client is allowed to view
A boolean is an ACL abstraction indicating whether the client intersected the hidden ACL.

If we exposed ACL storage columns as JSON, this polymorphism would be possible without any wierdness regarding the apparent table schema.

Reviewing some of the desired use cases, it seems there is a need for more than just authz to write to tables, rows, columns or cells.
It seems some use cases need authz for specific values: a particular column may only allow writing of a subset of values allowed for the current client.  It's a bit like a foreign key constraint where an ACL on the domain table controls visibility of the domain value.
For example, only members of a project group can create "child" elements in a table and link them by foreign key to the "parent" object owned by the same project.
@robes @carlkesselman @ljpearlman

@carlkesselman @hongsudt @mikedarcy @ljpearlman @robes
I think I basically have fine-grained static ACLs throughout the resource hierarchy in the ermrest/acls-everywhere feature branch:

Catalog ACLs which can act like the old catalog "meta" ACLs when no other sub-resource ACLs are set.
Schema ACLs which can override catalog ACLs.
Table ACLs which can override schema ACLs.
Column ACLs which can override table ACLs.
Foreign key reference ACLs which can override column ACLs.

In general, ACLs are either lists attribute strings or null meaning no local ACL is present and the one inherited from the enclosing model element should be in effect instead.
The ACLs are managed via REST through a set of acl trees which are siblings to the annotation trees at each level of the model hierarchy. Only model element owners may introspect or modify ACL content. A simpler rights document is exposed on each model element to summarize a given client's access privileges in terms of boolean decisions for each named access level. This will allow GUIs to anticipate decisions without leaking ACL content to unprivileged users.
A particular access to the system potentially enforces a number of related privileges before being allowed.

All involved schema elements must be "enumerable" or it acts the same as if the schema element was not present, i.e. a Not Found or Conflict error depending on the kind of request. Because the schema is hierarchical, everything contained inside a hidden element is also hidden.

Foreign keys are only enumerable if their endpoints are also enumerable.

Access to table content involves several privileges at once:

The table and any involved columns must be enumerable
The table must allow the "select", "insert", or "update" access as appropriate.
The columns involved in mutation requests must allow the "insert" or "update" access as appropriate
The columns involved in projection must allow "select" access
The columns involved in row keying/grouping/correlation must allow "select" access
The foreign keys involved in mutation with non-NULL values must allow the "insert" or "update" access as appropriate

A special "create" access mode on catalog or schema allows a client to create a new schema or table, respectively even if they do not own the enclosing element. They become owner of the new element, but the owner of the enclosing scope also remains an owner of all nestes sub-resources.  It is impossible to introduce a sub-resource and hide it from the ancestor's owners.

The test suite now includes a module for exercising many of these authorization scenarios, but it isn't by any means exhaustive.
The next major push will be to start working on the dynamic ACL bindings necessary to support row-level differentiated access control. Everything done so far is for static decisions which do not depend on the actual content of the database rows.

I've got initial row-level read policies working and a basic test suite.
I'm going to pause here so we can do some proof-of-concept validation of the feature and performance on some experimental systems before returning to implement the remaining features for row-level mutation and field-level access enforcement.

I've added some initial row-level dynamic acl enforcement for row and attribute writes but it's not quite sorted out with respect to column and foreign key dynamic acls.

I've added the column-level dynamic acl enforcement for the data update apis. Foreign key dynamic acls still need to be done.

Discussion about usability of the dynamic acl bindings has highlighted the need for some kind of inheritance rules so that it is easier to express by default that a column simply follows its containing table's policy decision.
This should allow for more concise policy configuration and also exposes a point where the implementation could be optimized for the common case where policies are inherited.

If the column policy inherits the entire row policy with no changes, the row-level decision has already been checked for the table and does not need to be checked again for the column.
If the column extends the row policy without removing any table-level bindings, the row-level decision has already been checked and does not need to be checked again. (If the table decided to reject, the operation has already failed, and the column's extra disjunctive clauses cannot change that.)
If the column hides or replaces any table-level bindings, the column has to be checked again in its entirety since the disjunction may not hold.  The row-level answer may have only been true due to the clauses that have been suppressed.

I'm putting this in review mode now an opened PR #152 for discussion about pilot testing etc.

I've merged PR #152 and moved the remaining check-list TODO items from this issue to new, separate issues.


Use switch-hal to simplify active high/low output

I don't know if you actually want to merge this.
The switch-hal API isn't very stable at the moment.
I just thought it was neat and you might like to see it.

This crate is partly intended as a very simple example of an embedded-hal driver, so switch-hal doesn't quite fit. But I do like the concept, especially for beginners.

Yeah, I wasn’t serious about merging it. It was just a really neat use case to play with. I like how it clarified the intent and turned a runtime decision into a compile time one.


added to image files

Added additional photos for website use.

Photos added from Google Drive

Started on Landing Page


Option to limit pathfinding to the last few segments

RoutingLib will calculate the shortest distance between the movement's start and end, regardless of the path that the user has taken to go from the start to the end. The result of this is that the calculated path suddenly changes if a shorter route becomes available.
For example, see the attached image, where the token's path is correctly displayed. However, if the token is moved one more step to the right, the calculated path will go anti-clockwise around the rectangle.
This causes 2 issues:

The total moved distance can suddenly decrease compared to the actual token movement (for example, if the player decides to follow the wall clockwise, the distance will decrease although the tokens is actually moving further).
The new path might reveal passageways that the player has not discovered yet (the player might not have been aware that anti-clockwise movement was possible).

What I'd like to suggest is to add an option to limit the pathfinding to the last few segments. If, in the attached image, the first segment is locked (so pathfinding starts from the top-left corner), this issue would be solved. Of course, it isn't as easy as just locking all segments except for the last, but maybe some algorithm could be thought of.
Here's some ideas:

Locking down all segments in the first half of the path if a certain total length is reached.
Looking at the difference between a newly generated path and the previous path, and stick to the old path if the difference is large.
Define a radius around the token. Only segments that are within that radius can change.

I've implemented the 3rd idea I mentioned in Material Plane, and I'm quite happy with how it works, so it might be worth looking into implementing something similar into routingLib.
See below for my code.
As you can see in the attached video, in the beginning (standard routingLib behavior), the pathfinding always finds the shortest route. I then set the pathfinding distance to 2 (grid spaces) which will find the shortest route for short distances (such as going around a 1x1 square), but for larger distances the start of the path is locked. Backtracking is possible by moving close enough to the last segment.
https://github.com/manuelVo/foundryvtt-routinglib/assets/135522358/889ef3ed-abca-487d-baf0-ca67a46bc1eb
const pathfindingDistance = game.settings.get(moduleName,'tokenRuler').distance * canvas.grid.grid.options.dimensions.distance;

//variable to store all segments in
let pathSegments = [];

//push all previously locked segments
for (let segment of this.pathFinderSegments) pathSegments.push(segment);

//set the starting coordinate of the pathfinder
if (this.pathFinderStart.x == undefined) this.pathFinderStart = this.origin;

if (pathfindingDistance != 0) {
    //calculate the distance between the current position and the last locked segment
    const distanceFromLastLocked = canvas.grid.measureDistance(position,this.pathFinderStart,{gridSpaces:true});

    //if this distance is small enough remove the last segment from storage and set the starting coordinate. This allows backtracking
    if (distanceFromLastLocked <= pathfindingDistance) {
        const lastSegment = this.pathFinderSegments[this.pathFinderSegments.length-1];
        if (lastSegment != undefined) {
            const coordsArr = canvas.grid.grid.getPixelsFromGridPosition(lastSegment.y, lastSegment.x);
            this.pathFinderStart = {x: coordsArr[0], y: coordsArr[1]};
            this.pathFinderSegments.pop();
        }
    }

    //for all segments that were calculated in the previous pathfinding calculation
    for (let i=0; i<this.pathFinderSegmentsPrevious.length; i++) {
        const segment = this.pathFinderSegmentsPrevious[i];
        const coordsArr = canvas.grid.grid.getPixelsFromGridPosition(segment.y, segment.x);
        const coords = {x: coordsArr[0], y: coordsArr[1]};

        //calculate the distance between the segment and the current position
        const distance = canvas.grid.measureDistance(coords,position,{gridSpaces:true});

        //if the distance is large enough, store all segments up until this point
        if (distance > pathfindingDistance) {
            this.pathFinderStart = coords;
            for (let j=0; j<i; j++) {
                this.pathFinderSegments.push(this.pathFinderSegmentsPrevious[j])
                pathSegments.push(this.pathFinderSegmentsPrevious[j]);
            }
        }
    }
}

//calculate the new path, starting from the last locked segment
const from = canvas.grid.grid.getGridPositionFromPixels(this.pathFinderStart.x, this.pathFinderStart.y);
const to = canvas.grid.grid.getGridPositionFromPixels(position.x, position.y);
const path = await routinglib.calculatePath({x:from[1],y:from[0]}, {x:to[1],y:to[0]});
this.pathFinderSegmentsPrevious = path.path;

this.ruler.clear();

//push new pathfinder segments to locked segments
for (let segment of path.path) pathSegments.push(segment);

//add waypoints to ruler
for (let segment of pathSegments) {
    const coordsArr = canvas.grid.grid.getPixelsFromGridPosition(segment.y, segment.x);
    const pos = {x: coordsArr[0], y: coordsArr[1]};
    this.ruler._addWaypoint(pos);
}

I'm not sure that I quite understand the issue at hand. If you wanted to lock down certain segments of a path, can't you simply start the pathfinding from the last point of the locked-down path and append the result to the existing segments?

I'm not sure that I quite understand the issue at hand. If you wanted to lock down certain segments of a path, can't you simply start the pathfinding from the last point of the locked-down path and append the result to the existing segments?

That is basically what I did in my previous comment. I just thought it'd be nice to have something like that in the library. But since I've already got it working for my application you can close this if it's not something you're interested in :).

I was just reading through the code and was noticing that that's exactly what happens.
I don't think there is an easy way to integrate this change into routinglib, since the API is stateless and cannot tell whether a calculateRoute call belongs to an existing path or a new one. The only feasible API change I could think of to make this happen is to allow the caller to define a pre-existing set of waypoints that routinglib should work off. Such an API seems dubious to me, however, since routinglib wouldn't do any actual work; it would just ignore that parameter, calculate the route normally and then prepend the passed waypoints to the calculated route.

Makes sense. Maybe this is something you could implement into Drag Ruler, but I'll leave that up to you.
I'll close this issue now, thanks!


docs(progress): corrected buffer value description

Currently the doc says <md-linear-progress>'s buffer:

Buffer amount to display, a fraction between 0 and 1.

This is incorrect. It should be between 0 and max like value. See Lit playground or https://blazorwebmaterial.lukevo.com/progress

@AndrewJakubowicz Thanks, that makes sense. I have added the commit you requested.

@datvm can you also check the CLA bot to make sure it's signed?
https://github.com/material-components/material-web/pull/5080/checks?check_run_id=17978517912

@asyncLiz<EMAIL_ADDRESS>is me sorry. GitHub randomly picks my personal email when doing suggestions unfortunately.
It's fine to proceed with that failing check.

@asyncLiz Hi, I have signed the CLA before and the blockage isn't from me, it's from @AndrewJakubowicz
✅ https://github.com/material-components/material-web/commit/271d1e86becebb88d260f74088984b021243c6cc Author: @datvm<EMAIL_ADDRESS><EMAIL_ADDRESS>❌ https://github.com/material-components/material-web/commit/271d1e86becebb88d260f74088984b021243c6cc Co-Author<EMAIL_ADDRESS>


Logged in but keep getting "Authorization header not found"?

After logging on, the callback shows that the session is established, but on the next request the response is "authorisation header not found".
This repeats until the .NET console program crashes.

I am using SAP v10 SP2311 64-bit.
Any advice appreciated!

Hi, @KwokHoiMan. Can you share a the code snippet that reproduces your problem, please?

In case anyone comes up with this error, the problems comes from including the /Login in the service layer root uri
Example:
This is WRONG:
new SLConnection("https://sapserver:50000/b1s/v1/Login", "CompanyDB", "manager", "12345");
This is CORRECT:
new SLConnection("https://sapserver:50000/b1s/v1", "CompanyDB", "manager", "12345");

@KwokHoiMan, I'm closing this issue. Let me know if you still need assistance.


fix mixed-up messages in device info

the console.warn messages were just mixed up
this put it back in order
related to #117

Thanks!


check partial_content return code when syncing on node/health

If an archive node is syncing, the expectation is that the endpoint /eth/v1/node/health should return a 206 (partial content) return code.
Juan wasn't having this happen, we should investigate that a normal node syncing is returning a 206 code, and fix if it's behaving unexpectedly.

To give some context on our side, we are relying on kubernetes readiness probes to determine if beacon is ready or not.
The probes is just a simple HTTP GET request to /eth/v1/node/health that if returns other than [200, 400[ its marks it as not ready. We were also trying to make use of the query param syncing_status as recently introduced here to make the health endpoint send a 400 when syncing and mark the pod as not ready.

Had a good look, and it's clear what the issue is.
The check is currently only returning that it's syncing when its got peers and performing sync, but that doesn't allow for the period before it has peers.
current behaviour for node health
initialisation: unavailable
pre-having peers: 200 (<- should really be 206)
have peers and syncing: 206
in sync: 200
I'm tweaking the logic so that when its starting up or syncing it'll return a 206 from node/health (or custom code if that's been set).
Other impacts for this same logic are getting duties and posting blocks, which would currently potentially accept data or send duties while in startup mode.  This is similarly not great, so all of these scenarios will benefit from being turned off while not actually in an 'inSync' state.


Feature textwrapping

Gizak:
Here's a quick and dirty addition of text wrapping to anything called with NewPar. If the Par has a Par.WrapLength greater than x, a new varation of Build called BuildWrap is called. It still retains your neat markdown color syntax while getting nice naive wrapping of the text.
It's less efficient than it could be; I'm self taught so my logic might not be the best. I used a loop that breaks and re-reruns a lot to make sure the unwrapped and wrapped texts were properly compared and to avoid index errors. There is likely a more efficient way to do this; but, since we're just talking about wrapping small amounts of text, and with Go's inherent speed, I'm not too worried about it.
It imports (but does not vendor) github.com/mitchellh/go-wordwrap (MIT licensed). The import is called in textbuilder.go. The src is fairly short if you want to bring it inside of termui so you're not having to import it. But, I'll leave that decision up to you.
I also added the BuildWrap func to the TextBuilder interface as it was the only way to get around not having to entirely rewrite the whole call stack. Maybe in the future it would be best to just rewrite Build to take into account the wrapping logic in BuildWrap; but, I couldn't exactly grok your build stuff...
Let me know what you think. Termui rocks!
Oh, after the PR, the import statement in the example file points to my fork, and not the main repo; it will need to be changed.

:+1:  Merged but with some modification: BuildWrap will break compatibility so I convert it to wrapTx as a normal function call.

Wonderful. Glad you found it useful.


validate the presence of specified issuer or clusterisssuer in tlspolicy

What
Closes #581
Verification
Follow https://docs.kuadrant.io/getting-started/
Follow https://docs.kuadrant.io/multicluster-gateway-controller/docs/how-to/multicluster-gateways-walkthrough/ until the creation of the TLSPolicy
Error should be reported in status for ClusterIssuer that doesn't exist in cluster
Create TLSPolicy pointing to ClusterIssuer with a name that doesn't exist in the cluster
Validate that error is present in the status of the TLSPolicy
 - lastTransitionTime: "2023-09-21T10:13:13Z"
      message: ClusterIssuer.cert-manager.io "blah" not found
      reason: ReconciliationError
      status: "False"
      type: Ready

Error should be reported in status for Issuer that doesn't exist in the namespace of the tlspolicy
Create an issuer in a namespace that is different to the TLSPolicy - steps here to do that https://github.com/Kuadrant/multicluster-gateway-controller/blob/main/docs/tlspolicy/tls-policy.md#lets-encrypt-issuer-for-route53-hosted-domain - update the namespace in the issuer in the steps to another namespace in the cluster
Validate that error is present in the status of the TLSPolicy
- lastTransitionTime: "2023-09-21T10:13:13Z"
      message: Issuer.cert-manager.io "le-staging" not found
      reason: ReconciliationError
      status: "False"
      type: Ready

Error should NOT be reported in status for Issuer that does exist in the same namespace as the tlspolicy
Create the same issuer but in the same namespace as the tlspolicy e.g. multi-cluster-gateways
Validate the status is good
    - lastTransitionTime: "2023-09-21T10:21:11Z"
      message: Gateway is TLS Enabled
      reason: GatewayTLSEnabled
      status: "True"
      type: Ready

Error should NOT be reported in status for ClusterIssuer that does exist in the same namespace as the tlspolicy
Update the policy to have a valid ClusterIssuer glbc
e.g.
issuerRef:
      group: cert-manager.io
      kind: ClusterIssuer
      name: glbc-ca

Validate the status is good
    - lastTransitionTime: "2023-09-21T10:21:11Z"
      message: Gateway is TLS Enabled
      reason: GatewayTLSEnabled
      status: "True"
      type: Ready

Error should NOT be reported in status for Issuer that does not specify kind
Update the policy to have the following issuerRef - create the issuer in the same namespace if needed
e.g.
issuerRef:
      group: cert-manager.io
      name: le-staging

Validate the status is good
    - lastTransitionTime: "2023-09-21T10:21:11Z"
      message: Gateway is TLS Enabled
      reason: GatewayTLSEnabled
      status: "True"
      type: Ready

the e2e tests are passing locally for me. so i'm looking into that.

Couple of comments, but looks fine i think.
It did make me wonder if this is the best way to do this kind of thing, ideally we wouldn't be doing validation that is expected to be done by cert manager (the thing this policy is wrapping), but rather rely on aggregating the status of created cert manager resources (Certificates), or expected generated resources (CertificateRequests), since this would be a truer reflection of the state of the policy.
Example CertificateRequests status(cert manager 1.13.0), that we could get this info from:
kubectl get certificaterequests mn-hcpapps-net-tls-1 -n single-cluster-gateways -o json | jq '.status.conditions[] | select(.type == "Ready")'
{
  "lastTransitionTime": "2023-09-22T07:42:03Z",
  "message": "Referenced \"ClusterIssuer\" not found: clusterissuer.cert-manager.io \"glbc-caaaaa\" not found",
  "reason": "Pending",
  "status": "False",
  "type": "Ready"
}

Since we aren't going to do that aggregation now, and will likely be done in line with the proposed kuadrant policy status/conditions, a basic check like this is probably fine to avoid unnecessary confusion in the meantime.

/lgtm
/approve


Can't create user on local server

Server is configured to use remote database:
## host to bind, can also be passed via CLI args
host = "<IP_ADDRESS>"

## port to bind, can also be passed via CLI args
port = 8888

## whether to allow anyone to register an account
open_registration = true

## URI for postgres (using development creds here)
<EMAIL_ADDRESS>
On the client, I have sync_host = "http://atuin.host.blah:8888", and I always get this error message on the server. Error 500 could be anything, of course ;)
2023-02-28T15:18:48.599027Z ERROR tower_http::trace::on_failure: response failed classification=Status code: 500 Internal Server Error latency=0 ms

The client tells me
Please enter username: myuser
Please enter email<EMAIL_ADDRESS>Please enter password:
Error: error decoding response body: expected value at line 1 column 1

Caused by:
    expected value at line 1 column 1

Location:
    /private/tmp/atuin-20230226-5951-12mg7e/atuin-13.0.0/atuin-client/src/api_client.rs:62:21

The schema in the database is created upon server start, so the database connection works. I have tried to use the client on MacOS (arm64), and arm64 and x86_64 Linux, but the result is always the same.
Any pointers to solving this greatly appreciated!

Yep, sorry, this is a bug with the v13 server. Got a PR up to fix it. I think we can cut a v13.0.1 shortly. For now you could try run a v12 server, it should work just fine as we haven't added any server-side changes in the last release


Fix/days in past

I am not sure why these two commits from yesterday are showing up on this branch. I must have done a git command today before deleting the branch for issue #31 and making a new branch for this issue. But they are commits which have already been merged in #31 as far as I'm aware.

Note the commented out lines 278-286.
This is where I believe the start date is not needed because they should be provided via request parameters. But I wanted to double check before getting rid of those lines.

@allella
I really hope I resolved conflicts correctly. But now it says I have  "merge branch 'master' into fix/days-in-past" and I'm not sure which master branch it's referring to.
But since the pull request is still here, I'm guessing the conflicts were in my repository's branches?


Retry logic built-in? [Question]

If I'm trying to connect to the socket and it fails, is there built-in logic or do I have to write that myself?

@whoyawn Can you please share your example? From your information it's hard to understand what is the issue.

Let's say I call webSocket.connect() in my logic, if the server connection doesn't exist (connectivity issues, I'm offline), but then exists later (back online), does the socket automatically try to ping the server again after a certain amount of time? Or would I have to write my own backoff algorithm?

You would need to write this yourself. The only "retry" logic that exist is standard reconnection of a TCP socket.


fix: add various fixes to parser and generator

 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.


LOOP-1479: Implement mock prescription functionality and create first 2 welcome screens

Add 1 new button style for a deactivated button
Make the color of the steps in an InstructionList customizable
Move DismissibleHostingController into LoopKit so TidepoolService can access it

Looks like this resolves https://tidepool.atlassian.net/browse/LOOP-1116 also


Add SemVer compatibility and gem version badges to README

First up, thanks for Nokogiri. I have to reach for an XML parser more often than I'd like, and am always extremely grateful for it.
Would you be up for adding a badge that shows how SemVer compliant / bug free new releases are? I was looking through the data we gather at Dependabot and realised we could put one together, so I threw together the below.

If you click through then there's a description of how it's calculated - basically it takes all of the relevant updates Dependabot has done for projects that use nokogiri and checks what percentage of the time specs pass on the upgrade PR.
The score is slightly lower than 100% because some projects have flaky specs, but I'm working on filtering them out from the data, too :octocat:.
Finally, I've removed the versioneye badge because it now just hangs (they went out of business last year) and added a gem version badge (because I always want to know it before adding a dependency to my Gemfile).

Thanks for this PR! The failing tests obviously have nothing to do with this patch and I'll look into it tomorrow.

Hey, so I really, really appreciate the thoughtfulness of this PR and the time you took to make a contribution.
I'm conflicted, however, since Nokogiri has never really followed semver for a variety of reasons, not the least of which is the continually-varying dependencies on libxml2 and xerces/nekohtml; also consider that everyone seems to have a different opinion on what a breaking change is.
I've had dreams of moving to semver after a 2.0 release, but it's been a few years and it's still not well-defined in my mind, and so I'm hesitant to suggest to anyone that we might be following semver when we're not ... see https://twitter.com/veganstraightedge/status/1008899145904545792 for the typical complaint about this.
What are your thoughts about this? I'm happy to note that we rarely have backwards-incompatibilities, but don't want to promise (or even pursue) a semver policy. Dependabot is pretty interesting, that's great data to have.

Ah, interesting. I can see how those libxml2 and xerces/nekohtml dependencies make things tricky in theory, although in practice it looks like they very rarely cause (compatibility) issues.
I think it would be really useful to have a paragraph in the readme mentioning that. It sounds like for almost all users, Nokogiri is backwards compatible between minor and patch releases, and that's all that most people need to know. Maybe that could be a footnote to this badge, or I could change the badge to just say stability?
(I've re-written this comment several times as I think it over - sorry if it's ended up incoherent!)


Allow Envoy test utility to detect Envoy startup errors

This is in support of https://github.com/istio/istio/issues/10023.
Envoy.Start() will now scrape the Envoy logs and return an error if it finds "Address already in use".

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [nmittler]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
667ec5d4b14c6e4b68205cc8e7b34190132dd088
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@nmittler: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
667ec5d4b14c6e4b68205cc8e7b34190132dd088
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
667ec5d4b14c6e4b68205cc8e7b34190132dd088
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Jenayah: Watch help360day.com

Jenayah requests the watch of the watch_keyword help360day\.com. See the MS search here and the Stack Exchange search here.

help360day\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Makyen in Charcoal HQ


make entity model matrix computation public

Could you review, @mramato ? Thanks!

@ggetz do you want to do a first pass review?

@rahwang Looks good to me, just update CHANGES.md

Thanks @ggetz ! Done.

@mramato did you want to look at this before merging?

@rahwang please merge in master.

I was tempted to say let's make this a Property instead of a function, but that's properly overkill for the time being and can easily be changed if we have a good use case for it.
Just those couple of comments.  Thanks @rahwang!

Thanks @mramato . Done!

Sorry for the delay here @rahwang!  I merged in master and fixed CHANGES.md but other than that this looks great.


Treating Polygons of zero size

I saw that I could improve polygon validation by adding one more check. Must have at least one ring. Modification is in accordance with RFC7946 3.1.6: For type "Polygon", member "coordinates" MUST be an array of linear ring coordinate arrays.
The test is capturing this case now and I've added more tests to improve coverage.
=)

Codecov Report

Merging #38 (92f4d4a) into master (c7b5c2c) will increase coverage by 2.08%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #38      +/-   ##
==========================================
+ Coverage   95.91%   98.00%   +2.08%
==========================================
  Files           4        4
  Lines          98      100       +2
==========================================
+ Hits           94       98       +4
+ Misses          4        2       -2

Flag
Coverage Δ

unittests
98.00% <100.00%> (+2.08%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

geojson_pydantic/__init__.py
100.00% <100.00%> (ø)

geojson_pydantic/geometries.py
98.41% <100.00%> (+3.33%)
: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 c7b5c2c...92f4d4a. Read the comment docs.

🙏 @regisfbrilhante looks good to me. This is a great addition.
Could you update the changelog https://github.com/developmentseed/geojson-pydantic/blob/master/CHANGELOG.md please?

Sure! :smiley:

thanks @regisfbrilhante 🙏
Will try to release this later this week


⚠ Cioos Pacific CKAN has degraded performance

In f34e9cd, Cioos Pacific CKAN (https://catalogue.cioospacific.ca) experienced degraded performance:

HTTP code: 200
Response time: 14999 ms

Resolved: Cioos Pacific CKAN performance has improved in 5a68db4 after 22 minutes.


Opslevel quickstart

Summary
OpsLevel is a Developer Portal tool and we've been building an integration with New Relic. The Quickstart is informational only, we don't have dashboards, data sources or alerts packaged together.

Pre merge checklist

[ ] ~Did you check you NRQL syntax? - Does it work?~ (No NRQL)
[ ] Did you include ~a Data source and~ Documentation reference? (No Data Source)
[ ] Are all documentation links publicly accessible?
[ ] Did you check your descriptive content for voice and tone?
[ ] Did you check your descriptive content for spelling and grammar errors?
[ ] Did you review your content with a subject matter expert? (e.g. a Browser agent quickstart is reviewed with a member of the Browser Agent team)

Dashboards
No Dashboards

[ ] ~Does the PR contain a screenshot for each of your dashboards?~
[ ] ~Do your screenshots show data?~
[ ] ~Has the sanitization script been run on each dashboard?~

Alerts
No Alerts

[ ] ~Did you check that your alerts actually work?~

 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.Dan Reich seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

I am closing the pull request to fix the commits without an email. Will setup a new one momentarily.


Multiple cases of enter filename

When using gameimage to create a wine program, there are 3 instances where you are asked to enter a filename. Would just one not suffice at the start and use this through to the end?

The first one in the wizard is for the game itself, since you can have multiple games you need to enter each name. The second time is for the name as it appears in the desktop entry. The third one is the actual file name, maybe I can auto-complete the file name from the name from the desktop entry, but each of these instances serves a different purpose.

Fair enough Ruan. It just feels like you are entering the name a lot :D

Yes, it is a bit annoying :sweat_smile:


7.7.0 meta ticket

New APIs
The following APIs are marked as stable in 7.7 and require implementation.

~[ ] async_search.delete.json~ - bumped to 7.7.1
~[ ] async_search.get.json~ - bumped to 7.7.1
~[ ] async_search.submit.json~ - bumped to 7.7.1
[x] cat.ml_data_frame_analytics.json - https://github.com/elastic/elasticsearch-net/pull/4565
[x] cat.ml_datafeeds.json - https://github.com/elastic/elasticsearch-net/pull/4564
[x] cat.ml_jobs.json - https://github.com/elastic/elasticsearch-net/pull/4563
[x] cat.ml_trained_models.json - https://github.com/elastic/elasticsearch-net/pull/4562
[x] cat.transform.json - See: https://github.com/elastic/elasticsearch-net/pull/4557
[x] cluster.delete_component_template.json - marked as experimental
[x] cluster.get_component_template.json  - marked as experimental
[x] cluster.put_component_template.json  - marked as experimental
[x] indices.reload_search_analyzers.json - See: elastic/elasticsearch-net/pull/4529
[x] ml.estimate_model_memory.json - See: elastic/elasticsearch-net/pull/4530
[x] ml.set_upgrade_mode.json - See: elastic/elasticsearch-net/pull/4535
[x] security.get_builtin_privileges.json - See: elastic/elasticsearch-net/pull/4536
~[ ] transform.delete_transform.json~ - bumped to 7.7.1
~[ ] transform.get_transform.json~ - bumped to 7.7.1
~[ ] transform.get_transform_stats.json~ - bumped to 7.7.1
~[ ] transform.preview_transform.json~ - bumped to 7.7.1
~[ ] transform.put_transform.json~ - bumped to 7.7.1
~[ ] transform.start_transform.json~ - bumped to 7.7.1
~[ ] transform.stop_transform.json~ - bumped to 7.7.1
~[ ] transform.update_transform.json~ - bumped to 7.7.1

API patches

[x] https://github.com/elastic/elasticsearch/commit/03caeaad79bd29bda66f3af70791b06fc67a5e4f
[x] https://github.com/elastic/elasticsearch/pull/54551

Elasticsearch Release Notes
The following release notes were extracted 2020 04 01.
Deprecations
Features/Features

[x] Add cluster.remote.connect to deprecation info API elastic/elasticsearch/pull/54142 [#54142] (issue: elastic/elasticsearch/issues/53924 [#53924])

Machine Learning

[x] [ML] renaming inference processor field field_mappings to new name field_map elastic/elasticsearch/pull/53433 [#53433]

Search

[x] Deprecate BoolQueryBuilder's mustNot field elastic/elasticsearch/pull/53125 [#53125]

New features
Aggregations

[x] Add Boxplot Aggregation elastic/elasticsearch/pull/51948 [#51948] (issue: elastic/elasticsearch/issues/33112 [#33112])

Analysis

[x] add nori_number token filter in analysis-nori elastic/elasticsearch/pull/53583 [#53583] - https://github.com/elastic/elasticsearch-net/pull/4591

Geo

[x] Add support for distance queries on shape queries elastic/elasticsearch/pull/53468 [#53468]

[x] Add support for distance queries on geo_shape queries elastic/elasticsearch/pull/53466 [#53466] (issues: elastic/elasticsearch/issues/13351 [#13351], elastic/elasticsearch/issues/39237 [#39237])

[x] Add support for multipoint shape queries elastic/elasticsearch/pull/52564 [#52564] (issue: elastic/elasticsearch/issues/52133 [#52133])

[x] Add support for multipoint geoshape queries elastic/elasticsearch/pull/52133 [#52133] (issue: elastic/elasticsearch/issues/37318 [#37318])

Infra/Core

[x] Implement hidden indices elastic/elasticsearch/pull/50452 [#50452] (issues: elastic/elasticsearch/issues/50251 [#50251], elastic/elasticsearch/issues/50665 [#50665], elastic/elasticsearch/issues/50762 [#50762])

Mapping

[x] Introduce a constant_keyword field. elastic/elasticsearch/pull/49713 [#49713]

Upgrades
Features/Ingest

[x] Support array for all string ingest processors elastic/elasticsearch/pull/53343 [#53343] (issue: elastic/elasticsearch/issues/51087 [#51087])

Enhancements
Aggregations

[x] Add histogram field type support to boxplot aggs http://github.com/elastic/elasticsearch/pull/52265 [#52265] (issues: http://github.com/elastic/elasticsearch/issues/33112 [#33112], http://github.com/elastic/elasticsearch/issues/52233 [#52233])

[x] Implement top_metrics agg http://github.com/elastic/elasticsearch/pull/51155 [#51155] (issue: http://github.com/elastic/elasticsearch/issues/48069 [#48069]) - https://github.com/elastic/elasticsearch-net/pull/4594

Features/CAT APIs

[x] /_cat/shards support path stats http://github.com/elastic/elasticsearch/pull/53461 [#53461]

[x] Allow _cat indices & aliases to use indices options http://github.com/elastic/elasticsearch/pull/53248 [#53248] (issue: http://github.com/elastic/elasticsearch/issues/52304 [#52304])

Features/Ingest

[x] Add empty_value parameter to CSV processor http://github.com/elastic/elasticsearch/pull/51567 [#51567] - https://github.com/elastic/elasticsearch-net/pull/4597

Features/Stats

[x] ~Add analysis components and mapping types to the usage API. http://github.com/elastic/elasticsearch/pull/51031 [#51031]~ - not present in 7.7.0 https://github.com/elastic/elasticsearch/pull/51031#issuecomment-614447840

Infra/Core

[x] Implement hidden aliases http://github.com/elastic/elasticsearch/pull/52547 [#52547] (issue: http://github.com/elastic/elasticsearch/issues/52304 [#52304])

Ilm

[x] Allow forcemerge in the hot phase for ILM policies http://github.com/elastic/elasticsearch/pull/52073 [#52073] (issue: http://github.com/elastic/elasticsearch/issues/43165 [#43165]) - requires update to XML docs in client - https://github.com/elastic/elasticsearch-net/pull/4598

Machine Learning

[x] [ML] Add indices_options to datafeed config and update http://github.com/elastic/elasticsearch/pull/52793 [#52793] (issue: http://github.com/elastic/elasticsearch/issues/48056 [#48056])

Mapping

[x] Wildcard field - add normalizer support http://github.com/elastic/elasticsearch/pull/53851 [#53851]

[x] Wildcard field - added case insensitive search option http://github.com/elastic/elasticsearch/pull/53814 [#53814]

Reindex

[x] Reindex: allow comma separated source indices http://github.com/elastic/elasticsearch/pull/52044 [#52044] (issue: http://github.com/elastic/elasticsearch/issues/51949 [#51949])

Closing this as 7.7.0 is released


PLANNER-341: Disabled LogarithmicAxis' check for non-positive values

Otherwise looks good, I 'll merge when the changes in the comment above are applied


Move tsup configs to configs

We have too many files in the root directory already, let's move tsup stuff to configs/tsup.
I know it's "just one directory" but 1+1+1+1 = 4 :D

@dotansimha solved in 24dd6a38f562418ef44821eb9dae10954293bbde


New release?

Any chances to a new pypi release? I'm interested in multischedulers, but it is not released yet.

@marcinn you can download and setup it by manual ;)

Thanks. Any tips for automated build with Buildout or pip? I am planning to make a fork and build with git recipe. I must also check whether master branch contains a 0.7 tag. Maybe I'm stupid, but installing newer version from pypi sounds a lot faster and easier. Thanks for reply, anyway.

0.7 is older than master right now.

I can't install master directly from GH using buildout, because of unchanged and conflicting version number in the master branch. A -dev suffix or new tag will give such possibility without uploading a new release to pypi.

@marcinn are you sure ? I just installed for my project. can you put the error log in here ? maybe I can help a bit ;)

@selwin - how's that going?


Scroll without passing block does not return the expected items

Hey there. First time trying my hand with mongoid-scroll so forgive me if my problem is due to confusion/lack of knowledge rather than an actual issue!
When using scroll without a block, I expected it to return the items starting from the passed cursor. Instead it just returns them from the very beginning.
If I pass it a block instead, it works as I would expect:
cursor = nil

Item.desc(:field).limit(10).scroll(cursor) do |item, next_cursor|
  puts item.inspect # starts from the first item
  cursor = next_cursor
end

Item.desc(:field).limit(10).scroll(cursor) do |item, next_cursor|
  puts item.inspect # starts from the end of the last loop
end

But without passing it a block it always start from the beginning:
cursor = nil

Item.desc(:field).limit(10).scroll(cursor) do |item, next_cursor|
  puts item.inspect # starts from the first item
  cursor = next_cursor
end

Item.desc(:field).limit(10).scroll(cursor).each do |item|
  puts item.inspect # starts from the first item again
end

Am I missing something?

This seems to be caused by the mongoid integration only applying the selector to the criteria if a block is given. If no block is given it just returns the original criteria:
https://github.com/mongoid/mongoid-scroll/blob/master/lib/mongoid/criterion/scrollable.rb#L21-L29
The mongo integration on the other hand applies the selector to the returned criteria (which I would expect to be the correct implementation?): https://github.com/mongoid/mongoid-scroll/blob/master/lib/mongo/scrollable.rb#L15-L29

This looks like a clear bug. Care to PR a fix please?

Hey @dblock, for sure I'll make a PR with the fix I've done 🙂

Fixed in https://github.com/mongoid/mongoid-scroll/pull/18.


Bug report: Presence of Live++ prevents OBS graphics hook from capturing application

Scenario:
I'm developing a game that uses D3D11 and DXGI for rendering, the swap-chain etc. When trying to capture the application via Open Broadcaster Software (OBS) Studio (version 30.0.2) it is not possible to capture the application using the "Game Capture" source. Only a "Window Capture" or full "Display Capture" works.
This problem is not critical, since it's relatively trivial to disable Live++ when I intend to capture game footage, which I'd do on a release build anyway. But it has tripped me up for a while that "Game Capture" wasn't working. I spent a lot of time looking through the setup code for my renderer trying things out until I stumbled upon the debug output below and tried the application without Live++ running.
Ultimately my worry was just that players of the game would eventually run into the same problem trying to capture the game using "Game Capture". I'm no longer worried about that now :)
I don't understand enough about the details to say whether Live++ or OBS is in a position to fix this issue, or whether it's just an inherent limitation related to Microsoft Detours that cannot be solved. So maybe it would be enough to add this in the Documentation or FAQ so it's easier to figure out for other people in the future.
Steps to reproduce:

Open the application and OBS (the order does not matter)
Create a new "Game Capture" source in any scene in OBS
Select the application using the default settings (changing any of them doesn't seem to help anyway) and click OK
The preview window in OBS doesn't show the application

For comparison, creating a "Window Capture" in the same way works.
Thankfully OBS prints to the debug output when it attempts to hook into an application. When it fails the output looks as follows:
[OBS] graphics-hook.dll loaded against process: <application name>.exe
[OBS] (half life scientist) everything..  seems to be in order
[OBS] Failed to attach Detours hook: 8
[OBS] Failed to attach Detours hook: 8
[OBS] Failed to attach Detours hook: 8
.... repeating that last line forever

When it works it looks like this:
[OBS] graphics-hook.dll loaded against process: <application name>.exe
[OBS] (half life scientist) everything..  seems to be in order
[OBS] Hooked IDXGISwapChain::Present
[OBS] Hooked IDXGISwapChain::ResizeBuffers
[OBS] Hooked IDXGISwapChain1::Present1
[OBS] Hooked IDXGISwapChain::Release
[OBS] Hooked DXGI
[OBS] Found D3D11 11.0 device on swap chain
[OBS] DXGI_SWAP_CHAIN_DESC:
    BufferDesc.Width: 1920
    BufferDesc.Height: 1080
    BufferDesc.RefreshRate.Numerator: 0
    BufferDesc.RefreshRate.Denominator: 0
    BufferDesc.Format: 87
    BufferDesc.ScanlineOrdering: 0
    BufferDesc.Scaling: 0
    SampleDesc.Count: 1
    SampleDesc.Quality: 0
    BufferUsage: 32
    BufferCount: 2
    Windowed: 1
    SwapEffect: 4
    Flags: 64
[OBS] d3d11 shared texture capture successful

Diving a little into the OBS source code the failure likely occurs in dxgi-capture.cpp in the function hook_dxgi:
https://github.com/obsproject/obs-studio/blob/master/plugins/win-capture/graphics-hook/dxgi-capture.cpp
DetourTransactionBegin();

RealPresent = (present_t)present_addr;
DetourAttach(&(PVOID &)RealPresent, hook_present);

RealResizeBuffers = (resize_buffers_t)resize_addr;
DetourAttach(&(PVOID &)RealResizeBuffers, hook_resize_buffers);

if (present1_addr) {
    RealPresent1 = (present1_t)present1_addr;
    DetourAttach(&(PVOID &)RealPresent1, hook_present1);
}

const LONG error = DetourTransactionCommit();

That last error receives the value 8 which matches "0x00000008 - ERROR_NOT_ENOUGH_MEMORY" from this table:
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d
Details on DetourAttach:
https://github.com/microsoft/Detours/wiki/DetourAttach

Thanks for the report.
I looked into this to understand what's going on.
When registering a module with Live++, it scans the surrounding +-2GB memory range/virtual address space and reserves free pages. When loading and installing a patch for a module later on, these free pages are freed temporarily, and the OS is tricked into loading the patch DLL inside that range. Afterwards, the remaining pages are reserved again.
This is required since patches need to be loaded in the +-2GB address range in order to patch relocations to existing symbols.
However, this means that OBS is unable to hook the DXGI functions. Similar to Live++, Detours needs to be able to allocate some space for the trampoline next to the original function. But since all pages surrounding that function are reserved, this allocation fails.
I guess you're using LPP_MODULES_OPTION_ALL_IMPORT_MODULES when enabling modules?
If your application is a single executable, use LPP_MODULES_OPTION_NONE instead. This will leave all other DLLs alone and not reserve any pages surrounding them, which should make Detours/OBS work.

Thank you for looking into it. Your suggestion was on point!
I've now switched from using LPP_MODULES_OPTION_ALL_IMPORT_MODULES to enabling the modules I need individually (the main .exe and the .dll for the renderer) using LPP_MODULES_OPTION_NONE. OBS hooked into the DXGI functions successfully.
Thank you so much for the quick support and for this invaluable tool in general.


RC 6

i am on rc6 and when hit npm install  ng2-img-cropper
then ndoemodules/ng2-img-cropper/package.json --> install with rc5
on npm start getting  errors:

please..

Our dependencies in the package.json state:
"@angular/common": "2.0.0",
"@angular/compiler": "2.0.0",
"@angular/core": "2.0.0"

Try upgrading to angular 2.0.0 (the first official release) and try again.


Fix a couple typos and wording issues in the README

Just cleaned up some typos and confusing wording in the readme.

@kjbrum, great contribution!
Thanks! :)


(EMAIL) send upgrades/arrangement email

re https://github.com/ecommerceberlin/exhibitors/issues/36

errors @peterecommberlin @klaudia2209

No company assigned for<EMAIL_ADDRESS>- skipped.

(DE) errors

done by @peterecommberlin


Added Certify VEX statement schema and testing backend

CertifyVEXStatement:

Description: attestation that the package/artifact has a VEX with a justification of its relationship with a CVE or GHSA

Subject:      pkg / artifact

Object:        about ( CVE/GHSA )

Properties:  justification ( string )
knownSince ( timestamp )
source ( string )
collector ( string )

fragment allCertifyVEXStatement on CertifyVEXStatement {
  subject {
    __typename
    ... on Package {
      type
      namespaces {
        namespace
        names {
          name
          versions {
            version
            qualifiers {
              key
              value
            }
            subpath
          }
        }
      }
    }
    ... on Artifact {
      algorithm
      digest
    }
  }
  vulnerability {
    __typename
    ... on CVE {
      year
      cveId {
        id
      }
    }
    ... on GHSA {
      ghsaId {
        id
      }
    }
  }
  justification
  knownSince
  origin
  collector
}

query Q1 {
  CertifyVEXStatement(certifyVEXStatementSpec: {}) {
    ...allCertifyVEXStatement
  }
}

query Q2 {
  CertifyVEXStatement(certifyVEXStatementSpec: {origin: "testing backend"}) {
    ...allCertifyVEXStatement
  }
}

query Q3 {
  CertifyVEXStatement(certifyVEXStatementSpec: {package: {name: "openssl"}}) {
    ...allCertifyVEXStatement
  }
}

query Q4 {
  CertifyVEXStatement(certifyVEXStatementSpec: {artifact: {algorithm: "sha1", digest: "5a787865sd676dacb0142afa0b83029cd7befd9"}}) {
    ...allCertifyVEXStatement
  }
}

query Q5 {
  CertifyVEXStatement(certifyVEXStatementSpec: {cve: {cveId: "CVE-2019-13110"}}) {
    ...allCertifyVEXStatement
  }
}

query Q6 {
  CertifyVEXStatement(certifyVEXStatementSpec: {ghsa: {ghsaId: "GHSA-h45f-rjvw-2rv2"}}) {
    ...allCertifyVEXStatement
  }
}

Note: This will rebase once https://github.com/guacsec/guac/pull/467 is merged!

i mean instead of having individual bools, we have one bool
matched := true
and then each check it goes through it does
match &= false if it does not pass the check


F# client

Create a packageable F# library named SurrealDb.FSharp
Should follow the same convention as the C# client (class names, method names, etc...)
Make use of the F# paradigm (Result type, etc...)
[Optional] If possible, create a packageable C# library named SurrealDb.Core to avoid code duplication
Create some example projects SurrealDb.FSharp.Examples.Console and/or SurrealDb.FSharp.Examples.WeatherApi
[Optional] Add tests and benchmarks projects
Update documentation

Readme file
Official documentation website

Do we need an F# package? Can't you reference any .NET dll from any .NET like language?

Do we need an F# package? Can't you reference any .NET dll from any .NET like language?

Yes, you can. But the F# implementation could be slightly different than the C# one given the specifity of the language.
It can be seen as a nice-to-have, but for F# developers this issue can be seen as mandatory.

In that case perhaps we should wait and see how F# developers use the package to gain a better insight into how it would differ from the C# version.

There is also a need for the same.

Writing scripts to run, F# is more extensive than C# (Scripting with F# dotnet fsi Script.fsx), without having to create a new project.
F# uses null less and Option<T> more often.
F#, like Rust, has more types than C#.

type Enum1 = A | B | C
type TaggedUnion1 =
     | Num1 of int
     | Str1 of string
type Record1 = { E1: Enum1; Data: TaggedUnion1 }

let a1 = { Record1.E1 = A; Data = Num1 1111 }
let b1 = { Record1.E1 = B; Data = Str1 "sss" }


Document how to use P5 plugins and constructors

As discussed in multiple issues such as #62, #61, #11, #23 and more, there seems to be confusion as to how we can use plugins out of the box. This being the case, we should document how to use plugins and constructors without external dependencies. This comment could provide a foundation for the documentation but is far from refined currently and would need reformulated accordingly.

@caines1989 would you be up for taking this one on?

sure I dont mind at all :D

Hello, it would be great, to see some example with audio experience at this point, do you have anyone?

https://github.com/P5-wrapper/react/issues/61#issuecomment-730632590 but is far from refined currently and would need reformulated accordingly.

I've trying with this comment, but sketch is not builded.
if import "p5/lib/addons/p5.sound"; added to sketch without any calling plugins.
I see

If i comment it, everything working well.

Please share details of the issue including any installed dependencies, your code and any logs or error messages in a new issue for easier tracking🙏🏻!

Okay, so let's go with code and so on
sketch.js
`
// import "p5/lib/addons/p5.sound";
export default function sketch(p5) {
let cycles;
let fft;
let webCam;
let img;
let cnv;
let fr = 30;
let pd = 1.0;
p5.setup = () => {
p5.pixelDensity(pd);
p5.frameRate(fr);
cnv = p5.createCanvas(p5.windowWidth, p5.windowHeight);
cnv.style("z-index", "-1");
// cnv.mousePressed(p5.userStartAudio);
//activate module in and output
// cycles = new p5.AudioIn();
// cycles.start();
// cycles.connect();
// fft = new p5.FFT();
};
p5.draw = () => {
p5.background(p5.random(0, 20), 5);
//Mikado pattern
p5.stroke(p5.random(255), p5.random(255), p5.random(255));
p5.line(
  p5.random(p5.width),
  p5.random(p5.height),
  p5.random(p5.width),
  p5.random(p5.height)
);
p5.strokeWeight(8);

// var wave = fft.waveform();
//console.log(fft.waveform);

// p5.beginShape();
// for (var i = 0; i < p5.width; i++) {
//   var index = p5.floor(p5.map(i, 0, p5.width, 0, wave.length));
//   var x = i;
//   var y = wave[index] * 300 + p5.height / 2;
//   p5.point(x, y);
// }
// p5.endShape();

};
}
`
Also here we go with wrapper
`"use client";
import Canvas3d from "@/components/polyMenu/Canvas3d";
import { Inter } from "@next/font/google";
import { ReactP5Wrapper } from "react-p5-wrapper";
import sketch from "../components/mikado/sketch";
// add different font
const inter = Inter({ subsets: ["latin"] });
export default function Home() {
return (

);
}
`
And dependencies
{   "name": "---",   "version": "0.1.0",   "private": true,   "scripts": {     "dev": "next dev",     "build": "next build",     "start": "next start",     "lint": "next lint"   },   "dependencies": {     "@next/font": "13.1.2",     "@react-three/drei": "^9.53.0",     "@react-three/fiber": "^8.10.0",     "@types/three": "^0.148.0",     "eslint": "8.32.0",     "eslint-config-next": "13.1.2",     "next": "13.1.2",     "r3f-perf": "^6.6.3",     "react": "18.2.0",     "react-dom": "18.2.0",     "react-p5-wrapper": "^3.4.0",     "three": "^0.148.0"   },   "devDependencies": {     "autoprefixer": "^10.4.13",     "postcss": "^8.4.21",     "tailwindcss": "^3.2.4"   } }


Improve supporting for XMILE specification

I'm check the XMILE specification and try to mention the possible issues that should to implement.
I not mention in this file problem with parsing the IF ... THEN ... ELSE statement, but it should be also supported by grammar. In nearest future I want to continue improve specification supporting.
The first I want to fix small, but where important issues:

IF .. THEN .. ELSE
Inline comments
PULSE function

Regards,
Alexey from sdCloud.io development team.

Coverage increased (+2.9%) to 91.613% when pulling d6ee6eeb31a71951299f630b59f42797777ed3ed on alexprey:structuring_readers into 6c7972b448fe70baefec13e19265b314b120b473 on JamesPHoughton:structuring_readers.

Coverage decreased (-85.6%) to 3.116% when pulling b571a9aa33966152e9910fa8ac9a90becdd4e7ef on alexprey:structuring_readers into 6c7972b448fe70baefec13e19265b314b120b473 on JamesPHoughton:structuring_readers.

Coverage decreased (-0.8%) to 87.919% when pulling b18e1182fb62c1cfe6777da7e54f42c8bd9046e7 on alexprey:structuring_readers into 6c7972b448fe70baefec13e19265b314b120b473 on JamesPHoughton:structuring_readers.

Coverage decreased (-8.6%) to 80.04% when pulling 6f72dd20d56404a298ff5a2cb0df32aa2e206e8e on alexprey:structuring_readers into 6c7972b448fe70baefec13e19265b314b120b473 on JamesPHoughton:structuring_readers.

Coverage decreased (-0.8%) to 87.905% when pulling 0aaed4201c6b4a428ec20896285a1bd70b1ef2c8 on alexprey:structuring_readers into 6c7972b448fe70baefec13e19265b314b120b473 on JamesPHoughton:structuring_readers.

Coverage decreased (-0.7%) to 87.939% when pulling f0f2fed167bda47136252edd05f73735be0ac1b7 on alexprey:structuring_readers into 6c7972b448fe70baefec13e19265b314b120b473 on JamesPHoughton:structuring_readers.

@JamesPHoughton need small help from you. I can't understand how works the imports in python. On my local setup import on this line from .py_backend import functions is not work with out this line from . import py_backend in pysd\__init__.py. But on travis this is not work.

@JamesPHoughton also I want to say that xmile parser works fine, but model execution is not works, because it is depends on specific definitions in vensim models. F.ex. after run I have the next error File "pysd\py_backend\functions.py", line 555, in _format_return_timestamps     self.components.final_time() + self.components.saveper(),. Can you look on this?

@alexprey - I haven't figured out how to do imports on this package in a way that works for both python2 and python3. Its a problem. Right now, should be working with py3 - I see on travis that that build at least runs most of the tests.
The last issue is because of the saveper. Right now, the code manually adds the components vensim uses for initial and final times here, but the saveper is missing. We should put it in for now, although I don't know if this is a solution I want to stick with in the long term. You probably agree. Its not elegant.

@JamesPHoughton can I try to change logic with it and use something abstract for computation steps?

Hey @alexprey, if you want to merge my recent changes into your branch, i'll complete this PR and we'll be on the same page. Otherwise, I'm happy to pull pieces into my branch.

@JamesPHoughton of course, I'll merge your branch and solve conflicts.

@JamesPHoughton can you check requirements.txt file? Travis-CI can't download one of required dependency...

Good call, looks like scipy is an issue for others as well:
https://github.com/travis-ci/travis-ci/issues/2650#issuecomment-252285413

Coverage decreased (-86.8%) to 3.922% when pulling d39de3290c18087bd333bc6b10c440027f6bc57c on alexprey:structuring_readers into 1b343cf882b9d73a97996396802b19e604f254e1 on JamesPHoughton:structuring_readers.

Coverage decreased (-0.8%) to 89.991% when pulling 3cf176564e2f3c56dfe028d1392f7bdcbf39d214 on alexprey:structuring_readers into 1b343cf882b9d73a97996396802b19e604f254e1 on JamesPHoughton:structuring_readers.

@alexprey
Thanks for all your work on this! I really appreciate the collaboration. =)
If you've got the appetite for it, would you mind adding a test of the XMILE syntax pulse/ramp etc. input functions to the test repository? It would be good to have a test for your pulse_magnitude function... I have similar tests for vensim here - so you could either translate this vensim model into xmile (checking that it still produces the same output, or create a new directory with input function test specific to xmile.

Hi James, thanks :) I try to figure out how write additional test cases and continue work with you on xmike supporting in pysd. When it will be realesed we want to update it into sdcloud solution, because old version have many issue that you already fixed sinse 032 version! I hope that we can write quality execution engine for xmile. And this expirience is very helpfully for me in my future reserches about SD.29.09.2017, 16:59, "James Houghton" notifications@github.com:@alexprey
Thanks for all your work on this! I really appreciate the collaboration. =)
If you've got the appetite for it, would you mind adding a test of the XMILE syntax pulse/ramp etc. input functions to the test repository? It would be good to have a test for your pulse_magnitude function... I have similar tests for vensim here - so you could either translate this vensim model into xmile (checking that it still produces the same output, or create a new directory with input function test specific to xmile.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.
-----Regards, AlexeyFrom sdCloud.io development team.


[FLINK-34122][core] Deprecate old serialization config methods and options

What is the purpose of the change
Deprecate old serialization config methods and options listed in FLIP-398.
Brief change log

Deprecate old serialization config methods and options listed in FLIP-398.
Migration usage of the old config options in UTs to the new option.
Mark the corresponding methods in SerializerConfig as @Internal so that they can be converted to private methods after their deprecated caller methods in ExecutionConfig are removed in the next major Flink version.

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no) no
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no) yes
The serializers: (yes / no / don't know) no
The runtime per-record code paths (performance sensitive): (yes / no / don't know) no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know) no
The S3 file system connector: (yes / no / don't know) no

Documentation

Does this pull request introduce a new feature? (yes / no) no
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented) JavaDocs

@flinkbot run azure


oura kafka timestamp always 1.1.1970, 00:59:59

We have oura setup with a kafka topic sink:
[source]
type = "N2N"
address = ["Tcp", "<node>:<port>"]
magic = "mainnet"
min_depth = 6
[source.intersect]
type = "Tip"
[source.mapper]
include_transaction_details = true
[[filters]]
type = "Fingerprint"
[[filters]]
type = "Selection"
[filters.check]
predicate = "variant_in"
argument = ["Transaction"]
[sink]
type = "Kafka"
brokers = ["b-1:9092","b-2:9092","b-3:9092"]
topic = "mainnet-oura-transactions"

oura 1.7.3 is filling the kafka topic, but all messages have the timestamp "1.1.1970, 00:59:59" set and not the actual timestamp of the transaction. This is only available in the message value of context.timestamp.
How to set the timestamp korrekt in kafka?

hi @pyromaniac3010, Oura isn't attempting to set the timestamp of the Kafka message. The problem is that the meaning of that field is ambiguous, could potentially be used for storing the time when the message was sent or, as you propose, the timestamp of the Tx. What's worse, every message in a block show the same timestamp (because it represent the time when the block was minted), which makes for a lot of repeated data.
Ideally, we could include a flag via config that allows the user to either:

leave the timestamp undefined (current behavior)
use the timestamp at which the message was sent
use the timestamp of the block


Changed year to 2020-2022

I've changed the version from only 2020 to 2020-2022

Thanks for your contribution ^^
Unfortunately I'm not going to merge it, per 17 U.S. Code § 401 the copyright year doesn't need to be kept up-to-date:

(b) Form of Notice.—If a notice appears on the copies, it shall consist of the following three elements: [...]
the year of first publication of the work; in the case of compilations, or derivative works incorporating previously published material, the year date of first publication of the compilation or derivative work is sufficient. The year date may be omitted where a pictorial, graphic, or sculptural work, with accompanying text matter, if any, is reproduced in or on greeting cards, postcards, stationery, jewelry, dolls, toys, or any useful articles; and [...]

But if you want to contribute to Pax, you could learn a bit about Nim and then take a stab at the various feature requests? :D


Better EIG testing

Ports some code from eig_estimation_benchmarking.py to test_eig.py to be run on CI

Await #1361

Codecov Report

Merging #1364 into dev will decrease coverage by 0.56%.
The diff coverage is 74.84%.

@@            Coverage Diff            @@
##             dev    #1364      +/-   ##
=========================================
- Coverage   95.8%   95.24%   -0.56%
=========================================
  Files        126      130       +4
  Lines       6646     7016     +370
=========================================
+ Hits        6367     6682     +315
- Misses       279      334      +55

Impacted Files
Coverage Δ

pyro/contrib/autoguide/__init__.py
99.65% <100%> (+0.35%)
:arrow_up:

pyro/contrib/glmm/__init__.py
100% <100%> (ø)

pyro/contrib/glmm/guides.py
59.34% <59.34%> (ø)

pyro/contrib/glmm/glmm.py
72.06% <72.06%> (ø)

pyro/contrib/oed/eig.py
93.66% <96.2%> (+25.8%)
:arrow_up:

pyro/infer/tracegraph_elbo.py
100% <0%> (ø)
:arrow_up:

pyro/distributions/__init__.py
100% <0%> (ø)
:arrow_up:

pyro/distributions/diag_normal_mixture.py
100% <0%> (ø)

... and 5 more

Continue to review full report at Codecov.

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

Moved to #1371


when two range sliders are on the same page id #handle-one and #handle-two are not unique.

I have found a semantic issue when I try and place two range sliders on the same page. In short some elements  reuse what is supposed to be a unique id.
Looking at the demo page
http://benheb.github.io/d3.slider/
the range slider created by
d3.slider().value([10, 25 ])
here is an edited outline of the HTML

  ..

   ..

When there are two sliders on the page there will be 2 elements with unique id "handle-one" and two elements with id "handle-two"
The solution is to change the id attributes into class attributes - and then tighten up the select of element in the code where appropriate.
I really like this project and will try and find the time to work on the solution soon...but thought I should outline the issue.

This pull request fixes the issue.


Read.me update: single instance note on SSR

this could save someone some hours of research

 All committers have signed the CLA.

The claim you placed in the readme goes without any explanation or proof

Sorry about that @catamphetamine
What ended up making me understand the issue was a section titled Helmet in this article.
Before I found it I stumbled onto issues like:
https://github.com/nfl/react-helmet/issues/125
https://github.com/nfl/react-helmet/issues/238
(and many others like these)
Hope that clarifies the issue I was tackling with, let me know if there's any doubts!


Try to build noarch package

Checklist

[x] Used a fork of the feedstock to propose changes
[x] 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'll try to take a look tomorrow, and will load it all back up into memory. Let's lay out a plan for what we need to do (and how / who should do it). Talk soon,


Clean up the git-init base Dockerfile and Task.

My previous change switched us off of the Dockerfile-based git-init base image in favor of ghcr.io/distroless/git (:tada:), however, I wanted to stagger cleaning this up so we could keep rebuilding it in case we needed to rollback.
This cleans up the Dockerfile and Task, which should complete the migration.
Fixes: https://github.com/tektoncd/pipeline/issues/4752
/kind cleanup
/hold
Going to leave a hold on this so we have some bake time on the distroless images.  I'm sure we need at least one more change to stop running this task before we can simply delete it.  cc @afrittoli @vdemeester
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Docs included if any changes are user facing
[x] Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Release notes block below has been filled in
(if there are no user facing changes, use release note "NONE")

Release Notes
The nightly git-init base image is no longer build, it is deprecated in favor of ghcr.io/distroless/git.

/test pull-tekton-pipeline-alpha-integration-tests
/test pull-tekton-pipeline-go-coverage

/hold cancel


minor fixes

This PR fixes some trouble (failing tests) with Instrument name capitalization.
Locally, all tests in test_apt_interface pass for me.

Looks great. Thanks for these fixes!


vendor: update klog to v1.0.0

Hello @jazzdan,
Please review the following commits I made in branch nicks/log:
c9d082291bb59a669f95e31dcc1323c323d150ef (2019-12-19 15:59:04 -0500)
vendor: update klog to v1.0.0

This turned out to be a real bug! klog changed to always print to os.Stderr unless you explicitly told it otherwise with --logtostderr=false

I'm going to merge this so I can keeep hacking on go modules

:+1:


scala3-compiler, scala3-library, ... 3.1.3 (was 3.1.2)

Updates

org.scala-lang:scala3-compiler
org.scala-lang:scala3-library
org.scala-lang:scala3-library_sjs1

from 3.1.2 to 3.1.3.
GitHub Release Notes - Version Diff - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (3.1.2).
You might want to review and update them manually.
.github/workflows/build-test.yml

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-lang" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

@mkurz Damn it, in this you changed version yourself. My hope that problem fixed is dead 😢

Yes, we still have to wait... 😢


Make setting schema_file configurable via phinx.yml

My schema.php is too long (around 65K lines) and it is causing PHP-CS-Fixer in my post commit hook to fail due to hitting memory limit. I would like to change the file extension to a lint only extension.
Will you accept a PR to make the value of schema_file configurable via phinx configuration file?

I just noticed that schema file can be a .php or .json file. But I cannot find an option to change the schema file, since it is hard coded as schema.php in GenerateCommand::getSchemaFilePath.

@JoyceBabu The json support has been removed long time ago. Please exclude the schema.php from scanning.

@JoyceBabu The json support has been removed long time ago. Please exclude the schema.php from scanning.

Did you mean you are planning to remove it in future? Since I am already using a custom GenerateCommand, I tried overriding getSchemaFilePath to return schema.json instead of schema.php, and it worked as expected.
MigrationGenerator::saveSchemaFile and MigrationGenerator::getSchemaFile still contains the code for handling the file correctly, depending on the extension.

Did you mean you are planning to remove it in future?

Well, I tried it ;-)
Please create a PR to make the schema_file configurable via phinx configuration file.

Well, I tried it ;-)

😀
Why did you chose PHP native array over JSON? Was it for removing the dependency on JSON module? Is there a noticeable performance overhead in parsing JSON? Isn't JSON a better format in this case, since the data is not exactly source code?


Removed unnecessary layout prefix for flexible content field layouts

With the release of 6.0.7, ACF removed unnecessary layout prefix for flexible content field layouts.
Since this package is generating field keys on the fly, this should be regarded as a breaking change and released in a major version. It would probably also make it harder to upgrade to a newer version if the layout prefix is saved in the database. I'm guessing removing the prefix won't benefit this library much, and we can probably leave it as is.
@lgladdy am I right to assume that the layout prefixes are saved in the database?

@vinkla This is purely a UI change in the admin. In the new admin UI introduced in 6.0.6, layouts appeared as "Layout: Layout Name", but now they show as "Layout Name".
I'll update the blog post to be clear about this!

@vinkla No worries! Sorry about this - should have be more explicit here, that's on me!


Having problems in pip -r required text

In first it happens successfully but when I reinstalled its not happing the problem is shown in my screenshot

Smartphone (please complete the following information):

De poco c3]

same problem with me

Type pip install -r requirements.txt it's quicker and works.

it doesent work????

still doesent work????


App doesn't start in Windows 11 (build is ok)

Windows 11 version: 22H2
OS build: 22598.100
After building the app I get an error when I try to run it:
Launching lib\main.dart on Windows in debug mode...
Building Windows application...
Error waiting for a debug connection: The log reader stopped unexpectedly, or never started.
Error launching application on Windows.

If I remove the two lines for bitsdojo from the beginning of windows/runner/main.cpp the app is working (of course it adds the system title bar).
The lines:
#include <bitsdojo_window_windows/bitsdojo_window_plugin.h>
auto bdw = bitsdojo_window_configure(BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP);

Until I realized the issue is caused by bitsdojo I tried reinstalling Visual Studio (2019/2022) and various Windows SDKs (for win 10 and 11). No matter what I tried, the app still cannot start on Windows 11.
But if I build it on Windows 11 and I run it on Windows 10 the app starts and works ok. So I conclude that it's only a runtime issue on my build of Windows 11.

I have the same problem，hope the author can solve the problem，thanks！

https://github.com/bitsdojo/bitsdojo_window/pull/134/commits/73984019864ac83053bd47d0a8f5e524bffba32b

I used this change to solve my problem， 7398401

Thanks. I didn't realize that I created a duplicate and that a fix is already developed. Closing this..


Problem in default values, overwrited SSA to ASS

Hi, there to much things in this issue, https://github.com/tkarabela/pysubs2/issues/18, i'll split point by point, the first is this, some values in the conversion are overwrited somewhere and ignore the default values of https://github.com/tkarabela/pysubs2/blob/master/pysubs2/ssastyle.py
Here an example:
[Script Info]
Title: karaoke
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
PlayResY: 600

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: OK,Britannic Bold,30,16777215,65535,65535,&H0029464b,0,0,1,2,1,2,10,10,10,0,0

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,OK,NTP,0000,0000,0000,!Effect,Hi

Converting to ASS:
[Script Info]
; Script generated by pysubs2
; https://pypi.python.org/pypi/pysubs2
Title: karaoke
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
PlayResY: 600

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: OK,Britannic Bold,30.0,&H00777215,&H00000535,&H00000535,&H0029464B,0,0,0,0,1.0,2.0,10.0,10.0,10,0.0,0.0,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,OK,NTP,0,0,0,!Effect,Hi

Here a comparative values doesn't match:
                   SSA (original), ASS (converted)
BorderStyle 1                     10
Outline        2                      0
Shadow       1                      0
Encoding     0                      1

And there is some weird values, like ScaleX and ScaleY, in the dafult values of pysubs2 there is right values, but when write the file there is others, here other table, that values are ASS only, so should use the pysubs2 values (don't exist in SSA):
              Default (pysubs2)  Writed value (converted)
ScaleX   100                        1
ScaleY   100                        2
Spacing 0                           10
Angle     0                           10

Bye.

New thing, i found this is because if how pysubs2 detect the file type, the players accept [V4+ Styles] as substation, while where have weird things, if i change it to [V4 Styles] works fine.


Feature Request: Automatic Alias for WHs

A non critical, but nice quality of life feature which my Corp misses, is having our mapper automatically give short easily identifiable names to our map as we populate wormholes.
For example, when in combat, or needing to quickly reference something down the chain, It's easier to Identify something as WH17 off of the B chain, rather than a J-sig.
If the launcher was able to give you the option to automatically name WHs with a WH##, sequentially, unless a lower number is no longer on the map, it would cut down on human error.
Potentially, Pathfinder could assign that number to a WH after you paste the sig, and select the type of wormhole, but adding Pathfinder's WH## to the Description field, also giving us a name for bookmarks on the spot as well.

Linking my request as a duplicate >> https://github.com/exodus4d/pathfinder/issues/369

Thanks for your request 😄 . As I mentioned in https://github.com/exodus4d/pathfinder/issues/361#issuecomment-256410829, automatic "renaming" of new systems will not be implemented due to the large variety of different naming conventions out there.
But what we could talk about, is some kind of pre/suffixing systems (wh-)systems with increasing (unique) numbers (e.g. J12345 WH1, J122222 WH2). If a WH was deleted, the next WH could get its number....
My problems with your request:

The auto-renaming will definitely not be loved by everyone.
Reassigning a pre/suffix can be confusing with outdated bookmarks that still exists ingame.

If you find any more "pro"  arguments for this issue, we can keep talking about this request. If not, I´ll close this one.

If autonaming was a toggle you could enable/disable when you create a new map, it would satisfy both those with and without the desire to have it. Make it default to off.
And a simple WH followed by a ## is more than sufficient, any adjustments could be made manually, as they are now, but an automated system would ensure that systems are not giving duplicate names.
I would also add... We are here to use your amazing tool. We all had old systems with old ways we did things, change is good, change for the better is awesome. Just because all our groups had individual ways we handled naming conventions before, doesn't mean we should pass up a great feature because we can't be bothered to adapt to a new format.
Autonaming is the #1 requested feature in our Corp.
Same goes for the bookmark name generating suggestion, having something that expedites the process of exploring the chain by a few seconds when it comes to jumping holes and making bookmarks is a massive quality of life and time saver when you multiply it by hundreds and thousands. Which we get to pretty handily living in wormholes. 8)
As far as the bookmarks go, no real confusion - I am sure any WH entity has a system of bookmarking which includes folders for easy hole rolling and chain expanding, which means old bookmarks are not creating any confusion. And if they don't, they can definitely work one out.

I second this! We use the Vippy alias style where "home" would be 0 the static would be 1 e.t.c
Example:

We also use a renaming of this kind.
I build a name list and I'm updating the database with the custom name every hour.
As pathfinder does not remove system with custom name from the data base (so far), we will open unamed WH less and less until it's all renamed.
I can share some details if you want me to

We relay heavy on a similar feature when using vippy.
Vippy gives the first C5 system the name C5A, the next C5B and so on. NS_, LS_, HS_
Because it's predictable you can give a signature BM the correct name while scanning before you jump into them.
WHX would be the same. But if you remove WH1, WH2 should NOT be renamed!

As you can see on this screenshot, you can both see the systemname, and the automated tag.
I don't care much about the name shame, but it should predictable, name should stay when others are deleted and indicate what class it is.

Hey @exodus4d
Would you be so kind and reevaluate this issue?
Not only makes it life easier for the scanner, but also later on.
"Lets meet up at c2a" is fast and clear communication. "Gang at J155737" will just increase human communication errors.
Maybe I'm missing something? I have a hard time understanding how to map without it.

@sNakiex so when you want help in 5643 (C5->C6->C4->C3) you say you need ppl in 1132?
No thank you ;-)
That's one of most ridiculous chain naming conventions I've ever encountered :)

It actually makes sense if you have used vippy before, it only takes a few hours to get used to the naming convention and you'll never have duplicates.
Which a lot of the wormhole players probably used and/or still use.

Was this closed by accident? Commit is about a broken persistent alias, this is a feature request about automated alias.

How would people feel about a feature like this being implemented. Assuming it's possible to turn it of.
The exact naming scheme is not important right now, as long as the implementation has the following accept criteria:

Predictable, not random. So you can bookmark a C5 with the right BM name before you jump in // before it gets mapped.
Keep the alias until system gets removed.
System name / J-Number should still  be visible.


Promise support

Hi,
Thx for the library and the good work.
I wanted to check if it is possible to have promise instead of pushing callback function ?
I check the readme and issues (in particular):
https://github.com/dparlevliet/node.bittrex.api/issues/77
https://github.com/dparlevliet/node.bittrex.api/pull/7
I think it is not supported but would like confirmation. It would be nice to have that in the future.
Thx

Correct, it's not - those that need promises enable them by using bluebird or similar. There is a setting to invert the response param order to accommodate.

Thx guys for the info. Will try to to enable them with external libs (and maybe play with await async).


Add GELF TCP handler and disable compression by default

Allows to use TCP handler for reliable logs delivery
Also disabling compression by default to allow use proxy like https://github.com/jedisct1/flowgger

The option for disabling the compression is a must have :+1:

I think disabling compression will change the behaviour for current users. I think it should be enabled by default.

@mlosev I think @severb has a point. Are you going to change the default behaviour or may I do it?

@mlosev @severb : Is this PR active? I think this is an important feature for Graypy.

I think this PR was blocked by another change that was landed in the meantime: #60. It should be ready to land after the changes you requested.

Fixed here


Add scripts

Description of changes:
Add scripts to run the cli easier to parse.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Seems test_cli/scripts/run_cli.py and cli/scripts/run_cli.py are very similar. What is test_cli/scripts/run_cli.py for exactly and why can't we combine these scripts?

One is used for just purely testing - canary - integration tests, so I feel like script can diverge at the end, so separating it out.

I'm not convinced that we should have a separate CLI for integration tests; its not like JS SDK where we are using webdrivers and all that stuff which are very sensitive to demo changes. Lets just make that split when we need to.

I added a more portable bash script in the latest change.


[AIRFLOW-2585] Fix bugs in CassandraHook and CassandraToGCSOperator

Make sure you have checked all steps below.
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-2585

Description

[x] Here are some details about my PR, including screenshots of any UI changes:
This PR fixes:
(1) issue with UUID type conversion: currently UUID is converted to hex string, but should be converted to base64-encoded as that is the required format in BigQuery for uploading.
(2) Issue with configuring load balancing policy in CassandraHook: currently the hook only successfully instantiate with the default LB policy, but throw an exception if attempts to pass in a custom LB policy in the extra field.
(3) Issue with connections not closed properly after use: should always shut down the cluster in the operator to close all sessions/connections associated with the cluster instance.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
unit tests added/fixed:

tests.contrib.hooks.test_cassandra_hook
tests.contrib.operators.test_cassandra_to_gcs_operator

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[ ] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

Can you please fix the flake8 errors? :
Running flake8 on the diff in the range ab81767d..a1182cc2 (1 commit(s)):
--------------------------------------------------------------------------------
airflow/contrib/hooks/cassandra_hook.py:146:91: E501 line too long (98 > 90 characters)
            child_policy_name = policy_args.get('child_load_balancing_policy', 'RoundRobinPolicy')
                                                                                ^
tests/contrib/hooks/test_cassandra_hook.py:28:5: E128 continuation line under-indented for visual indent
    DCAwareRoundRobinPolicy, WhiteListRoundRobinPolicy)
    ^
tests/contrib/hooks/test_cassandra_hook.py:69:25: E225 missing whitespace around operator
        fake_addr_info =[['family', 'sockettype', 'proto', 'canonname',
                        ^
tests/contrib/hooks/test_cassandra_hook.py:70:25: E128 continuation line under-indented for visual indent
                        ('2606:2800:220:1:248:1893:25c8:1946', 80, 0, 0)]]
                        ^
tests/contrib/hooks/test_cassandra_hook.py:82:91: E501 line too long (92 > 90 characters)
                                       expected_child_policy_type=WhiteListRoundRobinPolicy)
                                                                                ^
tests/contrib/hooks/test_cassandra_hook.py:101:91: E501 line too long (96 > 90 characters)
                                   {'child_load_balancing_policy': 'WhiteListRoundRobinPolicy'},
                                                                                ^
tests/contrib/hooks/test_cassandra_hook.py:116:9: E722 do not use bare except'
        except:
        ^

CI didn't get triggered, will close/reopen this PR.

Mew unit test failures seemed to be unrelated

Can you please rebase against the master? The CI should now be fixed.

Ah, thanks for pointing it out @kaxil

@kaxil master still seems to be broken

@gerardo Aah, yes it is annoying. The CI had passed for that PR which was merged. Another PR that basically reverts the original change has been merged to master. The CI should pass this time.

Could be that the PR was on an old master, therefore the rebasing is so important

Codecov Report

Merging #3483 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3483      +/-   ##
==========================================
- Coverage   77.16%   77.14%   -0.02%
==========================================
  Files         203      203
  Lines       15123    15123
==========================================
- Hits        11669    11667       -2
- Misses       3454     3456       +2

Impacted Files
Coverage Δ

airflow/models.py
87.95% <0%> (-0.09%)
:arrow_down:

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 5bb547a...d3f2f35. Read the comment docs.