Visual differences in autohinting, more pronounced at fractional font sizes

In this Skia CL #890696 I am experimenting with hooking up the autohinting preview #1083.
This should now create an autohinting instance when Skia's hinting is set to kSlight or when it is set to normal or full and force autohinting is on.
First of all: Results are looking good, I think autohinting gets successfully activated, and vertical differences are reduced compared to no autohinting active in Fontations. Bottom and top crossbars / feet of glyph shapes are aligned with the pixel grid and appear sharper. :+1:
Depending on font size, I do notice some differences to FreeType in GM_fontations_compare_ft_NotoSans.
With Noto Sans Regular, at scaled font size 24, there is a pixel positioning difference in the top part of the bowl of the lowercase a.
1st column: Fontations, 2nd column: FreeType, 3rd column: diff
Scale size 24:

The upper part of the bowl of the a seems to be somewhat squished and too thin in FreeType. The thickness of the top part seems to be better maintained in Fontations.
Scale size 20.531250:

Again, differences on the lowercase a, but more importantly, Fontations and FreeType disagree on the placement of the top bar of the T, and the top pixel of the A and L by one pixel:

In the FreeType case, this compresses the distinction between lowercase and uppercase a bit?
@dfrg Curious to hear your thoughts on:

Are there resolution differences in the internal computations?
What might be the cause of these differences?
Do you observe these in your testing?

Thanks for taking the time to experiment with autohinting integration. Results like these are really useful in refining the implementation.
First, I haven't done any large scale testing yet. Glyphs that are not assigned to a specific script/style fall back to the CJK algorithm which isn't complete, so we'd essentially fail any font-wide comparison on the notdef glyph.
For a first pass, the intention is to match FreeType exactly so any variance can be considered a bug, a few of which seem to be on display here :) While I agree that the bowl of our lowercase 'a' looks slightly better in isolation, Raph pointed out that it no longer aligns with the crossbar of the uppercase 'A' which seems generally undesirable if we want to preserve visual consistency.
The height difference in the fractional scaling is surprising. My assumption is that we were computing fixed point scaling factors differently, but having just looked through the Skia code, I believe the computation is identical. It ultimately boils down to fixed_div(int(ppem * 64.0), upem) in both Skia/FreeType and Skrifa from what I can tell. There might be a difference in how we derive an integral ppem from these values and that could affect the results.
As a next step, I'll take a look at Noto Sans and see if I can identify where we're going wrong here.

Fixed by #1145.


Question - it's possible to use jpype with multiprocessing

Hi,
I'm trying to parallelize some jpype code using multiprocessing but I'm not sure if this is possible and if this is the correct way to proceed.
import itertools
import jpype.imports
from jpype import JString
from glob import glob
from multiprocessing import cpu_count, Pool

def write_data(Q):
    (J_Class, condition, parameter) = Q
    items = J_Class.read(condition, parameter)
    print(len(items.getData()), condition, parameter)

classpath = ":".join(glob("LIB/*.jar"))
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % classpath, convertStrings=True)
J_API = jpype.JClass("example.class")
J_Class = J_API(JString('filepath'))
param_1 = [int(x) for x in J_Class.getParam1List()]
param_2 = [int(x) for x in J_Class.getParam2List()]

with Pool(cpu_count()) as pool:
    pool.map(write_data, [(J_Class, x, y) for (x, y) in itertools.product(param_1, param_2)])

In this way multiprocessing is not able to pickle the class so I tried to initialize the class directly in the write_data function:
def write_data(Q):
    (condition, parameter) = Q
    logging.warning(f"This is printed")
    J_API = jpype.JClass("example.class")
    logging.warning(f"This is not printed")
    J_Class = J_API(JString('filepath'))
    items = J_Class.read(condition, parameter)
    print(len(items.getData()), condition, parameter)

with Pool(cpu_count()) as pool:
    pool.map(write_data, [(x, y) for (x, y) in itertools.product(param_1, param_2)])

With this second method I can see all processes spawned but then nothing happens.
Any help?

Pickle support was added to the repo a bit ago (#481), but I can’t say how well that will work with the multiprocessing in Python.  Some of the tests in the jpypetest directory use primitive types to spawn a job and start a jvm in the remote process, so at least I know that jpype will work in a multiprocess context.  Unfortunately, this hasn’t had a lot of focus or testing.   So first I would recommend getting the jpype version with pickle support, try your tests again, then if it doesn’t work look over the jpypetest to see how we got multiprocessing working.   I believe the leak tester and the startJVM tests both use some sort of multiprocessing.

Ok, I'm trying to build newer release from source but now I've 2 questions..

is master the right branch? Is more updated than devel but both seems to be release 0.7.0
the build is ok, but some test are failing [15 failed, 432 passed, 40 skipped, 2 warnings in 5.93s], Can I ignore them? Do you need the log?

Thanks

Master should be the correct branch.  And it should not have any fails.
Please submit a log with failed tests.

I've update the log in this gist: https://gist.github.com/dadokkio/608a6322f2b0fa7054bca83e11ada195
Some machine and setup info:
`[root@xxx1 jpype-master]# ant -v
Apache Ant(TM) version 1.9.2 compiled on January 22 2014
[root@xxx1 jpype-master]# echo $JAVA_HOME
/usr/java/jdk1.8.0_131
[root@xxx1 jpype-master]# python --version
Python 3.7.5
[root@xxx1 jpype-master]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
`

A portion of your test harness is not being built thus it can’t find the java portion of the test.
I recommend manually rebuilding the test harness and rerunning the tests.  I was not able to replicate your exact symptoms with a clean build.
Here is an example of a manual build of the harness
$ ant -f test/build.xml
Buildfile: C:\Users\nelson85\cygwin\devel\open\test\jpype\test\build.xml

compile-main:
    [javac] C:\Users\nelson85\cygwin\devel\open\test\jpype\test\build.xml:52: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to C:\Users\nelson85\cygwin\devel\open\test\jpype\test\classes

compile-8:
    [javac] C:\Users\nelson85\cygwin\devel\open\test\jpype\test\build.xml:39: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

compile-9:
    [javac] C:\Users\nelson85\cygwin\devel\open\test\jpype\test\build.xml:25: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

compile:

test:

BUILD SUCCESSFUL
Total time: 0 seconds

Beyond this issue it all looks fine.  All of the tests that failed seem likely to pass if the harness is in place as they all are dummy checks to make sure we haven’t broken things on a patch, and all pass on a similarly configured machine.

Ok, that's worked!
449 passed, 38 skipped, 2 warnings in 5.70s
But I've the same situation than before:
_pickle.PicklingError: Can't pickle <java class 'example.classes.JFA_API'>: attribute lookup example.classes.JFA_API on jpype._jclass failed
Do I need to specify the pickling class somewhere?

The pickler documentation is specified in jpype/pickle.py.   When pickling we must create a custom pickler with the java hooks for calling the java serializer.   I am not sure how you would pass the custom pickler to the multiclass, but assuming you can then it should all work.

Ok, I was able to use the class with getstate and setstate but my problem seems to be related to the class itself because it returns:
jpype._jclass.NotSerializableException: java.io.NotSerializableException

All classes that are intended to be serialized need java.lang.Serializable as their base.  Unfortunately if this is not true there isn’t a way to push them through that I am aware of.


No small control's labels in horizontal forms

If you try to build a form-horizontal with form-controls that are input-sm, labels are always baseline aligned to normal controls.
I would see usefull a class to fit labels to the input-sm control (and viceversa for large).
Thank you.

sdasd

fg


Feature Request: Enhanced clipboard Ops

Once #99 is solved it would be nice to have an the following clipboard related OPs

Read text from the clipboard
Read images from the clipboard
Write images to the clipboard

I'd be happy to implement this once the native API support is enabled for standalone. It should be possible to implement this in the web version today.
The current CopyToClipboard op only supports the writeText method.
https://developer.mozilla.org/en-US/docs/Web/API/Clipboard

related issue is solved, you want to tackle this? happy to hear/give some feedback! maybe these could check for permission and be the same ops as on the web...so if you run chrome in non-sandboxed mode that might work as well.

this has been idle for a while, i'll close this for now


doc typo at FastTenantTestCase

In this link: https://django-tenant-schemas.readthedocs.io/en/latest/test.html
Scroll down to Running Test Faster and change from tenant_schemas.test.cases import FastTenantTestCase to from django_tenants.test.cases import FastTenantTestCase.

You are looking at the the wrong readthedocs try https://django-tenants.readthedocs.io/en/latest/test.html


Incompatibility with fieldslib

Opening the following file in merlin will wrongly report an error in syntastic: Error: Unbound module Field
https://github.com/mirage/ocaml-cohttp/blob/master/lib/response.ml#L26
You can clone the whole repo https://github.com/mirage/ocaml-cohttp which has the appropriate .merlin file to reproduce this.

I pushed a fix on master. :)


Ignore changes in shellout

Ignore the changes in shellout+marathon; those are part of my ongoing project to get async output from Marathon.
The OTHER changes should handle the Xcode 9.1 package manager version bug.

@rmirabelli Thanks for this!
The Xcode 9.1 problem is being fixed here: https://github.com/JohnSundell/Marathon/pull/138.
Please submit a new PR with your ShellOut async changes when ready (but I don't think the changes should be done in Marathon, and instead in ShellOut itself). Closing this one for now 🙂


Contact Details
<EMAIL_ADDRESS>What happened?
烧录时失败
运行环境:  nodemcu esp32 安信可板子，python程序
固件版本: v2.0.0
表现：不断打印以下两行错误日志
Version
master (Default)
What soultions are you seeing the problem on?
重新烧录固件，需多次尝试
Relevant log output
=== system execute boot.py file, wait interrupt!! ==
== wait 1s send interrupt cmd!! ==

应该是软件系统坏掉了，可以试下重新烧录固件能否解决

@Lingakg
请问您还有问题吗？

This issue has not been updated for a while, so we close this issue.  If you have further request, please reopen it or add it.  We will response as soon as possible.
本issue因太久未更新而关闭，如果您还有进一步的问题，请reopen本issue，或者新开一个issue，我们会尽快回复您。


Don't flag the Gradle shadow plugin 7.1.2 (shadow-7.1.2.jar) as vulnerable

The Gradle Shadow plugin is a fairly common development tool. Versions before 7.1.2 included unsafe versions of log4j, but 7.1.2 uses log4j 2.17.1.
As of 1.9.0, log4j-sniffer flags shadow-7.1.2.jar for deletion.  The detection can be avoided by running with --disable-flagging-jndi-lookup, but I don't know how safe that is, and I don't control the environment where this is affecting me and other users.
This is particularly annoying in that Gradle doesn't recover from the situation in which the jar is deleted from ~/.gradle/caches/jars-9/. In that situation, it assumes the jar is still present (due to a .receipt file) and puts its missing location on the classpath; the plugin then fails to get applied on subsequent runs, with Gradle never redownloading the jar.
Here's the workaround I've been suggesting for people running into this, in the meantime:
try {
    apply plugin: 'com.github.johnrengelman.shadow'
} catch (Exception e) {
    throw new GradleException("The shadow plugin failed to apply properly. There's a known issue with the log4j sniffer " +
    "that can cause this to happen; try running this as a workaround: rm ~/.gradle/caches/jars-*/*/shadow-*.jar.receipt", e);
}

I'm getting help from the log4j-sniffer team here via internal channels. The conclusion is that in this particular case, the scanner was not using the delete command, which would have left this jar alone; instead, for historical reasons, it was using the crawl command and deleting any files that were listed. (I was unaware of this difference and only tested this jar myself using the crawl command.)
The resolution for this case is to switch to using the delete command.


run_exports doesn't match ABI

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
current installs of libadios are failing to find libblosc2.2. This is because libadios is linking to libblosc2.2.dylib (dependency:  c-blosc2 >=2.11.2,<3.0a0), but c-blosc2 2.14 contains libblosc2.3.dylib, which will not work with any package built against c-blosc2 < 2.14). I believe this will affect all packages that linked c-blosc2 prior to the 2.14 release.
I'm not sure how best to indicate this ABI version, but it's probably worth including a pinning in run_exports that will work, and an assert in tests that libblosc2.${ABI_VERSION} is present.
Apparently c-blosc has ABI breakages in minor versions.
 Sorry about this.
We should just pin to minor versions.
Hoping for major pin level compatibility is alot for nascent projects.
So we should:

Tighten the run exports for 2.14.
Release a new 2.13 with tightened exports
Add a repo data patch to tighten the 2.11 to 2.13 to have an upper bound of <2.14.0a.0
Mark 2.14.0 through 2.14.3 as broken (them changing the SO name on a patch number is really strange)

From their release notes.

Truthfully, I don't really have the "time" to deal with this before april 20th, so your help if you can would be greatly appreciated.
I would support:

Marking 2.14.0 through 2.14.4 as broken.
Releasing 2.13.X with a stricter run_export.

Then we can take our time with the repodata patch.

@conda-forge-admin please rerender

#64 is one possibility for ABI pinning going forward, by tracking the ABI version (and making sure SONAME matches or it won't build)

with the API / ABI changes, I'm not sure how far we have to mark things broken as...
if you were built with 2.14.1, does it work with 2.13.2???

maybe we don't mark the packages as broken, but pin exact for anything built between:
2.14.0 and 2.14.3
2.14.4 can work with 2.14.x

Ok, upstream developer here. For context, the origin of the change is this: https://github.com/Blosc/c-blosc2/issues/581 .  Would you like the Blosc developers to invalidate 2.14.4 and release 2.15.0 for this SONAME change better?
We are sorry that we don't deeply understand the conventions for changing APIs in C libraries, so we are just following advices here and hoping for the best. Thanks for your patience.

Thanks Francesc!
I should have for sure read the release notes of 2.14.4 and it would have flagged this issue days ago.

We are sorry that we don't deeply understand the conventions for changing APIs in C libraries, so we are just following advices here and hoping for the best. Thanks for your patience.

There sadly aren't very strict conventions. Some take "minor bump" as the API change, some think "only in major".
Then for ABI, there aren't really any hard rules.
It is convenient when ABI bumps are synched predictaly with a version number for packagers, but many upstream developers  don't really care.

Would you like the Blosc developers to invalidate 2.14.4 and release 2.15.0 for this SONAME change better?

I'm not really sure it matters so much for this release. The main thing I would ask (as a packager) is that future SONAME changes sync up with minor release bumps.
@FrancescAlted my question to you:

For a package built with 2.14.1, is it compatible with 2.14.4 in your mind?

Add a repo data patch to tighten the 2.11 to 2.13 to have an upper bound of <2.14.0a.0

why specifically 2.11? There are builds accepting up to 3.0 back to 2.0.1, I think. What should be done with those?

Thanks Francesc!
I should have for sure read the release notes of 2.14.4 and it would have flagged this issue days ago.

We are sorry that we don't deeply understand the conventions for changing APIs in C libraries, so we are just following advices here and hoping for the best. Thanks for your patience.

There sadly aren't very strict conventions. Some take "minor bump" as the API change, some think "only in major". Then for ABI, there aren't really any hard rules.

Ok, so in this case, as the API change had effect back in 2.13.0, we should have bumped SOVERSION by then right?  Ok, I have added a reminder to do that in the future.

It is convenient when ABI bumps are synched predictaly with a version number for packagers, but many upstream developers don't really care.

I'm not sure what do you mean here.  Are you suggesting to add SOVERSION bumps for every new version?  Or only when ABI/API changes?

Would you like the Blosc developers to invalidate 2.14.4 and release 2.15.0 for this SONAME change better?

I'm not really sure it matters so much for this release. The main thing I would ask (as a packager) is that future SONAME changes sync up with minor release bumps.

You mean that a future 2.15.0 should bump SOVERSION too (and so with every minor version, like 2.16.0 and so on)?  If so, what's the rational behind it?

@FrancescAlted my question to you:

For a package built with 2.14.1, is it compatible with 2.14.4 in your mind?

Yes, actually 2.14.4 should be compatible with all previous 2.14.x releases.  For 2.14.4. we just were trying to acknowledge a previous API change in 2.13.0.

You mean that a future 2.15.0 should bump SOVERSION too (and so with every minor version, like 2.16.0 and so on)? If so, what's the rational behind it?

Sorry, I mean "if you change the ABI", try to "synchronize it with" a minor bump, like 2.15 -> 2.16

Ah, that makes sense.  Clarified in https://github.com/Blosc/c-blosc2/commit/ce788efbba6024db4752583fb8b477df0aabeb26

Yes, actually 2.14.4 should be compatible with all previous 2.14.x releases. For 2.14.4. we just were trying to acknowledge a previous API change in 2.13.0.

Understood. I'll likely try to find a package that was built with it, and see what happens in the conda-forge context.

Sounds good.  Thanks for your cooperation!

@FrancescAlted part of the problem is that conda(-forge) makes an assumption that the ABI and the version number have a relationship. Since there is no hard and fast rule, I just "assumed" that it was related to the "major" number of the library.
So it was my assumption that ultimately caused the problem.
@minrk tried to "remove this assumption" in https://github.com/conda-forge/c-blosc2-feedstock/pull/64 but I think that it is too complicated and the version number is quite useful to communicate to downstream users and packagers that things "change". So many times, it is not necessary.
Often the challenge is when the lines are blurred between application and library, such as with ffmpeg, where the SO number is for a developers, and a version is for a user of the cli or the GUI.

SOVERSION should be increased when a package built against the previous version may not work with the new version (typically removed or renamed symbols, or a struct changing in size or layout). That's the goal of what SOVERSION is to communicate. If you are only adding symbols, SOVERSION doesn't need to change.
This can be tricky for maintainers, because ABI changes and API changes don't always map 1:1, but for the most part:

remove or rename an API: bump SOVERSION
add api: leave SOVERSION alone

If I understood https://github.com/Blosc/c-blosc2/issues/581 correctly, that means that 2.13 should have bumped the SOVERSION, but this was delayed until 2.14.4.
That would mean that the compatibility ranges are:

2.0-2.12 (SOVERSION 2)
2.13-2.14.3 (ABI change due to changed symbol, but still identifies as SOVERSION 2)
2.14.4+ (SOVERSION 3)

That is, these transition lines cause breakages when the compile-time version doesn't match runtime:

compiled against 2.12 with 2.13+ at runtime produces: "can't find symbol: register_tuner_private" because the ABI changed
compiled against <=2.14.3, with 2.14.4 at runtime produces: Library not loaded: @rpath/libblosc2.2.dylib because the reported ABI changed

and ideally these two transitions (reported ABI and actual ABI) happen at the same time.
https://abi-laboratory.pro is a handy tool (not sure if it's really maintained anymore) that scans libraries to determine when their ABI changes. It might be useful to check with a tool like that when preparing releases to make sure you know whether to bump SOVERSION.
I'll try to update https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/703 to reflect this

SOVERSION should be increased when a package built against the previous version may not work with the new version (typically removed or renamed symbols, or a struct changing in size or layout). That's the goal of what SOVERSION is to communicate. If you are only adding symbols, SOVERSION doesn't need to change.
This can be tricky for maintainers, because ABI changes and API changes don't always map 1:1, but for the most part:

remove or rename an API: bump SOVERSION
add api: leave SOVERSION alone

If I understood Blosc/c-blosc2#581 correctly, that means that 2.13 should have bumped the SOVERSION, but this was delayed until 2.14.4.
That would mean that the compatibility ranges are:

2.0-2.12 (SOVERSION 2)
2.13-2.14.3 (ABI change due to changed symbol, but still identifies as SOVERSION 2)
2.14.4+ (SOVERSION 3)

That is, these transition lines cause breakages when the compile-time version doesn't match runtime:

compiled against 2.12 with 2.13+ at runtime produces: "can't find symbol: register_tuner_private" because the ABI changed
compiled against <=2.14.3, with 2.14.4 at runtime produces: Library not loaded: @rpath/libblosc2.2.dylib because the reported ABI changed

and ideally these two transitions (reported ABI and actual ABI) happen at the same time.
https://abi-laboratory.pro is a handy tool (not sure if it's really maintained anymore) that scans libraries to determine when their ABI changes. It might be useful to check with a tool like that when preparing releases to make sure you know whether to bump SOVERSION.
I'll try to update conda-forge/conda-forge-repodata-patches-feedstock#703 to reflect this

Thanks for the detailed information @minrk!  I have added a link to this note to our release procedure.  Hope to make it better next time!

Do we have anything else to do now that the migration is complete:
https://github.com/conda-forge/c-blosc2-feedstock/issues/62

I don't think so, thanks @hmaarrfk!


Background + Ground segmentation

I'm using the single camera tracking with a realsense d435 camera through the docker image. The point cloud obtained has a lot of distortion errors. Is there a way I could confirm how the background and ground segmentation are performing? I'd like to plot the plane from the coefficients obtained on Rviz to check the ground plane equation obtained. Is there a way I could do this through the Rviz GUI?

Hi,
I am using the single-camera tracking and I'll also need the equation of plane to implement a pointing action recognition system.
Does someone know how the ground plane is defined and/or how to define a plane in the 3D space in the FOV of the sensor?
Thank you,
Eugenio

Hi @evalliETH
I have managed to obtain visibility of the ground plane through a separate developed node. It subscribes to the pointcloud topic and read the ground plane coefficients from file.
The little processing is done in the cloud callback:
// Global Variables

Eigen::VectorXf ground_coeffs;

// Clouds
PointCloudT::Ptr cloud(new PointCloudT);
PointCloudT::Ptr ground_cloud(new PointCloudT);

void cloud_cb (const PointCloudT::ConstPtr& callback_cloud)
{
    *cloud = *callback_cloud;

    pcl::IndicesPtr inliers(new std::vector<int>);

    boost::shared_ptr<pcl::SampleConsensusModelPlane<PointT> > ground_model(new pcl::SampleConsensusModelPlane<PointT>(cloud));
    ground_model->selectWithinDistance(ground_coeffs, 0.06, *inliers);

    pcl::ExtractIndices<PointT> extract;
    extract.setInputCloud(cloud);
    extract.setIndices(inliers);
    extract.setNegative(false);
    extract.filter(*ground_cloud);
}


Create Login component

This component should also have a 'Login' button for taking picture

@all-contributors please add chiched for code


Logo on OIDC Generic Provider Login, Signup page

Preflight checklist

[X] I could not find a solution in the existing issues, docs, nor discussions.
[X] I agree to follow this project's Code of Conduct.
[X] I have read and am following this repository's Contribution Guidelines.
[X] This issue affects my Ory Network project.
[X] I have joined the Ory Community Slack.
[X] I am signed up to the Ory Security Patch Newsletter.

Describe your problem
Issue: After OIDC Generic Provider is added via Social Sign-in page (console.ory.sh/projects/../social-signin), logo for Generic Provider is missing on Login, Signup page. There is no option to add logo on Theme Page (console.ory.sh/projects/../account-experience/theming) as well.

Describe your ideal solution
Feature Request: An option to upload custom logo for Generic OIDC/OAuth2 Provider and display on Login, Signup page similar like other provider (eg: Microsoft).
Workarounds or alternatives
Alternative Solution: Or may be support custom css with image url.
Version
all versions
Additional Context
No response

Thanks for the report, i've added this to our backlog.
We should add a "Logo URI" option to the generic OIDC provider config and use that, rather than making it an account experience feature - that way it works in custom UIs, too, and it scales better to multiple custom providers

In Ory Elements v2 we auto generate an icon. However, it’s still not possible to customize it.


Redirection error while running tests

While debugging a related issue I decided to fork this project and try to add the option to override the hard coded OUI::REMOTE_TXT_URI value. However, it seems that the tests in master are currently failing.
The main issue seems to be a redirect received when requesting http://standards.ieee.org/develop/regauth/oui/oui.txt
Requests

GET http://standards.ieee.org/develop/regauth/oui/oui.txt
Responds with 302 Found Location: https://standards.ieee.org/develop/regauth/oui/oui.txt
GET https://standards.ieee.org/develop/regauth/oui/oui.txt
Responds with 302 Found Location: http://standards-oui.ieee.org/oui/oui.txt
GET http://standards-oui.ieee.org/oui/oui.txt
Responds with the actual OUI data.

The problem appears to be between requests 2 & 3 for some reason Ruby won't follow the redirect from HTTPS to HTTP.
Steps to reproduce.
# git clone https://github.com/steakknife/oui.git
# cd oui
# bundle
# bundle exec rake test

Test Output
bundle exec rake test
bundle exec ruby -Ilib:test /work/test/test_oui.rb
Run options: --seed 18756

# Running:

Fetching http://standards.ieee.org/develop/regauth/oui/oui.txt
EFetching http://standards.ieee.org/develop/regauth/oui/oui.txt
E.Fetching /work/data/oui.txt
E

Finished in 0.947055s, 4.2236 runs/s, 3.1677 assertions/s.

  1) Error:
TestOUI#test_lookup:
RuntimeError: redirection forbidden: https://standards.ieee.org/develop/regauth/oui/oui.txt -> http://standards-oui.ieee.org/oui/oui.txt
    /usr/local/lib/ruby/2.5.0/open-uri.rb:239:in `open_loop'
    /usr/local/lib/ruby/2.5.0/open-uri.rb:165:in `open_uri'
    /usr/local/lib/ruby/2.5.0/open-uri.rb:735:in `open'
    /usr/local/lib/ruby/2.5.0/open-uri.rb:35:in `open'
    /work/lib/oui.rb:310:in `fetch'
    /work/lib/oui.rb:328:in `install_updates'
    /work/lib/oui.rb:167:in `block (2 levels) in update_db'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:204:in `_transaction'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:179:in `block in transaction'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/connecting.rb:270:in `synchronize'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:145:in `transaction'
    /work/lib/oui.rb:159:in `block in update_db'
    /usr/local/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /work/lib/oui.rb:143:in `update_db'
    /work/lib/oui.rb:92:in `block in find'
    /usr/local/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /work/lib/oui.rb:91:in `find'
    /work/test/test_oui.rb:43:in `test_lookup'

  2) Error:
TestOUI#test_manual_data:
RuntimeError: redirection forbidden: https://standards.ieee.org/develop/regauth/oui/oui.txt -> http://standards-oui.ieee.org/oui/oui.txt
    /usr/local/lib/ruby/2.5.0/open-uri.rb:239:in `open_loop'
    /usr/local/lib/ruby/2.5.0/open-uri.rb:165:in `open_uri'
    /usr/local/lib/ruby/2.5.0/open-uri.rb:735:in `open'
    /usr/local/lib/ruby/2.5.0/open-uri.rb:35:in `open'
    /work/lib/oui.rb:310:in `fetch'
    /work/lib/oui.rb:328:in `install_updates'
    /work/lib/oui.rb:167:in `block (2 levels) in update_db'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:204:in `_transaction'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:179:in `block in transaction'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/connecting.rb:270:in `synchronize'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:145:in `transaction'
    /work/lib/oui.rb:159:in `block in update_db'
    /usr/local/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /work/lib/oui.rb:143:in `update_db'
    /work/lib/oui.rb:92:in `block in find'
    /usr/local/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /work/lib/oui.rb:91:in `find'
    /work/test/test_oui.rb:59:in `test_manual_data'

  3) Error:
TestOUI#test_update_db:
Sequel::DatabaseError: ArgumentError: invalid byte sequence in US-ASCII
    /work/lib/oui.rb:328:in `split'
    /work/lib/oui.rb:328:in `install_updates'
    /work/lib/oui.rb:167:in `block (2 levels) in update_db'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:204:in `_transaction'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:179:in `block in transaction'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/connecting.rb:270:in `synchronize'
    /usr/local/bundle/gems/sequel-5.14.0/lib/sequel/database/transactions.rb:145:in `transaction'
    /work/lib/oui.rb:159:in `block in update_db'
    /usr/local/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /work/lib/oui.rb:143:in `update_db'
    /work/test/test_oui.rb:38:in `test_update_db'

4 runs, 3 assertions, 0 failures, 3 errors, 0 skips
rake aborted!
Command failed with status (1): [bundle exec ruby -Ilib:test /work/test/tes...]
/work/rakefile:13:in `bundle_sh'
/work/rakefile:18:in `block in <top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => test
(See full trace by running task with --trace)

curl Output:
# curl -vL http://standards.ieee.org/develop/regauth/oui/oui.txt > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to standards.ieee.org (<IP_ADDRESS>) port 80 (#0)
> GET /develop/regauth/oui/oui.txt HTTP/1.1
> Host: standards.ieee.org
> User-Agent: curl/7.52.1
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 302 Found
< Location: https://standards.ieee.org/develop/regauth/oui/oui.txt
< Server: BigIP
* HTTP/1.0 connection set to keep alive!
< Connection: Keep-Alive
< Content-Length: 0
<
* Curl_http_done: called premature == 0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host standards.ieee.org left intact
* Issue another request to this URL: 'https://standards.ieee.org/develop/regauth/oui/oui.txt'
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to standards.ieee.org (<IP_ADDRESS>) port 443 (#1)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [87 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [2690 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [333 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [70 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: C=US; ST=New Jersey; L=Piscatwaway; O=IEEE; OU=IT-Systems Analysts; CN=*.ieee.org
*  start date: Jul 26 15:03:42 2016 GMT
*  expire date: Jul 26 15:33:41 2019 GMT
*  subjectAltName: host "standards.ieee.org" matched cert's "*.ieee.org"
*  issuer: C=US; O=Entrust, Inc.; OU=See www.entrust.net/legal-terms; OU=(c) 2012 Entrust, Inc. - for authorized use only; CN=Entrust Certification Authority - L1K
*  SSL certificate verify ok.
} [5 bytes data]
> GET /develop/regauth/oui/oui.txt HTTP/1.0
> Host: standards.ieee.org
> User-Agent: curl/7.52.1
> Accept: */*
>
{ [5 bytes data]
< HTTP/1.1 302 Found
< Date: Tue, 13 Nov 2018 18:57:00 GMT
< Location: http://standards-oui.ieee.org/oui/oui.txt
< Content-Length: 225
< Connection: close
< Content-Type: text/html; charset=iso-8859-1
< Strict-Transport-Security: max-age=-225125820; includeSubDomains
< Set-Cookie: TS01a0761a=01c1c020dd64bc7ac8b278a5a2576aefc8784a979c16d8d7721c673f5d7d5536bcc194e21dd125ca273e76a78abb92c89d58dbada5; Path=/
<
* Curl_http_done: called premature == 0
  0   225    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Closing connection 1
} [5 bytes data]
* TLSv1.2 (OUT), TLS alert, Client hello (1):
} [2 bytes data]
* Issue another request to this URL: 'http://standards-oui.ieee.org/oui/oui.txt'
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to standards-oui.ieee.org (<IP_ADDRESS>) port 80 (#2)
> GET /oui/oui.txt HTTP/1.0
> Host: standards-oui.ieee.org
> User-Agent: curl/7.52.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.12.0
< Date: Tue, 13 Nov 2018 18:57:00 GMT
< Content-Type: text/plain
< Content-Length: 4020438
< Last-Modified: Tue, 13 Nov 2018 17:04:18 GMT
< Connection: close
< ETag: "5beb0412-3d58d6"
< Accept-Ranges: bytes
<
{ [1380 bytes data]
 89 3926k   89 3528k    0     0  1026k      0  0:00:03  0:00:03 --:--:-- 1165k* Curl_http_done: called premature == 0
100 3926k  100 3926k    0     0  1042k      0  0:00:03  0:00:03 --:--:-- 1170k
* Closing connection 2

According to this Stack Overflow question. There appear to be a few options.

Make use of the open_uri_redirections gem.
Disable redirects in open() and then catch the OpenURI::HTTPRedirect and retry manually.
Use some other HTTP library such as Net::HTTP, HTTParty. or httpclient.

I've verified that both options 1 and 2 resolve the redirect issue. I am still not sure what's causing the issue with invalid byte sequence in US-ASCII.

Cannot reproduce. Checkout a clean tree and try again.

I tracked down the issue with the failing tests. It turns out the Docker image I was using to run them needed the LANG=C.UTF-8 environment variable to be set. Without this the tests fail sporadically (due to minitest's random seed). Any time that TestOUI#test_update_db wasn't the last test run would run into the redirect issue.
Even after resolving the tests issue I am still running into a problem with redirects.
$ docker run --rm -e LANG=C.UTF-8 ruby:2.5 bash -c 'ruby --version && gem install oui-offline && oui update'
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
Successfully installed sequel-4.49.0
Building native extensions. This could take a while...
Successfully installed sqlite3-1.3.13
Oui!
Successfully installed oui-offline-1.2.7
3 gems installed
Fetching http://standards.ieee.org/develop/regauth/oui/oui.txt
/usr/local/lib/ruby/2.5.0/open-uri.rb:239:in `open_loop': redirection forbidden: https://standards.ieee.org/develop/regauth/oui/oui.txt -> http://standards-oui.ieee.org/oui/oui.txt (RuntimeError)
        from /usr/local/lib/ruby/2.5.0/open-uri.rb:165:in `open_uri'
        from /usr/local/lib/ruby/2.5.0/open-uri.rb:735:in `open'
        from /usr/local/lib/ruby/2.5.0/open-uri.rb:35:in `open'
        from /usr/local/bundle/gems/oui-offline-1.2.7/lib/oui.rb:314:in `fetch'
        from /usr/local/bundle/gems/oui-offline-1.2.7/lib/oui.rb:332:in `install_updates'
        from /usr/local/bundle/gems/oui-offline-1.2.7/lib/oui.rb:171:in `block (2 levels) in update_db'
        from /usr/local/bundle/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:224:in `_transaction'
        from /usr/local/bundle/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:199:in `block in transaction'
        from /usr/local/bundle/gems/sequel-4.49.0/lib/sequel/database/connecting.rb:301:in `block in synchronize'
        from /usr/local/bundle/gems/sequel-4.49.0/lib/sequel/connection_pool/threaded.rb:107:in `hold'
        from /usr/local/bundle/gems/sequel-4.49.0/lib/sequel/database/connecting.rb:301:in `synchronize'
        from /usr/local/bundle/gems/sequel-4.49.0/lib/sequel/database/transactions.rb:165:in `transaction'
        from /usr/local/bundle/gems/oui-offline-1.2.7/lib/oui.rb:163:in `block in update_db'
        from /usr/local/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
        from /usr/local/bundle/gems/oui-offline-1.2.7/lib/oui.rb:147:in `update_db'
        from /usr/local/bundle/gems/oui-offline-1.2.7/bin/oui:43:in `<top (required)>'
        from /usr/local/bundle/bin/oui:23:in `load'
        from /usr/local/bundle/bin/oui:23:in `<main>'

Can anyone else confirm this issue or is it just my environment?


ploomber-core telemetry breaks jupysql when executing on a read only filesystem

We use papermill to execute jupyter notebooks on AWS lambda functions. The AWS Lambda filesystem is readonly except for the /tmp directory. When the jupysql extension is loaded the telemetry.py file in ploomber-core attempts to create a folder at ~/.ploomber by default. This throws an error and causes the execution of the notebook to fail.
This can be pretty easily worked around by setting:
import os
os.environ["PLOOMBER_HOME_DIR"] = "/tmp/.ploomber"

But it would be good if the telemetry.py file in ploomber-core either wasn't executed at all, or if it does need to be executed, if it more gracefully handled the situation where it is unable to create the config directory.

thanks for the report! we'll take a look and fix it
btw, check out ploomber-engine, it's a drop-in replacement for papermill with enhanced capabilities!


Currency symbol other than INR and USD are not displaying on print invoice.

Framework Version: 0.1.6

Why is this tagged as a low priority?

Framework Version: 0.1.6

Fixed


Comparisons and Sorts Within Collections

Fixed <> formatting

This file is missing a title.  Looks awkward without a title.

@cartermp Fixed. Okay to merge?


Update the direct message recipe to work with newer twitter API.

thanks!

Coverage decreased (-1.1%) to 29.05% when pulling cf79cdac33c3d08d7e35e2518bda8c9f03196a3a on endlisnis:master into 278a44ec969a0dbe4b3d538d0c67b8fc7017397b on sixohsix:master.


changed root CA creation options, added encryption

Hi Jacob,
Thank you for minica.
Here is a PR somehow "reverting" #18 with the few other changes I mentioned in comments of this PR.

added -no-auto flag to prevent automatic issuer creation
added -root-ca-only flag to only create an issuer

The other changes are :

added -encrypt-ca-key flag to encrypt root CA's private key (#2)
to allow automated use, when required (creation/use of key),
password can be provided by environment (MINICA_KEY_PASSWORD).
If it is not, it will be asked to user.
Note that this adds a dependency to "golang.org/x/crypto"
this is for ssh/terminal, to not display typed password

Also, as you stated in #14 that you wanted to keep things "radically simple", and while still wanting to help find where a certificate comes from, I've added a simple CN customization option.

added -ca-name flag to customize issuer CN for easier identification
this replaces "minica" by a custom string in "minica root ca 3f3732"

added/modified some error checking.

modified README/Usage accordingly.

As I needed these changes, I hope you'll find them worth the merge.

Hi Jacob,
any remark ?

Hi @mtrvfuencxozd! Thanks for your patience. Most of these changes, I don't want to incorporate into minica.
For the encrypted root CA private key: I think this use case can be better solved with an encrypted filesystem containing the private key.
For -root-ca-only and -ca-name, I think you can solve these by "bringing your own root," that is, by generating a root with some other software (like OpenSSL) and naming it minica.pem and minica-key.pem. I like this approach better because it reduces the need to add additional flags to minica.
For -no-auto, I can see the use, and would accept it (though I'd like to call it -no-create-root or something).
I'm going to close this PR for now; if you would like to create another one that implements -no-create-root I will take a look. Otherwise, I may implement it myself at some point.


Switch pyrcroptodome to pycryptodomex

Currently we use pycryptodome for cryptography functions. Since it is a drop in replacement for pycrytpo, environments with that dependency already installed creates conflicts. Anaconda ships with pycrypto by default, so vanilla ubuntu dsvms, for example, do not work with aztk out of the box.
Pycryptodomex removes the conflicting namespace (uses Cryptodome instead of Crypto package name).

Closed by #564


chore(main): release 1.0.0

:robot: I have created a release beep boop
1.0.0 (2024-09-03)
⚠ BREAKING CHANGES

Dprecation of some unused functions
Removed nvim-web-devicons dependency

Features

Added clickable buffer name section & ruler in the statusline (01eb406)
Added dynamic colors & removed necessity for calling setup (533ff65)
Parts of the statuscolumn, statusline & tabline can now be created (01eb406)
Removed nvim-web-devicons dependency (01eb406)
The glow effect now only happens on current window (41cbd6c)

Bug Fixes

Dprecation of some unused functions (2158511)
Fixed a bug causing incorrect fold state when multiple windows are open (800b68f)
Fixed inconsistent behavior when clicking on current buffer (f5060d5)
Made folds more visible in the statuscolumn (01eb406)
Minor improvementa to icons and git branch in statusline (46eabdb)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.0.0
:sunflower:


npm extension should no longer be recommended

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.69.2
OS Version: macOS 12.4

Steps to Reproduce:

Bring up the Extensions manager.
Look at the Recommended extensions.

Since the npm extension is deprecated, it shouldn't show up as recommended.

/duplicate

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Would like to see other visual properties explained including color

Specifically, I'm looking into the Color field in the Visualizations pane. Not changing the color from the symbol style settings, but from the Color field in the visualization pane. I see that the Size field  is explained, but did not see anything about color. Also, what are the different functions between the color settings in symbol style and color settings in visualizations pane?
From the Fields pane, drag a measure to the Size bucket to adjust how the data is shown. In this example, we're using Sales > Last Year Sales.
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: acf2c48a-66f7-6c38-286e-ae429fc34883
Version Independent ID: 033ec0fc-5c72-8cf2-20fb-1c7a36ebcd5f
Content: Create an ArcGIS map in Power BI - Power BI
Content Source: powerbi-docs/visuals/power-bi-visualizations-arcgis.md
Service: powerbi
Sub-service: pbi-visuals
GitHub Login: @mihart
Microsoft Alias: mihart

Thanks for your comment, @djurecic0. This issue has been assigned to the doc author for review.

Thanks for your comment. Looks like this is product feedback and a feature request, rather than documentation feedback – you can submit product feedback or feature ideas by going to https://ideas.powerbi.com. You can also engage with the Power BI engineering team by being active in the Power BI Community, found at https://community.powerbi.com.


ESP32C6 throws a ninja error (IDFGH-12160)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
5.1.2, 5.2
Operating System used.
Linux
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
None
What is the expected behavior?
In building the Blink sample using esp32S3 or esp32C6 project builds just fine. for either v5.1.2 or v5.2
If I then load tusb_serial _device, sample using either 5.1.2 or 5.2 I can build the project just fine using esp32S3
but when I attempt to build the project using an ESP32C6 I get the following errors:
What is the actual behavior?
Here is the error that is thrown:
CMake Error at /home/binshift/esp/v5.1.2/esp-idf/tools/cmake/build.cmake:540 (message):
ERROR: Cannot find versions of "espressif/tinyusb" satisfying ">=0.14.2"
for the current target "esp32c6".
Call Stack (most recent call first):
/home/binshift/esp/v5.1.2/esp-idf/tools/cmake/project.cmake:547 (idf_build_process)
CMakeLists.txt:6 (project)
Steps to reproduce.

Load Visual Studio, Load project tusb_serial_device
Configure extension for either 5.1.2 or 5.2
select the Port and device esp32S3
Build the project,  Project builds just fine
Select port and device esp32C6
build the project
above exception is thrown

...
Build or installation Logs.
No response
More Information.
No response

https://github.com/espressif/esp-idf/blob/master/examples/peripherals/usb/device/tusb_serial_device/README.md lists the chips supported by this example — ESP32-S2, ESP32-S3, ESP32-P4.
ESP32-C6 doesn't have a USB_OTG peripheral, so TinyUSB library doesn't work there.

Thanks Ivan
On Mon, Feb 19, 2024 at 10:52 AM Ivan Grokhotkov @.***>
wrote:

https://github.com/espressif/esp-idf/blob/master/examples/peripherals/usb/device/tusb_serial_device/README.md
lists the chips supported by this example — ESP32-S2, ESP32-S3, ESP32-P4.
ESP32-C6 doesn't have a USB_OTG peripheral, so TinyUSB library doesn't
work there.
—
Reply to this email directly, view it on GitHub
https://github.com/espressif/esp-idf/issues/13216#issuecomment-1953020535,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKE7TBBARTJYJBZ3WTFIXTYUONO3AVCNFSM6AAAAABDP5NQMOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJTGAZDANJTGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
http://joestechblog.com
//
--------------------------------------------------------------------------------------
Old C programmers never die, they just get a new function pointer.
..."It began upon the following occasion: It is allowed on all hands, that
the primitive way of breaking eggs before we eat them, was upon the larger
end: but his present Majesty's grandfather, while he was a boy, going to
eat an egg, and breaking it according to the ancient practice, happened to
cut one of his fingers. Whereupon the Emperor his father published an
edict, commanding all his subjects, upon great penalties, to break the
smaller end of their eggs."  Jonathan Swift


This is a test PR

To check if #6 is still valid

Tests have passed. So we can close this PR and also #6


[incubator-kie-issues-1131] test migration from V7 to code generation-20

In addition to previous changes associated,
Migrated tests within FlowTest.java
The test can be identified by referring to FlowTest.java:
https://github.com/apache/incubator-kie-kogito-runtimes/blob/main/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/FlowTest.java
Closes https://github.com/apache/incubator-kie-issues/issues/1131.

PR job #3 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
build-chain build full_downstream  -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u https://github.com/apache/incubator-kie-kogito-runtimes/pull/3627 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3627/3/display/redirect
Test results:

PASSED: 3355
FAILED: 1

Those are the test failures:

org.jbpm.bpmn2.FlowTest.testMultipleGatewaysProcess
expected: 2 but was: 1

PR job #2 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
build-chain build full_downstream  -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u https://github.com/apache/incubator-kie-kogito-runtimes/pull/3627 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3627/2/display/redirect
Test results:

PASSED: 3353
FAILED: 3

Those are the test failures:

org.jbpm.bpmn2.FlowTest.testMultipleGatewaysProcess
expected: 2 but was: 1

org.jbpm.bpmn2.IntermediateEventTest.testIntermediateCatchEventTimerCycle3
expected: 3 but was: 2

org.kie.kogito.process.dynamic.DynamicCallResourceTest.testConcurrentDynamicCalls
java.lang.AssertionError: 1 expectation failed.Expected status code <200> but was <400>.

plz be aware of the CI failing

PR job #4 was: UNSTABLE
Possible explanation: This should be test failures

Reproducer
build-chain build full_downstream  -f 'https://raw.githubusercontent.com/${AUTHOR:apache}/incubator-kie-kogito-pipelines/${BRANCH:main}/.ci/buildchain-config-pr-cdb.yaml' -o 'bc' -p apache/incubator-kie-kogito-runtimes -u https://github.com/apache/incubator-kie-kogito-runtimes/pull/3627 --skipParallelCheckout
NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution

Please look here: https://ci-builds.apache.org/job/KIE/job/kogito/job/main/job/pullrequest_jobs/job/kogito-runtimes-pr/job/PR-3627/4/display/redirect
Test results:

PASSED: 3355
FAILED: 1

Those are the test failures:

org.jbpm.bpmn2.IntermediateEventTest.testEventBasedSplit2
Expected size: 2 but was: 1 in:[EventDesciption [event=timerTriggered, nodeId=_4, nodeName=timer, eventType=timer, nodeInstanceId=e9261cd5-dcef-4689-9553-feae88c1cbe9, processInstanceId=dc3f100b-5879-4f3d-80d2-854ee09f6cb5, dataType=null, properties={TimerID=c5c33f3b-2355-4c8f-879a-f59c8c7550c8, Period=null, Delay=500ms, Date=null}]]


Compile examples based on AmberMini version?

With AmberMini v16, there are a number of FF files which got moved into a folder called "oldff/leaprc.{file}". A number of our examples make use of some of these files and expect them in the standard folder for leaprc files. Should we have yank-examples do a check of which AmberMini is installed and modify the examples based on the version of AmberMini, or should we assume a specific version of AmberMini?
Can't exactly test right now since AmberMini 16 hasnt been merged yet, active discussion and all

Like OpenMM, we may want to push people toward newer forcefields, so we may want to require people specify oldff/leaprc.{file} in order to access the older forcefields. This will only work if we require ambertools 16 for yank 1.0, though, but I think this is the plan.

Putting a pin in this until we resolve the AmberMini v16 PR

Closing this issue, related to a different one i'll open


Minimum Height

Hi,
Thanks for such a great library but i am facing one issue.
The issue is there is some minimum height given to the right child. I want the right child to be build of the exact size as per the content and not the minimum size so please can you help me with this issue?

I've wraped the Timeline Tile with a Container and set constraints to the desired maxHeight, worked here, if there's a proper way,  please tell us

Hey there. Thanks for the issue.
Well, like @talski pointed out, you can play with the size using a BoxConstraints on the children.
Involving them inside a Container or a ConstrainedBox widget, it is totally normal.
Let me know if this help, or provide some example code to illustrate the problem.
👍

Actually in my case it is a card with a column containing multiple text widgets. So I won' be able to know the height to set a constraint

I'm afraid that I will only be able to help with some code that I can execute and see what is going on.

Sorry for the late reply @JHBitencourt I will provide you an example code shortly

Here is the code repo link for the attached screenshot
https://github.com/Faiyyaz/timeline_tile_bug.git
The bug is in the card with blue background color. As you can see it gives me some extra padding in the card where the data
is not much. And i can't ascertain constraints because this data will be dynamic.

Thanks for the example.
If you check here the football, weather and success timeline work with dynamic child height.
But I forked and updated your project (upgraded timeline_tile version to 1.0.0), final result:

The problem is, you are using TimelineAlign.manual that requires both a startChild (left) and rightChild (right).
When you don't provide a child, it uses a defaultChild with a fixed height of 100.
So, you can either use TimelineAlign.start with a rightChild, or simply stay with TimelineAlign.manual and pass an empty Container() to startChild.
I did this last one to your repo.


Support applying infractions to users not in the DB via Converter FetchedUser

Addresses #627
This PR would add a proper Converter (in converters.py) to fetch users from the Discord API in case they don't exist in the Python Discord DB, so they can be added, and infractions can be applied properly (given their ID is provided.)
The most important change in structure here is that a post_user function is added to moderation.utils, meant to be used by post_infraction. That basically means I'm changing the responsabilities of post_infraction (but after trying alternatives, this seemed to be the cleanest way.)
The live tests I've done indicate it works fine. Tried wiping the DB multiple times and tried different scenarios:

I know the fetching itself could have been done in the converter itself, but I felt it was a bit odd to make a converter have side effects like that. I think it should limit its job to just... convert. Not sure if I'm wrong on this.

Also, there is a fetch_user somewhere in the infraction scheduler IIRC. Not sure if it should be removed if proxy_user is going to stay. After all, if fetch_user failed once (and thus we fell back to proxy_user), it's likely to fail again. On the other hand, it failing would be some weird, likely intermittent, API issue because we'd not fall back if the user doesn't exist.

I'll pick this up in a few hours, to refactor it and finish it.
Question: how should proxy_user work? I find strange the way it's done. It says Used when a Member or User object cannot be resolved., but it's still required to have a row for that user in the local DB. So, for this to work, it would be necessary to POST that user, basically with a made up ID. Isn't that a bit dangerous?
On the other hand, there's a PR by @Numerlor that removes both proxy_users and makes a class of it, so we should keep that in mind:
https://github.com/python-discord/bot/pull/651/files#diff-9d66c9dd2c18a8ecd9bc3be1100ae94eR73-R98

The fetch may fail even if the user is already in the database since our
API is, of course, separate from Discord's. It this situation the
interactions will behave as they currently do - they work as long as the
user is in the database. Better than not having anything at all to fall
back on.
If we want it to really be robust, then fake information could be posted to
the API if it's fallen back to a proxy user. It's not a big deal since the
ID is the only important field and that is being supplied by the person
invoking the command (if it's a username instead then just give up).
Den ons 18 dec. 2019 13:22manusaurio<EMAIL_ADDRESS>skrev:

I'll pick this up in a few hours, to refactor it and finish it.
Question: how should proxy_user work? I find strange the way it's done.
It says Used when a Member or User object cannot be resolved., but it's
still required to have a row for that user in the local DB. So, for this to
work, it would be necessary to POST that user, basically with a made up
ID. Isn't that a bit dangerous?
On the other hand, there's a PR by @Numerlor https://github.com/Numerlor
that removes both proxy_users and makes a class of it, so we should keep
that in mind:
https://github.com/python-discord/bot/pull/651/files#diff-9d66c9dd2c18a8ecd9bc3be1100ae94eR73-R98
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/python-discord/bot/pull/701?email_source=notifications&email_token=AALR4755KX5MPKQNJU73YHDQZKICHA5CNFSM4J3NEQNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHHRFWQ#issuecomment-567218906,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALR477PMYCL3HKTJGWJDPLQZKICHANCNFSM4J3NEQNA
.

A couple of issues came up, so now it looks worse.
As you said, @MarkKoz, it would be a good idea to have that discord.Object from proxy_user(id) still working, in case fetching fails, but the error doesn't imply the user doesn't exist. The problem is that I can't (I think) import the proxy_users from the moderation utils to converters (I think there's a circular import issue?) so these commits add a new proxy_user as a helper in the FetchedUser class itself. That's an abomination that should be addressed.

in case fetching fails, but the error doesn't imply the user doesn't exist.

Why not? If it's a NotFound AKA 404 then that's exactly what it implies.

The problem is that I can't (I think) import the proxy_users...

There isn't a need to import it. Make the object inside the FetchedUser converter. Here's a rough example:
class FetchedUser:
    async def convert():
        ...

        try:
            # If the fetch succeeds just return the user
            return await fetch_user(user_id)
        except discord.HTTPException as e:
            if e.status != 404:
                # There was some weird API issue.
                # Create a mock User object
                user = discord.Object(user_id)
                user.mention = user.id

                ...

                return user
            else:
                # It's a 404 so the user simply doesn't exist.
                raise BadArgument("User does not exist.")

The original proxy_users can likely just be completely removed and replaced by FetchedUser, unless you think there is a case for some other commands (now or in the future) for which it'd be not worth the API call of fetch_user.

Why not? If it's a NotFound AKA 404 then that's exactly what it implies.
My sentence should be read as "if there is an error and it doesn't imply the user doesn't exist, then return a proxy," sorry if I worded it poorly, the comma shouldn't be there (in case fetching fails but the error doesn't imply the user doesn't exist)

The original proxy_users can likely just be completely removed and replaced by FetchedUser
That makes it much easier then. But management.py does use proxy_use (to search for infractions.) Should it be removed anyway, and should I make it use FetchedUser instead too? I assume there shouldn't be a problem about the API limits unless the moderators really want to test it.

But management.py does use proxy_use (to search for infractions.)

Oh that is a good case for it. I'd say leave it. You should just move proxy_user into the converters module to avoid any imports and allow the FetchedUser to return the proxy e.g. return await ProxyUser.convert(user_id).
Regarding #651, it's stale so I wouldn't wait for it. I don't think the resulting conflicts will be too bad. If you really want it merged first, you could try poking the author or even ask to take it over yourself if you fancy that.


Additional Params - Project Notification - Event Templates

Overview
Add additional params to the latest Project Notification
Upload it in the local using the event template import API
Create work
Check work plan
Complete one entire workplan
Check maximum possible actions and decisions

Help to test

Create a new Project Notification work
Compare it with the latest project notification template
The latest project template can be found in our github report, go to epictrack-api/api/src/template/event_templates/project_notification/002_Project_notification.xlsx
Let me know if you need me to find the file

last 2 decisions failed from paramenters


Set label name

I have defined the following vue-select-filter:
<vue-select-filter
            :title="filterTitle"
            :value="value"
            label="output_name"
            :options="filterOptions"
           @input="update">
    </vue-select-filter>

My options look like the following:
[
    {
        "output_name": "xxx",
        "id": 1
    },
    {
        "output_name": "yyy",
        "id": 2
    },
...

But I get the following error and no options are displayed:

Is there something different since refactoring vue-select?
And is the server side component in use anywhere?

with server side vue-select label name is working - but not with client side

VueSelect expects an object with id and label as properties. But you cand customize this using the trackBy and label props.


[feature] Add .configured to NodeSettings

Purpose
Fixes API bug where authorized storage addons without a selected folder were throwing 503's when links were followed
Changes

Add .configured property to base classes
Use .configured instead of .complete in API call
Tests

Side effects
None, although there may be other places where similar bugs exist. This only fixes a very specific case.
Ticket
[OSF-6019]

Since this is intended to fix a bug that is visible in an API view, could you also make a view test? If you have to reinvent the wheel with mocking, don't, but if you can just add the case where the addon is added but not configured, watch it fail without you code, and watch it pass with, that would be awesome. :penguin:

As discussed in person, that class isn't being tested currently, and it's a simple enough change that it isn't worth doing now. :shipit:


Conflict in case of different versions of the same xsd included

Hi,
I think there is an issue when we use this tools for an XSD which as in its imports different version of the same xsd.
Example with  http://xml.sandre.eaufrance.fr/scenario/eaux_litto/1.1/sandre_sc_qeli.xsd
In result we have a file sandre_ref_tax.xsd which is used in its version 1 and 1.1 . A search on this filename in all result files show that some xsd refers to a missing file, some refers to file sandre_ref_tax.xsd with namespace version 1 and others also refers to sandre_ref_tax.xsd but for version 1.1

1_sandre_ref_tax.xsd and 1.1_sandre_ref_tax.xsd does not exist
Any Ideas ?

Strange. I tested with that URL and it works well. I don't have 1.1_sandre_ref_tax.xsd but sandre_ref_tax.xsd instead and these files exist.

PS : I wrote this script for another SANDRE scenario (EDILABO) and it worked for me :-D

Thank you for your reply :)
I'll have a check in debug next week to see what's going on. I'll tell you if I something

I think the problem is in generateFileName(). For some reasons i don't understand, sandre_ref_tax.xsd is not found in cache and overwritten by the second version.
What Jdk / Jre version do you use ?
Anyway, if i change filename generation using root of url it works well, but file names are... ugly :)

I tested with Jdk 1.7 and 1.8 (script does not work at all for 1.6-) and the result is the same. I have no idea what could happen to you sorry.

ok, it works if i changed root url, so I close this issue. Do you want the modified code of generateFileName?


[Bug]: Enhanced the navbar

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
The current navbar design lacks certain functionalities and visual appeal that can enhance user experience and navigation. This issue aims to address these deficiencies by implementing the following changes:
Add ScreenShots
https://github.com/user-attachments/assets/280e77c3-f245-4468-8cf8-65345f4ef5a8
What browsers are you seeing the problem on?
No response
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC contributor
[X] I want to work on this issue
[X] I'm willing to provide further clarification or assistance if needed.

@Harish-2003 Could you please assign this task to me? I’d love to take it on!


Fastq files

Hi, I was wondering how I can access the fastq files of snATAC-seq lung data. In GEO website of samples, it says that raw data are available in SRA but I couldn't see any SRA accession id. I also checked the website, https://www.lungepigenome.org/, there are only matrix, barcodes and regions information available.
Thank you in advance.

Hi, thank you for your interest. Please contact the corresponding authors by email. They will be able to answer your question.
a5wang[at]health.ucsd.edu
kgaulton[at]health.ucsd.edu
spreissl[at]health.ucsd.edu
xinsun[at]health.ucsd.edu

Hi, thank you for your interest. Please contact the corresponding authors by email. They will be able to answer your question.
a5wang[at]health.ucsd.edu
kgaulton[at]health.ucsd.edu
spreissl[at]health.ucsd.edu
xinsun[at]health.ucsd.edu


POL-124: Hide initial step of wizard if no choice to use existing po…

Hide initial step of wizard if no choice to use existing policy actually exists.  Wasn't sure how to pass the necessary information to the embedded components.

Actually I think the default value checks need to be beefed up as 'null' is possible. Hmm.. Js compare still works but..

Actually I think the default value checks need to be beefed up as 'null' is possible. Hmm.. Js compare still works but..

null > 0 still evaluates to false, you can be more verbose if you want.

Lint passing now. Good to go?

Good to go, thanks!


Add testAsync example with ReactTestUtils actAsync usage

Not sure this README is the appropriate place for such example, but as it took me quite a while to figure out this usage, and assuming this is the right strategy, perhaps bs-jest could document how it can be used to test react hook?


Dropping a block over a button in the blocks palette activates it

Expected Behavior
The button is not activated, since it was not clicked.
Actual Behavior
The button is activated.
Steps to Reproduce
Drop a block over a button in the block palette, such as "Make a Variable".
Operating System and Browser
Firefox 62.0b14, Debian (testing).

@ericrosenbaum, I think this could be a regression that was introduced by #1667.

/cc @BryceLTaylor

I'm seeing this too, but you must let up the mouse button in order to click.  You can also click on the workspace and them move the mouse over a button and let it up to activate the button.
You CAN'T put the mouse down on the category menu, then drag it over the button and let it up to click it.


chore: move index to deprecated folder

What's the purpose of this pull request?
Create a new index on the deprecated folder to add all deprecated components.
How it works?

How to test it?

References

@tlgimenes some reason when I move the index to the deprecated folder, the build crash. So I will keep the index on root and only move the files: theme and createTheme.


[New API] : IIT ISM Subjects API

Brief Description 🤓
I will make a new APIs will be provide the information about all the subjects offered at IIT ISM.
How will you develop it?🤩
I will crawl the website of IIT ISM to gather the data then will put this all into an api where you can get the lecture plan ,course instructor and all other stuff.
Deployment
No
Select the open source program you are contributing to
Other
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINES of this project.

Greetings @pspriyanshu601🎀 ! , We are excited to have you dive into another issue with us!🚀
Your involvement in our project has been invaluable, and we're confident that your skills and insights will help us conquer this challenge😇.  Use command /gdsc to self assign the issue.  This issue represents an exciting opportunity for us to improve and enhance our project, and we are thrilled to have you on board.
We request you to follow CONTRIBUTING GUIDELINES.
Looking for your PR soon!
In case of any issues, you can contact us on Discord.❣

/gdsc

Hey @pspriyanshu601, Don't forget to add README.md while pushing your changes!😄

Hey @pspriyanshu601 ! I wanted to inform you that we have closed issue.Thank you for your understanding, and we look forward to your continued engagement with our repository🤗.
In case of any issues, you can contact us on Discord.
Thank you! ❣
Happy Coding! ✨
Will See you soon❣


Provide IDE source-map support for clickable links.

@vojtajina got this issue started with the Intellij folks, and after further discussion I think they are willing to make it a reality. The goal is providing clickable links that will correctly handle Karma's source-map stack trace output.
Initially, I believe all it will require is supplying them with a formal definition of the output, and how to correctly locate files (See my comments in the above youtrack issue - a core karma contributor should make sure I'm not giving bad advice).
We also floated the idea of providing an http download of every intermediate step in the transform chain, so that every portion is clickable. i.e. with: final file <- transform1 <- transform2 <- original file, have each item separated by <- be clickable, with karma serving up the contents at each intermediate state. This would be pretty helpful understanding/debugging what various preprocessors have done to your files.

As I don't use intelij myself I won't be working myself on this but I'm happy to accelt a PR to help with this and answer questions.


pkg.pr.new support

We love publint. I wonder if we would be able to paste a pkg.pr.new url like http://pkg.pr.new/vite@main and have it linted.
It'd be nice to have tarballs checked by publint.
And I'm also thinking about adding a new option to pkg.pr.new where users can run pkg-pr-new publish --publint where they would have their package linted after publish.

That sounds doable. Currently the code is fetching a tarball from npm and linting it, so it should be a matter of having a custom UI to pass a different tarball URL to be linted.
https://github.com/bluwy/publint/blob/5ae869f17e4b2d7d7ae66c7075756e87d5fe5185/site/src/utils/worker.js#L17-L19
https://github.com/bluwy/publint/blob/5ae869f17e4b2d7d7ae66c7075756e87d5fe5185/site/src/utils/worker.js#L38-L61

And I'm also thinking about adding a new option to pkg.pr.new where users can run pkg-pr-new publish --publint where they would have their package linted after publish.

That sounds neat too. Depending on how you're planning to display it, if it's only in the CLI, I guess it could be easily glossed over. In the past I found users prefer putting it in their CI that blocks or exits code 1 if something fails, so that's more impactful. It's easier to manage versions too.
Another option perhaps is that it can print out a publint.dev link so that they can open and view the results directly.

so it should be a matter of having a custom UI to pass a different tarball URL to be linted.

Nice, so it's easy! Maybe we can add a regex and see if it's a url, then we just do things directly on that url. What do you think?

Another option perhaps is that it can print out a publint.dev link so that they can open and view the results directly.

I think this is way better! Maybe in our comments we just give a lint to the user, so when they navigate it they see a collection of preview packages that they can click on and see the lintings. maybe that can be a new route in publint?

Yeah I think we'd need to figure out a route for both features. When pasting a link to the search input, we can navigate to a route that handles the specific link to the tarball. I'm not quite sure yet what that could look like, perhaps:

https://publint.dev/registry?tarball=http%3A%2F%2Fpkg.pr.new%2Fvite%40main
https://publint.dev/registry/pkg.pr.new/vite@main
https://publint.dev/pkg.pr.new/vite@main

Some kind of syntax that allows for other registries in the future. A mix of no1 and no2 could be nice to allow custom URLs, but also have a cleaner link for supported registries 🤔
What are the patterns for pkg.pr.new links could look like? There's http://pkg.pr.new/vite@main. and I guess http://pkg.pr.new/vite@SHA, http://pkg.pr.new/@scope/my-pkg@main, etc. Are there any other parameters / search params that can be used in the link?

I love no 3 and 2, because that way, we can have a catch-all route and then forward whatever comes after the / to pkg.pr.new! And they are cleaner.
so https://publint.dev/pkg.pr.new/vite@main -> /vite@main -> https://pkg.pr.new/vite@main
This way you won't need to handle all the edge cases of pkg.pr.new routing.

Are there any other parameters / search params that can be used in the link?

No we do not have any of that.

new structure for pkg.pr.new logs! no need for --publint, i think we should do it by default anyway so folks benefit from publint.


Toast id duplicates

What went wrong?
If you have toasts with delay -1 (that you have to close manually), you can run into issue where toast id generate duplicates.
What was the console output?
N/A
How can we reproduce this bug?
The Steps to reproduce this behavior:

Add 2 toasts with delay of -1.
You will now have toast-1 and toast-2 ids.
Remove first toast with id toast-1.
Add another toast, and id will be toast-2, duplicate.

What should've happened?
New toast id should be toast-3.
Line that generates issue
var id = 'toast-' + ($('.toast').length + 1),
Possible solution
var toast_wrapper = general_container.children('.toast-container').children('.toast-wrapper');

var newId = 1;
var lastToast = $toast_wrapper.children(".toast:last");
if (lastToast && lastToast.length > 0){
    var lastId = eval(lastToast[0].id.substring("toast-".length));
    newId = lastId + 1;
}

var id = 'toast-' + newId,

Miscellaneous (please complete the following information):

Browser - any
Bootstrap Version - 4.4.1

@crnastena
Cheers for the report.
This will be addressed in the upcoming v1.0.0.


Don't remove the projects tab from your own profile

LINKED ISSUES:
Fixes #3737

TEST URLS:
None

SCREENSHOT:
None

Wait a second… project tab? https://github.com/sindresorhus/refined-github/issues/3737 is about packages.

OMG I really messed up... Man alive! I was trying to do the recently... and was half paying attention. Sorry


pip-22  update

pip-22 node stake weighting not getting applied to servicers,
to ensure valid results for rewards of servicers from block  68849 onwards we as dabblelab can implement this feature or someone can  @itsnoproblem

Hi @bashiru98 - thanks for opening this issue.  I started on a solution for this issue already, but found myself a bit stuck (the rewards my implementation calculates are slightly off from the actual rewards delivered, and I have not yet figured out why).
I have been short on time lately to pursue this as aggressively as I'd like, so If you are able to help, I must say I could use an assist here.  This is the PR I started, it is a work in progress: https://github.com/itsnoproblem/pokt-tools/pull/56
This is currently deployed to the pokt tools staging ground at https://test.pokt.tools if you want to check it out.  I would welcome comments on that PR... or feel free to fork and offer an update.  It may be a few more weeks before I can focus properly on this again.

@itsnoproblem this issue has been implemented and we will be making a PR so you can merge

@itsnoproblem check the PR [here:https://github.com/itsnoproblem/pokt-tools/pull/58]


Tap gesture no longer add pointer after resetting

Description
Sometimes a tap gesture recognizer can receive pointers after it resets. This will happen if the first pointer rejects the gesture but is still down (i.e. due to movement), before the second pointer joins. The problem with this sequence is that the 2nd pointer will be tracked even though the recognizer has already been reset to a malfunctioning state (i.e. _down is null).
This PR changes so that TapGestureRecognizer no longer adds the pointer in such cases, which is identified by testing if _down is null. This is reliable because _down is always and only set at the first allowed pointer, and is not reset except for _reset().
This PR also adds an assertion to make sure TapGestureRecognizer.startTrackingPointer is never called when _down is null, allowing us to detect this problem (if any in the future) earlier.
Related Issues

Might be a fix to https://github.com/flutter/flutter/issues/52256

Tests
I added the following tests:

A second tap after rejection is ignored

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I signed the CLA.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] All existing and new tests are passing.
[ ] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[ ] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

LGTM


Incorrect list comprehension

This list comprehension is incorrect:

https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.selectattr
It says u for user in users when it should be user for user in users (I'm pretty sure). Tried to find it here in this repo, but was unable to. Didn't find a link to GitHub on the docs page, so hope this is the right place to post.
Cheers!

https://github.com/pallets/jinja/blob/3.1.x/src/jinja2/filters.py#L1632-L1633
PR welcome :) (against the 3.1.x branch)
Note that the rejectattr docstring has the same issue.

Ah, there it is! Thank you. PR coming soon!