Add Python 3.9 support to setup.py and CI

Change AppVeyor image from 2017 to Visual Studio 2019
Rename environment variable GEOSVERSION -> GEOS_VERSION
Rename environment variable GEOSINSTALL -> GEOS_INSTALL
Copy build_geos.cmd and install_geos.sh from master

This is similar to #1011, but for the maint-1.7 branch.

Coverage remained the same at 81.916% when pulling 6ca188500a5a7a8c7b78e67e665866c2d9b2d6bd on mwtoews:maint-1.7-py-3.9 into 7f4476aa91718c5317e04d66a7e25b363ec502f3 on Toblerity:maint-1.7.

Coverage remained the same at 81.916% when pulling 6ca188500a5a7a8c7b78e67e665866c2d9b2d6bd on mwtoews:maint-1.7-py-3.9 into 7f4476aa91718c5317e04d66a7e25b363ec502f3 on Toblerity:maint-1.7.


Update mask.js

This fixes a wired IE bug when pressing Ctrl+Z: IE doubles the input value.
Now the value is deleted (the behavior is copied from FireFox one).

Could you provide a test for this functionality?

Sorry for the delay. Added a test (this actually is a copy on one in my project, so I'm not sure if it's ok for you).
Formatting - github's web editor is a bit strange.

So, it looks like your test is failing because you are trying to use jQuery which is not an included file for these tests. Could you please modify your test to not use jQuery?

I've changed the test. Don't really understand why it's failing - the same test works well for me.

Your test is failing in IE. Probably one of the event methods you are using is unsupported or conditionally supported... got to love IE...

I looked into the issue further and it looks like the problem is stemming from using document.createEventObject in conjunction with el.dispatchEvent.
document.createEventObject was apparently made to support IE's custom fireEvent function but the event object it creates does not play nicely with the dispatchEvent function. The problem is that IE 9 and 10 support dispatchEvent and document.createEventObject which is why your test is failing based on how you check for what functions to execute.
I tested it myself and you can remove the document.createEventObject code and the fireEvent code which simplifies things in your test too which is nice and it works in IE 9 and 10.

Thanks, the test is now passing


Ability to upload image directly to S3

I am planning to host an instance of wagtail on EC2 and I want all content stored separately from the host machine. It would be ideal if I could upload images directly to S3 and serve them from there.

Hi all,
I was able to implement a remote storage backend (FTP, in my case). I suspect that S3 is not very different. See https://github.com/sixpearls/wagtail-storageimage
Right now it's dependent on a couple pull requests. An FTP specific PR for django-storages-redux and small tweak to Willow to handle the stream object that the FTP backend holds in memory.
Uploading and creating renditions is slow. If I figure out the best way to generate the renditions on creation, it may not be too bad.


include scalaVersion in the scoinJVM subproject

In order to successfully do scoinJVM/publishLocal I had to comment out all your sonatype/maven stuff in your build.sbt, so we will need to somehow fix that at some point. I left those in lines in there for now.
Here I just added a simple line that sets the scala version for the jvm project. With that line in there (and the others commented out), I was able to publish a local jvm artifact and pull it into another project.

I think it would work without this scalaVersion if you just prefix the commands with +. That's how I do here, perhaps it is related to the crossScalaVersions variable that is set there.
I wonder if it will break crossScalaVersions flow if there is a hardcoded scalaVersion.

I still do not know what this + syntax is for sbt and why it would be related to the version. It makes me think that somehow this was an issue isolated to my own system anyway. Closing.


[WIP] Initial, very WIP work on Go runner

Seriously this is very WIP - lots of stuff still has to get worked out. I'll try to update this with where my thinking is at, but right now I'm just using this as a sandbox
I created https://github.com/Mierdin/stackstorm-goexamples as an example pack for testing this runner.

Closing. Please reopen if you are actively working on this @Mierdin .


CET disables input whenever it is used or enabled

I installed CET on 1.31 to use mods. I thought a mod was causing it but CET was the culprit (disabled everything but CET).

Definitely problem with some other overlay. Look through troubleshooting guide, there are listed some known ones to cause issues with workarounds for few.
If it doesnt help, we cant help you much...
Is something that is on your computer.
https://wiki.redmodding.org/cyber-engine-tweaks/getting-started/installing/troubleshooting


what difference between constructor and getInitState?

Recently I read some codes about React Native.And some are using constructor to init the component, the other is using getInitState , apparently they both work well. But I want to know what difference between them.
I guess if constructor suit for ES6 and getInitState is the old version?
please save my curiosity……
getInitState code like this
var photographyService = React.createClass({
propTypes:{
operate : PropTypes.string,
goodsID : PropTypes.string,
},
getInitialState: function(){
return{
sourceDic : null,
isShowLimit : false,
limitOption : null,
changeValue : null,
changeValueOfKey : null,
content_array : new Array(),
timeZoneOffsetInHours: (-1) * (new Date()).getTimezoneOffset() / 60,
date: new Date(),
showDatePickerView : false,
KeyBoardHeight : 0,
is_loading:false,
saving : false
};
},
And constructor like this
constructor(props) {
super(props);
this.state = {
_text_off_y:0,
KeyBoardHeight:0,
is_loading:false,
subscription:null,
notificationCenter:null,
_current_select:0,
}

Constructor is for ES6 compliance

ok,thks@adarshmuthappa

@adarshmuthappa Is correct.
@Jerrylingit Could you close this issue out if it answered your question? Thanks!


Deicde if excludes and additionalFilenameExtensions are client only configuration values

Situation
At the moment we provide

excludes
additionalFilenameExtensions

in sechub configurationfiles. But we only use this at sechub client side. The information about the excludes or additional file name extensions i currently not given to server side.
While implementing #1098 it was unclear how we handle this in future
Wanted
Clarification/Decision if we keep this "client only" or take it to the server side model as well

We decided to keep this "as is", so it is only an information for the go client. On server side we do not care about source excludes or includes.
But we need to document that this is only used at client side and that the server will scan all uploaded data.


Fix branch references in the v3.0.0 branch of the catalogue repo

/assign @efiacor @radoslawc @arora-sagar

/lgmt


On install - error 'The use statement with non-compound name 'AuthorizeNetRequest' has no effect'

Also then can't uninstall the package, as it throws the error (as the install didn't get far enough):
An exception occurred while executing 'SELECT pmID FROM VividStorePaymentMethods WHERE pmHandle=?' with params ["auth_net"]: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'concrete5-7-5.VividStorePaymentMethods' doesn't exist

I think I hadn't pulled down latest commits, closin'


How is the 24H APR value calculated?

If I get APR 24H = 204.42% (Trade fees 202.78% , RAY 1.64%) for SOL-USDC pair in V3 concentrated pools.
Current Liquidity= $5102803; Vol 24H = $56697714;  Fees 24H = $28349
so..How to calculate APR 24H?

The evaluation calculation of clmm apr is different from that of amm because it depends on the pool price and market making range. We use several different algorithms.
You can refer to this link: https://docs.raydium.io/raydium/liquidity-providers/providing-concentrated-liquidity-clmm/estimated-apr-calculations


Question client SDK

I see there is an endpoint to upload KYC document in this NodeJs SDK.
But KYC document should not be stored on our server.
Is there a client SDK to upload directly KYC document from browser to MangoPay server ?
KYC documents should not be uploaded to my own server. Otherwise I need upload KYC document with chunk, but storing KYC document on my server is not allowed.

Hello @Akta3d and thanks for your question ! (and very sorry for this delay).
There's no client SDK yet (or any helper as we can provide you for card registration).
That's a very good point we could think about.
Yet, you can only send this file as a base64 encoded string and then delete it from your server.

Thank for your response,
Actually I send KYC document on the server, and the server send the document to MangoPay.
All is done.
But we have user with bad internet connexion and we need chunk these upload.
But I can't store any chunk on my server (We are not allowed).
I understand that there is no client SDK.
Perhaps an enhancement of the server SDK is the possibility to send KYC document chunk by chunk ?


occamy: Add APB port to HBM controller

This PR adds an APB port to Occamy that can be connected to the HBM's controller. Within Occamy, the APB port is connected to the peripheral xbar.
To keep the APB aligned with the rest of the system, solder is extended by APB primitives. Furthermore, the APB repository of pulp-platform is included and used. On the occamy_xilinx level, the APB port is exploded, so that it is recognised by Vivado.

Right now I was wondering whether we could actually attach the APB to an AXI crossbar we instantiate in the block design (driven by the PCIe master port). We are going to need this crossbar anyway (for the SPI and UART) and I am pretty sure Xilinx has the AXI to APB protocol converter.
Rationale: Right now I can't see that our ASIC HBM controller is going to have a similar port so I don't think we'll need that port on the shared RTL.
Does that make sense?

Sure, if the ASIC doesn't use it, this is probably not the right place for it. Do you think we can use parts of this PR anyways (e.g. the APB support)? In this case, I would open a new PR.

Most definitely! I am pretty sure we are going to need the APB support sooner than later. So that is useful and we should merge it.

Closed in favour of https://github.com/pulp-platform/snitch/pull/136.


Test-DbaJobOwner not defaulting to sa

Bug Report
In the documentation for this function it states "By default, the function will check against ‘sa’ for ownership", however, when I ran it:
Test-DbaJobOwner -SqlServer MyServer
It incorrectly returned that all my jobs where owned by sa, because the target shows as blank:
Server       : MyServer
Job          : MyFirstJob
CurrentOwner : sa
TargetOwner  :
OwnerMatch   : False
General Troubleshooting steps
This works perfectly for the function test-dbaDatabaseOwner.
I've had a quick look at the code for both and the logic for sa is different between them.
dbaDatabaseOwner
				$TargetLogin = ($server.logins | Where-Object { $_.id -eq 1 }).Name
 			}

vs
dbaJobOwner
 				$Login = "sa"
 			}
 			# dynamic sa name for orgs who have changed their sa name
 			if ($Login -eq "sa") {
 				$Login = ($server.Logins | Where-Object { $_.id -eq 1 }).Name
 			}

I'm not sure that the test is correct in the JobOwner function and could be more inclusive to test for sa or empty string?
if ($Login -eq "sa" -or $Login.Length = 0)
Version Information

Operating System (Name|Version): Windows 2012R2
PowerShell Version: 5.1.14409.1012
SQL Server (Edition|Version): SQL Server 2014 (SP2-CU3) Standard (have also tested against 2008 --> 2016SP1)

Steps to Reproduce
Test-DbaJobOwner -SqlServer MyServer
returns blank target
Work Around
As a work around adding the parameter -Login sa does resolve the issue; this is more a consistency thing between functions.

closed via https://github.com/sqlcollaborative/dbatools/commit/27ceb7124b3e41b6198d1112ec5604ee3a6c3a91#diff-f6bcafef9459d3aabf5fda70c7280d7f


🚧Add checks only option to release targets

Complete The Item Below

[X] I have updated the title without removing the 🚧 emoji.

Description
Currently, all targets first run a list of checks before the actual target executes.  If all of these checks return true which means that the check was successful, then the target will run.  The release targets Preview and Production both do this as well.  The problem is that there is a use case for the purpose of debugging to only run the checks without executing the actual target.
An example of this would be wanting to dry-run the release targets locally to verify that everything checks out first without performing the actual release.  This feature would accomplish this.

What to implement:
Add a build parameter with the name --checks-only --release-checks-only.   This will require a NUKE parameter with a property with a getter and setter with a backing field.  The reason for the full prop instead of the auto prop is due to needing to have the setter execute to check that a parameter has been used in the CLI command.  If the setter is being executed, this means that the CLI command switch was used.  At this point, the getter should flip a flag that can be used by the targets to see if the target should execute.
Refer to the use cases below:

To run the checks AND execute the target:

Do not use the switch

Example: dotnet cicd PreviewRelease

To run the checks ONLY and NOT execute the target

Use the switch

Example: `dotnet cicd PreviewRelease --checks-only
Example: dotnet cicd PreviewRelease --release-checks-only

Acceptance Criteria

[ ] New command parameter added to the project.
[ ] All targets that contain an execute implementation should check for execution
[ ] All targets that use the option, should print a warning to the console that the target is being skipped.

ToDo Items

[X] Change type labels added to this issue.  Refer to the Change Type Labels section below.
[X] Priority label added to this issue.  Refer to the Priority Type Labels section below.
[X] Issue linked to the correct project (if applicable).
[X] Issue linked to the correct milestone (if applicable).
[x] Draft pull request created and linked to this issue (only required with code changes).

Issue Dependencies
No response
Related Work
No response
Additional Information:
Change Type Labels

Change Type
Label

Bug Fixes
🐛bug

Breaking Changes
🧨breaking changes

New Feature
✨new feature

Workflow Changes
workflow

Code Doc Changes
🗒documentation/code

Product Doc Changes
📝documentation/product

Priority Type Labels

Priority Type
Label

Low Priority
low priority

Medium Priority
medium priority

High Priority
high priority

Code of Conduct

[X] I agree to follow this project's Code of Conduct.

Changed the required switch name from --checks-only to --release-checks-only


Installation via docker-ce / Portainer.io

Would it be possible to create instructions or whatever is needed to get this running using docker-ce/Portainer? (apologies if my terminology isn't 100% correct)

@Grubs - I personally do not use portainer. It may be worth asking in a more general forum if anyone can point you in the right direction.


[occm] Add initial support for dual-stack k8s services

Signed-off-by: Rastislav Szabo<EMAIL_ADDRESS>
What this PR does / why we need it:
This PR adds initial support for IPv4 / IPv6 dual-stack kubernetes services. The aim was to create a minimal change that would fix as much as possible without the need for a larger code refactor. Therefore, with this change, OCCM is able to create either IPv4 or IPv6 load-balancer in a dual-stack clusters, based on the preference indicated in service's spec.ipFamilies:

If IPv4 is the first, it would create an IPv4 load-balancer.
If IPv6 is the first, it would create an IPv6 load-balancer.
This PR does not address creating 2 load-balancers if both address families are specified in spec.ipFamilies as that would require a larger code change.

Which issue this PR fixes(if applicable):
fixes #1897 (partially, a new issue for full dual-stack support with 2 LBs in case of 2 spec.ipFamilies to be created after this is merged)
Special notes for reviewers:

The change should be backward compatible and should not affect single-stack clusters.
Only the code path for Octavia LB has been covered, legacy code path does not pass any preferredIPFamily to the methods shared with the Octavia code path - and should not be affected.
The globally shared lbaas.opts.SubnetID  should not be used to store subnet ID in the Octavia code path. With dual-stack, clusters have at last 2 subnets (one IPv4 and one IPv6), and therefore storing it in a globally shared variable does not work.

Release note:

[occm] Add initial support for dual-stack k8s services.

/ok-to-test

THanks for the PR, really helpful feature~
minor question, we should have some kind of CI cases in follow up PR so we will make sure no break by other PRs later on?

THanks for the PR, really helpful feature~
minor question, we should have some kind of CI cases in follow up PR so we will make sure no break by other PRs later on?

Yes, definitely. I think I will create 2 new issues for follow-up:

CI task
dual load-balancer support

/lgtm
@chrigl @zetaab maybe you can give some insight? THanks

I love it!
I will give it a try on my OpenStack over the weekend. From my point of view we can extend occm testing until v1.25. At the moment we lack some testing due to the openlab -> prow migration.
This PR will conflict #1882 , however, will not be great of a problem.

Works here as well. v4 is also still working
@lingxiankong Do you have any concerns? Maybe something I missed?

Works here as well. v4 is also still working
@lingxiankong Do you have any concerns? Maybe something I missed?

/retest

Hey @chrigl / @jichenjc / @zetaab is there anything I can do to move this forward?

/approve


[hotfix] Anonymous users get redirected to the login page

Description
Fixes #6443
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Manually

Checklist:

[ ] 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

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: fix-public-apps

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
53.41 (0)
34.99 (0.02)
31.54 (0)
53.96 (0.01)

:red_circle:
app/client/src/sagas/userSagas.tsx
16.75 (-0.08)
1.85 (0)
5.88 (0)
20 (-0.12)

:green_circle:
app/client/src/utils/autocomplete/TernServer.ts
50.71 (0.24)
38.6 (0.88)
36.21 (0)
55.35 (0.27)

/ok-to-test sha=28d98fe


Wrong version of Microsoft.PowerBi.Core referenced in ProvisionSample

Currently with the ProvisionSample, a clean clone will reference the package Microsoft.PowerBi.Core 1.1.3. However, the Program.cs file requires the PowerBIToken class which is in the Microsoft.PowerBI.Security namespace and only available in version 1.1.5 of the Microsoft.PowerBi.Core assembly.
This means you have to update the nugget package before the project will build.

Can confirm.  The pull request fixes the issue for me.

Well the real issue you have is a bad reference that I've fixed in #55 but if your PR get merged in I'm glad as well.


Question: How does the icon parameter work on MacOs?

I have used app: "firefox" with good outcomes.
I do not understand how name: [freedesktop.org name] is supposed to work.
Does that work on macOs?
Awesome library!

Hi, I'm currently working on a documentation/platform-specific rewrite to make things easier to understand. Essentially, macOS does not really support custom icons. So what you do is you pass it the app option so the notification can pretend it was sent from that app.
For example, if you wanted to use the Safari icon, you'd use { app: "Safari" } so the notification can pretend it was sent from Safari.
You might get good outcomes with the name option on other platforms, but I don't think they work on macOS. They're meant for unix notifications which might have support for icons using the names specified by freedesktop.org.
Hope that clarifies things!

Yes it does, thank you :)


about the paired datasets generated by stylegan

how do you make sure the background and expression similarity between the generated input(face) and target(style face) ? I find that the style is too weak when less finetune and the similarity is too weak when more finetune, how do you solve it ? Would you like to share the paired datasets generated code with me ? thanks a lot ~

That's solved by trial and error :D You train a bit, check results, train more, and so on.


pKa analysis

This PR adds pKa analysis for the pKa challenge.

I don't think it's actually necessary to obtain the micro pKa values as part of obtaining macro pKa's. I think we should just be working in terms of population and free energy.

Could you write something, for the record, here about what analysis is implemented/where it came from/how it was checked? It's really good to have this information attached to the PR itself, @bergazin

Could you write something, for the record, here about what analysis is implemented/where it came from/how it was checked? It's really good to have this information attached to the PR itself, @bergazin

@davidlmobley Updates made. Let me know if it's ok to merge.

@davidlmobley Updates made. Let me know if it's ok to merge.

Looks good.
For the record, we have checked the Selwa method, which is implemented here, against Nicolas Tielker's implementation (Stefan Kast's group); this uses the same technique. Results agree exactly. We were also able to obtain agreement with the Gunner group's methods.

Looks good.
For the record, we have checked the Selwa method, which is implemented here, against Nicolas Tielker's implementation (Stefan Kast's group); this uses the same technique. Results agree exactly. We were also able to obtain agreement with the Gunner group's methods.


Have br-address be ordered-by user

The br-address list must be ordered-by user since we have the "br" leaf under softwire that is supposed to reference into br-address through a zero-based index. Overall this is a tricky solution since such zero-based index isn't really a part of YANG but rather the programming language used to hold the instance data. Thus, when we set the software/br leaf we rely on the order in which it exists, to avoid the list being resorted we have to specify that it is to be ordered-by user.
Part of #636.

I wonder if this change would be needed after the br-addresses make over in #721 (remove the br-addresses container and make the br field of a softwire an actual IPv6 address instead of an index).

@dpino no, it would no longer be required since the ordered-by statement applies to the br-addresses list and that would be removed through #721 so there's nothing to apply the statement too ;)


training text classifier with soft probabilistic labels

Hi,
I'm trying to train a text binary classifier with soft probabilistic training labels. In other words, for every training sample the training label is a 2-dimensional vector whose 2 entries are probabilities of belonging to negative and positive class respectively. Is there a way to train e.g. BERT classifier with these soft labels?
If I understand correctly, the categorical_crossentropy loss function with softmax activation is used for binary classification, and should be able to handle soft labels with no changes required. But I am not sure about the preprocessing, since that seems to require that training samples are classified into positive and negative examples. For instance the text_from_folder function in the tutorial  requires positive and negative examples to be in different subfolders, and also the other text loading methods like text_from_df seem to require hard labels.
Thanks!

Hello,
This isn't an intended use case, but, in theory, it might still work.
I haven't tested it, but assuming you have a pandas dataframe that looks something like this:
 	text 	                neg 	pos
0 	The book is bad. 	0.95 	0.05
1 	This book is bad. 	0.95 	0.05
2 	The book is good. 	0.05 	0.95
3 	This book is good. 	0.05 	0.95
...

You can try something like this:

import ktrain
from ktrain import text
MODEL_NAME = 'distilbert-base-uncased'
labels = ['neg', 'pos']
t = text.Transformer(MODEL_NAME, maxlen=25, class_names=labels)
trn = t.preprocess_train(df.text.values, df[labels].values)
model = t.get_classifier()
learner = ktrain.get_learner(model, train_data=trn)

or you could feed df.text.values and df[labels].values to texts_from_array also.

@vmando:  From another issue, I realized that the transformers library (and, as a result, ktrain) cast labels to integers for classification problems.  So, this will make all of your softmax probability labels zero, which is problematic.  For regression problems in TensorFlow models, the transformer library seems to also (possibly incorrectly) cast dependent variable to int64.  I am looking into this and will try to correct this so float values are handled correctly wen using transformers for regression problems.
In the meantime, a possible workaround for you might be to transform your labels to integer values (eg., 0-1000) and treat problem as regression problem.

Thank you @amaiya . I did do the training using text_from_df and pandas dataframe as in your initial example, and it did seem to work and I got meaningful results. Could it be that Bert model specifically doesn't use the transformers library as the other models?

@vmando You're exactly right.  When you use bert as argument to text_classifier function, ktrain currently uses an implementation of BERT from a different library, which allows you to avoid the current transformers issue.   Glad to hear it is working.


Updating collection info + Inscriptions

Adding the second collection, daimyo-supply, included in the same pull request


NNPack+MXNet Build Fails on Raspberry Pi 3

Hello! I am attempting to install NNPack on my Raspberry Pi so I can accelerate my machine learning applications with MXNet 1.0. For this installation, I installed a clean version of the latest Raspbian OS (Stretch with Desktop, Kernel 4.9).
However, when I try to build NNPack together with MXNet it fails and I receive this error.
/home/pi/NNPACK/lib//libnnpack.a(init.c.o): In function `init_hwinfo':
/home/pi/NNPACK/src/init.c:426: undefined reference to `cpuinfo_isa'
/home/pi/NNPACK/lib//libnnpack.a(init.c.o): In function `nnp_initialize':
/home/pi/NNPACK/src/init.c:574: undefined reference to `cpuinfo_initialize'
/home/pi/NNPACK/lib//libnnpack.a(init.c.o): In function `nnp_deinitialize':
/home/pi/NNPACK/src/init.c:584: undefined reference to `cpuinfo_deinitialize'
collect2: error: ld returned 1 exit status
Makefile:421: recipe for target 'bin/im2rec' failed
make: *** [bin/im2rec] Error 1

After trying the instructions in the READMEs in this repository, I looked at other instructions found here and here. However, all have led to the same error.
Am I doing something wrong, or does NNPack only support a certain build of MXNet?
Thanks!

NNPACK's migrated to CMake as the primary build system, and MXNet's adaptation to this change it still work-in-progress, see apache/incubator-mxnet#9860 and cc @dabraude and @tqchen.
The error you see arises from not linking cpuinfo library, used in NNPACK to detect ISA features and cache sizes.

@nextseto Alternatively, you may try Caffe2, which integrates the latest NNPACK.

@Maratyszcza Hi, thank you for the explanation.
Since NNPack + MXNet was successfully installed in previous tutorials, what version of NNPack and MXNet would still work together?

Probably, but if you want a version that doesn't depend on cpuinfo, you'd have to go to a very old NNPACK revision. f824d521126fea15d01cb1da5cb9dab94602b525 is the last that didn't depend on cpuinfo

It wouldn't work even with an older version of nnpack as there was a rewrite of the operators, I haven't had a lot of time lately to work on it but hopefully next week I can.

Thanks @dabraude!
As a stopgap solution, MXNet 0.11 and NNPack 3627062 does still build.

Hello @nextseto, I'm the author of the two posts you mentioned ;)
I ran into the same issue, this is how you can built MXNet 1.1.0 with the latest NNPACK and cpuinfo libs. Using this build, I was able to successfully predict images with a pre-trained version of Inception v3.

Build NNPACK as explained

Build cpuinfo in a similar fashion
git clone https://github.com/Maratyszcza/cpuinfo.git
cd cpuinfo
add -fPIC to cflags and cxxflags in build.ninja
build cpuinfo: confu setup && python ./configure.py && ninja

Add these to the MXNet makefile (with your own directories, of course):
NNPACK = /home/pi/dev/NNPACK
CPUINFO = /home/pi/dev/cpuinfo
ADD_LDFLAGS = -L$(NNPACK)/lib/ -lnnpack -lpthreadpool -L$(CPUINFO)/lib/ -lcpuinfo
ADD_CFLAGS = -I$(NNPACK)/include/ -I$(NNPACK)/deps/pthreadpool/include/

Build and install MXNet.

I hope this helps... and I guess I need an updated version of my post!
Cheers to @Maratyszcza for building such great tools.


Transitive package references not followed

Please forgive me if this is a duplicate of something, or is filed in the wrong place; I have read several issues regarding reference handling errors and was not certain which most closely matches my symptoms.
Here is what I did to trigger this bug:

Create a Visual Studio solution.
In a subfolder, run dotnet new, then dotnet restore. I have modified the default csproj format slightly, to fit with the requirements and quirks of my larger project. In case this affects how it is parsed by Visual Studio, I have pasted the entire csproj file from my end below.
Add the generated csproj to the solution. Open the Program.cs file within the project.
Notice how the call to Console.WriteLine() in the example hello-world C# file does not parse properly. It tells me that "The name 'Console' does not exist in the current context." I am (supposedly) transitively referencing System.Console.dll through Microsoft.NETCore.App. However, this doesn't actually seem to be the case. Building using dotnet build at the command line also fails with the same error.

It is my understanding that referencing Microsoft.NETCore.App should also reference the appropriate DLLs from all the packages visible on the NuGet gallery. Unfortunately, this doesn't seem to be the case. If I add a <PackageReference> tag pointing to System.Console directly, then the issue goes away. Unfortunately, when I try that I run afoul of the problem described in my comment on #785. While transitive project references are not currently implemented (cf #199), this behavior concerning transitive package references seems to be caused by a different issue.

Here is the contents of the csproj file (slightly commented for readability):
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.0</TargetFramework>
    <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
    <AssemblyTitle>Windows Kernel Object Viewer</AssemblyTitle>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="**\*.cs" />
    <EmbeddedResource Include="**\*.resx" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETCore.App">
      <Version>1.0.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.NET.Sdk">
      <Version>1.0.0-alpha-20161026-2</Version>
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>

    <!-- Removing this line causes the error described above. -->
    <PackageReference Include="System.Console" Version="4.3.0" />

    <!-- These are references to other projects inside my solution. -->
    <ProjectReference Include="../../../Win32UI/src/Win32UI.Core/Win32UI.Core.csproj" />
    <ProjectReference Include="../../../Win32UI/src/Win32UI.MessageBox/Win32UI.MessageBox.csproj" />
    <ProjectReference Include="../../../Win32UI/src/Win32UI.TaskDialogs/Win32UI.TaskDialogs.csproj" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Update="Strings.resx">
      <Generator />
    </EmbeddedResource>
  </ItemGroup>

  <!-- This file itself imports Microsoft.CSharp.targets. -->
  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))/dir.targets" />
</Project>

I can't reproduce this with a file new project in VS 2017 RC2

@davidfowl Sorry I didn't get back to you earlier. I just created a brand-new project (dotnet new, unmodified), restored it, and it won't build. It complains that the Console type is not found, just as above. Creating the project using Visual Studio has the same issue, plus some complaints from MSBuild. (I will file an issue on dotnet/sdk about those.) Here is my dotnet --info output:
.NET Command Line Tools (1.0.0-preview4-004233)

Product Information:
 Version:            1.0.0-preview4-004233
 Commit SHA-1 hash:  8cec61c6f7

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.14393
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\1.0.0-preview4-004233

I will try updating my version of the CLI and get back to you if anything changes.

Closing this issue since the original transitive refs issue doesn't repro anymore.


Update blas, openmp dependencies

As blas-devel is not added as a run dependency, downstream packages see the following error due to missing blas-devel, which is needed by this package.
-- Found Dr.Jit: C:/Users/jeongseok/dev/tmp/test/.pixi/envs/default/Library/include (found version "0.4.6" )
CMake Error at .pixi/envs/default/Library/lib/cmake/Ceres/FindSuiteSparse.cmake:182 (message):
  Failed to find SuiteSparse - Did not find BLAS library (required for
  SuiteSparse).
Call Stack (most recent call first):
  .pixi/envs/default/Library/lib/cmake/Ceres/FindSuiteSparse.cmake:295 (suitesparse_report_not_found)
  C:/Program Files/CMake/share/cmake-3.23/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  .pixi/envs/default/Library/lib/cmake/Ceres/CeresConfig.cmake:181 (find_dependency)
  C:/Program Files/CMake/share/cmake-3.23/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  .pixi/envs/default/Library/lib/cmake/momentum/momentum-config.cmake:39 (find_dependency)
  CMakeLists.txt:5 (find_package)

The downstream package can resolve this by adding blas-devel explicitly, but it would be ideal to add it to the suitesparse package as it's a transitive dependency.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

@conda-forge-admin, please rerender

I think probably blas-devel actually shouldn't be used here either. It looks like we should probably be setting -DBLAS_LIBRARIES=blas;cblas;lapack to directly link blas instead of -DBLA_PREFER_PKGCONFIG=ON. Do you want to try to tackle that, or would you like me to have a go? Looking at the link check output, I think we might also be missing an explicit dependency on openmp in host:
  host:
    - llvm-openmp  # [osx]
    - libgomp  # [linux]

Thank you for taking a look into this issue and for your new findings! I'm happy to let you go ahead with the changes, which I greatly appreciate. Please let me know if there's anything else I can assist with.

@jeongseok-meta where are you seeing the missing blas error? Is it using a package at runtime, or is it during the build of something with conda-build? If it's conda-build, is it on conda-forge or built elsewhere? Does your package run cmake in user environments at runtime? I don't see these errors on conda-forge/momentum-feedstock, which makes me think it's elsewhere, and it would be helpful to know the circumstances.
Looking through some of the cmake files, I suspect that the changes here now, while I think they are correct for this repo, aren't going to fix your problem. The reason being that blas-devel is required for FindBLAS if netlib blas is not present. This is not a runtime requirement, but I think it does mean FindSuiteSparse will only succeed if netlib variants are present.
The problem also appears to not originate in suitesparse after all, but rather Ceres own custom FindSuiteSparse that's running into this. I don't know why Ceres isn't using direct find_package for the suitesparse components it uses (i.e. find_package(AMD), find_package(SQPR) etc.), which I think would work fine.

@jeongseok-meta I did some digging, and I believe what will actually fix your problem is https://github.com/conda-forge/suitesparse-feedstock/pull/97 not this. I'm going to merge this as the right change, but I don't think there's anything in suitesparse to fix ceres looking for a bunch of things it doesn't need when it's trying to find suitesparse.

Hi @minrk , thank you for putting in a lot of effort on this issue, and I apologize for not getting back to you earlier.
I see the missing blas error when running CMake with the Ceres dependency, similar to the test example you added (link). Based on your research, it indeed seems an issue with CeresSolver, but not with the suitesparse package. The momentum-fedstock didn't have the error because blas-devel is explicitly added (https://github.com/conda-forge/momentum-feedstock/blob/4fbe0b7e465f1cf9f8ccdc9e02eae79a45071626/recipe/meta.yaml#L67), which shouldn't be necessary if there isn't a transitive dependency issue from CeresSolver, I believe.
It sounds like I need to test with (link) once it's merged. Thank you again for your effort on this matter!


Feature: Formatting Query like fmt.Sprintf

Is your feature request related to a problem?
Please add formatting query function.
Like this one.
what := surrealdb.Format("SELECT * FROM user WHERE name = ?;", username")

You need to add like this function because SQL injection vulnerabilities occur frequently.
Describe the solution

Alternative methods

SurrealDB version

Contact Details
No response
Is there an existing issue for this?

[X] I have searched the existing issues

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Wow thank you
LGTM
Maybe I am blind...
Sorry!


monitor can't get metrics on prometheus

I have deploy this helm chart on my k8s on-premise.
for kafka, I have setup done and working fine.
But I can't get monitor metrics with prometheus and grafana.
I setup kafka with namespace is: kafka
and prometheus & grafana namespace is: monitoring
But I can't get metrics.
Can you help me?

Hi, I had the same problem. How did you set up your Prometheus? I'm using the kube-prometheus-stack and realized, that prometheus is not scraping the kafka metrics by default, because there is no service monitor.
https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#prometheusioscrape
I fixed it in my case by adding a service monitor for the services I wanted to be scraped. (kafka and zookeepers)


GPIO configuration [BUG]

Describe the issue
I configured the GPIO pins according to https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra Linux Driver Package Development Guide/hw_setup_jetson_io.html#wwpID0E0JE0HA
After saving and rebooting, the settings are back to default. Do I need to copy some files from the SD card to the NVMe?
I am not sure which ones.
Thanks for your great blog and help!
What version of L4T/JetPack
L4T 32.4.3
Which Jetson
Jetson Xavier NX

The Jetson boots from the SD card, at which time it reads the changes that you are attempting. I believe that you need to configure  the SD card for your changes, and then copy whatever changes over to the NVMe if desired.


Mapbox custom map no longer works

When you copy the style url and hit "save" an error modal comes up that just says "there was an error"

fixe with commit a572ce2e362ecbc9e3b8dd7b756aaac4e0cbad51. Make sure your Access token is correct in Mapbox Studio.


[Samples][Java] Fix disparities of 42.scaleout sample

Related to microsoft/botbuilder-java1165
Proposed Changes
We compared the documentation/code migration/behavior of the 42.scaleout sample between Java and C# and we found disparities and fixes that this PR includes.

Update README
Clean-up autogenerated files/folder related to Eclipse (e.g. target/.classpath)

Testing
Scaleout sample working as expected

Merged in MS


Include ApiDescription.Design in artifacts

@dougbu it seems that the nupkg you're generating doesn't contain version information:
error : Could not detect version information for package id: [D:\a\.dotnet\buildtools\korebuild\2.2.0-preview2-20181011.2\KoreBuild.proj]
error :  * Microsoft.Extensions.ApiDescription.Design [D:\a\.dotnet\buildtools\korebuild\2.2.0-preview2-20181011.2\KoreBuild.proj]

please resolve this.

The error message in universe could be made better. What it really means in this is that artifacts.props was update with a new package, but the update the Mvc submodule with the project producing that package was not made at the same time.
I've updated this PR with the MVC submodule update

I've updated this PR with the MVC submodule update

Thanks @natemcmaster! I was about to send a very similar couple of commits 😄

Did the CI check succeed? I expected it to fail because the CORS submodule is also out-of date and the MVC release/2.2 branch includes a "React to CORS changes" commit.

Good news is UniverseCoherence got passed building MVC. Slightly-less good news is changes in at least the following repos aren't in Universe yet:

modules/AzureIntegration
modules/CORS
modules/EntityFrameworkCore
modules/IISIntegration
modules/Identity
modules/KestrelHttpServer
modules/Scaffolding
modules/SignalR
modules/Templating

Worse, UniverseCoherence failed because a property seemed to be set incorrectly. I found the typo in MVC's Microsoft.Extensions.ApiDescription.Design.csproj file and will send a "fix build" PR for that repo shortly.


Touch event on piTFT causes Warning Traceback

Hi,
i have an PiTFT Capacitive Screen and running Kivy in 1.9.0dev (checkout from 22.12.2014).
If i startup an basic kivy application and touch the screen i get following error:
[INFO              ] Logger: Record log in /home/pi/.kivy/logs/kivy_14-12-03_24.txt
[INFO              ] Kivy v1.9.0-dev
[INFO              ] Python: v2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3]
[INFO              ] Factory: 172 symbols loaded
[INFO              ] Image: Providers: img_tex, img_dds, img_pygame, img_gif (img_sdl2, img_ffpyplayer, img_pil ignored)
[INFO              ] Text: Provider: pygame
[INFO              ] Window: Provider: egl_rpi
[INFO              ] GL: OpenGL version <OpenGL ES 2.0>
[INFO              ] GL: OpenGL vendor <Broadcom>
[INFO              ] GL: OpenGL renderer <VideoCore IV HW>
[INFO              ] GL: OpenGL parsed version: 2, 0
[INFO              ] GL: Shading version <OpenGL ES GLSL ES 1.00>
[INFO              ] GL: Texture max size <2048>
[INFO              ] GL: Texture max units <8>
[INFO              ] Shader: fragment shader: <Compiled>
[INFO              ] Shader: vertex shader: <Compiled>
[INFO              ] Window: virtual keyboard not allowed, single mode, not docked
[INFO              ] OSC: using <multiprocessing> for socket
[INFO              ] ProbeSysfs: device match: /dev/input/event2
[INFO              ] HIDInput: Read event from </dev/input/event2>
[INFO              ] Base: Start application main loop
[INFO              ] HIDMotionEvent: using <ft6x06_ts>
[INFO              ] GL: NPOT texture support is available
[INFO              ] HIDMotionEvent: <ft6x06_ts> range position X is 0 - 4095
[INFO              ] HIDMotionEvent: <ft6x06_ts> range position Y is 0 - 4095
[INFO              ] HIDMotionEvent: <ft6x06_ts> range pressure is 0 - 255
[WARNING           ] stderr: Exception in thread Thread-1:
[WARNING           ] stderr: Traceback (most recent call last):
[WARNING           ] stderr:   File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
[WARNING           ] stderr:     self.run()
[WARNING           ] stderr:   File "/usr/lib/python2.7/threading.py", line 505, in run
[WARNING           ] stderr:     self.__target(*self.__args, **self.__kwargs)
[WARNING           ] stderr:   File "/usr/local/lib/python2.7/dist-packages/kivy/input/providers/hidinput.py", line 598, in _thread_run
[WARNING           ] stderr:     process_as_multitouch(*infos)
[WARNING           ] stderr:   File "/usr/local/lib/python2.7/dist-packages/kivy/input/providers/hidinput.py", line 388, in process_as_multitouch
[WARNING           ] stderr:     process(l_points)
[WARNING           ] stderr:   File "/usr/local/lib/python2.7/dist-packages/kivy/input/providers/hidinput.py", line 509, in process
[WARNING           ] stderr:     touch = HIDMotionEvent(device, tid, args)
[WARNING           ] stderr:   File "/usr/local/lib/python2.7/dist-packages/kivy/input/motionevent.py", line 286, in __init__
[WARNING           ] stderr:     self.depack(args)
[WARNING           ] stderr:   File "/usr/local/lib/python2.7/dist-packages/kivy/input/providers/hidinput.py", line 56, in depack
[WARNING           ] stderr:     self.sx = args['x']
[WARNING           ] stderr: KeyError: 'x'`

Could this be related to: https://github.com/kivy/kivy/issues/2656?
What do i miss?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/7263606-touch-event-on-pitft-causes-warning-traceback?utm_campaign=plugin&utm_content=tracker%2F42681&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F42681&utm_medium=issues&utm_source=github).

Hi,
i found out an configuration which is almost working for me:
[input]
pitft = mtdev,/dev/input/touchscreen,max_position_x=240,max_position_y=320
Wth hidinput i get always the problem that he's not able to unpack x (and y as well, since none of them exists in the parameters).
The  provider mtdev is working better but now i have the same rotation problem as it is fixed in the hidinput during issue #2656 . Is is possible to move this additional option to the mtdev provider as well?

Hi,
i found out an configuration which is almost working for me:
[input]
pitft = mtdev,/dev/input/touchscreen,max_position_x=240,max_position_y=320
Wth hidinput i get always the problem that he's not able to unpack x (and y as well, since none of them exists in the parameters).
The  provider mtdev is working better but now i have the same rotation problem as it is fixed in the hidinput during issue #2656 . Is is possible to move this additional option to the mtdev provider as well?

Can you post a trace of your touchscreen event from evtest? And explain what you did to make it crash?
Just to ensure the issue is something we can fix or not, and maybe hidinput got the fix not mtdev, or the inverse.

Hi,
i made an workaround by using the mtdev provider and implemented an rotate agruments based on the changes done by tshirtman in an early stage from #2656 (i saw already that the. But hidinput seems to miss the x and y axis informations inside the parameters. When i printed the arguments from the hidinput i wasn't able to find the x and y inside.
my current configuration string (remember that i altered the mtdev provider) is:
pitft = mtdev,/dev/input/touchscreen,max_position_x=240,max_position_y=320,invert_y=1,invert_x=0,rotate=90

I attach an output from evtest. It's just an random output i hope that's ok:
Event: time<PHONE_NUMBER>.904420, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.904420, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 186
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 174
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.916576, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 0 (ABS_X), value 186
Event: time<PHONE_NUMBER>.916576, type 3 (EV_ABS), code 1 (ABS_Y), value 174
Event: time<PHONE_NUMBER>.916576, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.928769, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 186
Event: time<PHONE_NUMBER>.928769, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 174
Event: time<PHONE_NUMBER>.928769, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.928769, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.928769, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.928769, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.928769, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 183
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 172
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.941926, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 0 (ABS_X), value 183
Event: time<PHONE_NUMBER>.941926, type 3 (EV_ABS), code 1 (ABS_Y), value 172
Event: time<PHONE_NUMBER>.941926, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.953720, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 183
Event: time<PHONE_NUMBER>.953720, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 172
Event: time<PHONE_NUMBER>.953720, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.953720, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.953720, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.953720, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.953720, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 180
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 170
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.967242, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 0 (ABS_X), value 180
Event: time<PHONE_NUMBER>.967242, type 3 (EV_ABS), code 1 (ABS_Y), value 170
Event: time<PHONE_NUMBER>.967242, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 177
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 169
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.976816, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 0 (ABS_X), value 177
Event: time<PHONE_NUMBER>.976816, type 3 (EV_ABS), code 1 (ABS_Y), value 169
Event: time<PHONE_NUMBER>.976816, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 175
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 168
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.989163, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 0 (ABS_X), value 175
Event: time<PHONE_NUMBER>.989163, type 3 (EV_ABS), code 1 (ABS_Y), value 168
Event: time<PHONE_NUMBER>.989163, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.001628, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 172
Event: time<PHONE_NUMBER>.001628, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 168
Event: time<PHONE_NUMBER>.001628, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.001628, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.001628, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.001628, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.001628, type 3 (EV_ABS), code 0 (ABS_X), value 172
Event: time<PHONE_NUMBER>.001628, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 170
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 167
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.012777, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 0 (ABS_X), value 170
Event: time<PHONE_NUMBER>.012777, type 3 (EV_ABS), code 1 (ABS_Y), value 167
Event: time<PHONE_NUMBER>.012777, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 167
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.024800, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 0 (ABS_X), value 167
Event: time<PHONE_NUMBER>.024800, type 3 (EV_ABS), code 1 (ABS_Y), value 166
Event: time<PHONE_NUMBER>.024800, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.037109, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 164
Event: time<PHONE_NUMBER>.037109, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.037109, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.037109, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.037109, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.037109, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.037109, type 3 (EV_ABS), code 0 (ABS_X), value 164
Event: time<PHONE_NUMBER>.037109, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.050370, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 161
Event: time<PHONE_NUMBER>.050370, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.050370, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.050370, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.050370, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.050370, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.050370, type 3 (EV_ABS), code 0 (ABS_X), value 161
Event: time<PHONE_NUMBER>.050370, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.061740, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 159
Event: time<PHONE_NUMBER>.061740, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.061740, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.061740, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.061740, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.061740, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.061740, type 3 (EV_ABS), code 0 (ABS_X), value 159
Event: time<PHONE_NUMBER>.061740, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.075492, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 157
Event: time<PHONE_NUMBER>.075492, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.075492, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.075492, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.075492, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.075492, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.075492, type 3 (EV_ABS), code 0 (ABS_X), value 157
Event: time<PHONE_NUMBER>.075492, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.085103, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 155
Event: time<PHONE_NUMBER>.085103, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.085103, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.085103, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.085103, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.085103, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.085103, type 3 (EV_ABS), code 0 (ABS_X), value 155
Event: time<PHONE_NUMBER>.085103, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.097075, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 152
Event: time<PHONE_NUMBER>.097075, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.097075, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.097075, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.097075, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.097075, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.097075, type 3 (EV_ABS), code 0 (ABS_X), value 152
Event: time<PHONE_NUMBER>.097075, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.108871, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 150
Event: time<PHONE_NUMBER>.108871, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 166
Event: time<PHONE_NUMBER>.108871, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 127
Event: time<PHONE_NUMBER>.108871, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time<PHONE_NUMBER>.108871, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 127
Event: time<PHONE_NUMBER>.108871, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time<PHONE_NUMBER>.108871, type 3 (EV_ABS), code 0 (ABS_X), value 150
Event: time<PHONE_NUMBER>.108871, -------------- SYN_REPORT ------------
Event: time<PHONE_NUMBER>.120898, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 0
Event: time<PHONE_NUMBER>.120898, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time<PHONE_NUMBER>.120898, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time<PHONE_NUMBER>.120898, -------------- SYN_REPORT ------------

Due to my move from one flat to an small house i am not able to answer that fast (we still have only limited Internet), sorry for some delays.
Thanks for you answer.

Oh i forgot the question about what i did.
The error occures the first time i touch the screen after application startup, regardless where and which type of widget i touch.

I had the exact same issue. Fixed it by using the mtdev input provider and adding rotation to the mtdev input in kivy. (fixed another bug along the way) I will create a pull request as soon as possible.

Added in https://github.com/kivy/kivy/pull/3494

Closing as fixed.


52 missing recipe spiced chocolate milk

Separated milk and spicy milk as its very different items so it would properly be searchable
Loaded latest Google sheet data and generated new item
Renamed existing asset to properly link visual

Google data sheet is already up to date


Added "Awesome R Blogs on the web" to the miscellaneous section

Added awesome R blogs on the web.
It is still under active development. This list is aimed for people who are starting out with R.
All blogs are indexed as :bowtie: = beginner friendly, :neckbeard: = intermediate, :flushed: = advanced and :neutral_face: = confused.

I did not read the terms and conditions before posting. Sorry.


Advanced CKEditor functionality

Created new CKEditor package:

Full version with more advanced options
Standard editor frame instead of floating inline

Other:

Allow updated successfully message to be closed

lgtm!!


In d

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

Connector artifacts have been added to GitHub repositry for IN-D KYC India Connector.


prefix of broadcast dont work

prefix: "§7§l[§4Hispania§eBE§7]"

did you add {PREFIX} on the message

did you add {PREFIX} on the message

no, i need add it?

oh it works now, mb


Add Hit@k functionality

I am adding hitk as a function of eval.
For now it will only calculate the hit list. Any other forms of displaying the data will be handled in a different PR

Now its as modular as it can be

@gwaygenomics
I don't know if its clear what I changed but this is as far as I will go. I will open an issue to report the further todos for next month after the thesis.


Fix typos

Many thanks for this very useful package! Here are fixes of two typos.

Thank you for pointing this out! My apologize for the late reply. These typos have been fixed in an earlier version and the documentation (and of course the package itself) has changed a lot since then. Please feel free to tell me if there are anything to be improved.


config: add automq to 10032.message-and-streaming.yml & 10044.modern-da…

config: add automq/automq repo to message-and-streaming & modern-data-stack
AutoMQ is a cloud-first alternative to Kafka by decoupling durability to S3 and EBS. 10x cost-effective. Autoscale in seconds. Single-digit ms latency.
Recently, AutoMQ[1] has gained a lot of love and attention from the developer community, with the number of stars soon reaching 3000. It has also appeared on GitHub trending, both in the overall[2] and Java categories[3]. We hope to be featured on the OSSInsight list to be discovered by more developers.
[1]. https://github.com/AutoMQ/automq
[2]. https://github.motakasoft.com/trending/?d=2024-07-28&l=java
[3]. https://github.motakasoft.com/trending/?d=2024-07-27&l=all

@Mini256 Please help have a online update for this ~

@Mini256 Hello! I noticed that the environment hasn't been redeployed? Could you please help update it?


generate thumbnails for images added to sub-folders of bucket

seems this is only working for images uploaded to top level bucket...how do I allow for images added to subfolders of the bucket -- via prefix in the trigger? When adding a trigger, the drop down list only shows top level buckets.

ok figured it out...looks like it works on all images in subfolders, creating new folders in the one new thumbnails folder


feat: add send live metrics to env

Add possibility to control send live metrics from .env file

Thank you for you PR ! :heart:


Install fails with ruby 3.0

(Pointing instead to Ruby 2.7 works fine)
$ pre-commit run --all-files
[INFO] Installing environment for https://github.com/jumanjihouse/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/opt/local/bin/ruby3.0', '/opt/local/bin/gem', 'install', '--no-document', '--no-format-executable', 'fake_gem__-0.0.0.gem')
return code: 1
expected return code: 0
stdout: (none)
stderr:
    ERROR:  While executing gem ... (Gem::DependencyResolutionError)
        conflicting dependencies rubocop (>= 0.68.1) and rubocop (= 1.10.0)
      Activated rubocop-1.10.0
      which does not match conflicting dependency (>= 0.68.1)

      Conflicting dependency chains:
        fake_gem__ (= 0.0.0), 0.0.0 activated, depends on
        rubocop (= 1.10.0), 1.10.0 activated

      versus:
        fake_gem__ (= 0.0.0), 0.0.0 activated, depends on
        rubocop-rspec (= 1.40.0), 1.40.0 activated, depends on
        rubocop (>= 0.68.1)

Is there any update on this?

I can confirm version 3.0.0 works with ruby 3 and ubuntu 22.04 (docker image)

@oNaiPs in any case, have you already tried 3.2.2 - I' running into issues with ruby 3.2.2?


⚠ Bofrost.be has degraded performance

In 42a9a8f, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 983 ms

Resolved: Bofrost.be performance has improved in 264690c after 6 minutes.


Removed hardcoded username in config

Removed hardcoded username in config, now we can pass it through command line parameters.

:+1:

:+1:


[BUG] Error occurs when running camera.launch.py

Hi!
I am contacting you because an error occurred during execution.
ubuntu : 20.04
ROS : foxy
depthai-ros branch : foxy
opencv : 4.2.0
When running ros2 launch depthai_ros_driver camera.launch.py, the error log below is displayed.
root@user-desktop:~# ros2 launch depthai_ros_driver camera.launch.py
/opt/ros/foxy/bin/ros2:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-09-26-09-27-09-677788-user-desktop-24115
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [24129]
[INFO] [component_container-2]: process started with pid [24131]
[robot_state_publisher-1] Parsing robot urdf xml string.
[robot_state_publisher-1] Link oak had 5 children
[robot_state_publisher-1] Link oak_imu_frame had 0 children
[robot_state_publisher-1] Link oak_left_camera_frame had 1 children
[robot_state_publisher-1] Link oak_left_camera_optical_frame had 0 children
[robot_state_publisher-1] Link oak_model_origin had 0 children
[robot_state_publisher-1] Link oak_rgb_camera_frame had 1 children
[robot_state_publisher-1] Link oak_rgb_camera_optical_frame had 0 children
[robot_state_publisher-1] Link oak_right_camera_frame had 1 children
[robot_state_publisher-1] Link oak_right_camera_optical_frame had 0 children
[robot_state_publisher-1] [INFO] [1727342829.920797137] [oak_state_publisher]: got segment oak
[robot_state_publisher-1] [INFO] [1727342829.920916434] [oak_state_publisher]: got segment oak-d-base-frame
[robot_state_publisher-1] [INFO] [1727342829.920931762] [oak_state_publisher]: got segment oak_imu_frame
[robot_state_publisher-1] [INFO] [1727342829.920939986] [oak_state_publisher]: got segment oak_left_camera_frame
[robot_state_publisher-1] [INFO] [1727342829.920946962] [oak_state_publisher]: got segment oak_left_camera_optical_frame
[robot_state_publisher-1] [INFO] [1727342829.920953458] [oak_state_publisher]: got segment oak_model_origin
[robot_state_publisher-1] [INFO] [1727342829.920959218] [oak_state_publisher]: got segment oak_rgb_camera_frame
[robot_state_publisher-1] [INFO] [1727342829.920964915] [oak_state_publisher]: got segment oak_rgb_camera_optical_frame
[robot_state_publisher-1] [INFO] [1727342829.920970835] [oak_state_publisher]: got segment oak_right_camera_frame
[robot_state_publisher-1] [INFO] [1727342829.920976595] [oak_state_publisher]: got segment oak_right_camera_optical_frame
[component_container-2] [INFO] [1727342830.141695202] [oak_container]: Load Library: /root/dai_ws/install/depthai_ros_driver/lib/libdepthai_ros_driver.so
[component_container-2] [INFO] [1727342830.222270919] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
[component_container-2] [INFO] [1727342830.222344072] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
[component_container-2] [INFO] [1727342830.229445098] [oak]: No ip/mxid specified, connecting to the next available device.
[component_container-2] [INFO] [1727342832.563486098] [oak]: Camera with MXID: 19443010B16E992E00 and Name: 1.4.2 connected!
[component_container-2] [INFO] [1727342832.565007424] [oak]: USB SPEED: HIGH
[component_container-2] [INFO] [1727342832.615830420] [oak]: Device type: OAK-D-PRO
[component_container-2] [INFO] [1727342832.618918416] [oak]: Pipeline type: RGBD
[component_container-2] [INFO] [1727342832.633488470] [oak]: NN Family: mobilenet
[component_container-2] [INFO] [1727342833.745083756] [oak]: NN input size: 300 x 300. Resizing input image in case of different dimensions.
[component_container-2] [INFO] [1727342834.754160851] [oak]: Finished setting up pipeline.
[component_container-2] [19443010B16E992E00] [1.4.2] [3.638] [ColorCamera(0)] [warning] Unsupported resolution set for detected camera OV9782, needs 800_P or 720_P. Defaulting to 800_P
[component_container-2] [ERROR] [1727342837.653554415] [oak_container]: Component constructor threw an exception: ColorCamera(0) - 'video' width or height (1280, 720) bigger than maximum at current sensor resolution (854, 534)
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'oak' of type 'depthai_ros_driver::Camera' in container '/oak_container': Component constructor threw an exception: ColorCamera(0) - 'video' width or height (1280, 720) bigger than maximum at current sensor resolution (854, 534)

HI, unfortunately Foxy is no longer supported so I would recommend switching to Humble branch. Other than that, setting rgb.i_set_isp_scale: false parameter might help


Patch 0.19.3

What this PR does / why we need it:
Added new changes to version 0.19
Which issue this PR fixes (use the format fixes #<issue number>(, fixes #<issue_number>, ...) to automatically close the issue when PR gets merged): fixes #922
Public facing documentation PR (if applicable)

Special notes for reviewer:
Add a screenshot or an example to illustrate the proposed solution:
Checklist:

[ ] Added relevant notes to WIP-CHANGELOG.md
[x] Proper commit message prefix on all commits
[ ] Updated the public facing documentation
Is this changeset backwards compatible for existing clusters? Applying:

[ ] is completely transparent, will not impact the workload in any way.
[ ] requires running a migration script.
[ ] will create noticeable cluster degradation.
E.g. logs or metrics are not being collected or Kubernetes API server
will not be responding while upgrading.
[ ] requires draining and/or replacing nodes.
[ ] will change any APIs.
E.g. removes or changes any CK8S config options or Kubernetes APIs.
[ ] will break the cluster.
I.e. full cluster migration is required.

Chart checklist (pick exactly one):

[ ] I upgraded no Chart.
[ ] I upgraded a Chart and determined that no migration steps are needed.
[ ] I upgraded a Chart and added migration steps.

Pipeline config (if applicable)
If you change some config options (e.g. add/rename variable or change the default value) you may need to update the config used by the pipeline in pipeline/config.

the upgrade steps still uses v0.20.x-v0.21.x

I would also add the remove grafana-ops script in the main migration scripts, so it doesn't fail when we upgrade directly to 0.19.3


evolve should handle merged pull request branches

Steps to Reproduce
# On an existing working copy in the fork/pull workflow:
$ gg branch feature
$ gg commit -m "Made a change"
$ gg push -create
$ gg requestpull
# Pull request is merged, squashed and merged, or rebased.
$ gg pull
$ gg evolve

Expected Behavior
evolve consults the GitHub pull request API to see if the branch corresponding to the pull request was merged, and then advances the ref to the merge_commit_sha if present locally.
Actual Behavior
Nothing happens.

Don't have a full idea yet, but in doing some absent-minded sketching, a GraphQL query like this might be useful for finding relevant PRs in a project.
query ($repoOwner: String!, $repo: String!, $tok: String, $headRef: String) {
  repository(owner: $repoOwner, name: $repo) {
    pullRequests(after: $tok, first: 100, headRefName: $headRef, states: [MERGED]) {
      nodes {
        number
        headRepositoryOwner {
          login
        }
        headRefName
        headRefOid
        mergeCommit {
          oid
        }
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}


Split long messages to avoid being kicked for excess flood

Hi,
My bot sends messages to a channel whose length can sometimes be too long for the server to accept.
Would it be possible for irc3 (maybe via an opt-in mechanism) to split long message queries into several ones, to avoid the bot being kicked for excess flood? The message itself could be split on word boundaries.
This could theoretically be handled on the bot's side, but I don't think it would be very robust, as the bot doesn't know exactly what the resulting IRC query will look like (I assume something like PRIVMSG recipient :message), and thus not be able to know how many characters should be subtracted to the theoretical maximum message size (512 I believe).
HTH.

Hi,
You can set max_length in the config file. Default value is 512: https://github.com/gawel/irc3/blob/master/irc3/base.py#L75

Do servers communicate what maximum message length they accept? In that case, I would like irc3 to detect that, and split messages according to it.

It's possible. But the rfc say 512 is fine: https://github.com/gawel/irc3/blob/2d7d65ca753fdd13b686d0ba5d4c180131ada6f6/irc3/rfc2812.txt#L300
You may be able to track this for your server by checking bot.config['server_config']
See https://github.com/gawel/irc3/blob/2d7d65ca753fdd13b686d0ba5d4c180131ada6f6/irc3/plugins/core.py#L109

So, the server I'm connecting to is GameSurge.
Here is the configuration the server sends to the bot:
:NuclearFallout.WA.US.GameSurge.net 005 _nick WHOX WALLCHOPS WALLVOICES USERIP CPRIVMSG CNOTICE SILENCE=25 MODES=6 MAXCHANNELS=75 MAXBANS=100 NICKLEN=30 :are supported by this server
:NuclearFallout.WA.US.GameSurge.net 005 _nick MAXNICKLEN=30 TOPICLEN=300 AWAYLEN=200 KICKLEN=300 CHANNELLEN=200 MAXCHANNELLEN=200 CHANTYPES=#& PREFIX=(ov)@+ STATUSMSG=@+ CHANMODES=b,k,l,imnpstrDdRcC CASEMAPPING=rfc1459 NETWORK=GameSurge :are supported by this server

The bot subsequently prints these values as:
Server config: {'TOPICLEN': '300', 'MAXCHANNELS': '75', 'PREFIX': '(ov)@+', 'MAXCHANNELLEN': '200', 'CHANNELLEN': '200', 'MAXBANS': '100', 'CASEMAPPING': 'rfc1459', 'NETWORK': 'GameSurge', 'USERIP': True, 'WHOX': True, 'CHANMODES': 'b,k,l,imnpstrDdRcC', 'AWAYLEN': '200', 'MODES': '6', 'SILENCE': '25', 'STATUSMSG': '@+', 'MAXNICKLEN': '30', 'KICKLEN': '300', 'WALLVOICES': True, 'NICKLEN': '30', 'CPRIVMSG': True, 'WALLCHOPS': True, 'CHANTYPES': '#&', 'CNOTICE': True}

The 'max_length' option in bot.config is set to 512.
When the bot sends a message that is >512 characters long (I can see that message in the debug log), the server replies:
:NuclearFallout.WA.US.GameSurge.net 417 _nick :Input line was too long

That could mean that either:

irc3 is not splitting messages to make sure packets remain below 512 characters — if it's not supposed to at the moment, I'd like it to do so
GameSurge uses a maximum length lesser than 512 and doesn't communicate it to irc3 to split messages — I haven't tried to verify that, it's possible that GameSurge uses 512 as limit

HTH.

As I remember you can track what the bot receive/send by using irc3 -vdr config.ini

After debugging the issue, I found two problems, and one suspicious thing:

the IrcBot.privmsg() function assumes that messages (i.e. words sent by users) must be self.config.max_length in length, when that number applies to the whole IRC message (i.e. PRIVMSG target :message\r\n) — other parts of the code that deal with protocol might have this issue as well, I didn't check

https://github.com/gawel/irc3/blob/2d7d65ca753fdd13b686d0ba5d4c180131ada6f6/irc3/rfc2812.txt#L272-L274
https://github.com/gawel/irc3/blob/2d7d65ca753fdd13b686d0ba5d4c180131ada6f6/irc3/rfc2812.txt#L300-L304

the length of the IRC message is supposed to be counted in bytes (ASCII or encoded UTF8), but utils.split_messages() works on unicode strings, which can throw off the count — I couldn't really find anything in the RFC about that after a cursory look, maybe some servers (other than GameSurge) are lenient and count codepoints?

the bot sends messages one after the other without any form of rate limiting, which results in it being kicked for excess flood, once the above problems are solved — I can see a flood_delay local configuration option, but from what I can tell the server doesn't seem to indicate what minimum delay should separate messages that it could be compared to

Here is a debugging patch that I used to diagnose the above issues:
diff --git a/irc3/__init__.py b/irc3/__init__.py
index 2cd5fe7..12ee2c9 100644
--- a/irc3/__init__.py
+++ b/irc3/__init__.py
@@ -179,6 +179,7 @@ class IrcBot(base.IrcObject):

     def send_line(self, data, nowait=False):
         """send a line to the server. replace CR by spaces"""
+        self.log.debug("DBG: (%d) %s", len(data), data)
         data = data.replace('\n', ' ').replace('\r', ' ')
         f = asyncio.Future(loop=self.loop)
         if self.queue is not None and nowait is False:
@@ -225,15 +226,23 @@ class IrcBot(base.IrcObject):
     def privmsg(self, target, message, nowait=False):
         """send a privmsg to target"""
         if message:
-            messages = utils.split_message(message, self.config.max_length)
             if isinstance(target, DCCChat):
+                messages = utils.split_message(message, self.config.max_length)
                 for message in messages:
                     target.send_line(message)
             elif target:
+                command_prefix = 'PRIVMSG %s :' % target
+                self.log.debug("MAX_LENGTH: %d" % self.config.max_length)
+                assert self.config.max_length > len(command_prefix) + 2
+                self.log.debug("SPLIT: %s" % message)
+                messages = utils.split_message(message, self.config.max_length - len(command_prefix) - 2, self.log)
+                self.log.debug("MESSAGES: %s", messages)
                 f = None
                 for message in messages:
-                    f = self.send_line('PRIVMSG %s :%s' % (target, message),
+                    self.log.debug("DBG: MSG (%d) %s", len(message), message)
+                    f = self.send_line('%s%s' % (command_prefix, message),
                                        nowait=nowait)
+                    break
                 return f

     def action(self, target, message, nowait=False):
diff --git a/irc3/utils.py b/irc3/utils.py
index 4f158f8..fb91620 100644
--- a/irc3/utils.py
+++ b/irc3/utils.py
@@ -164,8 +164,38 @@ class IrcString(BaseString):
 STRIPPED_CHARS = '\t '

-def split_message(message, max_length):
+def split_message(message, max_length, log=None):
     """Split long messages"""
+    def utf8_lead_byte(b):
+        '''A UTF-8 intermediate byte starts with the bits 10xxxxxx.'''
+        return (b & 0xC0) != 0x80
+
+    def utf8_byte_truncate(text, max_bytes):
+        '''If text[max_bytes] is not a lead byte, back up until a lead byte is
+        found and truncate before that character.'''
+        log.debug("IN")
+        utf8 = text.encode('utf8')
+        log.debug("utf8: %s", utf8)
+        if len(utf8) <= max_bytes:
+            log.debug("SPLIT: max bytes")
+            return utf8
+        log.debug("max_bytes: %d", max_bytes)
+        i = max_bytes
+        while i > 0 and not utf8_lead_byte(utf8[i]):
+            log.debug("I: %d", i)
+            i -= 1
+        log.debug("RET")
+        return utf8[:i]
+
+    if log is not None:
+        log.debug("SPLIT MSG: %d - %s", max_length, message)
+        s = utf8_byte_truncate(message, max_length)
+        log.debug("S: %s", s)
+        s = s.decode('utf8')
+        log.debug("DECODED")
+        yield s
+        return
+
     if len(message) > max_length:
         for message in textwrap.wrap(message, max_length):
             yield message

I used this implementation to split strings according to byte length: https://stackoverflow.com/a/43848928
HTH.

Thanks for digging into that. I don't like the idea of encoding/decoding the whole messages to... re-encode them before sending to the server. encoding/decoding are very CPU expensive AFAIK.

Any chance we'll get a fix soon? My bot trips on half of the URLs (apparently the internet has decided that having 1k+ characters long sentences in the metadata is a good idea).
I understand the concern about the encoding round trips, however there doesn't seem to be any alternative that I can see.

I'll be ok with that if there is no need to re-decode the data. I'm pretty sure a few if isinstance(data, bytes) will be faster than decoding/encoding the whole messages multiple times. Don't know how hard it is to add those if and how many of them are required.
I'll try to give it a try soon...

For now I've added a prefix argument to split_message (inspired by your snippet). This should reduce your amount of errors. Maybe it's enough to "fix" the problem if you set max_length to an appropriate value to allow some extra unicode characters.. Maybe 500 instead of 512.
Looks like supporting both unicode and bytes in the whole process will not be easy at all..