New auth mode

Edit : I created a pull request
Hi! 👋
Firstly, thanks for your work on this project! 🙂 It really is much simpler to use than the official API !
Today I used patch-package to patch<EMAIL_ADDRESS>for the project I'm working on.
I am deploying my code to a Google Cloud Function and none of the existing auth methods work easily in that context. So I added an AUTH_CLIENT auth mode that is super simple to use (no params required). It works when the code is run on GCP, and to run locally, you can just set a GOOGLE_APPLICATION_CREDENTIALS env var to point to your creds file :-)
It could probably be made the default mode, since no configuration is required.
Here is the diff that solved my problem:
diff --git a/node_modules/google-spreadsheet/lib/GoogleSpreadsheet.js b/node_modules/google-spreadsheet/lib/GoogleSpreadsheet.js
index 98d3a19..7611e10 100644
--- a/node_modules/google-spreadsheet/lib/GoogleSpreadsheet.js
+++ b/node_modules/google-spreadsheet/lib/GoogleSpreadsheet.js
@@ -1,5 +1,5 @@
 const _ = require('lodash');
-const { JWT } = require('google-auth-library');
+const { JWT, GoogleAuth} = require('google-auth-library');
 const Axios = require('axios');

 const GoogleSpreadsheetWorksheet = require('./GoogleSpreadsheetWorksheet');
@@ -21,6 +21,7 @@ const AUTH_MODES = {
   API_KEY: 'API_KEY',
   RAW_ACCESS_TOKEN: 'RAW_ACCESS_TOKEN',
   OAUTH: 'OAUTH',
+  AUTH_CLIENT: 'AUTH_CLIENT'
 };

 class GoogleSpreadsheet {
@@ -78,6 +79,13 @@ class GoogleSpreadsheet {
   }

   // AUTH RELATED FUNCTIONS ////////////////////////////////////////////////////////////////////////
+  async useDefaultAuthClient() {
+    this.authMode = AUTH_MODES.AUTH_CLIENT;
+    this.authClient = await new GoogleAuth({
+      scopes: GOOGLE_AUTH_SCOPES
+    }).getClient();
+  }
+
   async useApiKey(key) {
     this.authMode = AUTH_MODES.API_KEY;
     this.apiKey = key;
@@ -127,7 +135,9 @@ class GoogleSpreadsheet {
   // INTERNAL UTILITY FUNCTIONS ////////////////////////////////////////////////////////////////////
   async _setAxiosRequestAuth(config) {
     // TODO: check auth mode, if valid, renew if expired, etc
-    if (this.authMode === AUTH_MODES.JWT) {
+    if (this.authMode === AUTH_MODES.AUTH_CLIENT) {
+      Object.assign(config.headers, await this.authClient.getRequestHeaders());
+    } else if (this.authMode === AUTH_MODES.JWT) {
       if (!this.jwtClient) throw new Error('JWT auth is not set up properly');
       // this seems to do the right thing and only renew the token if expired
       await this.jwtClient.authorize();

This issue body was partially generated by patch-package.

Nice! This has been on my todo list for quite some time, but I didnt realize the google auth library would make it so simple. I'll try to get this merged in soon.

@theoephraim is this still planned to be merged in? I also want to use the library in a cloud function and I'd like to avoid including the json for credentials in the deploy.

Any updates on this?
Thanks

ADC is now supported. Sorry it took so long. See https://theoephraim.github.io/node-google-spreadsheet/#/guides/authentication?id=adc


Location not available.

Hi Eddy,
If I use the getUserLocation method I get "location not available". I'm testing with the wifi and the gps active.
I thought about searching for your code and I got it to work if I change the "LocationEnginePriority" from HIGH_ACCURACY to BALANCED_POWER_ACCURACY. Is this normal?
Could we modify the code to parameterize the value of "LocationEnginePriority"?
Thanks.

Can you link to the line of code in the plugin where it says HIGH_ACCURACY? I'm a bit confused..

I was wrong with the repository, the correct one was "nativescript-geolocation". Sorry.


AttributeError: 'AllFilter' object has no attribute 'create'

Error on start up.

Not only "Allfilter", but all filters inherited from Abstractfilter


Flow assumes any index access on a string will return a string

'foo'[10].toUpperCase(); // passes

In the Flow REPL: https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzCjjjAF4wAKbAQwFsBTALjAICcBLbAcwEpyAfGFqMA2gEYADAF0AdPjgBVAA7KGbAMI1cDSrwDc6LHjgwGs+N0oBya6Jnylq9Vp16DQA
(Apologies if this issue has already been reported. I did a search through issues and didn’t find anything, but there are a lot of issues)

This is expected, since we are intentionally unsound with array index access, and string does allow you to array index into characters

@SamChou19815 does that mean that #9065 should specifically call out array index access as unsound? or is that issue only for known unsoundness that you plan to resolve?

@acusti #9065's intention is to document all the cases where we are not intentionally unsound, where we should either explicitly error, or codemods to a better pattern


feat[isTupleOf]: add overloads to leading/middle rest elements

Typescript tuple types can define leading or middle rest elements.
Added corresponding overloads to isTupleOf().

Rebased include #122.
Because tuple type testing is false positive before it PR.


Update README.md

After I ran npx elm-review --template lamdera/program-test/upgrade --fix-all
I got an error as Effect.Browser does not exist.
So, I guess: Browser should stay Browser, not Effect.Browser
Obviously, the elm-review rule should also change to not try to update this either.
If I'm correct, I'll be happy to update the elm-review rule for you.
🙏

Good catch, thanks!


Add test to test-only dependencies.

Thanks Lukasz for your pull request!
Most tests passed but only 1 test related to variable replacement in http header failed.  I will check more on this why it is failing after the change.  Appreciate your guidance too.
https://travis-ci.org/eBay/parallec/builds/90138531
Tests in error:
  differentRequestsToSameTargetHostWithHeaderReplacement(io.parallec.core.main.http.request.template.ParallelClientVarReplacementHostSpecificHeaderTest)

Look at the diff it should not relate to your changes... However I just run the tests locally and it passed. Let me check more too.

Looks like the nano httpd server fail to start?  and then the connection exception.
Could you please try to run the whole test suites with this change locally, and see if you are able to reproduce the issue Lukasz?
Thanks!
17:15:32.131 [ParallecActorSystem-akka.actor.default-dispatcher-5] INFO  i.p.c.TestBase - SingleTaskResponse [request=TaskRequest [actorMaxOperationTimeoutSec=15, resourcePath=/testHeaders, requestContent=, httpMethod=GET, pollable=false, httpHeaderMap={sample=222}, protocol=http, host=API_1, hostUniform=localhost, port=10080, sshMeta=null], responseContent=null, receiveTime=2<IP_ADDRESS>.15.32.127+0000, receiveTimeInManager=2<IP_ADDRESS>.15.32.128+0000, error=true, errorMessage=java.net.ConnectException, stackTrace=java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
	at sun.net.www.http.HttpClient.New(HttpClient.java:308)
	at sun.net.www.http.HttpClient.New(HttpClient.java:326)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:997)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:976)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:851)
	at com.ning.http.client.providers.jdk.JDKAsyncHttpProvider$AsyncHttpUrlConnection.call(JDKAsyncHttpProvider.java:245)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
, statusCode=NA, operationTimeMillis=9, pollingHistoryMap={}]
17:15:32.131 [ParallecActorSystem-akka.actor.default-dispatcher-6] INFO  i.p.c.a.ExecutionManager -
[2]__RESP_RECV_IN_MGR 2 (+0) / 2 (100.00%)  AFT 0.018 S @ API_0 @ 2<IP_ADDRESS>.15.32.131+0000 , TaskID : d48495c6-491 , CODE: NA, RESP_BRIEF: EMPTY , ERR: java.net.ConnectException
17:15:32.132 [ParallecActorSystem-akka.actor.default-dispatcher-6] INFO  i.p.c.TestBase - SingleTaskResponse [request=TaskRequest [actorMaxOperationTimeoutSec=15, resourcePath=/testHeaders, requestContent=, httpMethod=GET, pollable=false, httpHeaderMap={sample=111}, protocol=http, host=API_0, hostUniform=localhost, port=10080, sshMeta=null], responseContent=null, receiveTime=2<IP_ADDRESS>.15.32.130+0000, receiveTimeInManager=2<IP_ADDRESS>.15.32.131+0000, error=true, errorMessage=java.net.ConnectException, stackTrace=java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
	at sun.net.www.http.HttpClient.New(HttpClient.java:308)
	at sun.net.www.http.HttpClient.New(HttpClient.java:326)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:997)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:976)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:851)
	at com.ning.http.client.providers.jdk.JDKAsyncHttpProvider$AsyncHttpUrlConnection.call(JDKAsyncHttpProvider.java:245)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
, statusCode=NA, operationTimeMillis=11, pollingHistoryMap={}]

Hmm, I've just realised that running mvn test locally (on the current state of master, so excluding my modifications) fails for me locally:

Results :
Tests in error:
initializationError(io.parallec.core.TestBase)
initializationError(io.parallec.core.main.ssh.SshProviderRealTest)
initializationError(io.parallec.core.main.tcp.TcpClientTest)
initializationError(io.parallec.core.main.ping.PingOnTmpTest)
sshWorkerFakeVmPasswordTest(io.parallec.core.main.ssh.ParallelClientSshTest)

Tests run: 106, Failures: 0, Errors: 5, Skipped: 0

And when executed directly in Eclipse the only case that's flagged up as not passing is ParallelClientSshTest.sshWorkerFakeVmPasswordTest().
The test output log shows a more detailed reason for failure:

ERROR i.p.c.c.w.s.SshProvider - error in exec SSH.
If exection is JSchException: Auth cancel and using public key.
Make sure 1. private key full path is right (try sshMeta.getPrivKeyAbsPath()).

the user name and key matches  com.jcraft.jsch.JSchException: Auth fail

The test case failing in Travis (differentRequestsToSameTargetHostWithHeaderReplacement) passes both in Maven and Eclipse.
Is my local setup to blame? This would be kind of worrying as ideally the test suite should just pass out of the box (and it does pass on Travis, presumably with no extra initial setup). I'm on OSX if that makes any difference.

Strange thing - I tried running the tests again a few hours later and everything works flawlessly, all tests pass locally: both with the parallec master branch and with my PR branch.

Hi Lukasz,
Thanks much for your checking on this again. yes this may be tricky; maybe due to issues in the Travis environment. Travis is JDK1.7 I feel the sample Http server fails to run with the new pom.
Will try to reproduce it.
my local is MAX OS is os x yosemite. and currently run is fine.
The sshWorkerFakeVmPasswordTest may be easier to resolve: currently it is too strict on the expected error; probably sometimes the error output is slightly different. I would create a seperate issue, if you can rerun just this test, and then print the output, we will know the other error string.
https://github.com/eBay/parallec/blob/master/src/test/java/io/parallec/core/main/ssh/ParallelClientSshTest.java#L32

Lukasz, if you can print out the output, we can fix this. https://github.com/eBay/parallec/issues/10 was created to track the issue regarding the sshWorkerFakeVmPasswordTest.

Now I see the root cause. In the travis (maybe due to docker) the server starts too late (too slow) to accept the request. (maybe with the changes some library late init) . let me update the unit tests first


Correcting Installation from Install

Hey,
I have seen most of the documentation over the internet use the words installation guide so I thought this change would be something useful for the newbies.
Let me know if you have any queries!

@googlebot I signed it!

We will not be encouraging one liner grammatical changes as this is expensive process, thank you for your interest.
CC @mihaimaruseac

Hey,
But I went through the PR's and found that you appreciate a PR with the same kind of issues. Now, I read through the docs and didn't find any similar kind of issues. So, now I could add few different stylings together but that would have been difficult to review or do this PR as the first contribution.
Can you please throw some light on what should have been the correct path?  @mihaimaruseac @gbaned


https://github.com/Azure/Commercial-Marketplace-SaaS-Accelerator/issues/210

Is your feature request related to a problem? Please describe.
Link to the Issue
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I encountered also the issue with the models being internal when trying to add unit tests to our webhook implementation using the library. With all constructors being internal I'm not able to create a proper mock.


Update vendored protobuf tar.gz to 3.2.0.

The content of 3rdparty/protobuf-3.2.0.tar.gz is generated by:

On a Mac OS, download and untar protobuf v3.2.0 source at
https://github.com/google/protobuf/archive/v3.2.0rc2.tar.gz;
Run ./autogen.sh;
Recompress and tar by tar -czvf.

Review: https://reviews.apache.org/r/58358

Did you test it? I believe it need changes in makefile and scripts too e.g., https://github.com/apache/mesos/blob/74878e255bb099029dde2a03e0b1d22fecf16000/3rdparty/cmake/Versions.cmake#L14

@janisz This only includes the protobuf changes as we were having issues uploading them to the review board. The rest of the changes are tracked via the review board: https://reviews.apache.org/r/58513
Most of the testing is done via the upgrade script here: https://reviews.apache.org/r/58357/


how to mine this coin?

Hi @Wolf727
Thanks for your inquiry.
For now, this is an effort to create a new blockchain with the goal of exploring making the implementation as simple and straightforward as possible in Python 3.
I am new to Python 3 so the code will in the beginning be in need of refactoring.  If you are an experienced Python 3 developer and see any opportunities for improving the code, let me know for I am glad for the feedback or the code improvement.
It is early days for this project.   For now, I am primarily testing out ideas I have for implementing common features of bitcoin and ethereum.  :-)  If all goes well, I will write a high-level explanation of these ideas which I will host here.
For Phase 1 (the current phase), I am working the implementation of a peer-to-peer network whose main feature is reliable  broadcast to nodes that may not be trustworthy (these "untrustworthy nodes" are not guaranteed to broadcast the received message and may alter the message received).  The goal in this phases is to have the network self-regulate.  A node that does not respond will be flagged as "down" and a node that does not echo exactly as received will be marked as "untrusted".
For Phase 2:  I will be completing the design of the blockchain which will involve support for a wallet application as well as a Turing-complete smart-contract mechanism that will be free in phase 2.  This system will server as the test network.
For Phase 3:   I will add support for spinoza coin.  I don't believe that this system will run on proof of work so there may not be a bitcoin-like mining.  It will either a proof of stake or it will be something else.  I have some ideas which I will be testing out by my implementation.


Fix some accessibility issues in the header

Fixed

@ianhodge Anything left to do here or can you merge this one in? Thanks.

All good to me! Merging :)


Sparrow to bitcoin-core connection problems

Sparrow has been having trouble maintaining a connection to my private bitcoin-core node. It seems it can only connect to it after it has just been restarted. It also takes about 45s exactly every time when it does connect. Then after a random period of time (usually after only a few minutes) it will disconnect and never connect again unless bitcoind is restarted.
I connected Specter to test if bitcoin-core was the issue, but Specter connects instantly and never loses a connection. It continues to work even while Sparrow is unable to reconnect. Attached is a Sparrow debug log from the point of startup until it flipped the connection toggle (note I had to split it up because GitHub  limits uploads to 25MB).
xaa.log
xab.log
xac.log
xad.log
xae.log
xaf.log
xag.log
xah.log
xai.log

I have been looking into this, and think I understand the cause of this issue. In order to provide a fee rate histogram on the Send tab, Sparrow's internal Bitcoin Core server (called Cormorant) must handle the mempool.get_fee_histogram Electrum call. Unfortunately the Bitcoin Core RPC does not provide an efficient way to get this data, so all implementations (EPS/BWT/Cormorant etc) must use some form of the getrawmempool RPC call to get mempool fee information. I believe it is this call that is causing the issue on low powered machines now that we have a full mempool.
Can you test how long this call is taking on your node? e.g.
time bitcoin-cli getrawmempool true

I have already written an alternative approach to this call, which uses the call above on initialization only. Thereafter, it updates a local copy of the mempool fee data with non-verbose calls (getrawmempool false), followed by getmempoolentry on each new transaction added to the pool since the last call.
However, I would like to determine if even the first call is unworkable on low powered nodes - your suggestion of "it seems it can only connect to it after it has just been restarted" implies this. Can you determine if your node is unable to handle getrawmempool true after it has been running for awhile?

0m46.37s real     0m12.20s user     0m10.89s system

Great, that's confirmation it's the getrawmempool true call that's causing this.
Can you do the same with
time bitcoin-cli getrawmempool false

0m05.33s real     0m01.16s user     0m00.57s system

Fixed in 171bf241. Cormorant now avoids calling getrawmempool true on slower systems, and initializes the fee rate histogram (loads mempool entries) in the background after a successful connection, thereafter updating its view of the mempool incrementally every minute. The fee rate chart on the Send tab is shown as soon as vsizes from all entries have been loaded.

Confirmed, thanks!


Update extractor.py to allow binwalk to extract firmware

In reference to issue #33:
Adding the parameter "--run-as=root" to binwalk.scan will allow binwalk to be used as expected.

There are multiple issues on binwalk 2.3.3 such as extracting symbolic link files about the root (/) directory and root user permission.

@pr0v3rbs mentioned the above in #33. So only this doesn't solve it, I think.

I apologize for not reading the post carefully.
FYI: After making the --run-as=root change I was about to successfully extract and emulate a TP-Link TL-WR802N-US_V4_200421 firmware.
Thank you for this project!!

FYI: After making the --run-as=root change I was about to successfully extract and emulate a TP-Link TL-WR802N-US_V4_200421 firmware.

Is this using a Docker container? If so, try pulling from master as binwalk wasn't pinned to a working version until recently.

FYI: After making the --run-as=root change I was about to successfully extract and emulate a TP-Link TL-WR802N-US_V4_200421 firmware.

Is this using a Docker container? If so, try pulling from master as binwalk wasn't pinned to a working version until recently.

This was without docker.

Thank you for your pull request. @loverics
Unfortunately, as @Kibouo said, FirmAE currently pinned the version of the binwalk as 2.3.1 due to multiple issues such as not only root permission problem but also disable extracting /dev/ files.
Check commits eb0b97abe2db4aa94b8d878b43bb80122ffb0ecc, 1afcde2b8a8acfda4a94f600b56d87e5c8d28aab.
And the binwalk with 2.3.1 version does not support --run-as command. (Check v2.3.1/src/binwalk/modules/extractor.py#L54)
When the latest binwalk can compatible with FirmAE, then I will merge this pull request.
Thank you! @loverics, @Kibouo

@pr0v3rbs sounds good. Thank you.


Client and server changes consolidated api

Pull Request Template
Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request.

Description

Add a TL;DR when description is extra long (helps content team)
Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation
and context. List any dependencies that are required for this change
Links to Notion, Figma or any other documents that might be relevant to the PR

PR fixes following issue(s)
Fixes # (issue number)

if no issue exists, please create an issue and ask the maintainers about this first

Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
Chore (housekeeping or task changes that don't impact user perception)
This change requires a documentation update

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[ ] Manual
[ ] JUnit
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

Summary by CodeRabbit

New Features

Enhanced search capabilities across the platform for a more efficient user experience.
Improved theme selection process for better customization of the application interface.
Streamlined user details initialization for a more personalized user experience.

Bug Fixes

Addressed issues with fetching data sources and plugins to ensure smoother app development.
Fixed bugs related to page setup and theme application to enhance the app's visual consistency.

Refactor

Optimized the application routing process for better performance and maintainability.
Refactored application and page loading processes for increased efficiency.

Chores

Updated saga functions to handle conditional API fetching more effectively.

Documentation

Added comments and documentation to the consolidated API endpoint for better clarity.

Tests

Incorporated new parameters into existing tests to maintain thorough testing coverage.

/build-deploy-preview skip-tests=true


JavaScript: optional explicit require() of UX symbols

This branch builds upon #59 - so please merge that one first

Symbols declared with ux:Name, ux:Dependency or dep are in this PR also available to require() for <JavaScript> modules.
This allows us to write code that plays nicer with transpilers and linters. Using require for names declared in UX is optional, but may make the code more readable and maintainable, e.g. var router = require("router") over just using router with no declaration.
This PR contains:

[x] Changelog
[x] Documentation
[x] Tests

Sent from wrong repo.


Polymorphic many to many across two connections, wrong connection is used on pivot table.

Laravel Version: 5.8.33
PHP Version: 7.3.2
Database Driver & Version: mysql

Description:
I have two database connections:

global (db1)
tenant (db2)

Two models:

User (connection set to global)
Property (connection set to tenant)

Both models connected via polymorphic many to many relationship on a "propertable" table in tenant database.
User has a "properties" method using morphToMany(Properties::class, 'propertable')
Property has a "users" method using
morphedByMany(User::class,'propertable')
If I try to load the users via my property instance I get an error that says that db1.propertables does not exist, this is true but I defined a different connection for each model, normally it should use db2 because morphedByMany is part of the Property model using the tenant connection. Is this intended behaviour? I think I could solve this via an intermediate PivotModel but want to make sure that this isn't a bug.
Here some code:
class User() {
    // db1
    protected $connection = 'global';

    public function properties()
    {
        return $this->morphToMany(Property::class, 'propertable');
    }
}

class Property() {
    // db2
    protected $connection = 'tenant';

    public function users()
    {
        // Does not work, throws "Table 'db1.propertables' doesn't exist"
        return $this->morphedByMany(User::class, 'propertable');
    }
}

You need to qualify the pivot table:
class Property extends Model
{
    public function users()
    {
        return $this->morphedByMany(User::class, 'propertable', 'db2.propertables');
    }
}

This approach does work, but does not solve the problem in a clean way. The problem is that my tenant connection uses different databases for different domains. I could solve this problem by prepending dynamically the database based on the connection, but this feels kinda hacky.

Laravel doesn't know which database contains the pivot table.

I think that is not the case. The morphedByMany part is the inverse part of the many to many and the pivot is named after the model implementing that.
Documentation example
I would think, based on the documentation example, that the pivot class named after the model using the morphedByMany uses the same connection, too. Maybe this is a false conclusion, but I think many people would think the same after consulting the docs.

I think that shouldn't be the case. The morphedByMany part is the inverse part of the many to many and the pivot is named after the model implementing that.

Even if you name the pivot table like that, you could put it in the other database.

The second problem I see is that the behaviour would be inconsistent with other relation types like hasMany (working across two connections, without explicitly specifying the database and table).

You can't compare BelongsToMany/MorphToMany with other relationships here: It's much simpler to query a relationship without a pivot table across two databases since every query only targets a single database (i.e. there are no cross-database joins).
Laravel doesn't support cross-database queries yet: #23042

Do you now a smart workaround for this problem or do I need to handle this via custom queries?

What exactly doesn't work with the qualified pivot table?

The user can't be resolved if I try to sync.

What's the error?

Okay, my bad!
Your first solution works! Thank you so much :-)

What if the the two DB are on different servers. Is it possible to make the relationship ?


New version: valinet.ExplorerPatcher.Prerelease version 22000.556.42.36

Auto-updated by vedantmgoyal2009/winget-pkgs-automation in workflow run 405
Microsoft Reviewers: Open in CodeFlow

/azp run


forced restricted mode based on $SHELL astonishes

Problem:    Overloading semantics of $SHELL interferes with legit job control
Solution:   Avoid triggering restricted mode based on $SHELL value (closes #12656)
This PR basically reverses the changes from #9681, which were incorporated into patch 8.2.4282.
More detailed rationale for this PR is in issue #12656.

I see the failed test for:
    GitHub CI / linux (huge, gcc, testgui, true, true) (pull request) Failing after 23m

(details at: https://github.com/vim/vim/actions/runs/5525706560/jobs/10107033370?pr=12657 )
That failure seems unrelated to the changes from this PR, and indeed looking at recent test runs for other PRs that predate this one shows what is apparently the same failure:
...
06:44 Executing Test_lvimgrep_crash()

Error detected while processing command line..script /home/runner/work/vim/vim/src/testdir/runtest.vim[585]..function
RunTheTest[54]..Test_lvimgrep_crash[16]..TestTimeout[12]..VimLeavePre Autocommands for "*"..function EarlyExit[7]..FinishTesting:
line   70:
E445: Other window contains changes
E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt
E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt
E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt
Error detected while processing command line..script <f0><9b>ֺ<8f>U[585]..function
RunTheTe<c0>^A[54]..Test_lvimgrep_crash[16]..TestTime<c0>^A[12]..VimLeavePre Autocommands for "*"..function
EarlyExiP^B[7]..FinishTesting:malloc(): unsorted double linked list corrupted

Error: The action has timed out.

closing for the reasons mentioned in #12656


CSS Minification Errors on @imports and @keyframes

This references the CSS minification errors from #1
running into some issues trying to use bundler minifier to combine the files.
specifically getting errors about @Keyframes and @imports simialr to this issue madskristensen/BundlerMinifier#191
I'm seeing this when I run the task:
Unexpected token, found '{'
Unexpected token, found '"version"'
Expected identifier, found ' '
Expected selector, found '3'
Expected comma or open brace, found '3'
Unexpected token, found '@-webkit-keyframes'
Expected semicolon or closing curly-brace, found '0%'
Unexpected token, found '@Keyframes'
Expected semicolon or closing curly-brace, found '0%'

Full error list:

```
Unexpected token, found '{'
Unexpected token, found '"version"'
Expected identifier, found ' '
Expected selector, found '3'
Expected comma or open brace, found '3'
Unexpected token, found '@-webkit-keyframes'
Expected semicolon or closing curly-brace, found '0%'
Unexpected token, found '@Keyframes'
Expected semicolon or closing curly-brace, found '0%'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@-webkit-keyframes'
Expected semicolon or closing curly-brace, found '0%'
Unexpected token, found '@Keyframes'
Expected semicolon or closing curly-brace, found '0%'
Unexpected token, found '@import'
Unexpected token, found 'url(//fonts.googleapis.com/css?family=Lato:100,300,400|Open+Sans:400italic,400,600|Muli:300|Indie+Flower:400|Oswald:400,700,300)'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Unexpected token, found '@Keyframes'
Expected colon, found '{'
Process terminated with code 0.
```

Documentation for the theme is here in case it helps: http://razonartificial.com/themes/reason/v1.6/css_typography.html

I'll check with @madskristensen on the BundlerMinifier issue. Otherwise we can set up a gulp task.

Was this ever resolved as I get the same thing when trying to use for bootstrap themes?


chore(master): release 1.4.9

:robot: I have created a release beep boop
1.4.9 (2023-04-23)
Miscellaneous

deps: update atkrad/wait4x docker tag to v2.13.0 (1e04423)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/docker-build-deps/releases/tag/v1.4.9 :sunflower:


[stable/nextcloud] Explicit command and args

What this PR does / why we need it:
Adds the ability to override the command and args run by the container, to override the default ENTRYPOINT and COMMAND from the docker image.
A use-case for this is the ability to make the postStartCommand wait until entrypoint.sh is done copying over php files and the occ binary before running the occ commands we want to automate. Without it, there is a race condition between the postStartCommand which runs asynchronously with entrypoint.sh and in our experience causes at least 1 restart due to the postStartCommand failing for not finding php files in /var/www/html/lib/
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

The nextcloud chart has migrated to a new repo.  Can you please raise the pull request over there?  https://github.com/nextcloud/helm


add link to global-chrome

I don't see the need for this. This module only moves the window.chrome lookup to itself


Using 18n in scheduled messages

Hi!
I want to send users scheduled messages once a day, so I'm adding a setTimeout and use bot.api.sendMessage(userId, but in that case I have no possibility to use context and hence i18n...
How can this be solved?

You can translate strings directly using the i18n instance. You'll just have to pass the locale for that. No context needed.


Adding new theme - Monochrome

@thereviewindex  Thanks for adding Monochrome. Great theme. Keep it up. Cheers.


groups: blog post crashing tab

The "A Guide to Tlon Local" blog post in Tlon Local gets stuck in an infinite loop and crashes my browser tab.
To Reproduce

Load the note /1/chan/diary/~nibset-napwyn/getting-started/note/170141184506222794168127277754421870592 in Groups. On my hosted ship, the url is https://solfer-magfed.tlon.network/apps/groups/groups/~nibset-napwyn/tlon/channels/diary/~nibset-napwyn/getting-started
Scroll down
Observe that the browser tab freezes and eventually crashes.

Additional context:

Tested on my hosted ship, synced from marnec
Observed the same behavior in both Chrome and Safari.
Tried poking around a bit, and it was hard to get introspection once the tab was stuck, but with some random sampling via pausing in debugger and looking at the call stack, it looks like it's stuck in a loop that involves react-beautiful-dnd.

Duplicate #2526


Incompatible license in file

NPOI Version
master
Issue Description
The file, https://github.com/nissl-lab/npoi/blob/master/main/Util/Collections/StringTokenizer.cs, is licensed under either the MPL v1.1 or the LGPL v2.0 or later. The license of the file is incompatible with the license of the rest of the source code.
As per the Apache Foundation, the MPL v1.1 license may not be included, in source code form, in a project licensed under the Apache v2.0 license. Please check https://www.apache.org/legal/resolved.html#category-b. The LGPL v2.0 or any later versions may not be included in a project licensed under the Apache v2.0 license. Please check https://www.apache.org/legal/resolved.html#category-x.
Can you please check this?

But this file has been there for a long time. Why do you care this? Are you a lawyer?

We, at the Eclipse Foundation, are using this component in one of our projects. I was checking the license compatibility in that context. We have checked the compatibility based on the compatibility matrix from the OSADL community. The matrix too lists the licenses as not compatible. I confirmed it by checking the Apache Foundation's webpage regarding third party licenses. Anyway, I am not a lawyer. So, the issue has been raised based on information that I got from the websites.


Documentation typo

By analyzing the blame information on this pull request, we identified @ca057 and @lrettig to be potential reviewers.

@facebook-github-bot shipit


[BUG] RemoteException: The underlying connection was closed: error received on step 5- Review + Create

Describe the bug
On the final step of setting up AKS via the extension from within the HCI Cluster in WAC, I receive the following error:
Failed with errors
Duration: 0 minutes 7 seconds
localhost: (1) RemoteException: The underlying connection was closed: An unexpected error occurred on a send. (2) RemoteException: The property 'StatusCode' cannot be found on this object. Verify that the property exists. (3) RemoteException: The property 'content' cannot be found on this object. Verify that the property exists. (4) RemoteException: The property 'contentid' cannot be found on this object. Verify that the property exists. (5) RemoteException: The property 'contentid' cannot be found on this object. Verify that the property exists. (6) RemoteException: The property 'contentid' cannot be found on this object. Verify that the property exists. (7) RemoteException: Index was outside the bounds of the array. (8) RemoteException: Index was outside the bounds of the array. (9) RemoteException: Index was outside the bounds of the array. (10) RemoteException: Index was outside the bounds of the array. (11) RemoteException: The property 'name' cannot be found on this object. Verify that the property exists. (12) RemoteException: Cannot index into a null array. (13) RemoteException: Cannot index into a null array. (14) RemoteException: Exception calling "IndexOf" with "2" argument(s): "Value cannot be null. Parameter name: array"
To Reproduce
Steps to reproduce the behavior:

Follow the Set Up Azure Kubernetes Service wizard from within the AKS Extension.
After the step 'Host Configuration and package install, the error appears.

Expected behavior
The AKS cluster is deployed successfully.
Screenshots

Environment (please complete the following information):

OS: Windows 10 Enterprise

Browser Chrome

Version : AKS xtension: 0.314.0
aggregated-gateway-logs.zip

AKS-HCI Version : Public Preview 1

Kubernetes Version (i.e. 1.18.6)

Additional context
Add any other context about the problem here.
Collect log files

From a PowerShell Admin window run Collect-AksHciLogs
If you are running into issues with the deployment wizard in Windows Admin Center, run
Get-SMEUILogs.ps1 from the machine hosting Windows Admin Center.”

@mattatmsft

@dmc-tech can I close this bug if it is not repro-ing with the latest release (Feb update)?

Closing this bug for now after talking to @dmc-tech. Can reopen if needed.


chore: release main

:robot: I have created a release beep boop
nest-utils: 1.1.0
1.1.0 (2024-10-07)
Features

@nanogiants/nestjs-swagger-api-exception-decorator is now bundled into nest-utils (de635f0)
Added CustomLogger.getContext() method (4b2fb40)
auth: Replaced authOptions.allowedRedirectUrls with authOptions.allowedRedirectHostnames to better resemble the behavior of the validation (5aa928e)
testing: TestAppLogger now stores messages for easier assertions and debugging (3fee10e)

Bug Fixes

auth: Enabled protection for /auth/session route (d48e033)
auth: Fixed a bug that would cause an internal error if an authenticated user would not have any of the application's roles (2bcfc98)
deps: Fixed peer dependency versioning (3f341a5)
deps: Turned @nanogiants/nestjs-swagger-api-exception-decorator into a peer dependency (b1904b4)
testing: Fixed vitest being bundled and hoisted (2a1cac5)
testing: Removed obsolete session property on TestContainer (2af4809)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

nest-utils-v1.1.0
:sunflower:


[Functions] Enable Application Insights by default

Enable Application Insights logging by default on azure-functions:deploy.
/cc @hexiaokai

Portal already does this. We should enable AI in the same region or the closest location to the function app.

As a data point, both Core Tools and VS Code now both create the Application Insights resource with the other function app resources.

Done in function plugin 1.5.0


Updated phpunit, implemented #117, #118.

This PR implements #117 and #118.
It also updated phpunit and added a method for easily running tests via docker-compose.

@DavidGoodwin your feedback is appreciated, if you have any :)

Hmm, guess that makes sense; even if it's only for the edge case where a developer doesn't have it installed.
Thanks, will add it and merge today / tomorrow!

for composer.json -> the php version requirement is not the same between require and require-dev; is that intentional?

Uhm, require-dev is phpunit version not PHP ;-)


GraphQL API to return text mining literature evidence sorted by score

Can we please amend the GraphQL API so that it returns text mining literature evidence sorted by score (descending)?
For example, in this query for PTGS2 and asthma, the first five rows have the following scores - 2, 5.2, 5.4, 15.6, 6. Ideally, the row with the top score should be returned first followed by rows with scores in descending order.

I believe this posed some issues the first time we proposed it but I can't remember what the issue was. If it helps, sorting by score can be applied to all evidence, not just literature.
Also to clarify, we don't need a server-side sorting functionality. Just the data to come out sorted.

Ticket closed as work completed and merged as part of https://github.com/opentargets/platform-api-beta/pull/48


run all tests windows

Purpose
Run all tests (even those using TempestRemap) on windows
closes #422
Update
ClimaCoreTempestRemap casts a long * to a size_t * in this line, which are different on windows. So we won't be able to use TempestRemap on Windows after all.

issue opened here: https://github.com/ClimateGlobalChange/tempestremap/issues/121


Query-Handbrake-Log showing incorrect speed when scanning for forced subtitles

This is a separate issue to that described in https://github.com/donmelton/video_transcoding/issues/45.
When using the "--burn-subtitle scan" command from transcode-video, the resultant log file produces incorrect value for speed when processed with query-handbrake-log. Attached below are two log files produced from encoding the same file with identical setting except one uses "--burn-subtitle scan" and the other doesn't. You should see 21.032848 fps from one log and 0.0 fps from the other.
MIB chapter 11.mkv.txt
MIB chapter 11 Subtitles.mkv.txt
P.S. You'll also notice the same issue as described in https://github.com/donmelton/video_transcoding/issues/45 affecting both log files, although the one produced with "--burn-subtitle scan" reports the time as NaN rather than 00:00:00.

@martinpickett Although the is a separate issue to what's describe in #45, it's the same problem or limitation. When using time and speed information types, the query-handbrake-log tool won't give valid results for a partial (chapter, time range or frame range) or early-terminated transcoding. Sorry about that.

Attached is the log from a full encode with --burn-subtitle scan. I'm getting the same error when using the speed keyword.
MIB Subtitles.mkv.txt

@martinpickett OK, I see why this doesn't work. Unfortunately, It's another limitation. However, this time it's due to using Handbrake's "scan" mode since it fills the .log file with what looks like duplicate data. I may be able to handle this case in the future so I'll leave this open while I investigate.
BTW, this is yet another reason I don't like Handbrake's "scan" mode. Besides being unreliable and slow, you get silly side effects like this.

Thank you, and I'm sorry to have caused you so much trouble.

@martinpickett No trouble at all! It's good to find out these issues. Thanks for opening it.

@martinpickett Sorry this took so long to fix. Turns out the change was trivial:
diff --git a/bin/query-handbrake-log b/bin/query-handbrake-log
index 2722370..0eeb66d 100755
--- a/bin/query-handbrake-log
+++ b/bin/query-handbrake-log
@@ -132,7 +132,11 @@ HERE
               if fps_line.nil?
                 fps_line = line
               elsif fps_line_2.nil?
-                fps_line_2 = line
+                if fps_line =~ / ([0.]+) fps$/
+                  fps_line = line
+                else
+                  fps_line_2 = line
+                end
               end
             end

I need to do some more testing, but this should go out with version 0.8.1 sometime this week.

@martinpickett OK, version 0.8.1 was just released with this fix. Just gem update video_transcoding to get it. Thanks, again!


Webpage only served after refresh

A bug has manifested. When visiting a new page, webtorrent will download the file but peerweb will not serve it until you refresh.

Solved by https://github.com/retrohacker/peerweb/commit/c4b660e8897c6f42dc6b8f70715f06a581137828
We were returning the path to the file before webtorrent had finished downloading it. This approach is rather naive but can be optimized later down the road.


The function assigned to the constant is visible as a variable. Should be visible as a function.

The function assigned to the constant is visible as a variable.
For example:
const fn1 = async ()=> {
}

// or

const fn2 = function () {
}

is visible as a variable in "Go to Symbol in File..." and in "breadcrumbs".
Should be visible as a function.

This was discussed in https://github.com/Microsoft/TypeScript/issues/14830.  We decided to treat these as const for consistency


Inspect remote images

Added new flag to docker inspect command:
$ docker inspect --remote <imageName>[:<tag>]...

Which inspects remote images. If a short name is given, all additional registries will be queried until a match is found. Additional [:TAG] suffix may further specify desired <image>.
This allows for remote inspection without downloading image layers.

@llunved Could you please take a look? I'll make a scratch build for you to try.

An initial smoke test shows that this appears to be generally working as intended. Two possible issues:
"docker inspect --remote docker.io/tomcat" vs the "docker inspect docker.io/tomcat" shows a slightly different output:
<     "VirtualSize": 0,
<     "Registry": "docker.io",
<     "Digest": "sha256:3ab045cce1bc1a73516596474bee0073206ce4843a85fccf8f1329a35625543b",
<     "Tag": "latest"

"VirtualSize": 347798454

Also there is error output on local inspect:
"""
docker inspect docker.io/tomcat 1> /dev/null
INFO[0658] GET /v1.19/containers/docker.io/tomcat/json
ERRO[0658] Handler for GET /containers/{name:.*}/json returned error: no such id: docker.io/tomcat
ERRO[0658] HTTP Error                                    err=no such id: docker.io/tomcat statusCode=404
INFO[0658] GET /v1.19/images/docker.io/tomcat/json
"""
I don't see that with earlier versions of docker.

@llunved Thanks for checking it out.
VirtualSize needs to be computed locally like this:
VirtualSize = img.Size + sum([img.getNthParent(n).Size for n in range(1, img.numParents + 1)])

So we could:

pull all the parent json files and make this computation - could make it time consuming
remove this attribute completely from output
leave it as it is

Must the output of remote inspect match the local one? I've added Registry, Digest and Tag attributes because they may be interesting to the user. If he has several additional registries and inspects image identified by a short name, he should get at least the source registry information. But perhaps it could be logged as INFO messages to stderr. WDYT?
As for the error messages, they aren't shown in the latest version. However, they will appear in Docker daemon's journal -- and the same applies to older versions without these patches.

@miminar  I looked at it again.

The error is gone
On vritual size does the server simply return size of 0 or is the field not returned but the client just shows 0? We should probably filter out fields that are not returned by the server, but conversely we should keep all the fields the server does actually return, even if they are 0.
The other thing that confused me was the Digest and Tag missing... But again, if the data isn't there (locally in this case), we shouldn't make it up...

Overall LGTM

On 12.6.2015 16:51, llunved wrote:

@miminar https://github.com/miminar I looked at it again.

The error is gone
On vritual size does the server simply return size of 0 or is the field not returned but the client just shows 0? We
should probably filter out fields that are not returned by the server, but conversely we should keep all the fields
the server does actually return, even if they are 0.
Registry doesn't return it. It's created and computed by client. I'll filter it out.
The other thing that confused me was the Digest and Tag missing... But again, if the data isn't there (locally in
this case), we shouldn't make it up...
Ok, I'll remove them. I'll at least make this information appear in debug messages on stderr.

Overall LGTM
—
Reply to this email directly or view it on GitHub https://github.com/miminar/docker/pull/5#issuecomment-111517278.


Alternative implementation in Refiners

We are building Refiners, an open source, PyTorch-based framework made to easily train and run adapters on top of foundational models. Just wanted to let you know that IP-Adapter is now fully supported in Refiners! (congrats on the great work, by the way!!)
E.g. an equivalent to the "IP-Adapter with fine-grained features" demo would look like this:

Follow these install steps
Run the code snippet below which gives:

import torch

from PIL import Image

from refiners.foundationals.latent_diffusion import StableDiffusion_1, SD1IPAdapter
from refiners.foundationals.latent_diffusion.schedulers import DDIM
from refiners.fluxion.utils import load_from_safetensors, manual_seed

device = "cuda"
image = Image.open("statue.png")

ddim_scheduler = DDIM(num_inference_steps=50)
sd15 = StableDiffusion_1(scheduler=ddim_scheduler, device="cuda", dtype=torch.float16)
sd15.clip_text_encoder.load_from_safetensors("clip_text.safetensors")
sd15.lda.load_from_safetensors("lda.safetensors")
sd15.unet.load_from_safetensors("unet.safetensors")

with torch.no_grad():
    prompt = "best quality, high quality, wearing a hat on the beach"
    negative_prompt = "monochrome, lowres, bad anatomy, worst quality, low quality"

    ip_adapter = SD1IPAdapter(
        target=sd15.unet,
        weights=load_from_safetensors("ip-adapter-plus_sd15.safetensors"),
        fine_grained=True,
        scale=0.6,
    )
    ip_adapter.clip_image_encoder.load_from_safetensors("clip_image.safetensors")
    ip_adapter.inject()

    clip_text_embedding = sd15.compute_clip_text_embedding(text=prompt, negative_text=negative_prompt)
    clip_image_embedding = ip_adapter.compute_clip_image_embedding(ip_adapter.preprocess_image(image))

    negative_text_embedding, conditional_text_embedding = clip_text_embedding.chunk(2)
    negative_image_embedding, conditional_image_embedding = clip_image_embedding.chunk(2)

    clip_text_embedding = torch.cat(
        (
            torch.cat([negative_text_embedding, negative_image_embedding], dim=1),
            torch.cat([conditional_text_embedding, conditional_image_embedding], dim=1),
        )
    )

    manual_seed(42)
    x = torch.randn(1, 4, 64, 64, device=device, dtype=torch.float16)

    for step in sd15.steps:
        x = sd15(
            x,
            step=step,
            clip_text_embedding=clip_text_embedding,
            condition_scale=7.5,
        )
    predicted_image = sd15.lda.decode_latents(x)

predicted_image.save("output.png")
print("done: see output.png")

Note: other variants of IP-Adapter are supported too (SDXL, with or without fine-grained features)

A few more things:

SD1IPAdapter implements the IP-Adapter logic: it “targets” the UNet on which it can be injected (= all cross-attentions are replaced with the decoupled cross-attentions) or ejected (= get back to the original UNet)
It builds upon Refiners’ Adapter API
Adapters can be combined e.g. in the tests we showcase how to combine IP-Adapter with Controlnet.

Feedback welcome!

FYI, we have also written a blog post with additional details about this implementation -> https://blog.finegrain.ai/posts/supercharge-stable-diffusion-ip-adapter/


LCMapString* docs should explicitly state that Sort keys are opaque byte streams

@rohanp-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@Karl-Bridge-Microsoft  This is my first change in the MicrosoftDocs\sdk-api repo Karl. I've used the same workflow as with MicrosoftDocs\win32-pr repo. Here, I can't add reviewers for some reason. John Kennedy's link has me join the Everyone team in MicrosoftDocs, which I've already done. Is there an extra step required for MicrosoftDocs\sdk-api?

Didn't know I needed to use the cpubwin repo for this. Closing the PR.


[#FLAT-545 #FLAT-550] Handle http reporting properly

https://sourceclear.atlassian.net/browse/FLAT-545
https://sourceclear.atlassian.net/browse/FLAT-550

:+1:


The Image provider for commit time should still collect commit ID and repo info and callback to the Git API for timestamp

I just noticed that when we implemented the image provider for commit-time, we're looking for a commit DATE annotation, not commit ID or repo URL anymore. Essentially, we are putting the onus on the CI system to provide the commit timestamp. While this would be convenient for Pelorus, this is not a very realistic use case in the field, and I think it also omits some really useful information that should be a standard for the commit_time metric.
The problem here is the assumption that a CI system will know the commit time. This is not usually true. Typically, CI systems are only responsible for git clone type activities, and then doing something (usually compile, build, package) with what was cloned. Many of them do various types of skinny/shallow clones that do not necessarily include history information where the timestamp info would be.
Additionally, I think having a timestamp without showing where it came from (repo & commit ID) creates potential data integrity options. How could I go back and verify that I'm getting the right information?
To that, I would like to propose the following updates to the image provider for the commit exporter:

Require commit id and repo url to still be passed in annotations/labels no matter what
Make COMMIT_DATE* annotations optional, and use them if provided
If COMMIT_DATE* are not set, fallback to querying the git APIs to get the commit timestamp.

Currently commit time exporter has two PROVIDER types. A git and an image provider. They differ a lot on how the commit time for a particular Image SHA is calculated.
Below is a diagram showing the main difference.

For the image provider type we get the commit time directly from an image label or annotation, which is inline with what OpenShift Source build provides as a build process. If that information is missing from the image we ask for either similar label or by annotate.
For the git provider we have information about repo_url and commit SHA and each individual git instance is asking Git API to gather the commit time

So in the image provider we never have to go to any external API to query and calculate the date and time based on the io.openshift.build.source-location nor io.openshift.build.commit.id, because we do have this data as part of io.openshift.build.commit.date, so why to validate it ?
In our image committime exporter we do expose the commit SHA as part of the collected metric, but we do not enforce it to be there as part of an Image label nor annotation. What we do enforce is to have commit time and image SHA information.
So my question is why to collect data from the additional API if it's already there, just not enforced to be there?
As for the repository info, even the git provider does not pass this information to the prometheus.
The git provider does not (unfortunately) guess what the API endpoint is and as such each backend needs to be enabled by creating per API instance to cover required ones.
So in the current design if we would want to create image commit time exporter that talks to the additional GIT APIs we would need to drastically modify how the commit time is implemented/designed and guess what the API is, provide credential for each of the service, which would make the image commit time exporter much harder to configure and use.
Having image annotation and/or label does not ensure the data is 100% valid, because we do hand over that responsibility to the external tooling that is responsible for such annotation (e.g. external image CD build system). Also for the situations where the system is hosted in the restricted environment it may be valid to use image commit time exporter over git one, which does not require any external connectivity.

Ok, I think there are three separate topics I was trying to cover with this issue.
The first is data integrity. Let's talk about that first. Having good data integrity means that for each data point we collect, we should have enough metadata about that metric that allows someone to go back later and validate it. For commit time data, that means knowing what provider, repo and commit a timestamp comes from. Those bits aren't actually functionally required to make the dashboard work, but they are important to have in order for us to be able to "show our work" in case we discover a bug in a formula, or some result in the dashboard comes into question.
The second is data consistency. By that I simply mean that all commit_time metrics we collect should include the same fields and metadata regardless of which exporter or provider we use. They should confirm to a standard data structure so we know that any formulas or filters we write will work across the entire set.
The third issue specifically with the image exporter as it is, is that it is going to be fairly common for us to have customer situations where we need to pull commit data from external CI systems where the commit id and repo url are known, but the commit timestamp is not. I would say that is probably the be MOST common scenario actually, since even Tekton falls into this category.

I think we should revisit what data is included in various external build scenarios, and document that. The data we want is included in a s2i build scenario, yes. But at that point, are they likely to be using that with tekton?


Show diff not log when displaying the changes of the build files

The current code uses git log for displaying the changes of the build files. This makes it really hard to see what has changed if there are several commits for a package since the last run of pacaur. I think using git diff would be the better approach for this. Especially git diff does exactly what the prompt before says.

I'm not sure to understand why using git log makes it really hard. Care to elaborate?
Relevant commit: 3a4a6f970dc7b7d166617b84a7b94dd7a32e64b5

I for one love the fact we get git log -p instead of git diff like yaourt does, because I want to see the history of changes and why they were made. And like @rmarquis, I fail to see how git log makes it hard to see what changed: as a matter of fact, it makes it easier for me because you see changes grouped with the other they relates to rather than the global diff.

If I want to see the complete history I can go to AUR and follow the "View Changes" link. At the moment I want to install a package I'm just interested in the whole change in one single diff. I do this the same way when I review pull/merge requests as the result of all commits is the thing that matters in the end and not each single commit. Just if there is a questionable change in a pull request I'll have a look to the commit that contains the change to find the reason for it. Reviewing each and every commit of a pull request is just wasting of time and this is the same for reviewing the changes of the build files.
And with git log it is really hard to figure out the real changes if several commits are touching the same or almost the same line of a file.
But if there are people who like wasting their time by reviewing always each and every commit instead of having just a single diff of the change it would be nice to have at least the possibility to configure the behavior.

@coder-hugo Yes, make sense to me, since what you're interested in checking the PKGBUILDs is the diff, not individual commits. This was also the initial behavior. I'd like to make this default and avoid another option for this, since it's really feature creep imho.

Done in b0c7c3e669dd39b060800a512a43e14a6df2e6d5.

My main intention for this change was "This includes the commit messages, which are useful to see.".
Can we maybe have git log --oneline on top of the diff?

How "on top of the diff" would be implemented?

Just run them after each other?

This is far from ideal... Commit messages are interesting to see, but I'm not sure they are really useful in that context.

They do no harm neither: typically there will be 1-3 lines there then.
The problem with only the diff is that you will have to grasp the context from the diff - so much for "wasting time"; I'd rather skim 3 diffs that might have been amended, but tell me what happened then a single diff without any context.

What about including the "View Changes" link regardless?  It would allow to easily open it to see all the details easily.

The purpose of the viewing is the detect harmful code, not to understand why a specific change has been made. While history may help in doing the former, these are two distinct tasks.

I like that idea. I'll see if I can find a nice way to add this link.


preventDefault inside passive event listener invocation.

拖拽进度条报错‘Unable to preventDefault inside passive event listener invocation.’

同问

I met the same issue with you, no solution currently, have you got the solution about this issue?

有解决方案， 但是太麻烦了，项目还在评估期懒的搞，就这样吧


Resume flag in rs train loads optimizer state and ignores e.g. learning rate

Users can

train a model and get checkpoints, then
use the resume flag pointing to a checkpoint

and then e.g. fine tune starting from that checkpoint.
The problem we are now running into is we load not only the checkpoint but also the optimizer including e.g. the learning rate.
What's currently not possible

train for n epochs with learning rate r0
train for another m epochs with learning rate r1 (where r0 >> r1)

since we just ignore the r1 learning rate from the user and load the initial learning rate r1 from the serialized checkpoint into our optimizer.
Check out
https://github.com/mapbox/robosat/blob/a855a8a0095a8eca284a074680b5eb82faa31abc/robosat/tools/train.py#L81-L95
We should re-think this. cc @ocourtin this might effect you, too.

@daniel-j-h
If you want/need to change learning rate, why still using --resume too ?
As you can use --checkpoint flag only ?

Oops you are right, not sure why I missed this :see_no_evil:


https instead of http

The generated sitemap.xml file uses http:// in the URLs, instead of https://
Why does this happen?

fix : https://github.com/terabin/flarum-ext-sitemap/commit/aec15e81c98c8750e7fd07b6c602de8cc9ff3b1c


Use the multi-arch versions of the test images

Follow up to https://github.com/containerd/containerd/pull/5416, We need to push those images first and then merge this change
Signed-off-by: Davanum Srinivas<EMAIL_ADDRESS>

   volume_copy_up_test.go:111:  290         	Error Trace:	volume_copy_up_test.go:111 291         	Error:      	Received unexpected error: 292         	            	rpc error: code = NotFound desc = failed to pull and unpack image "gcr.io/k8s-cri-containerd/volume-ownership:2.0": failed to resolve reference "gcr.io/k8s-cri-containerd/volume-ownership:2.0": gcr.io/k8s-cri-containerd/volume-ownership:2.0: not found 293         	Test:       	TestVolumeOwnership 294 --- FAIL: TestVolumeOwnership (2.26s)


OAK-D crash with Face Detection.

Hi,
I have an OAK-D Pro Wide OV9782 Camera and I d'like to use it as head tracking.
I have tried OAK For Unity project  but it's not working as expected.
The first scene with Basic streams is working well but all other scenes (Body Pose or Face Detection) crash with a Runtime Error (error C++). I can't see any information in log.
An other point is Head Pose is not available. Any information about a release date ?
I am running on Windows 10 with Unity 2021.3.30f. Is there any drivers to add, security or project settings to set ?
Thanks,

Hi @HaroldPX ,
I tested on my side and all examples are working fine with OAK-D-PRO-W
Could you check editor log? You can access from console window -> three dots button -> open editor log
Head pose demo is coming during this month.
Beside trying to use USB3 cables and USB3 ports, there is no major considerations to use out-of-the-box demos.

Hi @Gespona
I'm using the USB cable provided in the box on an USB3 port.
The scene FaceDetector crashes at line 145 DaiFaceDetector.cs :   deviceRunning = InitFaceDetector(config);
In the log, I have this warning : [1844301051F4980F00] [2.6] [0.678] [ColorCamera(0)] [warning] Unsupported resolution set for detected camera OV9782, needs 800_P or 720_P. Defaulting to 800_P
I tried to change rgbResolution to 800_P but I still have the warning and the crash.
Thanks,

For information face detection is working in DepthAI application.

Hi, yes this error makes sense as sensor resolution is different. In fact you can see specific code to manage this resolution inside DaiFaceDetector.cs
if (rgbResolution == RGBResolution.THE_800_P)
{
config.ispScaleF1 = 1;
config.ispScaleF2 = 2;
}
It's important you change the resolution using the inspector like in this screenshot:

Set THE_800_P should be enough. Unity plugin is not detecting automatically with type of camera / sensor you connect, that's why you need to setup in inspector. The reason behind is the pipeline and use different resolutions and different ispScales.
So if I understand correctly, you set THE_800_P in the inspector, and still crashing right? Could you paste here the editor log?

I don't see anything in the log :
Editor.log
I also attached the config value before InitFaceDetector craches :
Config
Thanks

I think I was able to reproduce the issue and found the root cause behind the lastest changes for letterbox preview.
I created a new branch https://github.com/luxonis/depthai-unity/tree/fix-letterbox-wide
The issue impacts only on face detector and body pose.
All that said, you still need to set THE_800_P in the inspector
Could you confirm that branch solves your issue?

It works !

Cool ! I will improve the letterbox selection mode in the face detector example and then I will merge the branch . Closing this ticket. Reopen if need it

Hi Gerard,
Sorry I sent you an email.
Did you merge this branch to the main branch ?
I tried to move to the main branch but I still have the same issue.
Thanks.


Detect black-hole hosts and automatically disable them

We should be able to detect when an agent is failing some # of tasks per minute, and if that failure rate exceeds a target, we should automatically disable that agent until it can be investigated.

@dgrnbrg For this issue, when we realize that too many failures have occurred recently, can we disable the agent simply by removing it from the master's whitelist (the same way we treat  other problems which Satellite is configured to detect)?

You can use on-host and off-host in satellite.recipes to enable and disable hosts programmatically. Those functions will handle whitelist, prioritization, and UI binding.

You should do this entirely with the data available from the sattelite streams; you shouldn't access historical data from Riak here.

OK @dgrnbrg :+1:

We'll call a host a black hole if its 5 minute task failure rate is greater than 75% of it's 5 minute task launch rate, and it's 5 minute task success rate is less than 1/3 of its task failure rate. (Of course, those should be configurable settings).
To calculate this, you'll need to generate the totals of launch, success, and failures on the satellite slave. On the master, you'll need to create a 5 minute window of the ddts of those totals for each host. The sum of the values in that window will give you the 5 minute rate (w/in an error of the rate of slave transmission rate), and then you can calculate the status of the host with that information. Finally, pass the status through a flap-remover (stable), and have the final result control whether the host is enabled or disabled.


[Docs] update contribute docs

update the contribute.md
Put a page about code contribution in docs.

I have updated the TODO section and add pep8 links.
Then squash the commits, github dismisses previews reviews if the commits are squashed and push again.
Please take a look.


ion-item-sliding does not work on IOS with a lot of list items

Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[X ] 3.x
I'm submitting a ...  (check one with "x")
[X ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
Using ionic-angular 3.6.0
Using ionic 3.9.2
With IOS;
use ion-item-sliding with 10 items in the list, it works great.
use ion-item-sliding with 100+ items in the list, it doesn't work at all.
With ANDROID;
use ion-item-sliding with 10 items in the list, it works great.
use ion-item-sliding with 100+ items in the list, it still works.
Expected behavior:
ion-item-sliding should work with 100+ items in the list on an IOS device
Steps to reproduce:
Create a list of 100+ items, try to swipe on an iphone, nothing happens.
For Ionic V1 issues - http://plnkr.co/edit/Xo1QyAUx35ny1Xf9ODHx?p=preview
For Ionic issues - http://plnkr.co/edit/cpeRJs?p=preview
-->
Related code:
insert any relevant code here

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
insert the output from ionic info here
cli packages:

    @ionic/cli-utils  : 1.9.2
    ionic (Ionic CLI) : 3.9.2

global packages:

    Cordova CLI : 7.0.1

local packages:

    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : android 6.2.3 browser 4.1.0
    Ionic Framework    : ionic-angular 3.6.0

Hello! Thank you for opening an issue with us! Would you be able to provide a sample application via GitHub that demonstrates the issue you are having? Thanks for using Ionic!

Actually, installing the wkwebview
https://github.com/ionic-team/cordova-plugin-wkwebview-engine instead of
using the default uiwebview seems to have fixed the issue completely.
Evidently, wkwebview is much better at handling large lists than
uiwebview is.
Josh
------ Original Message ------
From: "Ken Sodemann"<EMAIL_ADDRESS>To: "ionic-team/ionic"<EMAIL_ADDRESS>Cc: "uj"<EMAIL_ADDRESS>"Author"<EMAIL_ADDRESS>Sent: 8/25/2017 7:02:36 AM
Subject: Re: [ionic-team/ionic] ion-item-sliding does not work on IOS
with a lot of list items (#12749)

Hello! Thank you for opening an issue with us! Would you be able to
provide a sample application via GitHub that demonstrates the issue you
are having? Thanks for using Ionic!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ionic-team/ionic/issues/12749#issuecomment-324888162,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAk-JGanCyRUwBgJvK_mphHj4p-soU9Bks5sbqnMgaJpZM4PCKgq.

Excellent! Glad to hear that your issue is fixed.

After Adding the wkwebview cordova plugin also still the performance is not fine on older iOS device's (iPad Mini iOS 9.3). there is some improvements in the scrolling part. But the ion-item-sliding part is still effected.


build: add sudo to build image

We really don't need sudo, however, some of the GH actions require it.
The reason that some of them need/assume that, is that they can be run
on the host directly or within a container.

:(
out of curiosity what does actually need it?
bonus: if we have sudo now, maybe we don't need to rm the cargo config file?

cachix -- when installed in a container, blindly called sudo, so its mostly just to avoid issues because of that.
As for the cargo file, we can. OTOH that changes is more work then it solves.


Remove CairoLS from the repository

➡ https://github.com/software-mansion/cairols

This change is


Feature/add caching grid files and conversion script

What
commit 1b5de6e1d89a5469f439fba73df7cc011ead7821 (HEAD -> feature/add-caching-grid-files-and-conversion-script, origin/feature/add-caching-grid-files-and-conversion-script)
Author: Vivian Allen<EMAIL_ADDRESS>Date:   Wed May 4 20:00:17 2022 +0100
add quads caching-grid as long,lat bbox JSON

commit 7ac526212f6114fc81fab89bef593197818a9b59
Author: Vivian Allen<EMAIL_ADDRESS>Date:   Wed May 4 19:58:35 2022 +0100
add caching-grids/tilesToBBoxes.js, converts tile grid files to long,lat bboxes

How to review
read the code
Who can review
Anyone but especially @petem-methods

this should be part of a larger PR for caching-grids in general - cancelled


test.tscn Unexpected end of file

First of all I think you did an amazing job on integrating TSF in Godot and I would love to check it out!
I cloned the project and tried to load it with Godot, but when I want to open the test.tscn, I encounter the error: "Unexpected end of file 'test.tscn'".
The error in the console says: "Can't create sub resource of type: AudioStreamGenerator".
Do you have any clue what I did wrong? Thanks a lot in advance!
I am using Godot 3.1 on a Windows 10 OS.

Not sure, but I think AudioStreamGenerator was introduced in Godot 3.1.1. Could you test with this release ?

 I used 3.1, but with 3.1.1 it seems to be working!
It might not be the appropiate place to say this, but I really appreciate the work you did here, thanks a lot!


fix[button]: component audit

fix[button]: component audit

[x] Buttons should use tokens for colors, not call out to ibm-color variables directly

[x] Ghost button needs to have 16 px in these areas as speced; remove the minimum width rule from only our ghost buttons to acheive this (See spec)

[x]  Remove dark boarder around secondary button on hover (there should be no visible boarder based on design spec)

[x] Fix small secondary button hover state too, it has the same problem as the large one with the dark boarder on hover

progress from orphaned PR https://github.com/IBM/carbon-components/pull/1880 has been moved to https://github.com/IBM/carbon-components/pull/1930

related: #1935

do we still have primary danger buttons in v10? or is that for v9 only?

we still have primary danger buttons yes, only the secondary danger buttons have been removed

@jeanservaas is this the right document for tokens https://ibm.ent.box.com/notes/356863403068? I'm not sure which tokens to use for primary danger buttons
also for the secondary button hover border, I'm not able to replicate it (unless I'm looking at the wrong part)

Quick spec fix for ghost button -- @laurenmrice has also updated it in the kit

[ ] there is 8px of space between the 16px icon and the type (not 4px)

[ ] remove extra right padding on ghost button hover... it only has 16px of padding after the icon

@emyarod Danger button tokens:
$text-04
(if there's an icon, it would be $icon-03)
$support-01
$hover-danger


A fallback GUI to communicate with the user

It would be nice to be able to communicate with the user via some sort of GUI. When Flexx is used from Python its often enough to print an error to the terminal, but in deployed apps this is not friendly and sometimes there simply is no terminal.
Possibilities:

Something based on OpenGL. The current flexx.lui is a start in that direction, but should probably be removed. You'd need a lib to create the window for you, e.g. glfw, which is very small, but you'd need one for each platform that you want to support.
Using ctypes and native calls: https://github.com/zoofIO/flexx/issues/222#issuecomment-249500840 though this would require a different implementation for Windows/OSX/Linux. Is it even possible to do on each platform?
Using a simple web page (no JS). We're running Tornado already anyway (though what if we want to tell the user that Tornado is missing?). At least this approach should just work anywhere and should be relatively easy to maintain.

cc @niki-sp

https://github.com/cztomczak/cefpython ?

Similarly like Django had /admin you could make a URL handler for showing logs and whatnot. Webapp2 has something similar.

https://en.wikipedia.org/wiki/Zenity seems to be available on most Linux machines.

OSX: osascript -e 'tell app "SystemUIServer" to display dialog "bla bla"'


Cov check

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Please check the following list:

[ ]  Does the affected code have corresponding tests, e.g. unit test, E2E test?
[ ]  Does this change require a documentation update?
[ ]  Does this introduce breaking changes that would require an announcement or bumping the major version?
[ ]  Do all new files have an appropriate license header?

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

Comparison is base (03ff401) 79.91% compared to head (a61653e) 79.91%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main       #6   +/-   ##
=======================================
  Coverage   79.91%   79.91%
=======================================
  Files          67       67
  Lines        3684     3684
=======================================
  Hits         2944     2944
  Misses        522      522
  Partials      218      218

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


Transport closing when client is idle

Currently, the client opens a connection when the client is created and keeps it open even when idle. The connection can then be terminated if it's idle for too long.
However, there are cases when the gRPC library cannot determine connection state precisely and may fail the first request with transport closing after being idle for long enough.
The solution is to use a grpc.WithKeepaliveParams to keep the connection healthy while idle. We can either hard-code it or allow passing additional DialOptions when creating a client.

It sounds to me as if there may be a bug in how we are using gRPC. Once we have a gRPC stub open, it should transparently re-connect as needed (even if the underlying connection actually went away due to a timeout) provided the resolver can still find a valid network address for the stub to connect to.
It seems like a good idea to let idle connections close, since otherwise they are tying up a descriptor, but there may be some combination of options we can set to ensure the stub will correctly reconnect on a timeout.

I was also thinking that we are using it in the wrong way, but I can't find anything relevant in the code.
Also, here is the log (after idling):
2019/06/24 18:23:23 State of bblfish client is READY - Filename App.java
2019/06/24 18:23:47 Babelfish can't parse the file App.java rpc error: code = Unavailable desc = transport is closing
2019/06/24 18:23:47 State of bblfish client is CONNECTING - Filename Cache.java
2019/06/24 18:23:47 State of bblfish client is READY - Filename command/Command.java
2019/06/24 18:23:47 State of bblfish client is READY - Filename command/CommandFactory.java

So gRPC thinks that the channel is alive (as seen by READY status), and tries to send the parse request. Then for some reason, it returns the transport is closing to the client instead of reconnecting the underlying TCP connection. The next parse request is sent during CONNECTING status and eventually succeeds when the connection is re-established. So it may be a bug in gRPC after all.
In any case, allowing to set additional dial options sounds useful, so I'll PR it shortly.

I wonder if maybe gRPC only reconnects if there is a different address it can use, i.e., another endpoint in a load-balancing channel, rather than the original?

It would make sense if it tries to connect, fails and then returns an error because there is only one endpoint, but that's not that case, as far as I know.
Related: https://github.com/grpc/grpc-go/issues/2443

Related: grpc/grpc-go#2443

Great find @dennwc !
So does it mean that we should set grpc.KeepaliveEnforcementPolicy and PermitWithoutStream=true on the server as well, to enforce keepalive packets coming?

@bzz Good point! We probably should.

Most probably should be good to close as soon as #299 and #127 are merged now


GT-212 | Update docs for ArangoDeploymentSpec, add id group

added new fields to spec.<group>.*
added special id group description

https://deploy-preview-1406--zealous-morse-14392b.netlify.app/docs/3.10/deployment-kubernetes-deployment-resource.html

@nerpaula feel free to merge as soon as approved by you and someone from @arangodb/team-golang
All described fields are already in production.


Can you share your pretrained models?

Particularly the one for your final best submission.
Thanks a lot for sharing your great work.

Hi there , do u have the pretrained models ?

Hi there , do u have the pretrained models ?

Hey guys, sorry for the delay. Here are the weights and a corresponding training log.

Hey guys, sorry for the delay. Here are the weights and a corresponding training log.

Hi @tyomj , The above link doesn't work anymore. Could you please update the weights
Thanks a lot for sharing your work.


Better application name matching in log file names.

"AppLite ..." will not match when application name is "App".

There is no reason in keeping this open.
About keeping open issues, it seems that we do have something to loose here.
CocoaPods is computing a score for each library and they use the score for ranking and to visually recommend libraries. https://cocoapods.org/pods/CocoaLumberjack/quality. Version 2.0.3 had a score of 91. I managed to increase that to 111 by: adding a changelog, adding documentation via comments (http://cocoadocs.org/docsets/CocoaLumberjack/) - increased from 33% to 70%, improving our readme and the most important: reducing our number of open issues to under 50. See details about the score computation here: https://guides.cocoapods.org/making/quality-indexes. Bottom line is they consider a project with more than 50 open items as abandoned and I kind of agree. As we've both seen, there are periods when people just add issues over issues end we don't have time to close them, so they pile up. So I suggest we keep them to a minimum. This is the way Mattt Thompson was running things on AFNetworking, never more than 20 open issues, most of the times under 10. He was cleaning them up weekly and closing things that were not problems or features he didn't want. Now look at AFN after he has passed it to some other maintainers. 70+ issues.


install issue

Expected Behavior
install graspy
Actual Behavior
process exited
(from what I can tell it's an issue related to hyppos numba dependency)
Template Code
pip3 install graspy

Full Traceback
Collecting graspy
Collecting hyppo>=0.1.3 (from graspy)
Collecting scikit-learn>=0.19.1 (from graspy)
  Using cached https://files.pythonhosted.org/packages/5c/a1/273def87037a7fb010512bbc5901c31cfddfca8080bc63b42b26e3cc55b3/scikit_learn-0.23.2-cp36-cp36m-manylinux1_x86_64.whl
Collecting matplotlib>=3.0.0 (from graspy)
  Using cached https://files.pythonhosted.org/packages/96/a7/b6fa244fd8a8814ef9408c8a5a7e4ed0340e232a6f0ce2046b42e50672c0/matplotlib-3.3.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting networkx>=2.1 (from graspy)
  Using cached https://files.pythonhosted.org/packages/9b/cd/dc52755d30ba41c60243235460961fc28022e5b6731f16c268667625baea/networkx-2.5-py3-none-any.whl
Collecting seaborn>=0.9.0 (from graspy)
  Using cached https://files.pythonhosted.org/packages/c7/e6/54aaaafd0b87f51dfba92ba73da94151aa3bc179e5fe88fc5dfb3038e860/seaborn-0.10.1-py3-none-any.whl
Collecting numpy>=1.8.1 (from graspy)
  Using cached https://files.pythonhosted.org/packages/22/e7/4b2bdddb99f5f631d8c1de259897c2b7d65dcfcc1e0a6fd17a7f62923500/numpy-1.19.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting scipy>=1.1.0 (from graspy)
  Using cached https://files.pythonhosted.org/packages/2b/a8/f4c66eb529bb252d50e83dbf2909c6502e2f857550f22571ed8556f62d95/scipy-1.5.2-cp36-cp36m-manylinux1_x86_64.whl
Collecting numba>=0.46 (from hyppo>=0.1.3->graspy)
Collecting joblib>=0.11 (from scikit-learn>=0.19.1->graspy)
  Using cached https://files.pythonhosted.org/packages/51/dd/0e015051b4a27ec5a58b02ab774059f3289a94b0906f880a3f9507e74f38/joblib-0.16.0-py3-none-any.whl
Collecting threadpoolctl>=2.0.0 (from scikit-learn>=0.19.1->graspy)
  Using cached https://files.pythonhosted.org/packages/f7/12/ec3f2e203afa394a149911729357aa48affc59c20e2c1c8297a60f33f133/threadpoolctl-2.1.0-py3-none-any.whl
Collecting certifi>=2020.06.20 (from matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 (from matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl
Collecting cycler>=0.10 (from matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Collecting pillow>=6.2.0 (from matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/30/bf/92385b4262178ca22b34f82e0e09c2922eb351fe39f3cc7b8ba9ea555b41/Pillow-7.2.0-cp36-cp36m-manylinux1_x86_64.whl
Collecting python-dateutil>=2.1 (from matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl
Collecting kiwisolver>=1.0.1 (from matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/ae/23/147de658aabbf968324551ea22c0c13a00284c4ef49a77002e91f79657b7/kiwisolver-1.2.0-cp36-cp36m-manylinux1_x86_64.whl
Collecting decorator>=4.3.0 (from networkx>=2.1->graspy)
  Using cached https://files.pythonhosted.org/packages/ed/1b/72a1821152d07cf1d8b6fce298aeb06a7eb90f4d6d41acec9861e7cc6df0/decorator-4.4.2-py2.py3-none-any.whl
Collecting pandas>=0.22.0 (from seaborn>=0.9.0->graspy)
  Using cached https://files.pythonhosted.org/packages/a1/c6/9ac4ae44c24c787a1738e5fb34dd987ada6533de5905a041aa6d5bea4553/pandas-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting setuptools (from numba>=0.46->hyppo>=0.1.3->graspy)
  Using cached https://files.pythonhosted.org/packages/c3/a9/5dc32465951cf4812e9e93b4ad2d314893c2fa6d5f66ce5c057af6e76d85/setuptools-49.6.0-py3-none-any.whl
Collecting llvmlite<0.35,>=0.34.0.dev0 (from numba>=0.46->hyppo>=0.1.3->graspy)
  Using cached https://files.pythonhosted.org/packages/0b/96/07bfa93a103fb9e3e9ae7f9f7c6687ae714aee66b6f3000da3fad71e0aa2/llvmlite-0.34.0.tar.gz
Collecting six (from cycler>=0.10->matplotlib>=3.0.0->graspy)
  Using cached https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Collecting pytz>=2017.2 (from pandas>=0.22.0->seaborn>=0.9.0->graspy)
  Using cached https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl
Building wheels for collected packages: llvmlite
  Running setup.py bdist_wheel for llvmlite: started
  Running setup.py bdist_wheel for llvmlite: finished with status 'error'
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ogxz66p6/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpkn1dbrsjpip-wheel- --python-tag cp36:
  running bdist_wheel
  /usr/bin/python3 /tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py
  LLVM version... Traceback (most recent call last):
    File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 105, in main_posix
      out = subprocess.check_output([llvm_config, '--version'])
    File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
      **kwargs).stdout
    File "/usr/lib/python3.6/subprocess.py", line 423, in run
      with Popen(*popenargs, **kwargs) as process:
    File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
      restore_signals, start_new_session)
    File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
      raise child_exception_type(errno_num, err_msg, err_filename)
  FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config': 'llvm-config'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 191, in <module>
      main()
    File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 181, in main
      main_posix('linux', '.so')
    File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 108, in main_posix
      "to the path for llvm-config" % (llvm_config,))
  RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
  error: command '/usr/bin/python3' failed with exit status 1

  ----------------------------------------
  Running setup.py clean for llvmlite
Failed to build llvmlite
Installing collected packages: setuptools, llvmlite, numpy, numba, joblib, scipy, threadpoolctl, scikit-learn, hyppo, certifi, pyparsing, six, cycler, pillow, python-dateutil, kiwisolver, matplotlib, decorator, networkx, pytz, pandas, seaborn, graspy
  Running setup.py install for llvmlite: started
    Running setup.py install for llvmlite: finished with status 'error'
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ogxz66p6/llvmlite/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-t6wf4b_5-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:
    running install
    running build
    got version from file /tmp/pip-build-ogxz66p6/llvmlite/llvmlite/_version.py {'version': '0.34.0', 'full': 'c5889c9e98c6b19d5d85ebdd982d64a03931f8e2'}
    running build_ext
    /usr/bin/python3 /tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py
    LLVM version... Traceback (most recent call last):
      File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 105, in main_posix
        out = subprocess.check_output([llvm_config, '--version'])
      File "/usr/lib/python3.6/subprocess.py", line 356, in check_output
        **kwargs).stdout
      File "/usr/lib/python3.6/subprocess.py", line 423, in run
        with Popen(*popenargs, **kwargs) as process:
      File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
        restore_signals, start_new_session)
      File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config': 'llvm-config'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 191, in <module>
        main()
      File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 181, in main
        main_posix('linux', '.so')
      File "/tmp/pip-build-ogxz66p6/llvmlite/ffi/build.py", line 108, in main_posix
        "to the path for llvm-config" % (llvm_config,))
    RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
    error: command '/usr/bin/python3' failed with exit status 1

    ----------------------------------------

Python version: 3.6.9
GraSPy version: 0.3.0

@sampan501 before we look into this, are you aware of this issue already? looks like it is upstream of you maybe but probably worth knowing about
@hhelm10 one thing you can try is installing a version of numba that is 1 or 2 versions old (they just released a new one) but I don't know if that is related. maybe it's worth starting a clean environment, and literally just try to install numba, and see what happens?

It looks like an issue upstream of me. I can testing which ones work properly and just limit installation to that version

@hhelm10 are you running on a Raspberry PI https://github.com/numba/llvmlite/issues/604 🤣
But srsly, I bet that issue can help you out. My guess is that this issue is specific to whatever platform/environment you have going, so may be hard for us to help debug. lmk if the comments on that issue help, or how the clean environment numba install goes?

I'll take a look and will let you know how I end up fixing it!
Thanks guys @bdpedigo @sampan501

https://github.com/numba/numba/issues/6174
@hhelm10 what your pip version?

9.0.1!

did u just say 9

9.0.1!

:frowning:

9.0.1!

You know the latest one's like 20 right?

Interesting; working from a new Azure VM. Upgraded to 20.2.2 and install worked with no problems.