3.8.0 - Duplicate Daily quests objectives

General information:
Daily quests generated with requiring the same item twice. Both objectives require 2 USB Adapters, after completing the first part the second is still available for turn in, therefore making it require 4 USB Adapters.

Attachments

server-2024-01-11.log (740 KiB)
2024.01.11_20-47-32_<IP_ADDRESS>.28375 traces.log (53 KiB)
LogOutput.log (17 KiB)
2024-01-11[15-00] (0).png (1538 KiB)
2024-01-11[15-07] (0).png (1761 KiB)

Originally written by Jester_Stacks

fixed with https://dev.sp-tarkov.com/SPT-AKI/Server/commit/091e4fa41b25c12059c863d57967c34927c13a94

Originally written by CWX


During startup of OSC synchronization of DA/MC's fails

Description
During startup of OSC, DA and SG synchronization is done and scheduled.
org.osc.core.server.Server.startScheduler()
Because the Jobs depend on the Plugins being installed and ready and in case of OSGi the plugins get loaded later this results in errors like "Unsupported Manager type ISM/NSC/Nuage etc" even though the plugins are installed and working just fine before the restart of OSC.
It seems like we should schedule the jobs once the plugins are available. maybe have a 5 min timeout before we schedule the jobs? or have a listener mechanism which will start the relevant jobs once the plugins are installed.
Expected Behavior
Sync jobs run successully on startup
Actual Behavior
All the jobs triggered during startup fail and generate alerts
Steps to Reproduce

Create a MC/DA/SG
Restart the server

Additional Information
Environment

OSC Version/Build: 1.0.0-SNAPSHOT-113-g1b713ae
Cloud Provider Info: N/A
Plugin Info: Any plugin
Other:

Status

[ ] Reproduced
[ ] In Progress
[ ] Validated     =>    Verified in Version/Build:

Logs:
securityBroker.log

We can do the 5 min timeout for now

@arvindn05 each plugin takes no more than 5 seconds to install. 5 mins seems very high.
I am testing with 120 seconds with all 5 plugin uploaded and it looks good.
Thoughts?

i would add in the extra buffer if it means we wont fail jobs. Server startup sometimes takes extra resources.
Maybe make it 3 mins and we can see if we still get failed jobs

Verified with Build Version: 1.0.0-SNAPSHOT (Build:140-gb301029, 2017-10-24T07:22:46Z)
Did a server upgarde, restarted OSC, and did a db backup/restore (all these will restart OSC). Do not see failure error "Unsupported Controller' as was seen earlier for DA and SG syncs.
securityBroker-fix-Unsupported-Controller.log


Long running Guzzle Pool don't close connection (Too many open files)

Q
A

Bug?
yes

New Feature?
no

Version
6.2.3

OS
Ubuntu 14.04

PHP
5.5.9

Framework
Symfony 2.3

Info
I make PDF Downloader who need to download few millions (20m~) PDF from some website and I plan to download (and save) all this PDF with Guzzle Pool system. I also use 100 proxy for this downloader.
When I use Pool system process create (but not close) too much "socket:[xy]" files in "/proc/{pid}/fd/" and in few minutes system kill that process and throw exception "failed to open stream: Too many open files in" on saving pdf part. I think that save pdf part not a problem because I make separate script and run at the same time 10x for saving and I don't hit system limit.

I increase "/proc/sys/fs/file-max" to "800.000" but this is not help.
Change solf (from 1024 to 4096) and hard (to 8192) in "/etc/security/limits.conf " for every user (just to test) and also this is not help... Changes only postponed this exception... I track open files for running process (ls /proc/{pid}/fd | wc -l) and number of files it's only increases and when it's hit 4096 server kill that process.

When I check "lsof -i -a -p {pid}" I got a lots "CLOSE_WAIT" connection.
Command: source code
Note 1: I remove some part of code because some sensitive data.
Note 2: "ArticleFiles->save()" only have "file_exists" and "file_put_contents".

I'm not sure but I'm think that Guzzle Pool have problem with long running command because don't close socket connections.

Solved.
I add this config and now I close TCP connection (and script don't make lots files)

'Connection' => 'close'
CURLOPT_FORBID_REUSE -> true
CURLOPT_FRESH_CONNECT -> true

https://github.com/guzzle/guzzle/issues/1927 : can u share your findings in details here as well ?

We tried using the solution but didn't work. It still creates multiple sockets.

        $guzzle = new Client(
            [
                'Connection' => 'close',
                CURLOPT_FORBID_REUSE => true,
                CURLOPT_FRESH_CONNECT => true,
            ]
        );

Could you please let us know what else did you do to make it work. Thanks.

Thanks for the detailed issue and the solution @darkot013 , sorry for not answering earlier, but as I can see you solved the problem. 😄
This is not the first time the open file limit issue pops up, but it seems to me this is yet another different case related to cURL (while this issue is usually related to the stream handler).
When using HTTP 1.1 because of KeepAlive TCP connections can be reused, I will have to check what's the default behaviour, but I would say it's on by default. When you send the Connection: close header they should not be reused, thus closed. It sounds interesting though that with keep alive the number of TCP connections does not stop growing, I assume because they are not reused, but a new one is opened every time. If so, that's a bug, and should be investigated (whether curl ext or guzzle bug).
@pratik-joshi-cactus note that the above only fixes the issue when you use the CurlHandler and hit the same open connections problem.
Also, I believe your configuration is incorrect, see:
http://docs.guzzlephp.org/en/stable/request-options.html#headers
http://docs.guzzlephp.org/en/stable/faq.html#how-can-i-add-custom-curl-options

Thanks for the info @sagikazarmark.  However, as far as my testing goes with Guzzle 6 on PHP 7.2, the curl options above seem to have no effect when using the CurlHandler.  Using the CurlHandler does, itself, seem to resolve the error for me, but doesn't seem to be compatible with async/promise based concurrent requests, which is a major problem.  See me comment on #1927 here.

I would like to point out that in the original recommended configuration, Connection is actually a request header, not a top level Guzzle option. so this should close out the connections:
$guzzle = new Client([
    'headers' => ['Connection' => 'close'], // Or simply add this to the request object
    CURLOPT_FORBID_REUSE => true,
    CURLOPT_FRESH_CONNECT => true,
]);

@michaelbutler, @pratik-joshi-cactus commented that your and @darkot013's exact suggestions didn't work for them.  I confirmed that it didn't work for me either.  This issue continues to perplex me...

@arderyp, looking at @pratik-joshi-cactus's comment directly, it uses the incorrect syntax. Connection is a request header, not a raw guzzle option. that is why I was assuming it didn't work for them. Granted, this solution while worked for me, is much slower than using the defaults, because by not closing the connection every time withcurl_close`, there is a nice speed up of connection reuse (I assume?). I will continue digging in and then follow up on the linked issue https://github.com/guzzle/guzzle/issues/1927 since that one is open and has a bit more info.
Specifically, I'd like to reduce the file descriptor (open files) leak while maintaining a high level of speed and efficiency.

Ahhh @michaelbutler, I see what you are saying... pardon my misunderstanding.  I just tested your exact code in my use case, and I still get the same results:
PHP Fatal error:  Uncaught ErrorException: Warning: include(/path-to/vendor/symfony/debug/Exception/FatalThrowableError.php): failed to open stream: Too many open files in /path-to/vendor/composer/ClassLoader.php:444

I think my initial confusion stemmed from the fact that I did already test your suggested approach, and commented about it in the other issue here (scroll to the bottom of the comment): https://github.com/guzzle/guzzle/issues/1927#issuecomment-429488906
I can't tell if your proposed solution works for some kind of basic linear use case, but I can say it does not work for my concurrency use case.  Even if those headers trigger connection closing at some network level, the basic problem seems to be that Guzzle (or maybe its the OS?) is outputting tmp files for each connection and isn't cleaning them up when they are no longer necessary.  I am not sure if it is Guzzle or the OS that eventually cleans up those tmp files, but testing suggests that it only happens once the active PHP session/process ends/dies/completes.  In other words, regardless of any options you give Guzzle, it doesn't seem to implement explicit handling of these tmp files, thus it doesn't clean them up when they are no longer needed, thus if you make enough requests in the same sessions, you will eventually hit this problem.


Documentation: timeout information in conditional runFlow

It would be nice to include information about the default timeout in case of conditional runFlow.
Currently, android flow marks the step as skipped after some default timeout ~7 seconds and on iOS side it waits forever. It would be good to include the information about the default timeout in the documentation 🙂

This issue seems to be related to iOS. iOS might not be waiting forever but asserting true even though element is not visible on the screen.
https://github.com/mobile-dev-inc/maestro/issues/663

Hi there @javalnanda. This is something that might be subject to change as we make changes to the maestro internals so documenting this as it stands today would not be too much help for users. Thanks anyway!


Makefile install fails

The make install command still uses the setup.py file which was replaced by the pyproject.toml. I do know that the correct way to install this is with pip3 install -U .
(This is not really important, I just find it weird that the makefile references an obsolete file.)

It looks like the command listed in the readme is pip3 -U install . while the correct one probably is pip3 install -U .
I could make a PR changing the Readme and the makefile to the correct command?

That Makefile wasn't intended to be used by anyone who wasn't developing, its a sort of makeshift toolchain that I threw together that helps me out.
If you're keen on pr'ing this I'm happy to merge :)

Ignore the closed pr that referenced this issue, I made it by accident. The pr #33 is the correct one

@winston-yallow No worries, happens to the best of us :)


ArcGIS Portal provider

Adds an OAuth provider to support ArcGIS Portal product for enterprises. Almost identical to ArcGIS Online solution but adds support for:

Specifying the host location where ArcGIS Portal is installed.
Naming the authentication provider so more than one can be used side-by-side to support multiple ArcGIS Portal installations.

Originally attempted to inherit from ArcGIS Online provider, but a fair amount of refactoring is required to allow inheritance for everything that needs changing. To be revisited when time allows.

I had a need to authenticate against Portal as well but was able to successfully accomplish this by just specifying the correct endpoints like so (in my Startup.Auth.cs file):
var oAuthServer = ConfigurationManager.AppSettings["oAuthServer"];
// this is my portal url; something like: https://myserver.com/arcgis
if (!oAuthServer.EndsWith("/"))
    oAuthServer += "/";
app.UseArcGISOnlineAuthentication(new ArcGISOnlineAuthenticationOptions() {
    ClientId = ConfigurationManager.AppSettings["clientId"],
    ClientSecret = ConfigurationManager.AppSettings["clientSecret"],
    Endpoints = new ArcGISOnlineAuthenticationOptions.ArcGISOnlineAuthenticationEndpoints
    {
        AuthorizationEndpoint = oAuthServer + "sharing/rest/oauth2/authorize",
        TokenEndpoint = oAuthServer + "sharing/rest/oauth2/token",
        UserInfoEndpoint = oAuthServer + "sharing/rest/community/self"
    },
    Provider = new ArcGISOnlineAuthenticationProvider()
    {
        OnAuthenticated = context =>
        {
            context.Identity.AddClaim(new Claim("urn:ArcGISOnline:accessToken", context.AccessToken));
            context.Identity.AddClaim(new Claim("urn:ArcGISOnline:refreshToken", context.RefreshToken));
            return Task.FromResult<ArcGISOnlineAuthenticatedContext>(context);
        }
    }
});

This works perfectly except that the Link property that is set in ArcGISOnlineAuthenticatedContext uses a hard-coded 'https://www.arcgis.com/sharing/rest/community/users/' instead of the user endpoint that you specify.

@vtforester Would you by chance have any pointers / examples on how to then use the authorization client-side in the ArcGIS JavaScript API? I seem to be hitting a block on that front at present.
I see you're adding an urn:ArcGISOnline:accessToken & urn:ArcGISOnline:refreshToken as additional claims. I assume this is to use them client-side somehow?

In a nutshell, I append a cookie to all outgoing requests with the token, userId, expiration, etc.
var json = JsonConvert.SerializeObject(new
{
    userId = userClaim.Value,
    token = tokenClaim.Value,
    server = ConfigurationManager.AppSettings["oAuthServer"],
    expires = DateTime.Now.AddSeconds(1).Ticks,
    ssl = false
});
cookie.Value = json;
filterContext.HttpContext.Response.AppendCookie(cookie);

Then I parse that cookie in JavaScript and set the sessionStorage (or localStorage) item that the ESRI JSAPI is looking for:
define([
    'source/config/app-config',
    'esri/IdentityManager',
    'dojo/cookie'
], function (
    config,
    esriId,
    cookie
) {
        // grab oauth token from ASP.NET cookie and set the ESRI session item
        // this will allow the esriIdentity utilities to
        // automatically register as a signed-in user
        var oauth = cookie('aspnet_oauth');
        if (oauth && Modernizr.sessionstorage) {
            oauth = JSON.parse(oauth);
            var identity = {};
            var portal = {};
            portal[oauth.server] = {
                token: oauth.token,
                userId: oauth.userId,
                ssl: oauth.ssl,
                expires: oauth.expires
            };
            identity[config.oAuthInfos[0].authNamespace] = portal;
        }
        sessionStorage.setItem('esriJSAPIOAuth', JSON.stringify(identity));
        // register oAuth infos here
        esriId.registerOAuthInfos(oAuthInfos);

        // then check sign in status
        esriId.checkSignInStatus(oAuthInfos[0].portalUrl);

        // finally, request the main entry point
        require(['source/main']);
    });

@vtforester Thanks for the info, much appreciated! Setting the esriJSAPIOAuth storage item directly... explains why I didn't find anything usable scouring the ArcGIS API's.

@gavinharriss can you make the build pass?

I was a bit surprised the build failed as no new dependencies were introduced and is basically the same as Owin.Security.Providers.ArcGISOnline with a few tweaks.
I try and have a look soon to see if I can figure out why the build service has issues with it.

Ok, all fixed - was some broken NuGet references. Paths were wrong.

@gavinharriss hey sorry I forgot all about this...


update replacementMap.json

Codecov Report

Merging #238 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #238   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           5      5
  Lines          71     71
  Branches        9      9
=====================================
  Hits           71     71

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 3a6fc86...41c4aa9. Read the comment docs.


“LoginWebView. CoreWebView2. NewWindowRequested + = CoreWebView2_NewWindowRequested;" This line of code will automatically jump out, can not get the code and token

Hello, when I executed this example, I modified the casdoor information configured for my machine. But the login interface implementation to    “LoginWebView. CoreWebView2. NewWindowRequested + = CoreWebView2_NewWindowRequested;"  This line of code will automatically jump out, can not get the code and token, can you tell me what changes need to be made

@wuxiao-ling197 I don't know what you mean. Provide:

The code and config changes
Demo video to show your error

@hsluoyz hello,this is what my error.I only changed the CasdorOptions params and then just run this ConsoleApp program,is these enough to describe my error?but if I run it in MVCApp it was success,Thank you ver much!

@lywedo

@wuxiao-ling197 this repo doesn't have any code related to ConsoleApp or

You found the wrong repo.

oh sorry , it was from https://github.com/casdoor/casdoor-dotnet-sdk ,I put it in wrong place.

Moved to: https://github.com/casdoor/casdoor-dotnet-sdk/issues/91


Concept: Provide listen import endpoint

A big problem of the current Jellyfin API is that currently only “live” listens can be submitted when using the PlaybackStoppped event. An alternative exists, but this has its own share of disadvantages.
Instead, I suggest creating an import endpoint in the plugin, where offline listens can be submitted by (third-party) music players. The API could be designed as follows:
The import endpoint simply receives a list of StoredListens as JSON (which are already used for the submission cache), and either submits them immediately, or adds them to the cache to be submitted by the resubmission task later. To ensure that stale/removed IDs don't cause listens to be dropped, the endpoint could optionally receive additional metadata like title, artist, album, and a MusicBrainz track ID, if available. Thus, if the Jellyfin item ID is missing from the database, the items can be rediscovered though the alternative metadata.
What are your thoughts on this feature suggestion?

This is something I have been thinking about even before I got a suggestion for the alternative mode. Ultimately, I decided against it at that time. In short, while I'd like to have the whole situation with this resolved, I am not really a fan of a custom endpoint.
The biggest issue I see is with adoption. Technically, it would be a special endpoint of some "random" plugin, which is not even an official one. So, in my opinion, it is not much likely it will be adopted by clients. Also, if the client would adopt such endpoint, I think at that point it would be just better to integrate with ListenBrainz directly instead. Not only the API token would be stored more securely, it would be also better over all as the client has the ultimate control over what's being played. But, I am aware this server-side plugin approach is at least more convenient over all, be it for users - as they have the configuration at one place and client developers as well, as they only have to implement Jellyfin APIs and that's it. The only issue with that approach is the security of the whole thing, but that's specific to the plugin limitations (obfuscated tokens in configs, admin has access to the tokens of all users, ...).
With that being said, I know, I kind of undermined my point about the whole direct client integration with the plugin alternative mode. But, at least, it still uses Jellyfin API endpoints, nothing custom. It'd be much nicer to have some sort of support on the Jellyfin server itself. Or at least have some formal specification of the endpoint somewhere, so that it could be adopted by plugins for other services, not just by this one (I guess you can argue that the readme of this repo would fit nicely).
But maybe I am overlooking something?

The biggest issue I see is with adoption. Technically, it would be a special endpoint of some "random" plugin, which is not even an official one. So, in my opinion, it is not much likely it will be adopted by clients.

Yeah, I definitely agree. I was planning to add support to at least Finamp (see also jmshrv/finamp#521), but that's just a single client. For the official apps, support for custom plugins is very unlikely.

Also, if the client would adopt such endpoint, I think at that point it would be just better to integrate with ListenBrainz directly instead. Not only the API token would be stored more securely, it would be also better over all as the client has the ultimate control over what's being played. But, I am aware this server-side plugin approach is at least more convenient over all, be it for users - as they have the configuration at one place and client developers as well, as they only have to implement Jellyfin APIs and that's it. The only issue with that approach is the security of the whole thing, but that's specific to the plugin limitations (obfuscated tokens in configs, admin has access to the tokens of all users, ...).

Whether it's stored more securely or not depends on whether you trust the server or the client more. Since I'm running my Jellyfin server only for myself, I prefer not having API tokens for LB on every client - there's only a single type of authentication necessary, that is the Jellyfin login. Having config files with API tokens on the server isn't a huge issue for me - if any attacker gets access to my server, that's already the worst possible situation. But the security aspect isn't really a concern for me anyway, the convenience factor is by far the most important one for me.
I also prefer having a central instance (the plugin) submit my listens, as it's always consistent with it's metadata (regarding the played recordings but also the "player" information).

With that being said, I know, I kind of undermined my point about the whole direct client integration with the plugin alternative mode. But, at least, it still uses Jellyfin API endpoints, nothing custom. It'd be much nicer to have some sort of support on the Jellyfin server itself. Or at least have some formal specification of the endpoint somewhere, so that it could be adopted by plugins for other services, not just by this one (I guess you can argue that the readme of this repo would fit nicely).

I'd love if there was a formal specification or API to hook into, if only an official stub that would then be left to plugins to implement. The issue is just that server development is slow (out of necessity, of course), and new APIs aren't added just like that.
Maybe starting with a third-party API, iterating on it if necessary (which is much easier when you can test it in the real world), and slowly turning it into an official API would be the best approach?

Whether it's stored more securely or not depends on whether you trust the server or the client more. Since I'm running my Jellyfin server only for myself, I prefer not having API tokens for LB on every client - there's only a single type of authentication necessary, that is the Jellyfin login. Having config files with API tokens on the server isn't a huge issue for me - if any attacker gets access to my server, that's already the worst possible situation. But the security aspect isn't really a concern for me anyway, the convenience factor is by far the most important one for me.

Well, to be fair, I'd say majority of all Jellyfin instances would be like that. While security is not much of a concern for local deployments (which is reasonable), I think there is still large group of users that have Jellyfin instances somewhere hosted (myself included in the past). Yes, it's their own responsibility to properly secure the server and yes, if someone has an access to your server, you have much bigger problem, but it's also a good idea to minimize the damage in such case (attacker might get the data, but they are useless if they are secured in some way). But let's not get hung up on this too much.

I'd love if there was a formal specification or API to hook into, if only an official stub that would then be left to plugins to implement. The issue is just that server development is slow (out of necessity, of course), and new APIs aren't added just like that.
Maybe starting with a third-party API, iterating on it if necessary (which is much easier when you can test it in the real world), and slowly turning it into an official API would be the best approach?

I see you have started a discussion in the meta repo, so for now I think it'd be best to wait and see if this goes somewhere. But if not, we can think about the API spec and implementation, sure. 🙂


Multitools can't interact with things that are under other things.

Description
How to replicate:

Go into Delta's disposal room
Have a multitool in-hand
Try to link the conveyor belt that's underneath the recycler. You'll be unable to do it without deleting (or moving) the recycler.
This also applies to the conveyor underneath the windoor (directly south of the stool) due to the ghost warp point over it.

Ideal solution to this would be to make multitools able to interact with things through the right-click menu, or simply ignore anything on the tile they can't interact with.

It looks like the recycler already acts as a conveyer belt on its own, and you don't actually need another belt under it.
Otherwise, this is really more of a general interaction blocker problem, where there is not really a nice way of dealing with layered interaction blocker or something like that. Though honestly in this case it doesn't actually seem unreasonable that access to a conveyer should be blocked by a bulky recycler sitting on top of it.
In order to make things less finicky for mappers, a good solution would probably be to just add an option to ignore obstruction checks for aghosts.

This also applies to the conveyor underneath the windoor (directly south of the stool) due to the ghost warp point over it.

The ghost warp point definitely shouldn't be obstructing interactions, and AFAICT it doesn't seem to be. However, the windoor/thindows will. That interaction blocking is still somewhat janky, but it seems to work fine for me ATM. You either need to just be inside the square or have the windoor open.


Run TagBot Triggers inside a bounded retry loop

Fixes #35614

I'm going to go ahead and merge this. If this looks wrong, @christopher-dG please revert it.


git push fails trying to find pod

╰─± git push deis master
The authenticity of host '[deis.example.com]:2222 ([<IP_ADDRESS>]:2222)' can't be established.
RSA key fingerprint is c3:a3:4b:39:10:6f:26:3b:83:ef:4b:15:11:e0:72:36.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[deis.example.com]:2222,[<IP_ADDRESS>]:2222' (RSA) to the list of known hosts.
Counting objects: 1, done.
Writing objects: 100% (1/1), 185 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: + repository=foo.git
remote: + app=foo
remote: + sha=7a53ef88ed2a524dda7d596e478582509c851153
remote: + username=admin
remote: + fingerprint=69:44:94:10:26:f2:6c:ab:1c:c7:a9:a9:06:95:b0:aa
remote: + curl -v -X POST --fail -H 'Content-Type: application/json' -H 'X-Deis-Builder-Auth: 0AdRlG5ENzBuXcajlD9zUq7m8aoQ+HpH6jdVKhYjTKzAS8BmgCShCAYxFXZyaAQOX+EGEkZOnwf1QK9JvaHsFw==' -d '{"receive_user": "admin", "receive_repo": "foo", "sha": "7a53ef88ed2a524dda7d596e478582509c851153", "fingerprint": "69:44:94:10:26:f2:6c:ab:1c:c7:a9:a9:06:95:b0:aa", "ssh_connection": "<IP_ADDRESS> 53764 <IP_ADDRESS> 2223", "ssh_original_command": "git-receive-pack '\''foo.git'\''"}' http://<IP_ADDRESS>:80/v2/hooks/push
remote: * Hostname was NOT found in DNS cache
remote: *   Trying <IP_ADDRESS>...
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
remote: > POST /v2/hooks/push HTTP/1.1
remote: > User-Agent: curl/7.39.0
remote: > Host: <IP_ADDRESS>
remote: > Accept: */*
remote: > Content-Type: application/json
remote: > X-Deis-Builder-Auth: 0AdRlG5ENzBuXcajlD9zUq7m8aoQ+HpH6jdVKhYjTKzAS8BmgCShCAYxFXZyaAQOX+EGEkZOnwf1QK9JvaHsFw==
remote: > Content-Length: 275
remote: >
remote: } [data not shown]
remote: * upload completely sent off: 275 out of 275 bytes
remote: < HTTP/1.1 201 CREATED
remote: < Server: gunicorn/19.3.0
remote: < Date: Wed, 06 Jan 2016 21:13:44 GMT
remote: < Connection: close
remote: < Transfer-Encoding: chunked
remote: < Content-Type: application/json
remote: < DEIS_PLATFORM_VERSION: 2.0.0-dev
remote: < Allow: POST, OPTIONS
remote: < DEIS_API_VERSION: 2.0
remote: <
remote: { [data not shown]
remote: 100   683    0   408  100   275   9423   6351 --:--:-- --:--:-- --:--:--  9714
remote: * Closing connection 0
remote: {"uuid":"7ddf3b9e-a941-4991-b835-a58de3bc1e66","owner":"admin","app":"foo","sha":"7a53ef88ed2a524dda7d596e478582509c851153","fingerprint":"69:44:94:10:26:f2:6c:ab:1c:c7:a9:a9:06:95:b0:aa","receive_user":"admin","receive_repo":"foo","ssh_connection":"<IP_ADDRESS> 53764 <IP_ADDRESS> 2223","ssh_original_command":"git-receive-pack 'foo.git'","created":"2-----> Starting build
Error from server: pods "foo-git-7a53ef88" not found

But the pod is actually -
╰─± kgpo --namespace=foo
NAME               READY     STATUS    RESTARTS   AGE
foo-v2-web-7s7dk   1/1       Running   0          26m

getting this error now (even after destroying the app)
╰─± git push deis master
Counting objects: 86, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (51/51), done.
Writing objects: 100% (86/86), 19.34 KiB | 0 bytes/s, done.
Total 86 (delta 39), reused 74 (delta 30)
remote: Another git push is ongoing. Aborting...
To ssh://git@deis.example.com:2222/foo.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@deis.example.com:2222/foo.git'

#85 may help with testing

seeing this now
╰─± git push deis master
The authenticity of host '[deis.example.com]:2222 ([<IP_ADDRESS>]:2222)' can't be established.
RSA key fingerprint is cf:76:56:c3:82:16:3c:07:81:98:d1:d5:41:3f:8e:01.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[deis.example.com]:2222,[<IP_ADDRESS>]:2222' (RSA) to the list of known hosts.
Counting objects: 86, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (51/51), done.
Writing objects: 100% (86/86), 19.34 KiB | 0 bytes/s, done.
Total 86 (delta 39), reused 74 (delta 30)
remote: + repository=example-go.git
remote: + app=example-go
remote: + sha=7a53ef88ed2a524dda7d596e478582509c851153
remote: + username=admin
remote: + fingerprint=69:44:94:10:26:f2:6c:ab:1c:c7:a9:a9:06:95:b0:aa
remote: + curl -v -X POST --fail -H 'Content-Type: application/json' -H 'X-Deis-Builder-Auth: 6ju85kiPHB+4abAgi/zVLL7+CNs2b5+erHawQAOULhGDCYF7SycO/76X944mzU4uDRyFvm/A4t0icJlPztT1hg==' -d '{"receive_user": "admin", "receive_repo": "example-go", "sha": "7a53ef88ed2a524dda7d596e478582509c851153", "fingerprint": "69:44:94:10:26:f2:6c:ab:1c:c7:a9:a9:06:95:b0:aa", "ssh_connection": "<IP_ADDRESS> 39672 <IP_ADDRESS> 2223", "ssh_original_command": "git-receive-pack '\''example-go.git'\''"}' http://<IP_ADDRESS>:80/v2/hooks/push
remote: * Hostname was NOT found in DNS cache
remote: *   Trying <IP_ADDRESS>...
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)
remote: > POST /v2/hooks/push HTTP/1.1
remote: > User-Agent: curl/7.39.0
remote: > Host: <IP_ADDRESS>
remote: > Accept: */*
remote: > Content-Type: application/json
remote: > X-Deis-Builder-Auth: 6ju85kiPHB+4abAgi/zVLL7+CNs2b5+erHawQAOULhGDCYF7SycO/76X944mzU4uDRyFvm/A4t0icJlPztT1hg==
remote: > Content-Length: 289
remote: >
remote: } [data not shown]
remote: * upload completely sent off: 289 out of 289 bytes
remote: * The requested URL returned error: 404 NOT FOUND
remote: * Closing connection 0
remote: curl: (22) The requested URL returned error: 404 NOT FOUND
remote:       ERROR: failed on rev 7a53ef88ed2a524dda7d596e478582509c851153 - push denied
To ssh://git@deis.example.com:2222/example-go.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@deis.example.com:2222/example-go.git'

I dont know about 404 error have to look into it, but
╰─± kgpo --namespace=foo
NAME               READY     STATUS    RESTARTS   AGE
foo-v2-web-7s7dk   1/1       Running   0          26m

the pod is related to slugrunner which is deployed by the workflow.   I'll try to fix this ASAP https://github.com/deis/builder/issues/51. But other than than I'm ready to help you debug builder issues


Dry-run flag

It would be nice to have a dry-run flag with, which you can check if you would encounters errors during the rabbit-puppy run, and which actions it would take.

Solved with the verify command.


HTTP spans restructuring: explicitly list all http client and server attributes, remove common

Fixes #928
Changes
Having common attributes section in HTTP spans could be confusing - readers are probably interested in a full specification for client or for server.
Another problem is that the way yaml is organized now makes it impossible to resolve the full list of attributes HTTP client and server should report.
This PR removes common yaml group and moves common attributes into client and server groups.
Merge requirement checklist

[x] CONTRIBUTING.md guidelines followed.
[x] Change log entry added, according to the guidelines in When to add a changelog entry.

If your PR does not need a change log, start the PR title with [chore]

schema-next.yaml updated with changes to existing conventions.

/cc @trask


[GOV] New governance for aeon

hi, what do you think we should do with sktime governance? Personally I would like to scrap it all and start again, but htat might be too disruptive?
The current governance roles are:

Core developer
Community council (CC)
Code of conduct committee (CoCC)
Algorithm maintainer (in codeowners file)

IMO we should retain the CC, CoCC and Core Developer roles from the previous governance with a less powerful CC. I have drafted a slimmer governance document in the style of Scikit-learn to this effect.
None of this is set in stone and I can just close the above if we want to go in a different direction.

Just putting it out there, but I think going for a BDFL might be a good option, you can't have many captains in a boat. Of course I'm out of any consideration because I'm the first who said it 🤣

I think BDFL has its benefits, but I think the package has too much of a split focus for a candidate to be selected without someone taking issue, personally. That discussion can wait to be had only if everyone decides a BDFL is necessary, however 🙂. I think it will add too much of a role hierarchy for most though.

Resolved by #195. The document has also moved to the front of the documentation rather than behind get_involved.


Picker opening when leaving / coming back to browser window

First of all, Pickadate is just awesome (well built, great api, highly extensible, a pleasure to work with).
Thanks for it, I just discoverd it and I feel that it will become my only reference for date/time picker.
I did find a small issue that I think can be easily fixed:
Steps to reproduce:

Go on http://amsul.ca/pickadate.js/index.htm
Click on the first picker input
Click on a date to choose one (picker should close itself)
Click out of browser window
Click in the browser window (anywhere in the page)
BUG: The picker opens without the user clicking on it

Tested on Google Chrome Version 27.0.1453.110
I hope you have enough infos to fix, keep on the great work!

So any progress on this? It's been nearly 2 years for such an apparent bug

I just did:
$picker.on 'close', ()->
  $(document.activeElement).blur()

To prevent the re-opening after switching tabs

@RobertLowe working nice : )
Thanks

I added a check onOpen to see if the target class is already present. Does the job well enough for my situation:
$input.pickadate({
    onOpen: function () {
        if ($input.hasClass('picker__input--target')) {
            $input
                .pickadate()
                .pickadate('picker')
                .close(true);
        }
    }
});

hi
i tried using css, i found a solution, but it doesn't work properly on ie8.
add this lines into your css...
.picker{ display:none; }
.picker--opened, .picker--focused{ display:block; }
as for ie browser, button disable option cannot close the popup, you need to select a date to close that popup.

@RobertLowe thanks, got this working with:
onClose: function(){
        $(document.activeElement).blur()
    }

Yea thanks @RobertLowe. Your solution worked better than trying to target the right element via a class selector.

@lijunle Where do i add the code you have suggested ? Thanks.

@aravindsanker which suggestion do you refer to? The onClose one, or this post? For the first one, add it to pickadate initialization option object. For the second one, I have not try to implement it.

I found out I have to blur the .picker div as well after I blurred the .datepicker div
So my code is:
onClose: function(){
        $('.datepicker').blur();
        $('.picker').blur();
}

@RobertLowe Thank you so much, best solution in the thread.

Why isn't this documented?

It's still not work with.
onClose: function(){         $('.datepicker').blur();         $('.picker').blur(); }

@jpfortier it's working, and only it, but only with first input. With second already not

I have chosen this approach, maybe it helps
jQuery(window).blur(function() {
	var $focused = jQuery(document.activeElement);
	if ($focused.hasClass('picker__holder')) {
		jQuery(document.activeElement).blur();
	}
});

onClose: function(){
  $(document.activeElement).blur();
}

Works for me too. It appears to be a bug : should release the focus when the dialog is closing.

Guys, I want to go to next field if I press TAB, but Datepicker is opening. I am already tried the blur method, but it's not working. Maybe because I am using date and time picker together?
$(document).ready(function()
    {

      var datepicker = $('#date').pickadate({
        formatSubmit : 'yyyy-mm-dd',
        hiddenSuffix: 'date_submit',
        firstDay: 1,
        container: '#outlet',
        onSet: function(item) {
            if ( 'select' in item ) setTimeout( timepicker.open, 0 )
        }
    }).pickadate('picker')

var timepicker = $('#time').pickatime({
        min: [09,00],
        max: [17,00],
        format: 'HH:i',
        formatSubmit: 'HH:i'+':00',
        hiddenSuffix: 'time_submit',
        container: '#outlet',
        onRender: function() {
            $('<button class="picker__button--clear">Vissza</button>').
                on('click', function() {
                    timepicker.close()
                    datepicker.open()
                }).prependTo( this.$root.find('.picker__box') )
        },
        onSet: function(item) {
            if ( 'select' in item ) setTimeout( function() {
                $datetime.
                    off('focus').
                    val( datepicker.get() + ' @ ' + timepicker.get() ).
                    focus().
                    on('focus', datepicker.open)
            }, 0 )
        }
    }).pickatime('picker')

var $datetime = $('#tm').
    on('focus', datepicker.open).
    on('click', function(event) { event.stopPropagation(); datepicker.open() })

      $('#form').on('keyup keypress', function(e) {
        var code = e.keyCode || e.which;
        if (code == 13) {
          e.preventDefault();
          return false;
        }
      });
        // enter keyd
        $("body").keypress(function(e) {
            if(e.keyCode==13 && e.ctrlKey) {
              $('#form').submit();
              }
        });
    });

Hi, actually in my case
onClose: function(){$('.picker').blur();}
was not working. I had to blur the holder of the picker box with:
onClose: function() {$(".picker__holder").blur();}

This is how you fix it properly... add this to your pickadate config when you set it and it will blur the particular instance that was closed, and not ALL instances (as the above code does):
onClose: function () {
    this.$holder.blur();
}

@adrianmihalko Did you solve your problem?

This should be fixed already in v18 I did this about two releases ago.

The "reopening calendar" has bugged me too but the solution I found today was very easy:
// input_pickadate is the html input text: if the user click it we authorize picker to open
var input_pickadate = $('input[name="date"]').pickadate();

// the picker
var picker = $(input_pickadate).pickadate('picker');

input_pickadate.on( 'click', function(e){
        e.stopImmediatePropagation(); // does not seem to work
        $(picker).data( 'stay_open', true );
        picker.open();
});

picker.on( 'open', function(){
       if( !$(picker).data('stay_open') ){
            picker.close();
       }
});

// auto reopen is disallowed
picker.on( 'close', function(){
       $(picker).data( 'stay_open', false );
});

The only glitch is that the event 'open' is fired three times. I dont know why but there are not visual artifacts.

@hidingmode After trying every solution in this thread, this is the combination that worked for me. I have to close both the .datepicker and the .picker elements.

@RobertLowe thanks a lot!

I tried them all.
None worked.

This is so hacky... but I found. putting a hidden "dummy" input before the pickadate one stopped the unwanted behaviour.

I've tried every solution on this page. Nothing works.
This always seems to happen when using external libraries. You save time by implementing an external library, then you find some bug. You search and find posts offering a million solutions that do not work going back years (five in this instance).
It's probably best to build something like this from scratch that works exactly as you imagine. Honestly, how difficult can it be?

Says the guy who joined github 15 minutes ago...
You should adjust your attitude here's why:

This is free, you didn't pay anything for it, read the MIT License, nobody owes you anything.
Not all applications behave the same, not all devices behave the same, thusly increasing complexity, for someone whom is paid nothing, they cannot promises assurances
After then non-constructive feedback/complaining, take up arms and offer a solution

How difficult can it be. Very, that's why software professionals have a job, nothing is perfect.
On a side note, yes, you'll need to go through many resources to find a solution for a specific problem, and over time, you gain something called experience which helps you adapt and manage problems with greater ease.

Sorry, I didn't mean any offense. I did just create a github account so I could leave a comment. I'll concede that my commentary was unwarranted, and that of course nothing is owed to me.
This is the solution I found that worked for me:
var calendar_closed=false;  // global variable to track if the calendar was closed.
// inside pickadate declaration...
onOpen: function() {
if (calendar_closed) { calendar.close(); }  // calendar is a reference to the pickadate object
else { calendar_closed=false; }
},
onClose: function() { calendar_closed=true; }
Perhaps others can rewrite this without the use of a global variable. Right now, this is good enough for me.
Hope this helps.

Hi, thanks for the update.
Is there something that we can do / fix in pickadate to prevent this?

It would be nice if the datepicker did not automatically reopen when a user returns to the browser tab.
For example:

Navigate to http://amsul.ca/pickadate.js/
Click on the first 'Try Me' to have the date picker open
Select a date from the date picker. The date picker should now hide.
Open and navigate to a new browser tab.
Return to the http://amsul.ca/pickadate.js/ tab. The date picker opens again.

I was able to make a simple solve by creating a global variable that tracked whether the date picker had been closed and use it in the onOpen & onClose events. My fix is a kludge, but perhaps a similar but more elegant solution can be incorporated into pickadate.

I think it is related to some focus.

Adding document.activeElement.blur(); to onClose solved this issue for me

Adding document.activeElement.blur(); to onClose solved this issue for me in v3.6.0

It's works for me:

Adding document.activeElement.blur(); to onClose solved this issue for me in v3.6.0

It works for me:

Thank's.

https://github.com/amsul/pickadate.js/issues/160#issuecomment-74816391
So this is not new ;-)
Would like someone to create a PR for this?

@amsul @DanielRuf @castrocristiano @samber @brunogaspar  hey i am new to coding... i face the same issue.. i read this thread... there exactly do i need to do the fix can anyone help me out please

I tried them all.
None worked.
But putting this before the config options worked:
$(function () { $('.datepicker').blur(); });

-----now where do i need to add this line??


refactor: main process logic for redux interaction

This PR...
Changes

implemented ipc calls for dispatching actions from the main process to any/all renderer processes
removed usage of electron-redux
refactored a few thunk actions to simple functions receiving dispatch as an argument

Fixes

UI blocking and not showing loading state when loading/refreshing a folder

How to test it

Screenshots

Checklist

[x] tested locally
[ ] added new dependencies
[ ] updated the docs
[ ] added a test

It looks like we lost some functionalities on menu


Add Docker Compose Files & Update Dockerfile to use Alpine Linux

In this PR I have added a docker-compose.yml file for the redarc + Postgres and a separate docker-compose-es.yml that includes Elasticsearch. I have also updated the README.md to reflect this.
I've also modified the Dockerfile to use node:16-alpine3.17 rather than the Ubuntu image currently in use. This should be the same Node version being used previously with an Alpine Linux base. This seems to reduce the image size by about 200MB, almost half of the Ubuntu image.
redarc                         ubuntu              5c67559e18fa   55 seconds ago   444MB
redarc                         alpine              8e67e1a56713   49 minutes ago   251MB
Only a the internal nginx path and the start.sh newline endings were updated for this changed. I did not see any contribution guide so let me know if I need to make any changes. Thanks for your hard work!

I've tested it and overall, everything seems to works.
Regarding the "http.host=http://es.mysite.org" line in docker-compose-es.yml. Can you confirm that this is something we need; I don't see it used in the official elasticsearch docker docs? Maybe I'm using this it incorrectly but the container doesn't start with this envar set.
Aside from that, should be good to merge

Good catch, you're correct, that argument only takes the hostname/ip and isn't really what we're looking for here anyways and shouldn't be necessary. Thanks for catching that. I've dropped that line in a4531e3.
For all the example values I've just matched the current docker instructions in the readme. Because the ES host should be internal by default the only other change I could think of would be to modify the defaults in the docker-compose to the loopback address (http://<IP_ADDRESS>:9200) since the port is not exposed by default. And potentially the other default addresses. But those are mostly doc changes and can be done at a later time/manually either way. Just let me know if you'd like me to make the changes there, otherwise it should be good functionality-wise.


Search keyboard shortcut ⌘ + K not working in Dvorak

Steps to reproduce
The following steps will assume that your physical keyboard is labelled according to the QWERTY layout. For this test, it is important to keep the following key map in mind:

QWERTY
Dvorak

K
T

V
K

At the OS level, choose the Dvorak keyboard layout
Using Chrome browser, go to PyData Theme
Press control + V (Dvorak maps this key to the letter "K")
Result: nothing
Press control + K (Dvorak maps this key to the letter "T")
Result: opens new browser tab
On Mac, press control (not command) + K
Result: opens search dialog

Expected behavior
Pressing control + the key mapped to "K" in Dvorak (rather than the key mapped to "K" in QWERTY) should open the search dialog.

I have been using AZERTY (fr-iso) layout my all life and didn't experience any issues even though the k is 1 letter to the left of  the en-iso mapping.

Wait what? If I do an image search for AZERTY keyboards, I see the K in the exact same position as QWERTY. See for example the Wikipedia entry on AZERTY and compare with QWERTY. In both, I see that the K key is 8 keys to right of the caps lock key.

I was counting the number of letters from "Enter" but you effectively have 1 extra key for special characters,

Mystery solved. The K key on your keyboard gets reported as event.code === 'KeyK' (check your key's code), and as #1525 shows, the code handling the keyboard shortcut was erroneously used event.code rather than event.key.


Missing statistic values

I notice some statistic values are missing
I don't know why, is there a way to force reloading the values ?

I don't think so, you could try to remove 17th from database, it should try to fetch from last avaiable row till now.

I tried to delete entries since 2022-11-13 from the statistics table but it only reload the previous day
New entries appears just after deleting, I'm not sure the data are fetched from bosch
Any idea ?

I tried both

Check out statistic short table as well

there's no value in statistic_short_term for that metadata_id

all_stats = (await self._bosch_object.fetch_all()).values() doesn't work
https://github.com/bosch-thermostat/bosch-thermostat-client-python/issues/31

I have same problem with missing statistics. Here is before disabling :

and here after disabling and then enabling it

Statistics was fixed.
I have reported with #223 , i was thinking that by sync ntp time and date make it fixed but seems not or it was worked for while but as you see in graph its stopped worked probably same time delay will be good when this new api is used.

Ok i have found that i have time drift 5 seconds on my nas so probably check time config on your HA. I will see if this happens again meand time drifts

no time drift for me
timedatectl timesync-status
       Server: <IP_ADDRESS> (ntp.ubuntu.com)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: 11FD22FD
    Precision: 1us (-23)
Root distance: 24.085ms (max: 5s)
       Offset: -63us
        Delay: 15.970ms
       Jitter: 276us
 Packet count: 89
    Frequency: -10,551ppm

@doudz if you disable and enble intragtion is consption populated ?

probably... but this time I removed manually all records in the statistics table for the right metadata_id and the component reload all data


ChocolateyGUI 0.15.0 crashes on startup under Win10Pro64bit without anything useful

When I try to fire up ChocolateyGUI on one machine (I haven't tried on other machines I have it installed on just yet), I get an unceremonious "ChocolateGUI has stopped working" dialog.  Unfortunately, I do not get anything that might be of help, so a bit of counseling as to how to make it spew something useful for you folks would be greatly appreciated.
Specifics:
Windows 10 Professional 64-bit v1709 build 16299.192 on an AMD Ryzen 7 1700X, 32GB RAM
Dot Net Framework v4.7.02556
ChocolateyGUI v0.150
Chocolatey v0.10.8
Doubtless I have a few things that could go in as well, so any advice as to what else could go in would be greatly appreciated.
I somehow suspect it's something to do with that machine in particular, but I can't be completely sure.
Any ideas of what I could do to troubleshoot would be greatly appreciated.

I've narrowed it down to the .NET installation.  Since I could not reinstall just that (.NET 4.7.1 is part of Win10v1709), the only thing I could do was install the 4.7.2 preview.  That has fixed my problem.  Any suggestions (short of completely reinstalling Windows 10) for fixing this issue should this come up again and I do not have the fortune of having a pre-release available as I had this time?

@IRJustman I don't have any immediate suggestions, no, sorry.


Add a forward slash to the favicon link to fix it loading properly

The favicon link is broken and will not load.  Adding this forward slash fixes the link and allows the browser to open the image

@suyundukov is no longer maintaining this repo. Closing PR without merging to fix the issues.


NO Option of Mount CD ISO in hypervisor.

Hi Everyone,
I've installed recently hypervisor on dashboard(machine is Linux Ubuntu 16.04 Server) . when I try to create virtual machine on hypervisor, there is no option of Mount CD ISO . Any solution of the problem . really appreciated .
Thanks .

Yes, there is:
https://www.youtube.com/watch?v=WjZTVhHk6ZA&t=18s

Thanks for reply . I checked it there is no details about this issue .
What i did , I created folder at /data but there is no drop down list of "Mount CD ISO "from  i want to select iso image of OS that i have placed at somewhere at path /home/documents . can you guide me where is problem . I'm unable to create VM machine .

If you do not set the ISO path in config file, the default ISO store path is  /var/lib/libvirt/images, which is the default path of libvirt. You can put your iso image in this path, than you will see images in drop down list.

Thanks Max -Bazinga .
It did work . you are great .


packaging: fix RPM/DEB packaging breakage.

Signed-off-by: Tim Whisonant<EMAIL_ADDRESS>

Coverage remained the same at 64.791% when pulling acda79a7853e0bb92b43f9586a12d3a0fade37a1 on tswhison/fix_build into 0a566735436b3d522b7aad5e57561608376097ed on master.


Add categories and preview page workflow for the napari hub

Hello!
I’m Draga Doncila Pop, a CZI contractor on napari and the napari hub.
I’m reaching out with this pull request to ask for your help preparing your plugin for a new “Filter by Category” feature we’ll be launching for the napari hub near the end of January.
This PR does 2 things:

adds our proposed labels to .napari/config.yml to help users find your plugin
adds an Action to your repository in .github/workflows/plugin_preview.yml to help you preview changes to your plugin’s napari hub page

What is the “Filter by Category” feature?
We will let users filter plugins on the napari hub by Category, based on your own annotations of your plugin selected fro terms in the EDAM Bioimaging ontology. You are able to specify, in your .napari/config.yml file, any number of EDAM labels at whatever depth of the taxonomy is most appropriate. You can see a mockup of this feature below

We currently support viewing category metadata on the individual plugin pages, but before we let users filter by category, we want to get categories populated for as many plugins as possible.
For more information, see A plugin developer’s guide to categories on the napari hub.
Can you make adding category labels to my plugin easier?
Totally. We know that learning about the EDAM Bioimaging ontology and adding relevant categories is a lot of work. So we took a first pass for you!
To help you get started, our team has reviewed your plugin’s description and metadata and identified category labels that we feel would be a good fit based on the information you’ve provided so far. These were proposed initially by our Biocuration Team who are experts in annotating scholarly literature with biological concepts, then reviewed by my colleague, @chili-chiu, an Application Scientist on our team.We did our best to select relevant labels, but we might be wrong! Please review and edit these categories to best fit your plugin… and let us know how we did! We’re exploring ways that we might be able to automate suggestions in the future for new plugin developers. We’ll be launching the “Filter by Category” feature on Jan 27, 2022, so if you’d like to take advantage of this new feature, please merge this PR by then!
Can you let me preview the changes before I merge this PR?
Yeah, we can do that… not just for categories, but for all of your metadata!
To make it easier for you to update and maintain your plugin’s metadata, and see immediately how changes to links or your description will affect your napari hub listing, we’ve launched a new service that lets you preview your plugin’s page directly from PRs onto your plugin repository (like this one) and see what metadata you might be missing.

This service has two parts:

A GitHub Action which parses your plugin’s metadata
A GitHub App which provides a link to a preview of the plugin's napari hub page

To use the new Preview Page feature, you simply need to install the Github App by clicking here and configuring it for this repository. Once you do that, make any update to this PR and you will get a comment from the @napari-hub-bot below with a link to your preview page!
For more information, see Setting Up Plugin Page Previews
We hope that these new features are useful to you! Happy to answer any questions here or on our Discussions page.

I love the new plugin engine and mechanism to update plugin metadata. Thank you @DragaDoncila !
@JoOkuma should decide on final plugin labels and merge this PR when he is ready.

Thanks again @DragaDoncila and @AhmetCanSolak.
I configured the bot and added one more label.

Codecov Report

Merging #5 (b0c3dd7) into master (dbef6c4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #5   +/-   ##
=======================================
  Coverage   86.60%   86.60%
=======================================
  Files           4        4
  Lines         112      112
=======================================
  Hits           97       97
  Misses         15       15

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 dbef6c4...b0c3dd7. Read the comment docs.


Warnings generated in test suite

Lots of warning being thrown in test-suite due to https://github.com/diesel-rs/diesel/issues/1785
Update to latest diesel once patch has landed

This is still an issue

Fixed


Maya: Enable thumbnail transparency on extraction.

Brief description
Enable thumbnail transparency on extraction.
Description
Missing transparency feature from playblast extraction.
Additional info
The rest will be ignored in changelog and should contain any additional
technical information.
Documentation (add "type: documentation" label)
feature_documentation
Testing notes:

start with this step
follow this step

Hi, Toke, sry could you describe the steps involved to test it...Im not sure which action does thumbnail is it done from review subset?
Thx, will test it then.
Libor

Hi, Toke, sry could you describe the steps involved to test it...Im not sure which action does thumbnail is it done from review subset? Thx, will test it then. Libor

Sorry yeah, that was lazy of me.

Create review in Maya.
Choose a different transparency algorithm from what the viewport uses.
Publish and check transparency on thumbnail for review.

viewport transparency was set to "simple" and for "review/thumbnail" was set to "Alpha Cut"...Published as set in review. All right.


chore: add lint

Codecov Report

Merging #7 (586e1b5) into master (e47c021) will increase coverage by 0.17%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master       #7      +/-   ##
==========================================
+ Coverage   20.00%   20.17%   +0.17%
==========================================
  Files           7        7
  Lines         235      233       -2
==========================================
  Hits           47       47
+ Misses        177      176       -1
+ Partials       11       10       -1

Impacted Files
Coverage Δ

api.go
0.00% <ø> (ø)

errors.go
33.33% <ø> (ø)

oauth.go
0.00% <ø> (ø)

object.go
0.00% <ø> (ø)

page.go
23.80% <ø> (ø)

client.go
35.23% <100.00%> (+0.65%)
: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 e47c021...586e1b5. Read the comment docs.


ignite init fails for dashed-project-names

What's going on?
The failure itself happens during react-native init, i suppose. When you try react-native init demo-app you'll get an error message telling you that project names can only have alphanumeric characters.

Steps to reproduce

Try running ignite new demo-app
Watch it fail with no idea what's wrong

Proposed solution

Forward the error message from react-native init so people don't have to walk through the source code to find out what's wrong :)

Agreed!  Thanks for opening this.

Related to #874


Reference for RJ45 connectors

Hello, not a real problem, do you have any reference for the RJ45 connectors you use with your tap?
Thank you

Hello, I used this one https://aliexpress.com/item/32902228456.html
Hope it helps.


Align reads to H37Rv

Align the subsampled, decontaminated reads (#3) to H37Rv - this will be used for variant calling.
https://github.com/mbhall88/head_to_head_pipeline/blob/3ed818c9f3754612a33060428ee651cd0f91234b/analysis/baseline_variants/Snakefile#L111-L134 is how I did this in the paper.

Closed via https://github.com/mbhall88/tbpore/pull/8


Level 2 BLAS + Some fixes

Here are the changes that I made to get Level 2 BLAS bindings in place as well as a fix that causes the current level 1 bindings to not compile.
Before merging, I would like to know if I should have the high level bindings be qualified or should I put the qualification in the function name:
Example:
pub inline fun blas/blasmatrix/general/rank-one-update( m : blasmatrix, v1 : blasvector, v2 : blasvector, alpha : float64 = 1.0, row-major : bool = True ) : blasmatrix
  blas/ger( alpha, m.copy, v1, v2, row-major )

pub inline fun blas/blasmatrix/symmetric/rank-one-update( m : blasmatrix, v : blasvector, upper-triangular : bool, alpha : float64 = 1.0, row-major : bool = True ) : blasmatrix
  blas/syr( alpha, m.copy, v, row-major, upper = upper-triangular )

I am not sure if the compiler might get these confused with each other or other ones as well.

Also if I uncomment the tests for the raw BLAS Level 2 bindings it causes a compiler error that I am not sure how to fix.

Instead of prefixing everything with blas/blasmatrix/ just put those files in a folder / file with the appropriate path, and then reexport from the linalg or whatever using pub import blas/blasmatrix. This way they can be referred to directly, but don't have a long name in the file.
And then instead of linalg-blas.kk I would just put it into a blas folder blas/linalg.
Also, as long as the non-optional arguments all have different types, leave them with the same name (overloaded), but with different local prefixes (i.e. symmetric/rank-one-update, and generic/rank-one-update`).

Makes sense. I wasn't too happy with the structure myself. That is why I wanted feedback.
Thank you. I'll get to work on restructuring.

I have restructured the whole repo and simplified the qualifications of functions. I did remove some of the higher level bindings that used Koka's vectors but I feel like it makes more sense to keep the API restricted to just using BLAS types.

Sorry for taking so long to get to this. I forgot about this one. I'll merge it for now, no reason to hold up an experimental API for extensive review. I feel like you did a good job redesigning it around directly using blas / external types. For a library like this using opaque references to C types with a good Koka API seems like a good strategy.


add gradle-witness (akwizgran fork for api/implementation compatibility)

Maybe wait with this - as this: https://github.com/gradle/gradle/issues/5633 would be a much nicer option


feat: wmg query endpoint impl with filter dim terms

Part 3 of 4 of story.
Branched off of https://github.com/chanzuckerberg/single-cell-data-portal/pull/2008
Reviewers
Functional:
@MDunitz
Readability:
@tihuan
Reviewers
Functional:
Readability:

Changes

wmg query endpoint response now includes filter_dimensions section (except for dataset subsection, to be implemented next).

Definition of Done (from ticket)
QA steps (optional)
Known Issues

This PR subsumed by https://github.com/chanzuckerberg/single-cell-data-portal/pull/2068.


⚠ Bofrost.lu has degraded performance

In 98b40d6, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1862 ms

Resolved: Bofrost.lu performance has improved in 500b2c7.


Support IPv6 Urls

I tried running the unittests but somehow they all succeeded even though I deliberately broke one.
Still, the code seems to work with a simple test. I am secretly hoping for a CI that tests for me

The unit test issue is probably due to the split into sub packages. Need to use either dub test --combined or dub test :core now.
The diff looks good so far. The only thing I wonder is if m_is_ipv6 should be replaced by a check for .canFind(":") in toString(), to save space, but more importantly to support setting the .host property to an IPv6-address after construction.

Updated to use canFind and extended unittest to setting .host to a ipv6

Changed return type to auto. Rebased on latest master.

Okay, thanks!

importing std.algorithm : canFind now


Rogue_Bot

Opening a duplicate PR https://github.com/microsoft/vcpkg/pull/29849 because I know it fails our rogue bot https://github.com/microsoft/vcpkg/actions/runs/4265298614/jobs/7424458969 and it's a tiny change.

Thank you! I wounder why the pipeline was successful back in #29788


[Q] Is it v6 or v5？

Is it v6 or v5? I installed it and couldn't find any v6 related profiles, however, I saw somewhere a description of "A Tinymce 6 Rich Text Editor plugin for Filament Forms."

it's v6.7
which profiles you couldn't find?

Hi,


Alternative File Saving

[ ] Implement Adapter design pattern
[ ] Implement Json manager
[ ] Implement MySql manager
[ ] Implement Sqlite Manager


"Change Post" screen is half-empty

We built a blog using djangocms-blog and tested it extensively on our local environment. We've just deployed it to a staging environment and the "Edit Post" screen is somehow empty:

There are no failed requests or Javascript errors. We loaded the exact same data via a fixture, so the data should be exact same as well.
As a comparison point, this is what it looks like on our local dev:

Any idea why this is happening? We have absolutely no clue where to look.
Thanks

@bbirand The only way I have reproduced is on Django 1.11 which is still not supported. Support coming in #430 (but really only dependencies needed changes)

@bbirand can you test aldryn-apphooks-config 0.4.0rc1? That should fix this problem

@yakky I think we can safely close this. @bbirand what do you think?


NoSQL databases as part of development tool

Removing NoSQL databases all together may be limiting development tool options at the GC.
NoSQL products like MongoDB are useful during agile sprints where lots of changes occur. RDBMS are very static in nature and doesn't allow the flexibility of changes which can halt innovation. What's been suggested in the industry is use of NoSQL during agile sprinting allows to focus on the application side and figure out your data model based on your sprints. Once you have a stable product, then you're in a better position to design your SQL schema.

@remyb2canada the Assessments were move under the Open Source Advisory Board repo.  I will close the issue here but feel free to start a conversation on the other repo.
This repo will be used to host the Github pages for the Open Resource Exchange


Installation issue

Specs
Manjaro 17.1.12
Python 3.7.0 (default, Jul 15 2018, 10:44:58) [GCC 8.1.1 20180531]
gcc (GCC) 8.2.0
Issue
Copied from downstream: https://aur.archlinux.org/packages/python-netfilterqueue-git/#comment-661972
Building python-netfilterqueue-git...
Cloning into 'python-netfilterqueue-git'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 0), reused 8 (delta 0)
Unpacking objects: 100% (8/8), done.
==> Making package: python-netfilterqueue-git r66.3fa8a38-1 (Thu 06 Sep 2018 07:28:43 PM EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning python-netfilterqueue git repo...
Cloning into bare repository '/tmp/pamac-build-beast/python-netfilterqueue-git/python-netfilterqueue'...
remote: Counting objects: 267, done.
remote: Total 267 (delta 0), reused 0 (delta 0), pack-reused 267
Receiving objects: 100% (267/267), 354.99 KiB | 2.55 MiB/s, done.
Resolving deltas: 100% (177/177), done.
==> Validating source files with sha256sums...
    python-netfilterqueue ... Skipped
==> Extracting sources...
  -> Creating working copy of python-netfilterqueue git repo...
Cloning into 'python-netfilterqueue'...
done.
==> Starting pkgver()...
==> Entering fakeroot environment...
==> Starting package()...
running install
running build
running build_ext
skipping 'netfilterqueue.c' Cython extension (up-to-date)
building 'netfilterqueue' extension
creating build
creating build/temp.linux-x86_64-3.7
gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.7m -c netfilterqueue.c -o build/temp.linux-x86_64-3.7/netfilterqueue.o
netfilterqueue.c: In function ‘__pyx_f_14netfilterqueue_6Packet_set_nfq_data’:
netfilterqueue.c:2150:68: warning: passing argument 2 of ‘nfq_get_payload’ from incompatible pointer type [-Wincompatible-pointer-types]
   __pyx_v_self->payload_len = nfq_get_payload(__pyx_v_self->_nfa, (&__pyx_v_self->payload));
                                                                   ~^~~~~~~~~~~~~~~~~~~~~~~
In file included from netfilterqueue.c:440:
/usr/include/libnetfilter_queue/libnetfilter_queue.h:122:67: note: expected ‘unsigned char **’ but argument is of type ‘char **’
 extern int nfq_get_payload(struct nfq_data *nfad, unsigned char **data);
                                                   ~~~~~~~~~~~~~~~~^~~~
netfilterqueue.c: In function ‘__pyx_pf_14netfilterqueue_6Packet_4get_hw’:
netfilterqueue.c:2533:17: warning: implicit declaration of function ‘PyString_FromStringAndSize’; did you mean ‘PyBytes_FromStringAndSize’? [-Wimplicit-function-declaration]
     __pyx_t_3 = PyString_FromStringAndSize(((char *)__pyx_v_self->hw_addr), 8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
                 PyBytes_FromStringAndSize
netfilterqueue.c:2533:15: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
     __pyx_t_3 = PyString_FromStringAndSize(((char *)__pyx_v_self->hw_addr), 8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
               ^
netfilterqueue.c: In function ‘__Pyx_PyCFunction_FastCall’:
netfilterqueue.c:6436:13: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject * const*, Py_ssize_t))meth’
     return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
            ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
netfilterqueue.c: In function ‘__Pyx__ExceptionSave’:
netfilterqueue.c:7132:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
     *type = tstate->exc_type;
                     ^~~~~~~~
                     curexc_type
netfilterqueue.c:7133:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
     *value = tstate->exc_value;
                      ^~~~~~~~~
                      curexc_value
netfilterqueue.c:7134:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
     *tb = tstate->exc_traceback;
                   ^~~~~~~~~~~~~
                   curexc_traceback
netfilterqueue.c: In function ‘__Pyx__ExceptionReset’:
netfilterqueue.c:7141:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
     tmp_type = tstate->exc_type;
                        ^~~~~~~~
                        curexc_type
netfilterqueue.c:7142:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
     tmp_value = tstate->exc_value;
                         ^~~~~~~~~
                         curexc_value
netfilterqueue.c:7143:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
     tmp_tb = tstate->exc_traceback;
                      ^~~~~~~~~~~~~
                      curexc_traceback
netfilterqueue.c:7144:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
     tstate->exc_type = type;
             ^~~~~~~~
             curexc_type
netfilterqueue.c:7145:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
     tstate->exc_value = value;
             ^~~~~~~~~
             curexc_value
netfilterqueue.c:7146:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
     tstate->exc_traceback = tb;
             ^~~~~~~~~~~~~
             curexc_traceback
netfilterqueue.c: In function ‘__Pyx__GetException’:
netfilterqueue.c:7201:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
     tmp_type = tstate->exc_type;
                        ^~~~~~~~
                        curexc_type
netfilterqueue.c:7202:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
     tmp_value = tstate->exc_value;
                         ^~~~~~~~~
                         curexc_value
netfilterqueue.c:7203:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
     tmp_tb = tstate->exc_traceback;
                      ^~~~~~~~~~~~~
                      curexc_traceback
netfilterqueue.c:7204:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
     tstate->exc_type = local_type;
             ^~~~~~~~
             curexc_type
netfilterqueue.c:7205:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
     tstate->exc_value = local_value;
             ^~~~~~~~~
             curexc_value
netfilterqueue.c:7206:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
     tstate->exc_traceback = local_tb;
             ^~~~~~~~~~~~~
             curexc_traceback
error: command 'gcc' failed with exit status 1
==> ERROR: A failure occurred in package().
    Aborting...

i have he same error, this is needed for wifi-pumpkin


How to load the checkpoint from local dir?

Hi, authors:
This paper is a great work and it enlighten me a lot. I meet some problems for reproducing the results. The server I use is unable to connect online that I have to download the checkpoints before evaluation. So is there a way to load the checkpoint from local dir? Thanks!

Oh, I know how to load it. I'll close this issue.

Hi:
You can download mae_visualize_vit_base.pth  from https://dl.fbaipublicfiles.com/mae/visualize/mae_visualize_vit_base.pth and save it to some folder such as ~/ckpt/ (i.e., in the path ~/ckpt/mae_visualize_vit_base.pth). After that, please pass the folder (i.e., ~/ckpt/) as the constructor argument ckpt_dir of VisionTS.
You can refer to https://github.com/Keytoyze/VisionTS/blob/main/long_term_tsf/models/VisionTS.py#L20 or https://github.com/Keytoyze/VisionTS/blob/main/eval_gluonts/run.py#L107 to see how to specify the ckpt_dir argument.


Feature request for autocomplete - more control over panel width

Bug, feature request, or proposal:
Provide an option to control the width of the panel, perhaps via css:
<md-autocomplete #auto="mdAutocomplete" panel-class="my-autocomplete-css">
Or if it could just expand to fit the dropdown content that would be nice.
What is the expected behavior?
Allow the autocomplete dropdown panel to be a different width than the associated input field.
What is the current behavior?
The dropdown panel is the same width as the associated input field, which cuts off long values. There doesn't appear to be a way to change the width. A class or style on the md-autocomplete tag is ignored. Wrapping the options in a div with a wider style simply adds a scrollbar to the dropdown rather than widening it.
What are the steps to reproduce?
http://plnkr.co/edit/cKRWeypQ1UmpIk3s2c1E?p=preview
What is the use-case or motivation for changing an existing behavior?
Any situation where the dropdown options contain more information than what gets displayed in the text input. In my case, I'm using the dropdown as a list of search results. Each search result contains a name, an ID, a type, and several other fields to help the user select the appropriate result. But in the text box I just show the ID.
What I'd like is to make the dropdown wide enough to show all of the information in the search results, while the text input is narrower since it only shows the ID.
Which versions of Angular, Material, OS, browsers are affected?
Latest version, Chrome, Firefox, IE, Edge
Is there anything else we should know?

A simple hack by controlling the width by using  .mat-autocomplete-panel class
.mat-autocomplete-panel {
width : 200px;
}

Not sure if it would work for your use-case, but another option is to have the input expand upon focus. See the repro in #4146 for an example.

I also need this.
I need the panel width to be auto, to grow or shrink as the values inside. This way i can always see and doesn't get cut.
So, any news about this?

I would set min-width rather than width. Your other option is to expand your MdInput/MdInputContainer width when it's focused, which expands the autocomplete width.
body .mat-autocomplete-panel {
  min-width : 200px;
}

I also need this, as I need some panel to fit their content and some to fit input width, so the resolution above does not suit for me as it affects all autocomplete panels in project.
I came up with a small work around, but it works with a slight delay.
import {Directive, DoCheck, ElementRef, Input} from '@angular/core';
import {MdAutocomplete} from '@angular/material';

@Directive({
  selector: 'md-autocomplete[appAddClassToAutocomplete]',
  providers: [MdAutocomplete]
})
export class AddClassToAutocompleteDirective implements DoCheck {
  @Input() appAddClassToAutocomplete: string;
  private panel: ElementRef;

  constructor(private mdAutocomplete: MdAutocomplete) {}

  ngDoCheck(): void {
    const panel = this.mdAutocomplete.panel;
    if (panel && !this.panel) {
      this.panel = panel;
      panel.nativeElement.parentElement.classList.add(this.appAddClassToAutocomplete);
    }
  }
}


Enable seitanv2 by default

Enable seitan v2 invitations by default on CLI and the GUI. If we're no longer creating any v1 invites, should we cleanup some of the tests (slow systests)?
cc @keybase/react-hackers @zapu

Let's get a bunch of people to sign off on this. It's OK with me.


Company Module Updates

the module features are working well, but there is extra improvements and bugs are remaining to be fixed. I'm moving forward to manager module...

PR by self, approved by my self.


Apple silicon (M1 Macs)?

When using this pod I notice that babashka is running in Intel mode (through Activity Monitor). Feels unclean :D Any idea about this and if it's an easy fix?

Not until GraalVM supports it.
https://github.com/oracle/graal/issues/2666

Gotcha, thanks for the heads-up. Hope that support isn't far away 🙏

Looks like the support landed. Time to close the issue?


[C++][Parquet] Add option to run unit tests with valgrind --tool=memcheck

As reported in PARQUET-561, we are unable to easily actually test for memory leaks using cmake's ctest. I'll add a configuration option do enable this
Reporter: Wes McKinney / @wesm
Assignee: Wes McKinney](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=wesm) / @wesm
Note: This issue was originally created as PARQUET-564. Please see the migration documentation for further details.

Wes McKinney / @wesm:
see patch https://github.com/apache/parquet-cpp/pull/79

Wes McKinney / @wesm:
Issue resolved by pull request 79
https://github.com/apache/parquet-cpp/pull/79


How to change map type hybrid to satellite ?

How to change map type hybrid to satellite...

You should be able to set the mapType on the gMap objects - see
https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.html#public-methods
and
https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_map_view.html#a033ff1b0534e81b67c1e393b4b827018


Pulsar IO connector for udp source

This is trying to track this requirement: use udp as source of data.

@jiazhai - can you explain more about the feature requirements for this udp source connector? or is there any examples to follow?

I can try to resolve this issue

Assigned to @ambition119

@ambition119 Thanks for the help, Yes, it need change current tcp source to support udp server.

Added some comments regarding documentation changes in the PR.

Added some comments regarding documentation changes in the PR.

ok


#104 Added DataReference

Issue
Fixes #104.
What does this PR Do?

Optimized data parsing to reuse data buffers
Added DataReference
Added GAPUUIDList
Added UnsafeDataConvertible

Where should the reviewer start?
DataReference.swift
Sweet giphy showing how you feel about this PR

Result of Integration 1
Duration: 11 minutes and 30 seconds
Result: Perfect build! All 282 tests passed. :+1:
Test Coverage: 87%


flutter version to not crash when it fails to write to stdout

Use case
I am using flutter version in a shell script to get the version number of the installed Flutter SDK.
$ flutter --version
Flutter 2.8.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 77d935af4d (3 months ago) • 2021-12-16 08:37:33 -0800
Engine • revision 890a5fca2e
Tools • Dart 2.15.1

The shell script needs the version number from the first line, so it pipes the output through head -n 1.  The head program reads the specified number of lines and then closes stdin.  The flutter command then fails to print out the subsequent lines and throws an exception.  The flutter process exits with non-zero status and the shell interpreter fails the entire pipeline.
There is actually a race.  Sometimes flutter version prints the exception to stderr but still exits with success.
The script is part of a Heroku build extension that allows running Dart programs on Heroku:
https://github.com/leonhard-llc/heroku-buildpack-flutter-cli
When flutter version fails, the script assumes that the Flutter SDK is not installed and downloads it again.  This makes our deployment times longer.  It also makes them dependent on the Flutter SDK download availability.

Output of `heroku-buildpack-flutter-cli` failing to detect the currently installed Flutter SDK, because `flutter version` crashed, and downloading the SDK again
...
remote: -----> Dart app detected
remote: ----->  heroku-buildpack-flutter-cli Starting.
remote: Unhandled exception:
remote: FileSystemException: writeFrom failed, path = '' (OS Error: Broken pipe, errno = 32)
remote: #0      _RandomAccessFile.writeFromSync (dart:io/file_impl.dart:873:7)
remote: #1      _StdConsumer.addStream.<anonymous closure> (dart:io/stdio.dart:286:15)
remote: #2      _rootRunUnary (dart:async/zone.dart:1442:13)
remote: #3      _CustomZone.runUnary (dart:async/zone.dart:1335:19)
remote: #4      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1244:7)
remote: #5      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
remote: #6      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
remote: #7      _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:774:19)
remote: #8      _StreamController._add (dart:async/stream_controller.dart:648:7)
remote: #9      _StreamController.add (dart:async/stream_controller.dart:596:5)
remote: #10     _StreamSinkImpl.add (dart:io/io_sink.dart:136:17)
remote: #11     _IOSinkImpl.write (dart:io/io_sink.dart:269:5)
remote: #12     _StdSink.write (dart:io/stdio.dart:315:11)
remote: #13     Stdio._stdioWrite.<anonymous closure> (package:flutter_tools/src/base/io.dart:359:12)
remote: #14     Stdio._stdioWrite.<anonymous closure> (package:flutter_tools/src/base/io.dart:358:22)
remote: #15     asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:32)
remote: #16     asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:109:18)
remote: #17     _rootRun (dart:async/zone.dart:1426:13)
remote: #18     _CustomZone.run (dart:async/zone.dart:1328:19)
remote: #19     _runZoned (dart:async/zone.dart:1861:10)
remote: #20     runZonedGuarded (dart:async/zone.dart:1849:12)
remote: #21     runZoned (dart:async/zone.dart:1780:12)
remote: #22     asyncGuard (package:flutter_tools/src/base/async_guard.dart:109:3)
remote: #23     Stdio._stdioWrite (package:flutter_tools/src/base/io.dart:358:5)
remote: #24     Stdio.stdoutWrite (package:flutter_tools/src/base/io.dart:344:7)
remote: #25     StdoutLogger.writeToStdOut (package:flutter_tools/src/base/logger.dart:532:48)
remote: #26     StdoutLogger.printStatus (package:flutter_tools/src/base/logger.dart:512:5)
remote: #27     printStatus (package:flutter_tools/src/globals.dart:197:10)
remote: #28     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:274:19)
remote: <asynchronous suspension>
remote: #29     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
remote: <asynchronous suspension>
remote: #30     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
remote: <asynchronous suspension>
remote: #31     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:9)
remote: <asynchronous suspension>
remote: #32     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
remote: <asynchronous suspension>
remote: #33     main (package:flutter_tools/executable.dart:94:3)
remote: <asynchronous suspension>
remote: ----->  Downloading https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_2.10.2-stable.tar.xz
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote: 100  591M  100  591M    0     0   287M      0  0:00:02  0:00:02 --:--:--  287M
remote: ----->  Checking that the SHA-256 digest is 03de160d1c30730a248cb5e168ec2de60f883d7e365e6cf57b27786e85436c0f
remote: /tmp/codon/tmp/cache/flutter.tar.xz: OK
remote: ----->  Extracting.
...

The error occurs on Linux, but not on macOS.
Proposal
Make flutter version behave like every other program and silently ignore errors writing to stdout.

A workaround is to use the sponge program.  Unfortunately, that program is not available to Heroku buildpacks.
Another workaround is to replace the head -n 1 command with grep -E '^Flutter '.  If flutter version ever starts returning a second line that matches that expression, the tool will break.

/cc @christopherfujino

A workaround is to use the sponge program. Unfortunately, that program is not available to Heroku buildpacks.
Another workaround is to replace the head -n 1 command with grep -E '^Flutter '. If flutter version ever starts returning a second line that matches that expression, the tool will break.

As another workaround, you could read the output into a variable first, and then once that completes run head on it. Also, note that flutter --version --machine is available, although that outputs JSON, and you would probably want a higher level language than BASH to parse that.
As for "fixing" this bug, the only way I can think of is to swallow all FileSystemExceptions from writing to stdout, which seems like it could hide some legitimate problems. Do you have any better ideas about how to detect an intentionally closed pipe?


Date format

Is there any way to choose the serialized date format ?
I'm using a NoSQL database for storage and I would like the dates to be stored in the string ISO format "2016-07-21T15:54:59.928Z".
When using cerialize, I have something like "Tue Jul 26 2016 09:54:56 GMT+0200 (Romance Daylight Time)"
Thank you

I believe OnSerialized can be used to achieve this.. something along the lines of this..
class Foo {
    @autoserializeAs(Date) d : Date;

    public static OnSerialized(instance : Foo, json : any) {
        if (instance.d) {
            json.d = instance.d.toISOString();
        }
    }
}

The Date constructor accepts ISO 8601 formatted strings, so an equivalent for deserialization may not be required.

Yes that's typically something I would like to avoid. Being forced to to this for every date property manually.
I looked at the source code and it's just a .toString(). ISO format is better for me as it is sortable and queryable easier. And JSON.stringify on a Date object gives the ISO format.
Is there a reason why cerialize uses toString() instead of JSON.stringify(..) ?

You should be able to provide a custom serialization / deserialization function to @autoserializeAs. It would look like this:
var CustomDate = {
Serialize: function(date : Date) { return date.toYourFormat(); },
Deserialize: function(json : any) : Date {
       return json.getMyDate();
   }
}

class Thing {
   @autoserializeAs(CustomDate) date : Date;
}

the date is toString() because I didn't know about toISOString() 😃  I'll change it soon

It works with you suggestion though I changed it a little.
let CustomDate = {
    Serialize: function (date: Date) { return date.toISOString(); },
    Deserialize: function (json: any): Date {
        return new Date(json);
    }
};

We can live with this for now but it would be a lot better if we can choose the format or if you decide to use ISO format as default.
thank you.

if you upgrade it should work, i changed the format to ISO by default for date serialization

I upraged and it works perfectly thanks

awesome, glad to hear it


need EULA

We should have a EULA for the rest service, map, and any other service we create that provides data. Can use text from WIFIRE Firemap EULA (https://firemap.sdsc.edu/liability.txt),

Won’t the EULA depend on the data sources? The plan was to have a “Terms of
Use” module in our web service that gave the users data according to the
agreements set by each dataset.
On Tue, Mar 14, 2017 at 9:54 PM, crawld<EMAIL_ADDRESS>wrote:

We should have a EULA for the rest service, map, and any other service we
create that provides data. Can use text from WIFIRE Firemap EULA (
https://firemap.sdsc.edu/liability.txt),
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MetroInsight/citadel/issues/11, or mute the thread
https://github.com/notifications/unsubscribe-auth/ADFqQoNsyt1W2UwJZ_VmLGM7Wlne9d-rks5rl28dgaJpZM4Mde0Q
.

But I see we need something general for our service itself.

I guess WiFire is a pretty good place to start then. Would we need to run
this by the UCSD IP department? Or worse, all the three universities IP
dept?
On Tue, Mar 14, 2017 at 10:41 PM, Jason Beomkyu Koh <
<EMAIL_ADDRESS>wrote:

But I see we need something general for our service itself.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MetroInsight/citadel/issues/11#issuecomment-286646392,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADFqQoNYf6sz0IPu-xiRVAEY_WJLZ9Apks5rl3n_gaJpZM4Mde0Q
.


across-server

Hello, how to deploy this application to multiple servers?

Sorry to trouble you. I have solved the problem. Thank you.


Composed time block

Is it possible to create time block composed of two stimuli's? In particular I want to have random dots, which I can easily achieve using RDK module: https://www.jspsych.org/plugins/jspsych-rdk/. But now I want to display also an image beneath the moving dots at the same time. What's the easiest way to achieve that?

Unfortunately you can't combine two plugins at the same time.
The easiest way to do what you want may be to create a copy of the RDK plugin and add a small modification to display the image below the stimulus. You could reference the code in image-keyboard-response as a template for how to render the image.
If you run into trouble with that you can post here for guidance!

Thanks for a quick reply.

Unfortunately you can't combine two plugins at the same time.

Yeah, that's what I figured and indeed, modifying js code for RDK was the easiest option. I think it would be a nice feature to have, though...


feat: compact size of generated descriptor values

This changes the format of the generated descriptors to reduce the chunk size when multiple chains are used.
on papi-teleporter, which uses 8 chains, decreases parsed by 56%, gzipped by 50%:
dist/assets/descriptors-CAQHISEQ-D2CBgjrG.js            214.72 kB │ gzip:  51.33 kB
// becomes
dist/assets/descriptors-HTVGGBLK--6L_7V2l.js             93.19 kB │ gzip:  26.15 kB

Unfortunately, it increases slightly the size of chunks with only one chain. On our vite example, increases parsed by 13%, gzipped by 11%:
dist/assets/descriptors-MT2IRGUU-4e79d6ca.js     32.51 kB │ gzip: 11.60 kB
// becomes
dist/assets/descriptors-JIJEZZAP-4573a30e.js     36.59 kB │ gzip: 12.84 kB

Unfortunately, it increases slightly the size of chunks with only one chain. On our vite example, increases parsed by 13%, gzipped by 11%:

We should always optimize for multi-chain DApps. So, this is awesome! 🎉


Update BungeeGuard to 1.19

Hello!
It's possible to update BungeeGuard for MC 1.19 please?
I have this error on my Proxy : https://mclogs.minestrator.com/ESjHlAA
Ty!
~ Noltox ~

UP !!!

I believe this is also related to the same issue outlined in: https://github.com/GeyserMC/Floodgate/issues/312#issuecomment-1149456001
`
Its due to bungee cord changing net.md_5.bungee.connection.LoginResult$Property to net.md_5.bungee.protocol.Property
`

I made a fork, you can install it
Install link: https://github.com/RilyEvent/BungeeGuard/suites/6847775715/artifacts/264257362
Build log: https://github.com/RilyEvent/BungeeGuard/actions/runs/2462749036

http://luigical.me/images/Screenshot_06_08_IOk7Ywggae.png
Sadly yours didn't work for me either.

I made a fork, you can install it Install link: https://github.com/RilyEvent/BungeeGuard/suites/6847775715/artifacts/264257362 Build log: https://github.com/RilyEvent/BungeeGuard/actions/runs/2462749036

Sadly yours didn't work either, http://luigical.me/images/Screenshot_06_08_IOk7Ywggae.png

I made a fork, you can install it Install link: https://github.com/RilyEvent/BungeeGuard/suites/6847775715/artifacts/264257362 Build log: https://github.com/RilyEvent/BungeeGuard/actions/runs/2462749036

Sadly yours didn't work either, http://luigical.me/images/Screenshot_06_08_IOk7Ywggae.png

what is your java version? it works fine for me

I made a fork, you can install it Install link: https://github.com/RilyEvent/BungeeGuard/suites/6847775715/artifacts/264257362 Build log: https://github.com/RilyEvent/BungeeGuard/actions/runs/2462749036

Sadly yours didn't work either, http://luigical.me/images/Screenshot_06_08_IOk7Ywggae.png

what is your java version? it works fine for me

Java 17, Newest bungeecord

@lucko the new build doesn't work.
Error: https://pastebin.com/FJKNYr2Q

I also am getting an error on the new version:
http://luigical.me/images/Screenshot_06_08_mss6K7oKY4.png

Read the release note - it only supports BungeeCord 1.19.

Read the release note - it only supports BungeeCord 1.19.

Yeah that is on the newest, just redownloaded to confirm, I am getting the .jar from here: https://ci.md-5.net/job/BungeeCord/lastBuild/
http://luigical.me/images/Screenshot_06_08_DOZrO9NfDB.png
Let me know if I am missing something here?

Try using Java 11.

Try using Java 11.

That fixed it, I was using Java 8 before. Thank you!


correct prefixes

Codecov Report

Merging #202 (4bd157e) into master (c2b7339) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #202   +/-   ##
=========================================
  Coverage     80.24%   80.24%
  Complexity      975      975
=========================================
  Files           146      146
  Lines          2814     2814
  Branches        330      330
=========================================
  Hits           2258     2258
  Misses          478      478
  Partials         78       78

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 c2b7339...4bd157e. Read the comment docs.