http2 GOAWAY causes client to drop requests

It's possible this is an h2 issue but I don't know the crates well enough to know.
If a GOAWAY is received while multiple requests are in flight some of them fail with the error:
http2 error: protocol error: not a result of an error

I can reproduce this by running the following code:
use anyhow::Result;
use hyper::{client::HttpConnector, Body, Client, Uri};
use tracing::{span, warn, Instrument as _, Level, Span};

#[tokio::main]
async fn main() -> Result<()> {
    tracing_subscriber::fmt()
        .with_max_level(Level::DEBUG)
        .init();

    let connector = HttpConnector::new();
    let client: Client<_, Body> = Client::builder().http2_only(true).build(connector);
    let uri: Uri = "http://<IP_ADDRESS>:8080".parse().unwrap();

    let mut requests = Vec::new();
    for i in 0u32..2 {
        let client = client.clone();
        let uri = uri.clone();
        let span = span!(Level::INFO, "request", i);
        span.follows_from(Span::current());
        requests.push(tokio::spawn(
            async move {
                match client.get(uri).await {
                    Ok(res) => {
                        let _ = hyper::body::to_bytes(res.into_body()).await.unwrap();
                    }
                    Err(e) => warn!("{}", e),
                }
            }
            .instrument(span),
        ));
    }
    for request in requests {
        let _ = request.await;
    }
    Ok(())
}

I ran this against an nginx instance with the following config to force http2 and send a GOAWAY after every single request.
events {}
http {
    server {
        listen 80 http2;
        keepalive_requests 1;

        location / {
            root /data;
        }
    }
}

This program generates the logs (edit: I've added in the trace level logs too if they're useful trace.log):
Apr 12 15:44:42.887 DEBUG request{i=0}: hyper::client::connect::http: connecting to <IP_ADDRESS>:8080
Apr 12 15:44:42.888 DEBUG request{i=0}: hyper::client::connect::http: connected to <IP_ADDRESS>:8080
Apr 12 15:44:42.888 DEBUG request{i=0}: h2::client: binding client connection
Apr 12 15:44:42.889 DEBUG request{i=0}: h2::client: client connection bound
Apr 12 15:44:42.889 DEBUG request{i=0}: h2::codec::framed_write: send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Apr 12 15:44:42.889 DEBUG request{i=0}: hyper::client::pool: pooling idle connection for ("http", <IP_ADDRESS>:8080)
Apr 12 15:44:42.889 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_read: received frame=Settings { flags: (0x0), max_concurrent_streams: 128, initial_window_size: 65536, max_frame_size: 16777215 }
Apr 12 15:44:42.890 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_write: send frame=Settings { flags: (0x1: ACK) }
Apr 12 15:44:42.890 DEBUG request{i=1}: hyper::client::pool: reuse idle connection for ("http", <IP_ADDRESS>:8080)
Apr 12 15:44:42.890 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_read: received frame=WindowUpdate { stream_id: StreamId(0), size_increment:<PHONE_NUMBER> }
Apr 12 15:44:42.891 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_write: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
Apr 12 15:44:42.891 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_write: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
Apr 12 15:44:42.891 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_write: send frame=Headers { stream_id: StreamId(3), flags: (0x5: END_HEADERS | END_STREAM) }
Apr 12 15:44:42.892 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_read: received frame=Settings { flags: (0x1: ACK) }
Apr 12 15:44:42.892 DEBUG request{i=0}:Connection{peer=Client}: h2::proto::settings: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
Apr 12 15:44:42.893 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_read: received frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(1) }
Apr 12 15:44:42.894 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_read: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
Apr 12 15:44:42.894 DEBUG request{i=0}:Connection{peer=Client}: h2::codec::framed_read: received frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
Apr 12 15:44:42.895 DEBUG hyper::proto::h2::client: client response error: protocol error: not a result of an error
Apr 12 15:44:42.896  WARN request{i=1}: hyper_test: http2 error: protocol error: not a result of an error

Rampant speculation
My suspicion is that any stream after the final stream inidicated in the HTTP2 GOAWAY frame, that were spawned before hyper received the goaway, throw this error. I would expect hyper to retry them on a new connection, as it does for any connection spawned later on (I assume after the client has marked the old connection as closed).

Your speculation is correct. The solution for hyper to automatically retry these is a little harder to do.

In hyper, we've already given up the headers to be encoded, and also the body to start streaming. There aren't bounds on the body type to indicate how the body could be restarted.
The error code isn't actually clear enough to know if it could be safely restarted. HTTP/2 requires that a GOAWAY with the last-stream-id set means anything over it should be safe to retry, but the individual stream errors don't currently point that out. They just see a Reason::NO_ERROR, which can also be sent on a stream that was received, processed, and the rest of the body is no longer interesting.

It would be possible at a layer above hyper (so, by the user, for instance) to use something like tower::retry, to get it the request to retry if you know it will be safe to do so.

I can see why it might be impossible for hyper to retry the request automatically. However, as you say, the errors don't currently give the user enough information to know whether the request can be safely retried. How hard would it be to improve the error signalling to include that information?
I think the piece of information that the user is interested in is whether the requests may have reached the server, or if it definitely didn't. I don't think you can be more precise than that. A general "it's safe to retry that request" would be great but I'm not sure it's possible to determine between transient and more permanent connection issues.

Yea, I think we'd need to redesign the h2::Error type some, so that it can include if it's a stream error, or a connection error (GOAWAY). Then we'd be better equipped to answer that programmatically.

@seanmonstar Could you give pointers on how to redesign the h2::Error? We encounter this behaviour in the wild and would like to fix it.


Tie Exit this Page skiplink into ghost page functionality

Adds a little JS so that skiplinks are tied into the EtP component's exitPage function, allowing the skiplink to activate the 'ghost page' function. exitPage has been updated so that it redirects to the href of the activated link, rather than being hardcoded to the href of the main EtP button.
Keyboard-based functionality operates on a page-wide basis, and thus does not need to be separately enabled for the skiplink. This leaves only the 'ghost page' overlay needing to work across both components.
Issues

Writing Jest tests that play nicely with the syncOverlayVisibility function in our JS is proving elusive. This might be because we use pageshow as one of the event hooks for it, but this is never triggered when the tests are ran headlessly.

That said, the test still fails when Jest/Puppeteer is ran in headed mode.
This uses the same event hooks as the functionality that restores the state of conditional checkboxes and radio buttons, which also lacks Jest tests. Maybe this is just a no go?

I think this is good for a review now.
The lack of any integration test for syncOverlayVisibility isn't great, but it doesn't seem like it's practical to write one.
I'm also not 100% on whether this approach is 'the best one', but it does fail safely in non-ideal conditions:

If JavaScript is not available, both the EtP button and skiplink operate as normal links.
If the EtP button is present and the skiplink isn't, the EtP button works as expected and no errors are returned from the skiplink being absent.
If the skiplink is present and the EtP button isn't, the EtP JS doesn't run and the skiplink operates as a normal link.
If the skiplink is missing the required class name, the skiplink operates as a normal link.

The use of a class name for binding JS to elements is according to the JS authoring documentation.
I had considered whether we'd want to change or supplement this with a data-* attribute so that extra information could be passed into it (i.e. configuration options to toggle features on/off), but as the ghost page is the only feature being extended currently, that felt like a premature development.

We've agreed to exclude the state syncronisation integration test from this PR and to spin that out into it's own item of work.
This is because the same issues with testing we're seeing here exist on other components (particularly the checkbox and radio buttons), and it may require larger changes to our testing infrastructure that are well outside of the scope of this PR.
As a result I've reverted the adding of the test. I chose to revert so that the test remains in source control in case we find use for it in the future, though I can rebase or squash it if desired.


With TrueFilter enabled, private variables from parent classes are shown

Private variables are, by definition, unavailable in child classes, so it it's inappropriate to show them in child class documentation.
Assume the following classes:
class Foo {
    private $bar;
    protected $baz;
}

class Fizz extends Foo {
    private $buzz;
}

Foo should show the definitions for $bar and $baz, where Fizz should show the definitions for $baz (with a link back to Foo) and $buzz, but not show $bar.
Private variables and methods are not actually inherited or accessible by child classes, so they shouldn't show up in the documentation for the class.

@samlev  @fabpot TrueFilter is a standard class that can be extended and can be customized as wish, for example:
<?php

use Sami\Sami;

//Filter
use Sami\Parser\Filter\TrueFilter;

//Reflection
use Sami\Reflection\MethodReflection;
use Sami\Reflection\PropertyReflection;

$dir = '/home/user/foo/bar/prject';

class CustomFilter extends TrueFilter
{
    public function acceptMethod(MethodReflection $method)
    {
        return $method->isPublic() || $method->isProtected();
    }

    public function acceptProperty(PropertyReflection $property)
    {
        return $property->isPublic() || $property->isProtected();
    }
}

$sami = new Sami($dir);
$sami['filter'] = function () {
    return new CustomFilter;
};
return $sami;

@samlev  @fabpot TrueFilter is a standard class that can be extended and can be customized as wish, for example:
<?php

use Sami\Sami;

//Filter
use Sami\Parser\Filter\TrueFilter;

//Reflection
use Sami\Reflection\MethodReflection;
use Sami\Reflection\PropertyReflection;

$dir = '/home/user/foo/bar/prject';

class CustomFilter extends TrueFilter
{
    public function acceptMethod(MethodReflection $method)
    {
        return $method->isPublic() || $method->isProtected();
    }

    public function acceptProperty(PropertyReflection $property)
    {
        return $property->isPublic() || $property->isProtected();
    }
}

$sami = new Sami($dir);
$sami['filter'] = function () {
    return new CustomFilter;
};
return $sami;

That would be an interesting fix/addition.
Imagining I could creating a custom Filter I've looked, superficially I admit, the classes involved but I couldn't figure a way to compare, maybe, by checking if the class from where the MethodReflection came from is a child of another class that contains current $method in iteration.


Pagination on table view

It's cool to have pagination on table view as example.

Hi @tigrus thanks for the feedback. Table component is still unimplemented in Angular Material. I think no sense to handle pagination untill https://github.com/angular/material/issues/796 is open

@micrum ok :+1:

I have added Pagination table and sent a pull request. You may check.


Introduce Entity Framework & implement MySQL IContextStorage

Motivation and Context

Original issue: #478
Some background:
I want/need to persist the chat in something other than Cosmos or the filesystem. I'm aware that C# has a long history of ORM usage, so I thought it would make sense to implement MySQL for this, and introduce EF to make sure the datamodel layer is easy to change.
@Rainson12 has also made an effort in the same vein, for MariaDB, as seen here #242
So now I know of 3 people that want this, and I haven't found anyone so far that's opposed to the idea of EF.
Description
This has serious consequences, during local testing I ran into a lot of problems surrounding concurrency. That meant that I had to change classes that aren't directly related to the change I'm trying to make.
Also, right now there seems to be some kind of hack surrounding the scope for the Cosmos implementation that I'd like to get rid of as well.
I'd like some help with this! So if you want to help out, let me know. I don't really know all that much about EF itself, and I want to make sure we get this right the first time.
Contribution Checklist

[ ] The code builds clean without any errors or warnings
[ ] The PR follows the Contribution Guidelines and the pre-submission formatting script raises no violations
[ ] All unit tests pass, and I have added new tests where possible
[ ] I didn't break anyone :smile:

@microsoft-github-policy-service agree company="WebGrip"

That's too bad. I put some effort into this, there are multiple people that want this and I was told to make a PR on the issue I created. It's not about showing off, it's about supporting normal industry standards for persistency. Forcing cosmos is not a good look, just sayin'. Thinking about the data model in terms of ORM would be helpful as well, I think. But it's your decision :)


MSID: 97227 Version: 1 DOI: 10.1101/2<IP_ADDRESS>2023

MSID: 97227
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>2023
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=97227
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>2023

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/97227v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>2023
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/97227/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

titles missing from all references


During the drag process, the stroke progress bar displayed error.

https://user-images.githubusercontent.com/50992790/163698566-aba53c0b-989a-4692-95b3-2b90f543a565.mp4

@Edric-Li
The attached video does not appear. Can you upload it again?

@lja1018  in browser, does not appear, please download to view.

@Edric-Li
The stroke bar seems to move at random. Is it right?

@lja1018  Yes.

@Edric-Li
I checked. I'll fix it.


Indexed in Google checker fails when the AMP page is over HTTP

When the AMP page is over HTTP, like this one, "Indexed in Google" checker fails because it also tries to find the URL in the AMP cache using HTTP, which is incorrect.
Since URLs in AMP Cache are always HTTPs, this checker should check the following URL
https://amp.ewn.co.za/2018/05/31/mokholo-report-on-r2-4bn-sa-express-fuel-deal-will-determine-if-case-is-opened
instead of this one
http://amp.ewn.co.za/2018/05/31/mokholo-report-on-r2-4bn-sa-express-fuel-deal-will-determine-if-case-is-opened

Hi Oliver,
I had a quick look at your canonical page for the example AMP page that you mentioned.
You currently have the http version of the AMP page linked from the canonical:

When I tried testing the https version of your AMP content it seems that the sub-domain doesn't currently have support for https.
From the AMP caching guidance it seems to be the case that as the canonical page exposes a http AMP page that the cache would store the http version.
I think this may be working as intended but would like some clarification about the difference in expected behaviour if you could.
Thanks,

Hello @dakkad ,
The AMP cache never exposes http URLs, no matter if the original AMP page is under http or https. That's why I think AMPBench should always try to look for https URL in the AMP cache.
For both http and https AMP pages, there's always a valid https version in the AMP cache

Seems to be fixed now:
https://ampbench.appspot.com/validate?url=http%3A%2F%2Famp.ewn.co.za%2F2018%2F05%2F31%2Fmokholo-report-on-r2-4bn-sa-express-fuel-deal-will-determine-if-case-is-opened

@ithinkihaveacat Yes it is! Thanks :)

Thanks for verifying this, it was merged and deployed as per this commit.


fix(material-experimental/mdc-checkbox): fix broken dark theme

This is a re-submit of https://github.com/angular/components/pull/20926 with a fix for the focus state

What is broken in the current dark theme styles? It seemed to work for me in the dev app.

What is broken in the current dark theme styles? It seemed to work for me in the dev app.

We had a screenshot failure from the previous change where the focus state of a checkbox was not the correct color (I think it was darker than it was supposed to be). I'm not super familiar with mdc-checkbox so I don't fully understand why, but the changes in this PR have fixed the issue. I'm working on getting it submitted as quickly as possible

I forgot to include the styles to re-color the ripple for primary, accent, warn states - so the ripple was always gray. Fixed it in this PR

@wagnermaciel I meant to ask what issue was the original PR fixing, before we had to revert it.

@crisbeto I'm not sure. @mmalerba might have the answer you're looking for


Added getting started with PowerShell module

Added steps for installation from the gallery and local import.

/azp run


Project plan: Write Assignment description

Relevant notes: Read meeting notes from 12.10.
Updates #3 once completed.

I have written a draft for this section and put it in the project plan. Could someone review it, add some additional notes, and then we consider it complete?


P.S.A Publishing and Validation are having issues

We're aware publishing and validation are having a high failure rate.
We're looking into the Issue and will update as we make progress.

We've identified and disabled the failing regions, so validation and publishing can continue. As soon as the issue is resolved, we will bring the other regions back online.

All regions have been restored and are online in our normal operating configuration.


not able to install via pip

pip install pyrage
ERROR: Could not find a version that satisfies the requirement pyrage (from versions: none)
ERROR: No matching distribution found for pyrage

pip install https://pypi.org/project/pyrage/
Collecting https://pypi.org/project/pyrage/
  Using cached https://pypi.org/project/pyrage/ (65 kB)
  ERROR: Cannot unpack file /private/var/folders/5p/rnr_sg3n0hd_q7j_wb13t8h00000gn/T/pip-unpack-svpz01ub/pyrage (downloaded from /private/var/folders/5p/rnr_sg3n0hd_q7j_wb13t8h00000gn/T/pip-req-build-bkq2kcp6, content-type: text/html; charset=UTF-8); cannot detect archive format
ERROR: Cannot determine archive format of /private/var/folders/5p/rnr_sg3n0hd_q7j_wb13t8h00000gn/T/pip-req-build-bkq2kcp6

macos big sur 11.6.6
python 3.7.13

Thanks for the report.
Looks like I forgot to publish macOS wheels; I'll fix that tonight or tomorrow.

Sorry for the delay here -- it turned out to be a little more involved (I need to refactor the publishing action more extensively). Should be done soon, and I'll comment again here when a new stable release is available.

Okay, I've cut v1.0.1 and it should be on PyPI shortly with macOS wheels. Please let me know if you have any problems with them.

Still broken for me.
Windows 10 amd64.
Python 3.10.2

Yeah, I don't currently publish any Windows wheels at all -- it's not something I've looked closely into. I'll give it a try this weekend, though.

Opened #15 to track that.


Add explanation about AMPByExample CSS

There is some confusion about how AMPByExample manages the CSS for the sample pages. This is an attempt on improving the documentation.
@sebastianbenz @juliantoledo @borisf

@sebastianbenz what do you think about this pull request? If you don't think it makes sense, I can close it.

Sorry  for not responding. I think your additions absolutely make sense. I've added a few suggestions, other LGTM

@sebastianbenz PTAL

LGTM


Unknown file extension ".jsx" with vitest

deps: node 20.18.0

"typescript": "^5.6.3",
    "vite": "^5.4.10",
    "vite-plugin-solid": "2.10.2",
    "vitest": "^2.1.4"
"@solidjs/testing-library": "^0.8.10",

error:

TypeError: Unknown file extension ".jsx" for solidjs_ts\node_modules\.pnpm\@iconify-icon+solid@2.1.1_solid-js<EMAIL_ADDRESS>

This is not related to component, but to your test config.

then, why is working for other libs

.jsx files should be parsed by anything that parses SolidJS components, tests are also most likely using .jsx or .tsx. If they don't work, you have setup test environment incorrectly.
If tests do work, but it throws error for iconify-icon component, question is why extension is not parsed in files from node_modules. That's a configuration issue.

"@iconify-icon/solid": "^2.1.1",

in https://github.com/iconify/iconify/tree/main/iconify-icon-demo/solid-demo you should have some tests, and upgrade dependency

and in vitest github I find in config section
resolve: {
    preserveSymlinks: true,
  },


Pricing Calculator incomplete

When using the pricing calculator on the Sheet, I notice that the price does not adjust if cell I2 ("Image Understanding") is TRUE or FALSE.
No matter the option, the price remains the same.

Do you have images in the feed? If so, is the "Image Column Header" value in the "Config" tab set to the correct column header from "Input Feed"?
Feel free to "unhide" Columns after "I" in the "Config" tab and you'll be able to see the details of the cost formula.

Unhiding the columns did the trick, so I was able to adjust. Thanks for the tip!
But still "Images Count" formula seems a bit off.
The last column is the "Input Feed" is column K, but the formula is looking for column L.
Any idea what could cause this?


FIX: userId -> user_id

Snake case fields conforms to .proto style guide and is consistent with the rest of the file.
Style Guide: https://developers.google.com/protocol-buffers/docs/style

This service is already in use. This is a breaking change. You also haven't recompiled the proto.

Maybe those kind of changes could be collected in a seperate directory to prepare v2 of services?
Because ignoring changes because it's in production is maybe not the best way to go.

I agree, equally we just need to check what the current usage looks like and whether to hard break. I agree that it's highlighting a path to v2, the question is just how v2 coincides with client and api changes e.g is it /v2/service/endpoint in m3o as well?

Why hard breaking the production when going for a new version is possible too?
I would say /v2/service/endpoint is pretty straight-forward.

It's not straight forward. We have 1 deployment of a service, regardless. So we'd have to start deploying separate versions and then have to deploy a separate v2 gateway for that and then even the way we display docs would have to be versioned.

Oh, I see what you mean.
That's a lot of work :(

Yes, now @lambdaR has already started work on v2 clients, but I think to do an entire v2 means really working on the full pipeline. I think v2 has to take other things into consideration like making it possible to route to APIs that are not just on the platform but anywhere.


network: Implement net::ToSocketAddrs for address messages

This allows the message to be passed in constructors that take A: ToSocketAddrs like net::TcpStream etc.

BTW are we able to return an impl Iterator rather than a specific iterator type? I forget if this is available in 1.29 but it would let us muck around with the iterator in future without API breaks.

BTW are we able to return an impl Iterator rather than a specific iterator type? I forget if this is available in 1.29 but it would let us muck around with the iterator in future without API breaks.

Yeah, I think it's ~1.26

Hmm @apoelstra @elichai not sure how that would work here, the trait actually has a associated type that you need to fill. If that wasn't the case, I'd say yes. but I think this trait is from pre-impl times so the associated times makes impl Iterator not possible.

BTW are we able to return an impl Iterator rather than a specific iterator type? I forget if this is available in 1.29 but it would let us muck around with the iterator in future without API breaks.

Unfortunatetly no.
This would require impl Trait to be usable within traits: the ToSocketAddrs trait would need to define its signature using impl Trait and that is not (yet) supported. See this section in the relevant RFC.

I guess we should merge it then as-is?


Increase worker_refresh_interval to 1 day

We don't need to restart gunicorn workers when Dag Serialization is enabled

Make sure to mark the boxes below before creating PR: [x]

[x] Description above provides context of the change
[x] Unit tests coverage for changes (not needed for documentation changes)
[x] Target Github ISSUE in description if exists
[x] Commits follow "How to write a good git commit message"
[x] Relevant documentation is updated including usage instructions.
[x] I will engage committers as explained in Contribution Workflow Example.

In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.
Read the Pull Request Guidelines for more information.

Why not just set it to 0 to disable entirely?

Why not just set it to 0 to disable entirely?

No real reason tbh, just thought it might be good to restart them in a while but yes you are right its not needed. Fixing


null handling in isPristine

isPristine is throwing when value is changing from null to object. This is a fix.

I believe you that this is a real problem, but this code can't be right. What is type?

Oh. Fixed.

Why don't we make it if (!data || typeof data !== 'object') to catch undefined, too?

Why not =)

Third time's the charm!


MHLO -> HLO does not respect sharding, inserting a tuple without sharding

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
No
Source
source
Tensorflow Version
2e896fbe1e0ea4df33fbcfe780a1036f431b4e89
Custom Code
Yes
OS Platform and Distribution
Linux Ubunto 20.04
Mobile device
No response
Python version
3.11
Bazel version
No response
GCC/Compiler version
10.3
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Converting an MHLO program to HLO that is fully annotated with shardings, results in HLO that has a tuple instruction that is without sharding.
Input MLIR sharding-not-respected-mhlo-to-hlo.mlir:
func.func @main(%arg0: tensor<2x2xi32> {mhlo.sharding = "{devices=[2,1]0,1}"}) -> (tensor<2x2xi32> {mhlo.sharding = "{devices=[2,1]0,1}"}) {
  %0 = mhlo.add %arg0, %arg0 {mhlo.sharding = "{devices=[2,1]0,1}"} : tensor<2x2xi32>
  return %0 : tensor<2x2xi32>
}

Command:
xla-translate -mlir-hlo-to-hlo-text sharding-not-respected-mhlo-to-hlo.mlir

Result:
HloModule main, entry_computation_layout={(s32[2,2]{1,0})->s32[2,2]{1,0}}

ENTRY %main.5 (Arg_0.1: s32[2,2]) -> s32[2,2] {
  %Arg_0.1 = s32[2,2] parameter(0), sharding={devices=[2,1]0,1}
  %add.2 = s32[2,2] add(s32[2,2] %Arg_0.1, s32[2,2] %Arg_0.1), sharding={devices=[2,1]0,1}, metadata={source_file="sharding-not-respected-mhlo-to-hlo.mlir" source_line=2}
  %tuple.3 = (s32[2,2]) tuple(s32[2,2] %add.2)
  ROOT %get-tuple-element.4 = s32[2,2] get-tuple-element((s32[2,2]) %tuple.3), index=0, sharding={devices=[2,1]0,1}
}

You can see that a tuple instruction has been inserted that has no sharding annotation.
  %tuple.3 = (s32[2,2]) tuple(s32[2,2] %add.2)

This test expects a tuple without sharding. Is this really the expected behavior?
For example this tuple instruction would cause a problem if you want to do SPMD partitioning. Then the partitioner would insert an unwanted all-gather instruction.
If you do a conversion without sharding of the same MLIR
func.func @main(%arg0: tensor<2x2xi32>) -> tensor<2x2xi32> {
  %0 = mhlo.add %arg0, %arg0 : tensor<2x2xi32>
  return %0 : tensor<2x2xi32>
}

You get a nicer result without the redundant tuple and get-tuple-element instructions
HloModule main, entry_computation_layout={(s32[2,2]{1,0})->s32[2,2]{1,0}}

ENTRY %main.3 (Arg_0.1: s32[2,2]) -> s32[2,2] {
  %Arg_0.1 = s32[2,2] parameter(0)
  ROOT %add.2 = s32[2,2] add(s32[2,2] %Arg_0.1, s32[2,2] %Arg_0.1), metadata={source_file="sharding-not-respected-mhlo-to-hlo.mlir" source_line=2}
}

I can see two solutions here.

Make the tuple instruction inherit the correct sharding.
Return directly the result of the add operation.

Standalone code to reproduce the issue
See the description.

Relevant log output
No response

Eugene, can you take a look at this?

Thank you for flagging! Will take a look - I vaguely remember that there were some historical reasons for this, but hopefully it's just because noone had the time to implement this.


[BUG] TypeError: Cannot read properties of undefined (reading 'body')

im getting the following error:
test-1      |     TypeError: Cannot read properties of undefined (reading 'body')
test-1      |
test-1      |       4 | import { type Context } from "./Context";
test-1      |       5 |
test-1      |     > 6 | export const server = new ApolloServer<Context>({
test-1      |         |                       ^
test-1      |       7 |   typeDefs,
test-1      |       8 |   resolvers,
test-1      |       9 | });
test-1      |
test-1      |       at getLocation (node_modules/graphql/language/location.js:23:30)
test-1      |       at node_modules/graphql/error/GraphQLError.js:128:39
test-1      |           at Array.map (<anonymous>)
test-1      |       at new GraphQLError (node_modules/graphql/error/GraphQLError.js:127:25)
test-1      |       at SchemaValidationContext.reportError (node_modules/graphql/type/validate.js:73:7)
test-1      |       at validateFields (node_modules/graphql/type/validate.js:301:17)
test-1      |       at validateTypes (node_modules/graphql/type/validate.js:244:7)
test-1      |       at validateSchema (node_modules/graphql/type/validate.js:43:3)
test-1      |       at assertValidSchema (node_modules/graphql/type/validate.js:56:18)
test-1      |       at Function.generateSchemaDerivedData (node_modules/@apollo/server/src/ApolloServer.ts:730:5)
test-1      |       at Object.schemaDerivedDataProvider (node_modules/@apollo/server/src/ApolloServer.ts:275:28)
test-1      |       at new SchemaManager (node_modules/@apollo/server/src/utils/schemaManager.ts:79:36)
test-1      |       at new ApolloServer (node_modules/@apollo/server/src/ApolloServer.ts:272:26)
test-1      |       at src/graphql/server.ts:6:23

graphql/user/schema.graphql
extend type Query {
  me: User
}

type User {
  id: Int
  name: String
}

type UserCreateInput {
  firstName: String!
  lastName: String!
}

extend type Mutation {
  userCreate(input: UserCreateInput!): User!
}

codegen.ts
import type { CodegenConfig } from "@graphql-codegen/cli";
import { defineConfig } from "@eddeee888/gcg-typescript-resolver-files";

const config: CodegenConfig = {
  schema: "**/schema.graphql",
  generates: {
    "src/graphql": defineConfig({
      typesPluginsConfig: {
        contextType: "./Context#Context",
        mappers: {
          User: ".prisma/client#User as UserModel",
        },
      },
    }),
  },
};

export default config;

this was due to a mistake the gql schema:
type UserCreateInput {
  firstName: String!
  lastName: String!
}

should have been
input UserCreateInput {
  firstName: String!
  lastName: String!
}

not the most obvious of errors!


Update description to point to current search interface

Add in the headline that this repo is deprecated and that people should look at https://github.com/creativecommons/cccatalog-frontend instead

Added to README, updated repo's website and description.


denizen throwing error on startup

I just got everything up to date and denizen is throwing an error on start up.
here is the error: http://mcmonkey.org/paste/29707

Update Spigot. Spigot.

I just downloaded the latest buildtools...

And ran it with java -jar buildTools.jar --rev latest ?

not the --rev lataset...
lets see if that works

ok, that didn't seem to work... still has same error

[craftbukkit.jar:git-Bukkit-039621d]
SPIGOT

oh.. use spigot instead?

We have been building against spigot for over 12 months :stuck_out_tongue:

oh... (how come no one tells me these things?)
case closed


vvrhclkdgbvvguvjbddlikggvitkgchkbnlhclddgbur

Submit an Issue
Hi,
Thanks for helping us improve the Predix UI platform by submitting an issue.
Before you begin, please check the list of existing issues to avoid submitting a duplicate issue.
To help us solve this issue as fast as possible, please fill out the following sections:
Expected behavior and actual behavior:
Steps to reproduce the problem:
Environment (component version number, Browser (including version), operating system, hardware, etc):
Screenshots (optional, but very helpful):
Code examples help us better understand the issue - follow the appropriate codepen for the component by going to https://predix-ui.com, finding the component in question, and clicking on the pencil icon under the demo.
    Once you've created your code example, you can save it under a new url.
    Please note that you should NOT use the same methods for production as the ones used in codepen - these methods are not production ready.

waEROIUrwqopiurwqPIOUDQWpou'dqwpiodwp[odwop['dwap[odwqP[ODQWop[dQWP[OKDQWA;podaqP;'LAsdda

💯


read docker-compose service context

In meli, when building image; we assume[1] that the context is the directory in which the dockerfile is in.
This is not always true; consider a docker-compose.yml file such as;
version: '3'
services:
  nestedservice:
    build:
      context: .
      dockerfile: nestedDir/level1/level2/nestedDockerfile
    labels:
      - "type=db"

where nestedDir/level1/level2/nestedDockerfile is;
FROM busybox
# refer to a file that is in the same dir as docker-compose file(ie in the . context)
ADD OnbuildCopyDockerfile /usr/share/OnbuildCopyDockerfile

CMD tail -fn3 .dockerenv

when using meli -up you will get an error such as
Status: Downloaded newer image for busybox:latest [==================================================>]  715.3kB/715.3kB
nestedservice :: Status: Downloaded newer image for busybox:latest

service=nestedservice error=originalErr:: Error: No such image: meli_nestedservice

ref:

https://github.com/komuW/meli/blob/c61ffd08b50a3af1352ac2cc1d20e4399710e60f/api/image.go#L151

fixed by https://github.com/komuW/meli/pull/68


Unable to run works in the LightningList structure on cloud

🐛 Bug
(as reported by @aniketmaurya)
Following error is raised:
[flow] 2022-09-11T08:14:06.981Z INFO: Traceback (most recent call last):
[flow] 2022-09-11T08:14:06.981Z   File "/content/venv/lib/python3.8/site-packages/lightning_launcher/launcher.py", line 206, in run_lightning_flow
[flow] 2022-09-11T08:14:06.981Z     app._run()
[flow] 2022-09-11T08:14:06.981Z   File "/content/venv/lib/python3.8/site-packages/lightning_app/core/app.py", line 427, in _run
[flow] 2022-09-11T08:14:06.981Z     done = self.run_once()
[flow] 2022-09-11T08:14:06.981Z   File "/content/venv/lib/python3.8/site-packages/lightning_app/core/app.py", line 376, in run_once
[flow] 2022-09-11T08:14:06.981Z     self.root.run()
[flow] 2022-09-11T08:14:06.981Z   File "app.py", line 41, in run
[flow] 2022-09-11T08:14:06.981Z     model_serve.run()
[flow] 2022-09-11T08:14:06.981Z   File "/content/venv/lib/python3.8/site-packages/lightning_app/runners/backends/backend.py", line 59, in _dynamic_run_wrapper
[flow] 2022-09-11T08:14:06.981Z     self.create_work(app, work)
[flow] 2022-09-11T08:14:06.981Z   File "/content/venv/lib/python3.8/site-packages/lightning_launcher/lightning_backend.py", line 147, in create_work
[flow] 2022-09-11T08:14:06.981Z     app.work_queues[work.name].put(work)
[flow] 2022-09-11T08:14:06.981Z   File "/content/venv/lib/python3.8/site-packages/lightning_app/core/queues.py", line 224, in put
[flow] 2022-09-11T08:14:06.981Z     value = pickle.dumps(item)
[flow] 2022-09-11T08:14:06.981Z TypeError: cannot pickle '_thread.RLock' object

To Reproduce
import lightning as L
from lightning_app.structures import List

class CounterWork(L.LightningWork):
    def __init__(self):
        super().__init__()
        self.counter = 0
    def run(self):
        self.counter += 1
        print(self.counter)

class RootFlow(L.LightningFlow):
    def __init__(self):
        super().__init__()
        self.list = List(*[CounterWork(), CounterWork()])
        self.work = CounterWork()
    def run(self):
        for work in self.list:
            work.run()

app = L.LightningApp(RootFlow())

Expected behavior
Should work.
Environment
lightning, version 0.5.7
Additional context

cc: @tchaton @ethanwharris
cc @tchaton @rohitgr7

@tchaton, any update so far? :rabbit:


indigo-dark base black too dark?

testing out pulling off the bandages and it just feels like the theme is mixed odd, will supply a working branch once my chat PR is pushed in

OK this lives at mp/landscape/indigo-themes for inspection

Wow this looks incredible

The first reaction I have to this is that the pure black black100 is quite an extreme look: This approach makes sense when one takes into consideration OLED screens and the like (pure black interfaces are battery-saving), but I'd be interested in us seeing a bump down in the black used, aka black90.
This said, in many applications/apps, you often see preferences allowing a 'day', 'night (lower contrast)', and 'oled (higher contrast)' setting. This could be a nice affordance for our mobile users.
The greater (and actual/non-preference-based) issue here is obviously our borders surrounding interactive elements being destroyed/made invisible somehow. It'd be good to retain these for our dark theme, so interactive elements are more obvious.

This is the exact purpose of themes.
This change should be scoped to the theme, not the color assignment on the component.
I think the black is too dark. In the theme, I would set the 'black' value to #1A1A1A, which is black90 mixed on a white bg.

I mean ... this is about the theme, not the colour assignment? I'm confused. All I did was swap out the themes in our theme folder for the imported themes.

Specifically https://github.com/urbit/urbit/commit/2005604c9d06abf10396fe4210f25ba1a4309125

Oh I see. I would just PR indigo-dark with black changed to #1A1A1A.

Or I can just do it now


wxwidgets:x64-linux build failure

Host Environment

OS: [e.g. Windows/Linux bash terminal]
Compiler: gnu 7.5

To Reproduce
Steps to reproduce the behavior:
./vcpkg install wxwidgets:x64-linux
Failure logs
-Cut and past the appropriate build messages from the console output.
-Please attach any additional failure logs mentioned in the console output.
Additional context
Call Stack (most recent call first):                                                                                scripts/cmake/vcpkg_configure_cmake.cmake:369 (vcpkg_execute_required_process)                                                             ports/wxwidgets/portfile.cmake:26 (vcpkg_configure_cmake)                                                                                scripts/ports.cmake:140 (include)                                                                                Error: Building package wxwidgets:x64-linux failed with: BUILD_FAILED                                                                      Please ensure you're using the latest portfiles with ./vcpkg update, then                                                                submit an issue at https://github.com/Microsoft/vcpkg/issues including:                                                                      Package: wxwidgets:x64-linux                                                                                Vcpkg version: 2021-08-12-unknownhash

@evalen43 ,Thanks for posting this issue,please provide the error log.

IIRC wxwidget needs gtk3 for Linux, but this is not available in vcpkg (was replaced by gtk4). You may need to install gtk3 dev system packages. wxwidets for Linux is skipped in vcpkg CI.
But please check the port build logs first.

Please note there also serious issues with the wxWidgets port on Linux currently. Fixing those is in progress in #17111.

@evalen43, have you tested @dg0yt's suggestion?

@evalen43 ,Closing this issue for no active thread for a long time. Please feel free to reopen this issue if it is still a problem for you.


ETCD nodes are being deployed into the wrong subnets

Hi, I've specified the subnets I want my etcd nodes deployed into but they're being deployed elsewhere.
I want the nodes in private, un-manged subnets (along with the controllers and workers) but they are being deployed into the public subnets and allocated public IPs.
The controllers and workers are getting deployed into the correct subnets. This is on 0.9.6
Am I doing something wrong or is this unintentional?
cluster.yaml snippet
etcd:
  count: 3
  instanceType: t2.small
  dataVolume:
    size: 30
    type: gp2
    iops: 0
    encrypted: true
    ephemeral: false
  subnets:
    - name: private-a
    - name: private-b

worker:
  apiEndpointName: proofcore
  nodePools:
    - name: nodepool-a
      subnets:
       - name: private-a
    - name: nodepool-b
      subnets:
       - name: private-b

subnets:
   - name: public-a
     availabilityZone: eu-west-2a
     id: "subnet-1c68b167"
     routeTable:
      id: "rtb-a450edcd"
   - name: public-b
     availabilityZone: eu-west-2b
     id: "subnet-28d92965"
     routeTable:
       id: "rtb-a450edcd"
   - name: private-a
     availabilityZone: eu-west-2a
     id: "subnet-416ab33a"
     routeTable:
       id: "rtb-a6328fcf"
   - name: private-b
     availabilityZone: eu-west-2b
     id: "subnet-e0d828ad"
     routeTable:
       id: "rtb-79328f10"

I think this is actually a dupe of #611. Closing.


Checking if Azure MFA SPN is Exist in the tenant - Test Failed

What is happening:

$AllSPNs = Get-MsolServicePrincipal | select AppPrincipalId
WARNING: More results are available. Please specify one of the All or MaxResults parameters.

What should be changed:
#$AllSPNs = Get-MsolServicePrincipal | select AppPrincipalId
$AllSPNs = Get-MsolServicePrincipal -All | select AppPrincipalId

@weyCC81 sorry for delay and thank you for the correction. This is fixed.


add KIND to 2024-02-02preview

add KIND to 2024-02-02preview
PRD Link: https://microsoft.sharepoint.com/:w:/r/teams/azurecontainercompute/_layouts/15/Doc.aspx?sourcedoc={BCE16B46-5383-484E-81B0-143A3BECF24F}&file=DevX - AKS Application Mode PRD.docx&action=default&mobileredirect=true&cid=e6fba65f-a795-4efd-a234-197674c787fe
API review Doc : https://dev.azure.com/msazure/CloudNativeCompute/_wiki/wikis/CloudNativeCompute.wiki/642084/AppsReady-Kind-API
for any existing API versions except of new 2024-02-02-preview API, there is no Kind property in MC, so there is no behavior change for all these existing API versions
for 2024-02-02-preview API, if no explicit Kind provided or Kind and SKU.Name matches in input body, MC put has no behavior change. MC put will fail with BadRequest only explicit Kind and SKU.Name doesn't match.

/pr RequestMerge


The remote app is lost when I move it to a second screen

Describe the bug
If I move the remote app to a secondary screen, I can no longer use it
To Reproduce
Steps to reproduce the behavior:
Launch remoteapp
Move the remote app to a secondary screen
See screenshot:
Calculator between the two screens, part of the image is lost on the secondary screen.

Calculator on secondary screen, does not respond to click

Expected behavior
That the remote application is full displayed and is 100% functional.
Application details
This is FreeRDP version 3.0.0-dev (d31a98336)
/u:test /app:"||calc" /title:"Test" /d:test.test /smartcard /p:"test" /v:localhost:3389 /size:100% /log-level:TRACE /cert-ignore
Output of xfreerdp /buildconfig
This is FreeRDP version 3.0.0-dev (d31a98336)
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=OFF WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=OFF WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=TRUE WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PULSE=OFF WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=ON WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=OFF WITH_ZLIB=ON
Build type: Debug
CFLAGS: -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -DWINPR_DLL
Compiler: GNU, 8.3.0
Target architecture: x64
OS version connecting to (server side)
Windows Server 2008 R2
Environment (please complete the following information):
OS: Debian
Version/Distribution: 10 with XFCE
Architecture: amd64

Duplicate #6312
As mentioned in the reply there, RAIL needs intimate knowledge of the local monitor and dock/bar/... layout.
This will result in a number of different bugs during use if they are not properly set.
No need to create an issue for all of them.


Feature/issue 206 group dependabot updates

GitHub Issue: #206
Description
A short description of the changes in this PR.
Local test steps
Summarize testing and verification you've done. This includes unit tests or testing with specific data
Overview of integration done
Explain how this change was integration tested. Provide screenshots or logs if appropriate. An example of this would be a local Harmony deployment.
PR Acceptance Checklist

[ ] Unit tests added/updated and passing.
[ ] Integration testing
[x] CHANGELOG.md updated
[ ] Documentation updated (if needed).

📚 Documentation preview 📚: https://stitchee--207.org.readthedocs.build/en/207/

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 22.11%. Comparing base (d260f3d) to head (6082788).

Additional details and impacted files
@@             Coverage Diff              @@
##           develop     #207       +/-   ##
============================================
- Coverage    49.84%   22.11%   -27.73%
============================================
  Files           11       11
  Lines          642      642
============================================
- Hits           320      142      -178
- Misses         322      500      +178

Flag
Coverage Δ

integration
?

unittests
22.11% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Support s3 stage on Snowflake destination without requiring an access key & access key id

Current behavior
When using an external (s3) stage to back up my raw data while loading it into Snowflake, I need to provide an AWS access key and an AWS access key ID as credentials for the s3 filesystem destination. Otherwise, I get the following error:
dlt.destinations.exceptions.DatabaseTerminalException: 091003 (22000): Failure using stage area. Cause: [The AWS Access Key Id you provided is not valid.]

Given that I'm using aws-vault to run DLT from a shell that is already authenticated with AWS, it seems unnecessary to require an additional AWS access key and an AWS access key ID when using an s3 stage in DLT. Also, authentication between AWS and Snowflake is already configured when creating the storage integration. In fact, Snowflake allows loading from any external stage that references a storage integration without requiring additional credentials (see here).
Desired behavior
DLT should reference the staged files through the name of the external stage instead of the bucket URL. AWS access key and an AWS access key ID are only required when referencing staged files via their bucket URL. When referencing them via the stage name, no additional credentials are required.

@rudolfix I'm curious about your opinion and your advice on how to properly test the underlying code change. So far, I just tested the PR "locally" with my own Snowflake / S3 instances

@rudolfix Happy to re-submit as a contributor. It's likely that this won't be my last PR as we're planning on using DLT quite a lot

@codingcyclist invite sent. so please resubmit and then we can set up additional test. my take is that me or @sh-rp show you how to do it. it requires adding additional staging option test to existing config set here:
https://github.com/dlt-hub/dlt/blob/0.3.10/tests/load/pipeline/utils.py#L89

oh actually we are testing this in here!
            DestinationTestConfiguration(destination="snowflake", staging="filesystem", file_format="jsonl", bucket_url=GCS_BUCKET, stage_name="PUBLIC.dlt_gcs_stage", extra_info="gcs-integration"),
            DestinationTestConfiguration(destination="snowflake", staging="filesystem", file_format="jsonl", bucket_url=AWS_BUCKET, stage_name="PUBLIC.dlt_s3_stage", extra_info="s3-integration")

it seems there was a bug in the code and we never allowed the stage without forwarding credentials. so we just need to make sure that existing tests are passing!


offset command not working as expected

Describe the bug
Giving wrong results for large rows
To Reproduce
If I have data of less than  753459 rows it will give this result. this is data for 753458 rows
┌────────┬────────┐
│  data  │ index  │
│ int64  │ int64  │
├────────┼────────┤
│      1 │      0 │
│      2 │      1 │
│      3 │      2 │
│      4 │      3 │
│      5 │      4 │
│      6 │      5 │
│      7 │      6 │
│      8 │      7 │
│      9 │      8 │
│     10 │      9 │
│     11 │     10 │
│     12 │     11 │
│     13 │     12 │
│     14 │     13 │
│     15 │     14 │
│     16 │     15 │
│     17 │     16 │
│     18 │     17 │
│     19 │     18 │
│     20 │     19 │
│      · │      · │
│      · │      · │
│      · │      · │
│ 793439 │ 793438 │
│ 793440 │ 793439 │
│ 793441 │ 793440 │
│ 793442 │ 793441 │
│ 793443 │ 793442 │
│ 793444 │ 793443 │
│ 793445 │ 793444 │
│ 793446 │ 793445 │
│ 793447 │ 793446 │
│ 793448 │ 793447 │
│ 793449 │ 793448 │
│ 793450 │ 793449 │
│ 793451 │ 793450 │
│ 793452 │ 793451 │
│ 793453 │ 793452 │
│ 793454 │ 793453 │
│ 793455 │ 793454 │
│ 793456 │ 793455 │
│ 793457 │ 793456 │
│ 793458 │ 793457 │
├────────┴────────┤
│   793458 rows   │
│   (40 shown)

datafusion-cli -q -c " select * from 'offset.csv' limit 4 offset 3"
data,index
4,3
5,4
6,5
7,6

If the data is more it gives another
this is data for 793459 rows
datafusion-cli -q -c " select * from 'offset.csv' limit 4 offset 3"
data,index
113075,113074
113076,113075
113077,113076
113078,113077

for 793460 rows
datafusion-cli -q -c " select * from 'offset.csv' limit 4 offset 3"
data,index
696266,696265
696267,696266
696268,696267
696269,696268

Expected behavior
No response
Additional context
No response

This might be related to built-in parallelism of the Datafusion. Datafusion by default executes in parallel, if query planner thinks it is helpful. You can force DataFusion to work in. single partition by executing command
set datafusion.execution.target_partitions = 1;
In this case, scan order of the file wouldn't change (At least this is what I expect).
Another option might be to specify desired order in the query. if you add ORDER BY index to the query it should produce expected result even if query works in multi partitions.

The query in the issue occasionally returns the correct answer; however, increasing the offset to a large enough number < total rows, almost never works as expected.
First option works well, but it kills the parallelism. Second option isn't always viable especially when data is not originally sorted.
Two possible solutions I can think of:

Attach the partition number to the record batch and consider it when executing the limit. This will kill the early termination of the input stream.

Attach the partition number as a new column and insert a sort by that column before the limit. This doesn't look easy given that DF doesn't have a with_column that can append columns as far as I can tell.

I agree with @mustafasrepo 's analysis
Fundamentally,  select * from 'offset.csv' limit 4 offset 3  is a non deterministic query as the output order is not defined a SQL engine is allowed to return rows in any order (there is no ORDER BY clause).
If you want to treat the file as though it is ordered, you could consder defining it with a CREATE EXTERNAL TABLE ... WITH ORDER
https://arrow.apache.org/datafusion/user-guide/sql/ddl.html#create-external-table


You use a mix of h3o-cli executables in your README

h3o-cli geomToCells -r 11 < city.geojson \
    | h3o-cli compact \
    | ./h3o-cli compress > city.thc

The ./h3o-cli should read h3o-cli.

Ha good catch, will fix it.
Thanks 🙏


update dev dependencies, fix indent

updates the dev dependencies after npm audit, fixes
eslint errors (mostly indent)

Codecov Report

Merging #151 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master    #151   +/-   ##
======================================
  Coverage    99.8%   99.8%
======================================
  Files           8       8
  Lines        1029    1029
======================================
  Hits         1027    1027
  Misses          2       2

Impacted Files
Coverage Δ

writemediasection.js
100% <ø> (ø)
:arrow_up:

getcommoncapabilities.js
100% <ø> (ø)
:arrow_up:

rtcrtpsender.js
100% <100%> (ø)
:arrow_up:

rtcicetransport.js
100% <100%> (ø)
:arrow_up:

util.js
100% <100%> (ø)
:arrow_up:

rtcpeerconnection.js
99.73% <100%> (ø)
: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 2ed7d94...3c38b9e. Read the comment docs.


Coord_flip + legend order

Hi Pier,
I was using the coord_flip functionality with geom_bar (I use bar plots a lot, I know).
When inspecting my results I was slightly confused, but then I noticed the data and the legend are not in the same order anymore.
It's a minor thing, but when presenting such plots, I'd like them to be as intuitive as possible. So I was wondering if there is a way to either mirror the coordinate system in X, or to flip the order of the legend items?

I now see that in the ggplot cheatsheet, the coord_flip actually does the transformation as I would expect (mirrored w.r.t. your output):

Code for later reference:
x=[ones(4,1);2*ones(4,1)];
y=[1:4, 1:4]';
c=x;
l=repmat({'smallest','small','big','biggest'}',2,1);
xc = arrayfun(@num2str,x,'unif',0);

clear g
g(1,1)=gramm('x',xc,'y',y,'color',c,'lightness',l);
g(1,1).geom_bar('dodge',1.5,'width',1.2);
g(1,2)=gramm('x',xc,'y',y,'color',c,'lightness',l);
g(1,2).geom_bar('dodge',1.5,'width',1.2);
g(1,2).coord_flip();

g.set_names('y','','x','');
g.set_order_options('lightness',0);
g.axe_property('YTick',[],'LineWidth',1,'YColor',[1 1 1])

figure('Position',[100 100 600 200]);
g.draw();

Pier, my apologies, I really should have viewed the code first. There seems to be a simple solution, since you use native Matlab axe properties to do the flipping.
I can use the following to accomplish this (instead of using the coord_flip):
g.axe_property('CameraUpVector',[-1 0 0])

Using coord_flip() indeed uses axes properties in a simple way, but also sets is_flipped to true, which is important in draw() and redraw(), especially when facets are used (otherwise scales are incorrect). So by just using axe_property alone you might run in problems.
I had done it the current way to have the axis point "up", but indeed for categories it does make sense to go from top to bottom.
I can quickly add an option to coord_flip in order to set the axis direction.


cp437

I need support to encode/decode cp437 to interface with a dynamic library.
The documentation does not explain how to create your own charset.
Also, I would happily submit a PR with some guidance of how to implement it since I've seen other requests for it.

I've submitted #116 .


Update Nsqlookupd.php

        /* mac nsqd v1.0.0-compat (built w/go1.8)
        {"channels":["nsq_to_file","car"],"producers":[{"remote_address":"<IP_ADDRESS>:62973","hostname":"yxpdeMacBook-Pro.local","broadcast_address":"yxpdeMacBook-Pro.local","tcp_port":4150,"http_port":4151,"version":"1.0.0-compat"}]}
        so del $r['data']
        /*
        //$producers = isset($r['data'], $r['data']['producers']) ? $r['data']['producers'] : array();
        $producers = isset($r['producers']) ? $['producers'] : array();

I find that problem too😂，please merge this request！


Initial implementation for discovery client

const discoveryClient: IDiscoveryClient = ClientFactory.discovery(state);
const namespaces = new NamespaceDiscovery(state.migMeta.namespace, clusterName);
const res = await discoveryClient.get(namespaces);

This PR introduces client for Discovery resources. The config.dev.json have a new change, and will need another field for discoveryApi, which will be used for namespace discovery:
  "discoveryApi": "http://discovery-api.supercluster.example.com",

Closing in favor of https://github.com/fusor/mig-ui/pull/640, which has superseded this.


read.maf Changes Sample ID Format

The change of format makes it difficult to match the samples to other data, such as RNA-seq expression.
> str(CM1)
Classes ‘data.table’ and 'data.frame':	56929 obs. of  120 variables:
 $ Hugo_Symbol                  : chr  "PRAMEF17" "DPYD" "CHIAP2" "CAPZA1" ...
     ...                        ...
 $ Tumor_Sample_Barcode         : chr  "TCGA-AG-3909-01A-01W-1073-09" "TCGA-AG-3909-01A-01W-1073-09" "TCGA-AG-3909-01A-01W-1073-09" "TCGA-AG-3909-01A-01W-1073-09" ...
 $ Matched_Norm_Sample_Barcode  : chr  "TCGA-AG-3909-10A-01W-1073-09" "TCGA-AG-3909-10A-01W-1073-09" "TCGA-AG-3909-10A-01W-1073-09" "TCGA-AG-3909-10A-01W-1073-09" ...
      ...                        ...

> MAF1 <- read.maf(CM1, useAll = FALSE)
> str(MAF1)
Formal class 'MAF' [package "maftools"] with 10 slots
  ..@ data                          :Classes ‘data.table’ and 'data.frame':	37272 obs. of  120 variables:
  .. ..$ Hugo_Symbol                  : chr [1:37272] "PRAMEF17" "DPYD" "CAPZA1" "KCNK1" ...
     ...                        ...
  .. ..$ Tumor_Sample_Barcode         : Factor w/ 136 levels "TCGA.AF.2687.01A.02D.1733.10",..: 40 40 40 40 40 40 40 40 40 40 ...
  .. ..$ Matched_Norm_Sample_Barcode  : chr [1:37272] "TCGA-AG-3909-10A-01W-1073-09" "TCGA-AG-3909-10A-01W-1073-09" "TCGA-AG-3909-10A-01W-1073-09" "TCGA-AG-3909-10A-01W-1073-09" ...
       ...                        ...

As this example shows, the sample IDs of the tumours have had hyphens replaced by periods. Also, it's probably undesirable that one column is a factor but the other is a character vector. They should probably both be characters, since you'd never use the factor levels in a linear model, for example (only 1 sample per patient).

Hi,
In most of the cases when data is converted into matrix or a data frame, hyphens in headers are automatically converted to periods. This leads to inconsistencies for downstream processes. For example try reading any matrix or data frame with column headers containing hyphens and they will read as periods by read.table or read.delim. To avoid this, hyphens are converted to  periods.
Regarding factors, many other functions in maftools require total number of samples from the cohort which is often best persevered when converted to factors/levels.
I do understand this is bit annoying, but for now this is the simplest way to avoid hyphens :|

Now that you explain it, I understand why you'd want to use factors. For example, length(levels(IDs)) is a quick way to calculate the number of samples contained in the MAF file.
I know that R will automatically do the conversion from hyphens to periods in column names and I see that you have pre-empted it in validateMaf.
maf$Tumor_Sample_Barcode = gsub(pattern = '-', replacement = '.', x = as.character(maf$Tumor_Sample_Barcode))

For data.frame and matrix variables, it's not necessary to avoid hyphens and spaces in column names. For example,
> dataTable <- data.frame(`TCGA-AB-1234` = 1:2, `TCGA-AB-2345` = 9:10, check.names = FALSE)
> dataTable
  TCGA-AB-1234 TCGA-AB-2345
1            1            9
2            2           10
> dataMatrix <- matrix(c(1:2, 9:10), ncol = 2, dimnames = list(NULL, c("TCGA-AB-1234", "TCGA-AB-2345")))
> dataMatrix
     TCGA-AB-1234 TCGA-AB-2345
[1,]            1            9
[2,]            2           10

Conversion means that the tumour and normal samples are using a different naming system.
> head(maf[, 16:17])
           Tumor_Sample_Barcode  Matched_Norm_Sample_Barcode
1: TCGA.AG.3909.01A.01W.1073.09 TCGA-AG-3909-10A-01W-1073-09
2: TCGA.AG.3909.01A.01W.1073.09 TCGA-AG-3909-10A-01W-1073-09
3: TCGA.AG.3909.01A.01W.1073.09 TCGA-AG-3909-10A-01W-1073-09
4: TCGA.AG.3909.01A.01W.1073.09 TCGA-AG-3909-10A-01W-1073-09
5: TCGA.AG.3909.01A.01W.1073.09 TCGA-AG-3909-10A-01W-1073-09
6: TCGA.AG.3909.01A.01W.1073.09 TCGA-AG-3909-10A-01W-1073-09

It also means that the output of functions like mutCountMatrix needs users to make changes such as gsub("\\.", '-', colnames(mutationCounts)) before the mutation matrix can be matched by sample to a gene expression matrix, such as one created by TCGAbiolinks.
The NCI Wiki recommends avoiding the barcode in favour of UUID, because they can change for a sample if it's previously thought to be a primary cancer, but later identified as metastasis, for example. Would it bet better to report UUID instead of barcode to the users of maftools?

Oh.. wasn't aware of check.names ! I will try and see if it works good, it should solve this issue. Thanks for pointing me towards it.
I agree with using UUID, but again I think its not as widely used as barcodes. Most of the tools used to generate maf still uses Tumor_Sample_Barcode as to represent sample IDs; for e.g; vcf2maf. Maybe for now using Tumor_Sample_Barcode would be better way (or making UUID as an optional argument to read.maf).
Let me try fixing naming issue. Thanks again.

Hi fixed this in recent push. No samples names wont get messed up and remains as is. Thank you for the suggestion.


Add some unit tests to CI

Unit tests are now running in https://github.com/SuffolkLITLab/docassemble-ALToolbox/blob/main/.github/workflows/unit-tests.yml, there's several for al_income, and one for business days. Can definitely write more, but I don't think keeping a tracking issue for that will help much.


How can i follow a user using this integration?

I want a feature to follow a instagram user from the application so i am wondering if i can use this code to implement the feature?

you can look at
https://github.com/rakshit444/InstagramTracker
for Instagram refrence project.
It also implements follow feature


Coverity fixes

please add a list of issue that this fixes "Fixes #xxxx"

please add a list of issue that this fixes "Fixes #xxxx"

Each commit has appropriate Fixes + Coverity-CID lines.


Email Relay Abuse in Sign-up Functionality

It was observed the product does not enforce any rate limit on sign-up rest api endpoint which can lead to mass mailing and spamming of users.

We introduced rate limiting #525


⚠ Bofrost.at has degraded performance

In e1f73a7, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 956 ms

Resolved: Bofrost.at performance has improved in 6171119.


DevTools failed to load SourceMap: Could not load content for https://unpkg.com/elm-pep.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

Describe the bug
A clear and concise description of what the bug is.
  I always get error

                           DevTools failed to load SourceMap: Could not load content for https://unpkg.com/elm-pep.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

no map displayed.
my package.json is
{
"name": "ol1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {
"ol": "^6.4.3",
"ol-mapbox-style": "^6.3.0",
"proj4": "^2.6.3"
},
"devDependencies": {
"parcel-bundler": "^1.12.4"
},
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "parcel arcgis/.html",
"build": "parcel build --public-url ./ arcgis/.html"
}
}
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.

never mind, I think it is my mac issue,
mac xcode issue on catalina,
it cause parcel-bundle failed to install
I fixed it.

complete steps for MacOS catalina
--------  install openlayers -----------
        https://openlayers.org/en/latest/doc/tutorials/bundle.html

        create a package.json

                    npm init

                    npm install ol
                    npm install ol-mapbox-style
                    npm install proj4

                    npm install --save-dev parcel-bundler                          https://parceljs.org/getting_started.html

        macOS Catalina  10.15.2,  gyp: No Xcode or CLT version detected! gyp ERR! configure error
        https://medium.com/flawless-app-stories/gyp-no-xcode-or-clt-version-detected-macos-catalina-anansewaa-38b536389e8d

                sudo xcode-select --reset

                re-run
                            npm install --save-dev parcel-bundler

--------  end  --------  install openlayers -----------


Use System.Links.IncludeAll instead of System.IncludeAllExternalLinks and System.IncludeAllWorkItemLinks

FYI for anybody who had the same problem as me: If you want to include all external links or all work item links, at least in TFS 2018 Update 3.2 Patch 2 on-premise, you will have to use the type "System.Links.IncludeAll" instead of the here listed "System.IncludeAllExternalLinks" and "System.IncludeAllWorkItemLinks" (which will not be recognized on work item template import).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 53aa48e0-7006-fa63-9915-c7d72dd5623d
Version Independent ID: b3816d11-7cb9-1c56-4cfc-1158e05187cb
Content: LinksControlOptions XML elements reference - Azure DevOps & TFS
Content Source: docs/reference/xml/linkscontroloptions-xml-elements.md
Product: devops
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@echalone - Thank you for the correction, and apologies for the delay in responding. I'm in the process of updating the article.


Bump puppeteer to ^1.11.0

@someguynamedmatt Will you be adding a version too?

@yowainwright Yes, when the freeze is over.


⚠ Website has degraded performance

In 03b2bbf, Website (https://rheinklang.events) experienced degraded performance:

HTTP code: 200
Response time: 1782 ms

Resolved: Website performance has improved in 0caf82d after 12 minutes.


Person component should use gps when home

Home Assistant release with the issue: 0.94.3
Operating environment (Hass.io/Docker/Windows/etc.): Hass.io running in Docker container on intel Nuc
Component/platform: https://www.home-assistant.io/components/person/
Description of problem:
This is mainly a functionality issue. I have my person connected to 3 device_trackers: gps, blutooth and wifi.
At night, I usually set my phone to airplane mode, so the wifi and bluetooth turns off and those device_trackers report as not_home. However, even though the gps still reports me as being home, the person attached to it reports me as away.
The same issue applies if I run into a dead wifi and bluetooth zone in my house.

Pretty sure this is how the documentation describes how the device trackers influence the person component.
Maybe the ability to set priority or probability of device trackers correctness would help.  Along those lines, personally I use a combination of "Person" and a Bayesian sensor to determine if people are really home.   The Bayesian sensor having more weight on the sensors that have proven themselves to be more accurate.
Presences detection is not easy...

Since the device tracker reports your phone being away that is the last reported state and therefor is reflected in your person being marked away. This is expected behaviour in my opinion if your phone is the only device that tracks your presence.

@ronytomen You are right. It would be a good idea to allow users to set priority of device trackers. Presence detection definitely isn't easy and has to be fine tuned to work with every setup.
@cgtobi I don't think so. I have 3 device trackers for my phone. GPS report it as home and WiFi and BLE report it as away. In this case, it would be logical to mark the person as home, because the user is still located in the GPS zone.

No, when the GPS position does not change its last_changed is older than that of your WiFi or Bluetooth ones, hence it is marked away.

I have this issue as well, and @cgtobi and @ronytomen your suggestion that this is 'expected behaviour' doesn't make sense, sorry.
Fact is that bluetooth and wifi trackers regularly drop out as phones become more and more battery savvy.  Person should be considered home until the gps tracker next updates.
According to part 2 of the 'workflow' in the docs:
"You just left home. ‘tracker_gps’ shows status ‘not_home’, but the other two trackers show status ‘home’ (they may not have yet updated due to their ‘consider_home’ setting see device_tracker). Since the stationary trackers have priority, you are considered ‘home’."
However In this case (as reported by the OP), the GPS tracker is still showing us as home, so therefore the person should remain at home regardless of the fact that the wifi/bluettoth has disconnected due to battery saving.  Should only update to away if/when the GPS tracker subsequently reports a new location that is not home.
This is a bug as it is not the defined/expected behaviour.

I am still convinced that it works as documented. And you referenced the exact part of the docs that say this in my opinion: “Since the stationary trackers have priority, you are considered ‘home’.“
The stationary trackers have priority and therefore mark the person ‘away’.

Sorry @cgtobi, but that makes no sense at all.
Homeassistant is basically saying "I know you're still at home because your GPS tracker shows you there, but I'm marking you as away".
Why bother having the GPS tracker at all if Person is only going to react to the network based trackers?
Homeassistant should say to itself "the network tracker has dropped off, where are you?" then use the GPS tracker's NEXT update to establish the answer.

The person component is MVP if I remember correctly. I didn't say it is perfect.
If your phone is in airplane mode it won't send a GPS update, so there is no way other than the other tracking mechanisms for HA to know whether your phone is home or not. You are suggesting that GPS should have priority over others like wifi or BT.  How else is HA supposed to know that you're still home?

It is logical that the person is marked as away, don't you think so?
No, because that the person is still home in that circumstance, so therefore the logical thing to do is definitely not to mark them away.
How else is HA supposed to know that you're still home?
Because I haven't moved, as evidenced by the GPS tracker having not moved. As soon as the GPS updates a new location that isn't home, *then *the status should update.
It is far better for homeassistant to think someone is home for a few minutes when they are not whilst waiting for the GPS tracker to report location, than to think they are not home when they are and trigger alarms when someone moves, switch all the lights off, then suddenly switch all the lights on again at 3am because the WiFi reconnects etc.

I would have thought this is still an issue but person component is unusable until it is fixed so I'm not using it. I'm presuming it's still an issue because nobody has commented to say they have fixed it.
Seems obvious to me that he logic should be:
If NETWORK_TRACKER is home
  Person = home
Else if BLUETOOTH_TRACKER is home
  Person = home
Else if GPS_TRACKER is home
  Person = home
Else
  Person = away (at location of GPS_TRACKER)

I've looked at the code and I can't even see where it currently sets the logic, let alone where I would begin making the changes so it needs someone who understands python and homeassistant processes to sort it.

I completely agree with you. I am also unable to use the person component for the same reason. At night, whenever I set my phone to airplane mode, the person component marks me as away which causes some unwanted automations.
For this reason I'm still using an automation to change the state of a virtual device_tracker which I integrated through the persons component.
But I would prefer a proper solution to this issue.


increase immunity length to 7200 blocks (1 day)

Increase immunity length from ~6.8h to 24h
Abstract
This recommends an increase of immunity length for new models on the network in order to given them a better chance at being fairly evaluated.
Motivation
Personal testing has revealed to me that the network isn't giving sufficient time for my models to be evaluated fairly. For instance, there are a known 300 uids on the network with < 0.00001t emissions. However even though I'm running a 6b paramater model, because the network of validators have reached consensus and they restart ~2 days, not enough of them are able to discover and sufficiently test the model for its true value. Given 24 hours, around half the validators in the network will have had a epoch reset and will then discover and value the model correctly.

subject to increments over time, not just one large update but scaling to this point

Closing this in favor of newer one.

This is a very, very large immunity period increase, even if it is over time.
The main side effect of increasing the immunity period so high is that it will slow network growth significantly. If models have a whole 7200 blocks to ramp up (no model should need this much time, for the record), it will create a pool of models that are "ramping up" and not contributing anything to the network. We will look into this in the future, when there is more congestion and competition on the network than there is today.


Add icon colors and labels

In the configuration, could you change dashes into underscores to make it more homogeneous with other configuration items in Laravel? Thanks!

Changed the dashes to underscores.

Thank you!


Implement FixedFootDetector python bindings

This PR implements python bindings for the FixedFootDetector class, including a test of the implemented bindings.

This PR is ready to be reviewed.
@GiulioRomualdi please check that, given the footsteps represented in https://github.com/dic-iit/bipedal-locomotion-framework/pull/306/commits/1accd1e50df21723b41c15049557dda7bebf2143#diff-e2b1501f04511c076b03e0125331295058b815431885cd23c036bcd98c78bfa6R31-R34, the behavior of the last_update_time in https://github.com/dic-iit/bipedal-locomotion-framework/pull/306/commits/1accd1e50df21723b41c15049557dda7bebf2143#diff-e2b1501f04511c076b03e0125331295058b815431885cd23c036bcd98c78bfa6R83-R128 is consistent, since I have still some doubts on the logic behind the update of this parameter. Once we clarify it, I will clean/update the binding tests.

Thank you @paolo-viceconte! Everything seems fine. Could you please update the changelog?

Done!

I cleaned a bit the fixed foot detector test in dc4fc69a54be8e43e29159694d755af21393ed88, I guess we can merge @GiulioRomualdi.


Update dHealth IBC data due to expired legacy one

Is there any proof that the previous connection wasn't used and that no tokens are abandoned on either chain?
Generally, registered IBC connections cannot be replaced in the registry, and expired clients should be revived via governance rather than new ones be created.

@JeremyParish69 If my client is expired, how can I renew it ?

I'm not an expert in this, but there a proposal type for renewing the light client, and this can preserve the existing ibc channel.

Is there any proof that the previous connection wasn't used and that no tokens are abandoned on either chain?
Generally, registered IBC connections cannot be replaced in the registry, and expired clients should be revived via governance rather than new ones be created.

It wasn't used except by me. Is it possible that we update this once ?

I figure you're probably right, since it wasn't listed on Osmosis yet. I'll ask if there's any app that can show that there were only a few small transfers?

This is from my relayer cli, If it can help:

I mean like a block explorer that shows all transfers

Oh ok. These are:

Big Dipper
NodeStake
EzStaking

Ok, these are the total (un-relayed) transfer transactions in descending order:

https://explorer.dhealth.com/dhealth/transactions/D1C6CAF8D918BD8D937452765B6DBAA47C3CE826016B947F00E0A8D488C9C302
https://explorer.dhealth.com/dhealth/transactions/34FE2C833226D38E93C114BE30C7345E37294C0188A8ED166985398BC19512FC
https://explorer.dhealth.com/dhealth/transactions/17E0128E0A1DEEED2A27504E97D48F603D4DCEB8BBE95F1E76AF80937BFF6351
https://explorer.dhealth.com/dhealth/transactions/DC8F38C09FDE9584FFF605E4D6053D6776808B43B25848163BE1079309BE3218
https://explorer.dhealth.com/dhealth/transactions/AE489B7BC2FCCBC48CB5E158D7D3938614517FD6E26B74BDB49F96E102775458
https://explorer.dhealth.com/dhealth/transactions/F64BEBC362A8499C833F9211C1A53983996155B50F47B7239B1E884CD0350CA5
https://explorer.dhealth.com/dhealth/transactions/52CE0705775C8D6DE92221E35DFC546D0E118F0CF7F1BC07D2D22CC664363EC0
https://explorer.dhealth.com/dhealth/transactions/F26C7F01591197C2E899B44855FA9B0AD2C45971738037328566C53B1A2B1DD7
https://explorer.dhealth.com/dhealth/transactions/7827E681AACC4B11429BF86F7B9140A7E4BF91C9C923684231DEDFBDC1E063BC
https://explorer.dhealth.com/dhealth/transactions/40C87950DFD0F102ED3EB2FEB777490D6CFB0C7D8BFF584F7A5C38B9B830B1B8
https://explorer.dhealth.com/dhealth/transactions/349A39649DD15F65817BE125F13CE9524AF61A8900A43984F6EA8FAC6BF7EAB9

These 2 accounts created all of these 11 transfer transactions:

https://explorer.dhealth.com/dhealth/accounts/dh1flz9s59sted5qmtpx4p0pxkjd4xlc7mjardk7j
https://explorer.dhealth.com/dhealth/accounts/dh16v4ttqac7rmckur3mvxp6hf0hw5swvcuss3jtk


adapt to new installer path

The installer moved to a new path. Crowbarctl needs to be adapted.
There were no failures in mkcloud runs so far, because we trigger the installation via curl and (temporarily) support both the old and new path.

+1

:+1:


Adding more rating dimensions

Thanks for writing this, it's a huge improvement over the spreadsheet. With this as a basis, I would like to actually be able to rate classes on more than just difficulty. I like the simplicity of it all, but it might be worth adding some more dimensions, maybe just with 1-5 stars.

Learning Reward: What did you learn, is the content worthwile, etc.
Engagement: How engaged did you feel when doing the class, was it an isolated boring experience or highly interactive with lots of interactions, peer to peer learning, etc.
Overall Rating: An overall "happiness" rating

I like this idea.    Some other possibilities:

Recommended ? - do you recommend others take this course
Engagement of TAs/Professor - Were the students on their own or was the instructional staff active participants (piazza, office hours, email).
Prerequisites Necessary? - how important were the listed prerequisites in relation to the success in the course

By making all of these options available, the simplicity is lost, and that is not a small price to pay. I'm curious to hear more opinions.

Yes, it needs careful design to not sacrifice the current simple set-up. I was thinking of only adding a maximum of one or two dimensions, not more.

For me, the missing dimension is the organisation of the course. This would cover:

Course video quality
Responsiveness of T/A and Professor to questions
Organisation of the course (were there mistakes in the assignments)
Appropriateness of assignments (i.e. assignments relevant to content learned in class, well written and easy to understand what was required)
Pacing/scheduling of the course (not sure about this one)
Overall impression

I brought rating complexity in edTech this semester, as I am doing my course project on data from Class Central.  Complicated review dimensions have huge negative impact as far as people willing to take the time to go through it all.  The best thing to preserve simplicity would probably be just to add a thumbs up or thumbs down button.  If you are familier with the Steam gaming platform, they do just that and are able to get great statistics from it when they combine user likes and dislikes against the population.

Makes sense to add a thumbs up/thumbs down option when composing reviews.

The two dimensions captured now (difficulty and workload) are actually quite closely correlated. I think it would be best to have two dimensions be: course quality(amount learned, usefulness, overall awesomeness) and difficulty(hardness, time consumption, etc). There are some courses that are very hard, but totally worth it given the quality. Some courses are more so-so given the other options available.
Since we already have so many reviews capturing the difficulty and workload separately, though, it probably makes sense just to add a third dimension for quality (or similar).

I agree with everyone here. There should be a rating for quality. The reviews are nice, but it's useful to have a simple metric that students can quickly look at rather than having to read pages of ambiguous text and perform a fuzzy mental calculation. This could be a 5 start system, thumbs up or thumbs down, etc.

I just added a 5-star rating option. For this to be useful, we will need a way to remind folks who've published reviews to add ratings to said reviews.
This would most easily be done from the My Reviews view (https://gt-course-surveys.herokuapp.com/#/reviews/my).
Ideas on how best to raise awareness:

Emailing everyone who has published a review (we all hate spam)?
Displaying a toast/alert/dialog upon site access if there are unrated reviews published by the current user (disruptive/annoying)?
Others?

Awesome, thank you!
I think we should use both of your recommended tactics?
Will there be an aggregate star rating for each course? Or will that come later?

@mehmetbajin, I wonder if the rating could be changed to something more objective about how well the course was organised, e.t.c. Just having a rating of how much people liked is hard to understand why. One person may love C coding and really enjoy a low level systems paper, where another person doesn't and they would say they didn't enjoy it.   Doesn't need to be intrusive, but just show that some reviews have more data to collect.

Can we aggregate the reviews so that there's a summary star rating for each course? To me that's the most useful function by far and the whole purpose behind having a rating system.

@foobazzler Great idea! I just do not have the bandwidth at the moment to implement this, especially since the value added may not be as great as we hope (only ~60 reviews out of ~800 have ratings recorded).

@mehmetbajin I understand if you are busy at the moment. By the way, congratulations on the new job!
To get around the problem of zero-star reviews, could we disregard those and force new reviews going forward to select a star rating before submission? That way the aggregate review won't be skewed by existing reviews, most of which are still zero stars.

Thank you :)
You'll be pleased to know that a rating is required in any new reviews or in edits to any existing ones.


Release with jupyterhub 4.1+

JupyterHub 4.1 has been released and tested for a while, resulting in 4.1.4 and now been around without bugfixes requested for a week or so.
When jupyterhub-singleuser 4.1.4 is part of the image, it changes the requirements on some interactions where javascript api requests are made to the jupyter_server. These requirements could require updates to software like nbgitpuller (compatible with 1.2.1) that from a browser's view interacts with the jupyter server via javascript requests.
There could be software in these images that still needs to be made compatible with jupyterhub-singleuser 4.1.4, but I'm not aware of any currently.

@consideRatio - should we expect any compatibility issues with daskhub deployments here?

2024.03.30 is released to include jupyterhub 4.1 and nbgitpuller 1.2.1 which is compatible - be on the lookout for issues related to javascript API requests to user servers or jupyterhub when used with jupyterhub - specifcally about missing XSRF tokens etc.
There is no known issue, but there could be yet to be discovered issues.

Ping @scottyhq for visibility - jupyterhub 4.1.4 is used in 2024.03.30 now - which could bring xsrf issues and require updates in misc packages, for example nbgitpuller which is already patched, when using this image in a as a jupyterhub user server.


Consider debugger control placement

It would be interesting to make the position of the debugger control more flexible for small monitors ...
Sometimes the control is over the tab name or the breacumbs or the sidebar or the typed code, what prevents reading.
( maybe add the possibility to put it in the status bar )
Tks!

Status bar -> there is an extension you can use
You can use this setting to put it in the sidebar 	"debug.toolBarLocation": "docked",
To put it anywhere search for duplicates, there are already issues requesting this. Thanks


dialogue and iframe created twice

I don't know why, but the dialogue (<div class="cll">...</div) on my website is created twice. It's 2x within the DOM even it's called just once:

This is how iframemanager is called: https://github.com/alexplusde/wenns_sein_muss/blob/fe5c6cd05fa547649ed234dae9eaac10af8017e0/fragments/wsm.js.php#L4-L25
It doesn't happen in the demo though.

This actually occurs when you run the plugin twice.
If you executed it n times, you'd get n nested notices, each on top of each other.

Should be fixed in 1.3.0!
Feel free to re-open the issue if that's not the case.

Nice! Thank you.


Bump dependencies (esp. argonaut-generic-codecs)

This is breaking because of the changed json encoding in argonaut-generic-codecs.

Thank you!


Code for ENV keys not in release

The code for environmental keys as ssl params appears to be missing in the 1.4.7 release. It appear the release just updated the CHANGELOG.md and warnings about RubyForge. Could the code about ssl params be added,  perhaps in another release? For example this commit is not in the release: 3535654c9ff7ba9ad9422038d4cb9ea5483ccc84

OK, try 1.4.8 please.

Merge happened, and no problems afterwards.


Fix no-dsa

Make sure we don't try and load a DSA key in the tests if DSA has been
disabled.

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

It seems this was fixed some while ago...

Hmmm, it seems new code has been introduced. Previous PR is: https://github.com/openssl/openssl/pull/9861

Hmmm, it seems new code has been introduced. Previous PR is: #9861

Yeah. It broke again. :-)

ping: ready to merge

Pushed. Thanks.