[Discussion] k-NN lib building process next approaches

[Discussion] k-NN lib building process next approaches
Background
The k-NN plugin uses a couple of JNI libs that depend on external sources, namely nmslib and faiss. These libs are written in native code, and they have dependencies on the glibc version of the Linux operating system (OS) where the code is compiled.
https://github.com/opensearch-project/k-NN/tree/main/jni/external
Since the first public release of OpenSearch Project, the build team has used CentOS7 as the base OS for both the OpenSearch and Dashboards build image. CentOS7 includes glibc version 2.17, which serves as the baseline version. The JNI libs compiled on CentOS7 can be loaded correctly without crashing when making k-NN specific APIs calls, on any Linux OS with a glibc version >= 2.17, for example, Ubuntu 20.04 (glibc 2.31) and AmazonLinux2 (glibc 2.26).
In 2023, before the OpenSearch 2.10.0 release, the build team began the deprecation of CentOS7 as the OpenSearch build image, which will reach its EOL on 2024/06/30. Another reason being we had started migrating Dashboards from Node.js 14 to 18, which requires glibc version 2.28. After discussions with both the project and k-NN team, we decided to only switch the Dashboards build image from CentOS7 to RockyLinux8 (later AlmaLinux8) while keeping the OpenSearch build image unchanged for the time being.
This decision was made to ensure continued support for a wider range of operating systems running the k-NN plugin without facing compatibility issues. If we had switched from CentOS7 to RockyLinux8 for OpenSearch at that time, the baseline reference glibc version would increased from 2.17 to 2.28, means that any Linux OS with a glibc version < 2.28 (such as AmazonLinux2 with glibc 2.26) would no longer be able to make k-NN API calls and could potentially crash their cluster if such API calls were issued by the user.
Current Situation
A CentOS7 deprecation notice has been sent since 2.12.0: https://github.com/opensearch-project/opensearch-build/blob/main/release-notes/opensearch-release-notes-2.12.0.md#deprecation-notice
As we approach the release of OpenSearch 2.14.0 on 2024/05 and with CentOS7 reaching EOL in just two months, we have revisited discussions with the project and k-NN team regarding the switch from CentOS7 to RockyLinux8 (later AlmaLinux8). The decision remains the same: keep CentOS7 for the 2.14.0 release but to setup a plan to transition from CentOS7 to AmazonLinux2 instead, either fully or partially, for the compilation of k-NN JNI libs. This decision is based on the fact that AmazonLinux2 has a lower version of glibc compared to RockyLinux8/AlmaLinux8, and AmazonLinux2 still has another year of support until 2025/06/30.
Approaches
Option 1⃣: Fully switch from CentOS7 to AmazonLinux2 in 2.15.0, before switching to AlmaLinux8 on 2025/06/30.

Pros:

Maintains k-NN support on AmazonLinux2 until its EOL.
Provides a one-year transition period for users to migrate from AmazonLinux2 or other OSes with glibc < 2.28 to other supported OSes early on.
Requires minimal changes from the build team side. More confirmation is needed from the k-NN team regarding their efforts.

Cons:

The k-NN JNI lib building process is closely coupled with the OpenSearch distribution build process.
Previous attempts by the build team to use AmazonLinux2 instead of CentOS7 encountered issues with packages such as gfortran installation and others. Further research is needed to confirm if AmazonLinux2 is a suitable option.
Requires another switch from AmazonLinux2 to AlmaLinux8 due to AmazonLinux2's deprecation in one year.
AmazonLinux2 does not support architectures outside of x64 and arm64.

Option 2⃣ (Recommended): Switch from CentOS7 to AlmaLinux8 in 2.15.0 on distribution build pipeline, but separate the k-NN JNI libs compilation into its own stage/pipeline and use AmazonLinux2 to compile for a year.

Pros:

Have all the pros of Option 1.
The JNI lib process is now standalone and independent of the distribution build process, with more flexibility.
AlmaLinux8 supports more architectures beyond x64 and arm64, such as ppc64le.

Cons:

Have all the cons related to AmazonLinux2 from Option 1.
More work from the build team and complicates the distribution build pipeline process.
Jenkins also has limits on the number of stages/file sizes in pipeline files, with the distribution build pipeline Jenkinsfile already at the limit.

Option 3⃣: Copy compiled JNI lib files from the 2.14.0 release into an archive and store it on S3. Disable the compilation process and replace it with downloading the archive for future releases for a year, until Amazon Linux 2 deprecates.

Pros:

Simple change for both the build team and k-NN team.
Provides wider compatibility support until Amazon Linux 2 deprecates.
May speed up the k-NN plugin building process by removing the JNI lib compilation step.

Cons:

The k-NN team cannot update JNI lib external dependencies or source code tags for a year, meaning no new features or bug fixes from upstream changes.
Process lacks transparency, as users are unclear about where the lib is coming from or how it is compiled.
Requires manual setup to create the archive, which is not a sustainable long-term solution.

Please let us know your thoughts on this. As well as vote for the approaches you are agreeing on.
Thanks,
Peter

cc:
@pallavi-aws @elfisher @bbarani @vamshin @jmazanec15 @navneet1v @seth-priya @gerrith3 @Sunidhi-Gaonkar1 @Sapana-Khemkar
Thanks.

@peterzhuamazon option 3 is non-starter, as these libs will change for sure.
Option 2 sounds good, but would need to verify feasibility for compiling on AL2. I remember issues on arm.

@peterzhuamazon can you also add another option where we directly move to Almalinux without doing any switch in between to AL2.

Added now, thanks.

The JNI bindings don't change often. There's possibly a cleaner option that would move the problem to the k-nn repo and could enable more platforms.

Add support to knn for loading multiple versions of nmslib/faiss/.so, e.g. linux/nnmslib.so, win32/nmbslib.so, glibc-2.31/nmslib.so, etc.
Separate the build pipeline for those binaries. They can be built on GHA or Jenkins infrastructure for OpenSearch, or anywhere else.
Commit the binaries into the knn repo.
Package all the binaries inside the JAR, attempt to extract it at runtime if it doesn't exist.
For the full distribution, include the binaries in the .tar.gz/.zip.
Choose the path of the binary at runtime.

This is roughly what JNA does for the many cross-platform binaries.

3. Commit the binaries into the knn repo.

Instead of committing into the knn repo we should consider uploading the libraries to central maven. Looks to me like maven supports .so files with <type>so</type>.  Here is an example.

Commit the binaries into the knn repo.

Instead of committing into the knn repo we should consider uploading the libraries to central maven. Looks to me like maven supports .so files with <type>so</type>. Here is an example.

I like that even better because it creates more traceability!

We are still trying to push for AL2 compilation fix now.

Just sync up with @junqiu-lei again, updates:

Junqiu will send PR to update the dockerfile with 0.3.27 openblas changes
Junqiu will test in knn repo whether build script/cmake.txt needs to be updated accordingly
Peter will merge Junqiu PR and build another copy of AL2 images
Peter will trigger a 2.15.0 build with currently available plugins for testing (Need to confirm if knn already update 2.x to 2.15.0)
Peter will update get image workflow to push all related repos to use AL2 docker image for their github ci checks
Peter will update the compatibility chart of the website to reflect changes.

Thanks.

Next step:

Junqiu confirms AL2 knnlib compilation and able to run on both x64 and arm64:
Peter start looking at https://github.com/opensearch-project/opensearch-build/issues/4737 and whether we can bring it up for 2.15.0.


Symbol "◊" (U+25CA) is distorted

Issue Summary
◊ is distorted as shown in the attached image.
To reproduce it, type $◊$ in the live demo and scale the output by 1600% (context menu > Math Settings > Scale All Math...).
Technical details:

MathJax Version: 3.1.2
Client OS: Windows 10 2004
Browser: Chrome 85.0.4183.121

Supporting information:

OK, thanks.  The MathJax TeX fonts were created using mftrace, which does not always produce perfect results.  It looks like it didn't get this character quite right.


Fix compilation

This is not being compiled properly resulting in the following issue: "Uncaught ReferenceError: exports is not defined" in upstream consumers https://stackoverflow.com/questions/42497479/uncaught-referenceerror-exports-is-not-defined-in-filed-generated-by-typescript
This is because all the files were emitting Object.defineProperty(exports, "__esModule", { value: true }); which breaks if the upstream consumer is not wrapped in CommonJS crap which defines exports.
Also abstract interface files were being compiled like this:
"use strict";
/**
 * @module RPC-API-Methods
 * copyright defined in eosjs/LICENSE.txt
 */
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=eosjs-rpc-interfaces.js.map

Instead of like this:
/**
 * @module RPC-API-Methods
 * copyright defined in eosjs/LICENSE.txt
 */
//# sourceMappingURL=eosjs-rpc-interfaces.js.map

Sorry mean to raise PR against the fork

Sorry mean to raise PR against the fork


NativeScript.framework linking optimizations

PR Checklist

[x] The PR title follows our guidelines: https://github.com/NativeScript/NativeScript/blob/master/CONTRIBUTING.md#commit-messages.
[ ] There is an issue for the bug/feature this PR is for. To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it.
[x] You have signed the CLA.
[x] All existing tests are passing: https://github.com/NativeScript/ios-runtime/blob/master/CONTRIBUTING.md#contribute-to-the-code-base
[ ] Tests for the changes are included.

What is the current behavior?
The framework is built with optimization option -O2 and symbols information is not stripped.
What is the new behavior?
The framework is built with optimization option -O3 and symbols information is stripped.

test


win32: Remove Global IME support

Global IME was introduced into Windows 9x and Windows NT 4.0 to provide
limited Asian character input support.
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa741221(v=vs.85)
Windows 2000 started to provide complete cross-language input support.
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa752003(v=vs.85)
We dropped support for Win9x and WinNT4 long time ago. No need to keep
supporting Global IME.

Newer Windows systems have other IME support, but does the old Global IME still work on Windows 7?  Or on Windows XP?

I couldn't find that information. Microsoft closed the download site of Global IME many years ago.
If someone has an installer of it, it might be able to use on XP?
Your official binaries are built without Global IME, and no one complained about it. I assume no one use it.

OK, if it has been unsupported for a few years then there is no point in supporting it in Vim.

I also updated the help text, not sure if what remains is a good explanation of how IME works now.

I checked your modification. I think it's okay.


add: 27-quadratic-primes in js

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Hey @kylelobo thanks for your pull-requests, but can I recommend you test your changes locally first before sending in the changes.
Keeping the open PR list clutter free helps us take your request seriously.
Thanks.

Hey, I have tested each of my codes before making the PRs. The only PR I think I can re-do is the 20th question. That is because I have used a library that is not in-built in JS.
Can you please re-open the PRs?

All of your last PRs have failed the CI, did you:

[ ] Set up this repository locally? (No, because all your commits come from GitHub)
[ ] Ran npm run test before making a commit.
[ ] Read and follow the guidelines for contributing?

Unless these are followed, our moderators are not going to take the pull requests seriously.
Let's try and respect everyone's time same as you would expect for you.


Complete no output generic update

Closes #14 with changes from this gist.

Hey @pferreir do you have a quick piece of example code I can throw in a #[test] to ensure this does what you want it to do?
P.s. I hope I'm not stepping on your toes by opening this over #14 - I just had it on my TODO for a while and wanted to get it over the line.

NoOutputPin usage looks like this:
let mut disp: GraphicsMode<_> = Builder::new()
    .connect_spi(spi, dc, sh1106::builder::NoOutputPin::new())
    .into();

I had to add a new() method as it uses PhantomData so can't be created like sh1106::builder::NoOutputPin.

@jamwaffles no problem. Thanks for completing this. I haven't had much free time these days.
As for the test, I believe the main point was to allow for arbitrary Error types. This should be enough:
#[cfg(test)]
mod tests {
    use embedded_hal::digital::v2::OutputPin;
    use super::NoOutputPin;

    enum SomeError {}

    struct SomeDriver<P: OutputPin<Error = SomeError>> {
        #[allow(dead_code)]
        p: P
    }

    #[test]
    fn test_output_pin() {
        let p = NoOutputPin::new();
        let _d = SomeDriver { p };

        assert!(true);
    }
}

This is released in version 0.3.0-alpha.3.


Terraform script is not deleting vpc if security group exists

Describe the bug

When aws-tf script is used to delete the vpc, it fails to delete it completely if there are any security groups present in that vpc
To Reproduce

create a vpc using aws-tf create and then from aws console create additional security group in that vpc and then come back to aws-tf and try to destroy the vpc using aws-tf destroy command. It will fail with dependency error
Expected

Actual behavior

Versions:

Nephe v0.1.0
Additional context

I tried this and found that not only SGs but other dependencies also will cause this problem. I tried to find a way that can fix all kinds of dependencies, but seems like not easy.
https://aws.amazon.com/premiumsupport/knowledge-center/troubleshoot-dependency-error-delete-vpc/
So I think we have two options here:

We just check if we have SGs on VPC, using the terraform "import" to find it and then delete it.
We can use the AWS CLI to check common dependencies like: https://serverfault.com/questions/648332/how-to-list-all-vpc-dependencies-in-aws-cli , then delete all of them


Binding support for PySide6

Hi, since I'm not very good at using PyQt, in addition to the fact that the author of the Pyside-QCP project hasn't maintained it for a long time, all is it possible for you to provide support for the PySide6 bindings? I'm sure this is what most PySide6 developers want.
Hope to get your reply.
In case I don't hear back from you, good afternoon, good evening, and good night.😉😉😉

Hello.
PyQt and PySide bindings are entirely different. I have no experience with PySide bindings and don't use PySide myself. I guess it should not be very difficult to create bindings for PySide6, since one can use PySide-QCP as an example. However, I have no plans to provide support for PySide6 in the nearest future (and I'm not sure if I will eventually). Also I think that bindings for PyQt and PySide should be developed in different repositories because they differ a lot.
From user perspective though, PySide and PyQt are very similar. Most code written for PySide should work with PyQt with minor modifications (import statements, some function names, etc.). If you really want Qt6, you might check if your code can be ported to PyQt6 with little effort.
Wish you a good day.

Hello.
PyQt and PySide bindings are entirely different. I have no experience with PySide bindings and don't use PySide myself. I guess it should not be very difficult to create bindings for PySide6, since one can use PySide-QCP as an example. However, I have no plans to provide support for PySide6 in the nearest future (and I'm not sure if I will eventually). Also I think that bindings for PyQt and PySide should be developed in different repositories because they differ a lot.
From user perspective though, PySide and PyQt are very similar. Most code written for PySide should work with PyQt with minor modifications (import statements, some function names, etc.). If you really want Qt6, you might check if your code can be ported to PyQt6 with little effort.
Wish you a good day.

Thank you very much for your reply.
As you said it is possible to use PySide-QCP as an example, but I don't have any relevant experience about this kind of thing either. 😅😅
It really wouldn't be difficult to convert PySide to PyQt, but that's not practical for my current project.
Thanks for your reply, once again.wish you happy every day.


Crash on world creation or loading into the world

https://paste.gg/p/anonymous/5be8243d9d7243a2b1bb200f8a9199aa There is the crash report. Should I provide the debug.log as well?

The issue seems to be caused by another mod in relation to optifine (but according to the crashlog you do not have optifine installed). It would be very helpful if you could isolate the mod that causes the issue so i can potentially fix it.

Um, im not sure how I could do that, i have like 100 something mods

The easiest method would be to split the list in half and figure out in which half the crash occurs. If you found the half, repeat the method again until you know which mod causes the issue.

Other people seem to encounter this issue. Did you find out which mod(s) caused the issue?

Other people seem to encounter this issue. Did you find out which mod(s) caused the issue?


Unfilitered Discover page caches old vendors, no new vendors.

Brief Description:
Discover page caches old vendors, no new vendors.
No new vendors appear even after restart/hitting discover again, but new vendors are findable with direct search.
Operating System (OS and version):
Windows 10
OpenBazaar version 1.1.2
Reproducible (Always / Almost Always / Sometimes / Rarely / Couldn't Reproduce):
Always
Steps to reproduce:

Open Client
Hit Discover Button **This is definately with the filter off
1st load: http://i.imgur.com/FruzlYO.png
hit discover, same items in different order, just slightly down the page, no new items or vendors at all:
http://i.imgur.com/fCDBtoR.png
Scroll to bottom of listings, the list will just stop. http://i.imgur.com/ZlWs1H7.png

Observed Behavior:
Same stores, sometimes different order, no new vendor connections. Can't actually "discover" any new stores as there are no new vendors.
Expected Behavior:
New randomized list of items from vendors that have been found from newly queried node list.
It seems like the node list is just reading the cached list and giving back those.

So one thing to understand is that the listings you see are a randomized assortment of listings from nodes in your "neighborhood". If you don't know how Kademlia works, essentially you have a routing table with a subset of all nodes in it that you are connected to. This could be why you only see some of the same types of listings over and over. Also you may have limited connectivity to all of the network (I'm not sure your case). This is an extremely basic way of discovering on the network, but I don't believe this is necessarily a bug. What makes you say they're from the cached list? Do you have some data to back that up? Not accusing, just would like to see your evidence of that.

We haven't been able to reproduce this, I'm going to close it.


[.Net][AutoGen.DotnetInteractive] add DotnetInteractiveStdioConnector

Why are these changes needed?
The original InProcessDotnetInteractiveKernelBuilder only available in .net8
This PR adds DotnetInteractgiveStdioConnector which provides similar functionality for .netstandard2.0 and .net6

Related issue number
fix #3316

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

pr looks good to me, thank you for this feature upgrade!!!

@colombod Thank you for your help on leveraging python kernel


Feature Request: Select certain models to be generated

Hi there,
Can you please add the ability to select certain models to be generated... because when you have a big schema the output becomes very clustered so such a feature would be useful.

Duplicate request https://github.com/keonik/prisma-erd-generator/issues/82


Keyboard.trapFocus() can't handle dynamically added elements

What should happen?
When focusable elements are added to an area within the focus trap, they should be focusable, even if they were inserted before what was the "first", or after what was the "last" focusable element at the time the trap was established.
What happens instead?
If focusable elements are added to an area under a focus trap, and those elements are added either before the "first" focusable element, or after the "last" focusable element, it is impossible to achieve focusing via the keyboard.
Possible Solution
When a focus trap is established, a mutation observer can be added.
In the event that nodes were added or removed then the findFocusable($element), method can be run again and the first and last elements variables can be updated.
Specifically, this block should be re-executed on mutations:
https://github.com/foundation/foundation-sites/blob/4e6c218993188d9f5368061d5dc1426978ab01bf/js/foundation.util.keyboard.js#L139-L141
Test Case and/or Steps to Reproduce (for bugs)
https://codepen.io/ky940819/pen/BapREPy
Context
The specific situation is an off-canvas area containing a search which shows the results dynamically in-page.
When focus trap is enabled for the off canvas area the results are not focusable because the search button was the last focusable item on the page when the trap was initialized. The search results are dynamically added after that content.
I was able to create a workaround by releasing the focus trap on DOM changes, and then re-acquiring the trap.
Your Environment

Foundation version(s) used: 6.6.3
Browser(s) name and version(s): Chrome/FF on windows and linux, Safari on OSX

Checklist

[X] I have read and follow the CONTRIBUTING.md document.
[X] There are no other issues similar to this one.
[X] The issue title and template are correctly filled.

PS
Looking through other tickets about focus traps, this should be recalculated not just if elements are added, but if any DOM changes occur within a focus trap that would effect the order of the elements, for example, a change to the tabindex, or a change to the elements visibility, or anything else that might change what the first and last focusable elements inside the trap are.

Hi @joeworkman, I'm also facing the same issue with version 6.7.4.
Also I'm able to reproduce it In the demo which @ky940819 provided.
Could you please check this again?


pymc3 does not run under nixos

Describe the bug
import pymc3 as pm fails
To Reproduce
nix-shell --pure -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/19.09.tar.gz -p 'python37.withPackages(ps: with ps; [ numpy pymc3 ])'

[nix-shell:~]$ python
Python 3.7.4 (default, Jul  8 2019, 18:31:06)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymc3 as pm

You can find the C code in this temporary file: /run/user/1000/theano_compilation_error_8381jg5y
Traceback (most recent call last):
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/gof/lazylinker_c.py", line 81, in <module>
    actual_version, force_compile, _need_reload))
ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/gof/lazylinker_c.py", line 105, in <module>
    actual_version, force_compile, _need_reload))
ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/pymc3/__init__.py", line 5, in <module>
    from .distributions import *
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/pymc3/distributions/__init__.py", line 1, in <module>
    from . import timeseries
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/pymc3/distributions/timeseries.py", line 1, in <module>
    import theano.tensor as tt
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/__init__.py", line 110, in <module>
    from theano.compile import (
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/compile/__init__.py", line 12, in <module>
    from theano.compile.mode import *
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/compile/mode.py", line 11, in <module>
    import theano.gof.vm
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/gof/vm.py", line 674, in <module>
    from . import lazylinker_c
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/gof/lazylinker_c.py", line 140, in <module>
    preargs=args)
  File "/nix/store/d7wqg2xi972hahp9g7fwk7njsvv58pwi-python3-3.7.4-env/lib/python3.7/site-packages/theano/gof/cmodule.py", line 2396, in compile_str
    (status, compile_stderr.replace('\n', '. ')))
Exception: Compilation failed (return status=1): impure path `/run/user/1000/ccJEQmOq.o' used in link. collect2: error: ld returned 1 exit status.

Expected behavior
The package should be imported and be available to use.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Metadata
Please run nix run nixpkgs.nix-info -c nix-info -m and paste the result.
[sundials@CUDA:~]$ nix run nixpkgs.nix-info -c nix-info -m
 - system: `"x86_64-linux"`
 - host os: `Linux 4.19.69, NixOS, 19.09.git.latest0 (Loris)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.2.2`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

Apparently the wrapper is causing problems here as well.
cc @twhitehead

Responded in #73034.  Sorry for the delay.  :smiley:

This is failing because of a problem with the Theano package.  I'm looking into a solution.
Essentially, on first import, attempts to compile some code and throw it into your home directory under ~/.theano
Nix is catching this because the temp directory it is using is outside of the pure area, /run/user/1000 in this case.  You can work around it by setting the $TMPDIR variable to the current directory, and importing once, it will then put the compiled files into your home directory, and it will work, even across uninstalling and reinstalling the program.
But of course, this isn't a very good solution and certainly isn't the NixOS Way(TM).  It would be better if it built these files on install and kept them in the store.  I'm looking into doing just that.

cc: @bcdarwin
I'm having some trouble with forcing the compilation to occur during the patchPhase.  Here's what I have:
  postPatch = ''
    substituteInPlace theano/configdefaults.py \
      --replace 'StrParam(param, is_valid=warn_cxx)' 'StrParam('\'''${cxx_compiler}'\''', is_valid=warn_cxx)' \
      --replace 'rc == 0 and config.cxx != ""' 'config.cxx != ""' \
      --replace "home = os.getenv('HOME')" "home = os.getenv('NIX_THEANO_HOME')"
  '' + stdenv.lib.optionalString cudaSupport ''
    substituteInPlace theano/configdefaults.py \
      --replace 'StrParam(get_cuda_root)' 'StrParam('\'''${cudatoolkit}'\''')'
  '' + stdenv.lib.optionalString cudnnSupport ''
    substituteInPlace theano/configdefaults.py \
      --replace 'StrParam(default_dnn_base_path)' 'StrParam('\'''${cudnn}'\''')'
  '' + ''
    TMPDIR=$out/theano
    NIX_THEANO_HOME=$out/theano
    HOME=$out/theano
    python -c "import theano"
  '';

As you can see, I'm trying to prevent theano from looking at HOME (but it does anyway, and I haven't figured out why yet), but beyond that, I'm also getting a compilation error:
You can find the C code in this temporary file: /nix/store/q2nph5dnaagqvf82cky1ixsqiz71pv5w-python3.7-Theano-1.0.4/theano/theano_compilation_error_57yanbeq
Traceback (most recent call last):
  File "/build/Theano-1.0.4/theano/gof/lazylinker_c.py", line 81, in <module>
    actual_version, force_compile, _need_reload))
ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/build/Theano-1.0.4/theano/gof/lazylinker_c.py", line 105, in <module>
    actual_version, force_compile, _need_reload))
ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/build/Theano-1.0.4/theano/__init__.py", line 110, in <module>
    from theano.compile import (
  File "/build/Theano-1.0.4/theano/compile/__init__.py", line 12, in <module>
    from theano.compile.mode import *
  File "/build/Theano-1.0.4/theano/compile/mode.py", line 11, in <module>
    import theano.gof.vm
  File "/build/Theano-1.0.4/theano/gof/vm.py", line 674, in <module>
    from . import lazylinker_c
  File "/build/Theano-1.0.4/theano/gof/lazylinker_c.py", line 140, in <module>
    preargs=args)
  File "/build/Theano-1.0.4/theano/gof/cmodule.py", line 2396, in compile_str
    (status, compile_stderr.replace('\n', '. ')))
Exception: Compilation failed (return status=1): /nix/store/q2nph5dnaagqvf82cky1ixsqiz71pv5w-python3.7-Theano-1.0.4/theano/.theano/compiledir_Linux-4.19.80-x86_64-with-glibc2.2.5--3.7.5-64/lazylinker_ext/mod.cpp:2:10: fatal error: theano_mod_helper.h: No such file or directory.  #include "theano_mod_helper.h".           ^~~~~~~~~~~~~~~~~~~~~. compilation terminated..
builder for '/nix/store/p90hbc1clf828pbrq8wazqwrb478yxc0-python3.7-Theano-1.0.4.drv' failed with exit code 1

I can't figure out why the environment would be so much different that it can't find a quoted include.  I thought about using an environment variable to manually tell it where the include is, but I'm not aware of an environment variable to override the -iquote behavior.  All of the usual suspects only override -I/-isystem behavior.

I can't see me working with pymc3 for the next 6 months - I guess I can always change its label if I do start working with it.

Just a note that the MacOS issues with Theano was resolved in #76327, so, if that was the only issue, this should be working now.

On NixOS:
$ nix-shell -p "python3.withPackages (pkgs: [ pkgs.pymc3 ])" -I nixpkgs=~/nixpkgs
$ python3 -c 'import pymc3'
You can find the C code in this temporary file: /run/user/1234/theano_compilation_error_cefl4ub_
Traceback (most recent call last):
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/gof/lazylinker_c.py", line 81, in <module>
    actual_version, force_compile, _need_reload))
ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/gof/lazylinker_c.py", line 105, in <module>
    actual_version, force_compile, _need_reload))
ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/pymc3/__init__.py", line 5, in <module>
    from .distributions import *
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/pymc3/distributions/__init__.py", line 1, in <module>
    from . import timeseries
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/pymc3/distributions/timeseries.py", line 2, in <module>
    import theano.tensor as tt
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/__init__.py", line 110, in <module>
    from theano.compile import (
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/compile/__init__.py", line 12, in <module>
    from theano.compile.mode import *
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/compile/mode.py", line 11, in <module>
    import theano.gof.vm
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/gof/vm.py", line 674, in <module>
    from . import lazylinker_c
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/gof/lazylinker_c.py", line 140, in <module>
    preargs=args)
  File "/nix/store/4q2lr2k4jxflf8c85f61jrqgjayg0hnx-python3-3.7.7-env/lib/python3.7/site-packages/theano/gof/cmodule.py", line 2396, in compile_str
    (status, compile_stderr.replace('\n', '. ')))
Exception: Compilation failed (return status=1): impure path `/run/user/1234/ccr71vvo.o' used in link. collect2: error: ld returned 1 exit status.
>>>

Relevant: 61642e8b065235ac8adf08e5ff59789ff3f818dd where pymc3 is marked as broken.
I just created a personal overlay for pymc 4.0.0b2, parts of which can maybe be salvaged for reintroducing a working version of pymc to Nixpkgs? Note that for 4.0.0b2, a handful of things have to be packaged which I did rather naïvely. I also did not perform extensive tests whether everything works yet (and don't have time to do so right now) which is why I haven't created a proper PR.

Closing because this bug is stale; pymc is currently building fine on master.


Provide a way to retrieve history

I don't see a way to retrieve the history, only a way to set it at program startup.
I would like to persist history between sessions. I can implement persistence/restore if I can access the history. It would be great if go-prompt provided a way to save/load history from a file though.

You can persist histories between sessions via OptionHistory. When executor is called, you save a command in something log file you created. And when starting your program, opening a log file, extracting executed commands and passing it via OptionHistory.

Yeah, I was thinking of doing that in the mean time. I was merely making an enhancement request for something more automated. :)
e.g.
func OptionLoadHistory(in io.Reader){
}

func OptionSaveHistory(out io.Writer) {
}

Then prompt.Run() can load lines into history from in at the beginning and write current history to out before returning.

@c-bata please advise, thanks.

I know this issue is quite old but stumbled across the same thing. I can set OptionHistory in order to load history strings as array but there is no way to change the behavior during a shell instantiation.
E.g.
prompt.OptionHistory([]string{"a", "b"})

I'd also expect there is a deferred function which will execute when the application exits or after each command. So a OptionSaveHistory function which takes the last command as string would be great.
That way you could implement the storage of the command history yourself (independent from a file system). Saving to databases would be no problem that way.


License question

Thank you for this amazing dataset!
I have two questions about the licenses.

The file pass_metadata.csv contains the value Attribution License, for example in the second line in column "licensename" looks like this: 3,quinnums,2004-05-17 00:44:29.0,Attribution License,21657882a4c879e3d08bf7eb59974515. I found the source of the image by searching for the hash using Google and the image appears to be licensed under the CC-BY 2.0 license. Does Attribution License always correspond to this version of CC-BY or are other versions or even other licenses possible as well?
The CC-BY 2.0 license says:

If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and give the Original Author credit reasonable to the medium or means You are utilizing by conveying the name (or pseudonym if applicable) of the Original Author if supplied; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work;

Where can I find the URL for each image so I can attribute the authors as required by the license? For example, the image mentioned above has the URL https://www.flickr.com/photos/quinn/34669
As an aside, I looked at a few random images in PASS.0.tar and found two images with people in them:

PASS_dataset/18/7f8182d7e7c8b6b7cf487850974aafbd.jpg (person with closed eyes, probably an advertisement poster)
PASS_dataset/13/8392afd3b652b62133b199a8ee82e39.jpg (black-and-white photo of a person sitting in a car, half of the face is hidden. Another unrecognizable person can be seen in the car's reflection)

I also tried to find more images with humans using https://github.com/rom1504/clip-retrieval but https://github.com/mlfoundations/open_clip but mostly found false positives, so unfortunately I can not offer an automated way to find more humans in this dataset.

Hi there!
Thanks so much for your interest and the questions and sorry the late reply.
All the images in the dataset are of CC-BY Attribution Licence. I'm not sure but some might be CC-BY 3.0 or 4.0 instead, but all are Attribution Licence, that we made sure of.
Thanks for those images. I've noted them down -- note that I keep updating the dataset (now on it's 3rd version) everytime I remove a few more images that people like you have spotted. PS: a nice tool is also google's know-your-data, at least for public datasets. Let me know if there's anything else I can help with. Yuki

Hi!
https://knowyourdata-tfds.withgoogle.com/#dataset=pass is very cool. Thanks for pointing out this useful website!
I am still trying to find the attribution information for the individual images. So far, I found this sqlite3 database from this issue. The database contains the attribution information, but I can not match them to the correct image.
For example, I have the image PASS_dataset/7/d37c5aaffa6bd2992b576f6d88678d1.jpg from PASS.9.tar downloaded from https://zenodo.org/record/6615455
To comply with the attribution instructions of the CC BY license, I must provide the URL https://www.flickr.com/photos/61685594@N00/1474437500 but it is not clear how to get the URL from the file name.
Using the file name, I can find the image in Know Your Data, but the required information is missing, so that seems like a dead end.
The closest I got so far is to use grep to find the correct line to some file in pass_metadata.csv. This way, I get the username (unickname) AndWat and the date the photo was taken (datetaken) 2007-09-25 19:39:03.0.
grep d37c5aaffa6bd2992b576f6d88678d1 pass_metadata.csv
1951777,AndWat,2007-09-25 19:39:03.0,Attribution License,d37c5aaffa6bd2992b576f6d88678d1,,

I can then use the username and date to get matching images from the sqlite3 database (much faster with index).
sqlite3 yfcc100m_dataset.sql
create index unickname_index on yfcc100m_dataset (unickname);
select * from yfcc100m_dataset where unickname = 'AndWat' and datetaken = '2007-09-25 19:39:03.0';
1474437500|61685594@N00|AndWat|2007-09-25 19:39:03.0|1191377407|Canon+PowerShot+A540|Banana+Penguin|Note+the+egg.|banana,penguin|||||http://www.flickr.com/photos/61685594@N00/1474437500/|http://farm2.staticflickr.com/1436/1474437500_6e440ad92f.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|1436|2|6e440ad92f|0c94c0d602|jpg|0

The query result contains the correct license (CC BY 2.0 in this case) and the URL I want: https://www.flickr.com/photos/61685594@N00/1474437500
Unfortunately, this procedure does not always work because datetaken is inaccurate. For example, the following query returns 6 rows, so it is not possible to match the image files to the correct URL.
select * from yfcc100m_dataset where unickname = 'alykat' and datetaken = '2004-03-13 23:06:52.0';
9851241|80081757@N00|alykat|2004-03-13 23:06:52.0|1113880012||Reflections|A+glass+building+along+Baltimore%27s+Inner+Harbor.|baltimore,glass,innerharbor,reflection||-76.612386|39.28473|16|http://www.flickr.com/photos/80081757@N00/9851241/|http://farm1.staticflickr.com/6/9851241_748a80dd14.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|6|1|748a80dd14|748a80dd14|jpg|0
9851242|80081757@N00|alykat|2004-03-13 23:06:52.0|1113880012||Sea+Gull||baltimore,bird,innerharbor,one,rocks,seagull||-76.612762|39.28215|16|http://www.flickr.com/photos/80081757@N00/9851242/|http://farm1.staticflickr.com/5/9851242_a26d9ceda5.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|5|1|a26d9ceda5|a26d9ceda5|jpg|0
9851243|80081757@N00|alykat|2004-03-13 23:06:52.0|1113880012||Illumination||baltimore,innerharbor,lamp,light||-76.612762|39.28215|16|http://www.flickr.com/photos/80081757@N00/9851243/|http://farm1.staticflickr.com/7/9851243_69fce61c15.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|7|1|69fce61c15|69fce61c15|jpg|0
9851244|80081757@N00|alykat|2004-03-13 23:06:52.0|1113880012||Elementary|Elements+on+display+at+the+Maryland+Science+Museum+in+Baltimore.|baltimore,innerharbor,science||-76.612762|39.28215|16|http://www.flickr.com/photos/80081757@N00/9851244/|http://farm1.staticflickr.com/8/9851244_106a40fe02.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|8|1|106a40fe02|106a40fe02|jpg|0
9851245|80081757@N00|alykat|2004-03-13 23:06:52.0|1113880012||Caution||baltimore,caution,innerharbor,sign||-76.607408|39.282264|16|http://www.flickr.com/photos/80081757@N00/9851245/|http://farm1.staticflickr.com/8/9851245_d89dbf7437.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|8|1|d89dbf7437|d89dbf7437|jpg|0
9851246|80081757@N00|alykat|2004-03-13 23:06:52.0|1113880012||Coast+Guard|A+Coast+Guard+ship+docked+at+Baltimore%27s+Inner+Harbor.|baltimore,boar,coastguard,innerharbor,ship||-76.611142|39.285569|16|http://www.flickr.com/photos/80081757@N00/9851246/|http://farm1.staticflickr.com/7/9851246_7ec2f4bd28.jpg|Attribution License|http://creativecommons.org/licenses/by/2.0/|7|1|7ec2f4bd28|7ec2f4bd28|jpg|0

Maybe it is possible using the hashes somehow, but I do not know how they were derived. The integer d37c5aaffa6bd2992b576f6d88678d1 has a length of 124 bits, which is a weird size (perhaps truncated?) The Flickr hashes should be randomly generated for security reasons, so they can probably not help us.
Do you have an idea how to map the file names to URLs correctly?

Hi, I think this should now solve it ;) https://www.robots.ox.ac.uk/~vgg/data/pass/pass_v3_meta_with_url.csv (~230MB)

Hi, I think this should now solve it ;)

Yes, it does! Thank you!


Nt/wallet rendering

What does this PR?
Optimised wallet page by,
Replacing costly component with simple one in TransactionView
Replacing nested FlatList under scrollview with single FlatList
Moving extra activities filtering to side effect instead of render flow
Replaced custom Animated wallet header with CollapsibleCard
Please test is thoroughly
This is just first iteration of improving wallet page performance, I tried remove the major performance dips. But wallet have many more inefficiencies specific to api calls that we can be improved on, but left those for later as we will be redoing the wallet to newer design any ways where I rather plan on using redux more than passing props.
Issue
https://trello.com/c/9OiKc17W/308-wallet-tab-crash-while-exploring
Screenshots/Video
https://user-images.githubusercontent.com/6298342/149967145-8e3014fc-da3e-45b1-81da-ebce7e838d67.mov

Refresh control is now functional as before.. it does fetch new data, but UI seems to not able to hold the refresh indicator, did some digging but logic seems very weird inside, can improve more tomorrow if needed.
https://user-images.githubusercontent.com/6298342/149995084-67acedb9-0c06-4f29-b4c5-1c1820566dbf.mov


add MIT license & update README for early open sourcing

Description
As noted above, this adds a license and updates our README so it's more friendly to open source contributors and external users.
Type of change
Please delete options that are not relevant.

[x] :memo: Documentation update

How Has This Been Tested?
N/A
Checklist:

[x] If needed, I changed related parts of the documentation

(just chatted with @aoifespenge  - she'll take a look at the README tomorrow, but meantime we'll merge in the README update. But all future changes are welcome! Just moving the commits along. :-)


Okta Group Expansion

Thanks to the Stormpath for making this a relatively painless transition. Seems to be fairly easy so far.
I have run into an issue where we use groups extensively in our app and use group expansion to retrieve those on authentication. Is there a similar option in the new Okta world. Group data doesn't seem to be included with the user object in 4-rc4. Do I need to make an additional request manually?

Hi @mrosenberg , thanks for the notes!
This should be fixed in the new 4.0.0 release (official 4.x release), can you please try?  Have a great weekend!

@robertjd Thanks. I'm hoping to test this out tomorrow.

Groups are now included as expected. Thanks for fixing that up.


how to use Qwen2-72B-instuct

Hello,
I am trying to use Qwen2 with AutoModel, but I got two issue...

Even I use from airllm import AutoModel at the beginning, it fell back to AirLLMLlama2 class. I check the auto_model.py file, and I notice in get_module_class method, it uses QWen in if condition. Shouldn't it be Qwen?
I changed to Qwen, it can find the right class of AirLLMQWen, but I still got the error ValueError: max() arg is an empty sequence. According to your FAQ, it should not happend.

How to overcome this to use Qwen2? Does the class matter between AirLLMQWen and AirLLMLamma2?
Thanks for your help.

same problem, any solutions?

same problem, any solutions?


Change body of If/While/For/Loop statements so they are forced to have a BlockNode

Resolved by ad9460afe48b34ee2bc5e97067686796653da2d0.


fixes IndexOutOfRangeException for ways which don't end in a core node

I ran into a problem with Itinero crashing when tagging some ways:
System.IndexOutOfRangeException   HResult=0x80131508   Message=Index was outside the bounds of the array.   Source=Itinero.IO.Osm   StackTrace:    at Itinero.IO.Osm.Streams.RouterDbStreamTarget.AddWay(Way way)    at OsmSharp.Streams.OsmStreamTarget.DoPull(Boolean ignoreNodes, Boolean ignoreWays, Boolean ignoreRelations)    at Itinero.IO.Osm.Streams.RouterDbStreamTarget.OnBeforePull()    at OsmSharp.Streams.OsmStreamTarget.Pull()    at Itinero.IO.Osm.RouterDbExtensions.LoadOsmData(RouterDb db, OsmStreamSource[] sources, LoadSettings settings, Vehicle[] vehicles).
This little change fixes it.

Can you give an example of the ways this fails on? It's a bit strange this bug pops up now. I have used Itinero before to process the entire planet (doing that right).
It this after taking an extract or something with nodes missing?

we haven't had this problem before either.
It only showed up when we added tags to ways using a custom implementation of the ITwoPassProcessor.
It's related to this ticket:
https://github.com/itinero/routing/issues/19
            using (var stream = new FileInfo(mapNameFullPath).OpenRead())
            {
                routerDb = new RouterDb();
                routerDb.LoadOsmData(stream,
                    new LoadSettings()
                    {
                        Processors = new List<ITwoPassProcessor>()
                        {
                            new RestrictedAreasProcessor(restrictedZones)
                        },
                    },
                    profiles.ToArray()
                );
            }

In the RestrictedAreasProcessor we add tags to the way:
        public void SecondPass(Way way)
        {
            foreach (var n in way.Nodes)
            {
                if (_nodeTags.TryGetValue(n, out var tag))
                {
                    way.Tags.AddOrReplace(tag);
                }
            }
        }

we can define certain areas as restricted using polygons in WKT format.
I suspect that the polygon which surfaced the problem might cut a defined way in the middle?!
That's the area:
POLYGON((106.78358289544055 -6.133699250072027,106.79079267327256 -6.15452163978577,106.78529950921008 -6.16783388774256,106.78976270501084 -6.178073851072725,106.79388257805772 -6.185583031629719,106.7990324193663 -6.2104990931701565,106.81963178460067 -6.235072683905457,106.84160444085069 -6.247359047771226,106.86495038811631 -6.247017763777947,106.88314649407333 -6.2517957194284435,106.89378949944444 -6.2466764795620975,106.9030592137999 -6.2572561867229695,106.9133845599307 -6.262008538409347,106.95252335387602 -6.2596196127164205,106.96694290954008 -6.258254507414847,106.9573298724307 -6.241872965808085,106.95389664489164 -6.226514805263562,106.95561325866117 -6.209108347048627,106.9466868670596 -6.195455820296004,106.94256699401275 -6.137428650997094,106.92677414733305 -6.1094368121346605,106.92334091979399 -6.1043161952327125,106.89209854918852 -6.1043161952327125,106.86703598815336 -6.11524011873955,106.84472000914946 -6.124457005651777,106.8251506121768 -6.127870627111122,106.81279099303616 -6.125481094381513,106.791504982294 -6.128553348783186,106.78358289544055 -6.133699250072027))
Please let me know if you need more information.


reduce default RTG biome size to increase likelihood of finding T1/T2 biome

5+ is much too large, 3 is much too crowded (image)

value must be an integer. That only leaves our goldilocks at 4.,


profanity: Enable clipboard support

Motivation for this change
Clipboard support was actually introduced in version 0.8.0, and this
change flew completely over my head. Now the /paste command should
actually work by default and as expected.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 119654 at fbffc54a run on x86_64-linux 1

1 package built successfully:

profanity

1 suggestion:

warning: missing-patch-comment
Please add a comment on the line above, explaining the purpose of this patch.
Near pkgs/applications/networking/instant-messengers/profanity/default.nix:34:5:
   |
34 |     ./patches/packages-osx.patch
   |     ^


If method does not return a Task it shouldn't end with "Async"

This is the opposite of #178:
void FooAsync() { }

Becomes:
void Foo() { }

The async keyword is not necessary for the method to have the Async postfix. All it needs to be async is to return a Task.
When renaming the method, all references have to be renamed as well and no code should break.
Should work on interfaces as well.
Category: Style
Diagnostic Id: CC0072
Severity: Info

It's mine.

Ok, are you working on it already? When you start move it to Working. I ask because you were working on another one. :)

@giggio Let's go code!


Authenticated Presto Clusters

I was wondering if it's possible to connect to an authenticated Presto cluster (e.g. authenticated with LDAP)? I could not find any information in the docs or in the code around passing in credential information to Presto.
If it is possible, are these credentials for the entire cluster or different credentials per user?

hey itay, at this moment we don't support authenticated presto clusters at all.
the identity that is passed to presto rest api is taken from sso identity


Notice that the most repo travisci build errored out.

fix prompting for hex installation (force hex installed locally beforehand)
repo errored out build status:
https://travis-ci.org/pinterest/elixometer/builds/100247896

Thanks!


HAWQ-117. Add query dispatching context checking before serialization

The fix looks good to me. It would be better if the minor revision regarding indention can be fixed. +1

Looks good. +1


Opens in a blank window

When installing release catapult-win-x64-24.11a it opens in a blank screen like so:

On Win 10

Try running catapult from cmd with a command like this 'catapult-win-x64-24.11a.exe -v > log.txt` . That should create a log.txt file near your catapult exe with some potentially helpful debug info in it that you can post here.
Also you could try running older releases and seeing if they work to help pinpointing the issue.

log.txt
https://i.imgur.com/11Bf2bu.png
This is from opening and then closing it. Old versions do work, as in the software works but the functionality isnt there because it cant fetch releases because iirc the git repo name changed for cdda or something? So works but not really.

Does renaming or moving catapult_settings.json do anything? It's in the same directory with the catapult executable.

POOOOG it worked, I guess because I installed it "over" an old version, so it maybe doesnt check that the settings file is from an old version or some such thingy?
How did you figure this out if you can explain a bit so I learn something?

The log you posted had an error about not being able to open the "Grey.theme" resource file so I switched the launcher on my PC to that theme and then compared your log file with mine in WinMerge. The difference between the two logs was that my launcher was loading "Grey.res" successfully and yours was trying to load "Grey.theme" and failing. So apparently the naming convention for the themes changed in one of the updates.


Add soil mask code to PSII extractor

The Octave script from Tino has code for soil mask that should be implemented in our extractor.
@NewcombMaria tagging you for now, I don't think i have copy of latest Octave script

@max-zilla it's good timing to be giving attention to the PSII analysis code.  Late last week @jdemieville-ua revised the Octave script to narrow the images to a single plant row eliminating overlapping leaves from neighbor rows prior to the analysis of each PSII measurement.  The width dimensions are now treated as variables that can be adjusted during different times of the season as plants grow and leaves from different genotypes merge in between rows.  I tested the new script over the last couple days and results look good so far.

@max-zilla I sent email attachments with Octave scripts and explanations.
From email:  "The script includes soil mask and returns mean and standard deviation Fv/Fm (csv), histogram (png), MeanIntensity graph (png), ResultImage with standardized colorbar (0-1) (png), and a new metadata_Result json file that has the mean and standard deviation for Fv/Fm added at the bottom."


Active Directory B2C Auth Configuration

I've configured Azure Active directory B2C  auth flow by adding a new class  'B2CAuth' derived from the 'OpenApiOAuthSecurityFlows' interface. Unfortunately, the API Authorization is unsuccessful and returned 401 - UnAuthorized error in the swagger UI.
The code is given below. Not sure if I am missing any config settings.  Could anyone please advise?
`
class B2CConfigAuth : OpenApiOAuthSecurityFlows
{
public B2CConfigAuth()
{
Implicit = new OpenApiOAuthFlow()
{
// Add b2C auth url.
AuthorizationUrl = new Uri(""),
// Add b2c API scope
Scopes = new Dictionary<string, string> { { "openid", "OpenID" }, { "","AppIDURI" } }
};
}
}
// HTTP Get Method
public static class B2CAuthTest
{
    [OpenApiOperation(operationId: "OpenAPITest", tags: new[] { "name" })]
    [OpenApiSecurity("b2cAuth", SecuritySchemeType.OAuth2, In = OpenApiSecurityLocationType.Header, Scheme = OpenApiSecuritySchemeType.Bearer, Flows = typeof(B2CConfigAuth))]
    [OpenApiParameter(name: "name", In = ParameterLocation.Query, Required = true, Type = typeof(string), Description = "The **Name** parameter")]
    [OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "text/plain", bodyType: typeof(string), Description = "The OK response")]
    [FunctionName("OpenAPITest")]
    public static async Task<IActionResult> OpenAPITest(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        string name = req.Query["name"];
        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        dynamic data = JsonConvert.DeserializeObject(requestBody);
        name = name ?? data?.name;            string responseMessage = string.IsNullOrEmpty(name)
            ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
            : $"Hello, {name}. This HTTP triggered function executed successfully.";
        return new OkObjectResult(responseMessage);
    }
}`

@Raysapps Thanks for the issue! I don't think your code works as expected. Would you please follow this document and let us know? https://github.com/Azure/azure-functions-openapi-extension/blob/main/docs/openapi-core.md#openapisecurityattribute

I noticed that the swagger shows invalid errors provided below when the "Log in with Azure Active Directory" option is set in the Azure Portal.
// error list
{"schemaValidationMessages":[{"level":"error","message":"Can't read from file https://xxxxxx.azurewebsites.net/api/swagger.json"}]}
However, the swagger doc becomes valid by resetting the option to "Allow Anonymous request (no action)". Is this the expected behavior?
I still get 401- UnAuthorized error when the option "Allow Anonymous request(no action)" is selected in the Azure portal.  Is it possible to have both anonymous functions and Active directory B2C Authorized APIs within the same Azure function App? If yes, could you please advise?


Select only Primary emails

Hello,
I've started using your module in Polybar and it works great.
The only thing is that it tells me that I have 5525 emails which is true if I count the "Social" and "Promotions" emails that I never look into.
Would there be an option in Gmail API to select only the Primary content so it tells me I have 4 unread instead of 5524 ?
Thank you.
EDIT : I've looked into Gmail API and found that you can use Labels to search you're emails, including CATEGORY_PERSONAL which is the category I would like to search. I think that is a good start to what I'm looking for. I will look into the code tomorrow to try it.

Hello.
Please check updated version (new --label argument).

Great ! Thanks


Extension Unable to Recognize Step Definitions Due to Parsing Error

👓 What did you see?

Opening one of my .feature files shows each of my steps are unrecognized with the error Undefined step: ..., and auto complete doesn't recognize any of the step definitions in my step files.

Looking at the output for extension shows these logs:

[Info  - 9:46:22 AM] Registering request handler for workspace/didChangeConfiguration failed.
[Info  - 9:46:22 AM] Could not register DidChangeConfigurationNotification: "Unhandled method client/registerCapability" - this is OK
[Info  - 9:46:22 AM] CucumberLanguageServer initialized!
[Info  - 9:46:22 AM] onInitialized
[Info  - 9:46:22 AM] Scheduling reindexing in 0 ms
[Info  - 9:46:22 AM] Found 9 feature file(s)
[Info  - 9:46:22 AM] Found 425 steps in those feature files
[Info  - 9:46:22 AM] Found 9 glue file(s)
[Error - 9:46:22 AM] Failed to reindex: Parsing failed

✅ What did you expect to see?

The step definitions are recognized and the auto complete works as expected.

📦 Which tool/library version are you using?

Cucumber-js<EMAIL_ADDRESS>Typescript<EMAIL_ADDRESS>
🔬 How could we reproduce it?
Steps to reproduce the behavior:
I can look to create repro steps if it would be helpful.

📚 Any additional context?

All of my feature files and step definitions exist in the e2e/features and e2e/steps directories respectively.
Example of one of my step definitions

When('I right click the text {string}', async (text: string): Promise<void> => {
    // Do things
});

My settings.json file has these settings:

"cucumber.features": [
    "e2e/**/*.feature"
],
"cucumber.glue": [
    "e2e/**/*.feature",
    "e2e/**/*.steps.ts"
]

Not sure if it's relevant but I have a separate tsconfig.e2e.json file used for automation work:

{
  "compilerOptions":{
    "outDir": "e2e/output",
    "target": "ES2017",
    "module": "commonJS",
    "skipLibCheck": true
 },
  "include": [
    "./e2e/**/*.ts"
  ]
}

This text was originally generated from a template, then edited by hand. You can modify the template here.

@NickSchudloProdigy can you try to update the extension to 1.0.5? The output should now (hopefully) print the paths of files that couuldn't be parsed.
Can you share the output here please?

[Info  - 12:15:24 PM] Registering request handler for workspace/didChangeConfiguration failed.
[Info  - 12:15:24 PM] Could not register DidChangeConfigurationNotification: "Unhandled method client/registerCapability" - this is OK
[Info  - 12:15:24 PM] CucumberLanguageServer initialized!
[Info  - 12:15:24 PM] onInitialized
[Info  - 12:15:24 PM] Scheduling reindexing in 0 ms
[Info  - 12:15:25 PM] Found 9 feature file(s)
[Info  - 12:15:25 PM] Found 425 steps in those feature files
[Info  - 12:15:25 PM] Found 9 glue file(s)
[Info  - 12:15:25 PM] Found 0 step definitions in those glue files
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/Base.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/FileBrowser.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/HierarchyView.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/InspectorView.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/Prefab.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/Publishing.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/RenameAudioFileinEditor.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/SavingAndLoading.feature
[Error - 12:15:25 PM] Errors: Parsing failed
path: e2e/features/Templates.feature
[Info  - 12:15:25 PM] Built 207 step documents for auto complete

And here is an example of one of the feature files it's failing to parse

Oh I realized I had changed my glue config to point to the transpiled .js files for testing. When I changed it back to the .ts files I get this (where the last error is new):
[Info  - 12:24:52 PM] Registering request handler for workspace/didChangeConfiguration failed.
[Info  - 12:24:52 PM] Could not register DidChangeConfigurationNotification: "Unhandled method client/registerCapability" - this is OK
[Info  - 12:24:52 PM] CucumberLanguageServer initialized!
[Info  - 12:24:52 PM] onInitialized
[Info  - 12:24:52 PM] Scheduling reindexing in 0 ms
[Info  - 12:24:52 PM] Found 9 feature file(s)
[Info  - 12:24:52 PM] Found 425 steps in those feature files
[Info  - 12:24:52 PM] Found 15 glue file(s)
[Info  - 12:24:52 PM] Found 53 step definitions in those glue files
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/Base.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/FileBrowser.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/HierarchyView.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/InspectorView.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/Prefab.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/Publishing.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/RenameAudioFileinEditor.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/SavingAndLoading.feature
[Error - 12:24:52 PM] Errors: Parsing failed
path: e2e/features/Templates.feature
[Error - 12:24:53 PM] Failed to reindex: No parameter type named assetType

Removing that defineParameterType seems to have fixed it for me

Thanks for your help diagnosing this @NickSchudloProdigy. Could you please try with 1.0.7?
Try restoring your defineParameterType - I don't think your step definitions that use {assetType} will parse unless you leave it in.

It does seem to have fixed something though, as the syntax highlighting seems to be working properly but there is still no auto complete.

Did you tried defining AssetType in the extension's configuration as described here: https://github.com/cucumber/vscode#cucumberparametertypes?

I just added it and now it seems to think it already knows about the type:
[Info  - 10:40:14 AM] Registering request handler for workspace/didChangeConfiguration failed.
[Info  - 10:40:14 AM] Could not register DidChangeConfigurationNotification: "Unhandled method client/registerCapability" - this is OK
[Info  - 10:40:14 AM] CucumberLanguageServer initialized!
[Info  - 10:40:14 AM] onInitialized
[Info  - 10:40:14 AM] Scheduling reindexing in 0 ms
[Info  - 10:40:14 AM] Found 9 feature file(s)
[Info  - 10:40:14 AM] Found 425 steps in those feature files
[Info  - 10:40:14 AM] Found 6 glue file(s)
[Error - 10:40:14 AM] Failed to reindex: There is already a parameter type with name assetType

Did you tried defining AssetType in the extension's configuration as described here: https://github.com/cucumber/vscode#cucumberparametertypes?

It says:

Override the cucumber.parameterTypes setting if your Cucumber Expressions are using Custom Parameter Types that are defined outside your cucumber.glue setting.

In other words - only specify it if the parameter type is not defined in your own glue code.

I've released 1.0.9 which just warns if you register an existing parameter type.
Can you try again with v1.0.9?

@aslakhellesoy Unfortunately it still fails with the same error. It does find it though, but it's not available during indexing?
[Info  - 11:54:00 AM] Registering request handler for workspace/didChangeConfiguration failed.
[Info  - 11:54:00 AM] Client does not support client/registerCapability. This is OK.
[Info  - 11:54:00 AM] CucumberLanguageServer initialized!
[Info  - 11:54:00 AM] onInitialized
[Info  - 11:54:00 AM] Scheduling reindexing in 0 ms
[Info  - 11:54:00 AM] Reindexing...
[Info  - 11:54:00 AM] * Found 10 feature file(s) in ["e2e/**/*.feature"]
[Info  - 11:54:00 AM] * Found 459 steps in those feature files
[Info  - 11:54:00 AM] * Found 6 glue file(s) in ["e2e/**/*.feature","e2e/**/*.steps.ts"]
[Info  - 11:54:01 AM] * Found 55 step definitions in those glue files
[Info  - 11:54:01 AM] * Found 1 parameter types in those glue files
[Error - 11:54:01 AM] Failed to reindex: No parameter type named assetType

It's probably a mistake to specify e2e/**/*.feature as part of your glue, but the language server should be able to deal with that gracefully. I'll double check.

Do you know the name of the one parameter type that would have been found under ["e2e/**/*.feature","e2e/**/*.steps.ts"]? Is it assetType or another one?

Yes it is assetType. I have only defined one parameter type in this project so far.

I'm having similar issues after installing this. I have one step def and it cannot find it. I've tried the default values for cucumber.features and cucumber.glue, editing them to be more precise, and moving the classes. Nothing gets recognized. I also don't have the option to create a new step either.

I'm on Mac OSX 12.4 (M1). Below is the pom. Some coordinates referenced are from an example created by using VS Code's Maven extension to make a default Cucumber project.
`

io.cucumber
cucumber-bom
7.0.0
pom
import

org.junit
junit-bom
5.8.1
pom
import

junit
junit
4.11
test

<dependency>
  <groupId>org</groupId>
  <artifactId>sikuli</artifactId>
  <version>2.0.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
<dependency>
  <groupId>net.sourceforge.tess4j</groupId>
  <artifactId>tess4j</artifactId>
  <version>5.2.1</version>
</dependency>

<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-java</artifactId>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-junit-platform-engine</artifactId>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.junit.platform</groupId>
  <artifactId>junit-platform-suite</artifactId>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter</artifactId>
  <scope>test</scope>
</dependency>

maven-clean-plugin
3.1.0

maven-resources-plugin
3.0.2

maven-compiler-plugin
3.8.0

maven-surefire-plugin
3.0.0-M6

maven-jar-plugin
3.0.2

maven-install-plugin
2.5.2

maven-deploy-plugin
2.8.2

maven-site-plugin
3.7.1

maven-project-info-reports-plugin
3.0.0

org.apache.maven.surefire
surefire-junit47
3.0.0-M6

org.apache.maven.plugins
maven-surefire-report-plugin
3.0.0-M6

`

I've fixed a few bugs in @cucumber/language-server 0.12.3 and the VSCode extension 1.2.1. @NickSchudloProdigy hopefully I've also managed to fix the bug you've seen with reindexing.
Currently, generating step definitions for undefined steps only works if you already have at least one step definition that the language server has identified. This is because it needs to:

Determine what programming language to use for generated step definitions
Suggest in what file(s) to add it

@richwyantoddball thanks for the pom.xml - it's not relevant here as the extension doesn't read it. Please share any output from Cucumber Language Server in this issue if you still have problems.
This might be improved in a future version.

@aslakhellesoy Hopefully the extra info output can help:
[Info  - 9:14:01 AM] Reindexing...
[Info  - 9:14:01 AM] * Found 10 feature file(s) in ["e2e/**/*.feature"]
[Info  - 9:14:01 AM] * Found 459 steps in those feature files
[Info  - 9:14:01 AM] * Found 6 glue file(s) in ["e2e/**/*.steps.ts"]
[Info  - 9:14:01 AM] * Found 1 parameter types in those glue files
[Info  - 9:14:01 AM]   * {assetType} = prefab|audio|image|spine|atlas
[Info  - 9:14:01 AM] * Found 55 step definitions in those glue files
[Info  - 9:14:01 AM] Generating diagnostics
[Error - 9:14:01 AM] Expected a string, but was ["atlas","audio","image","prefab","spine"]

This is how assetType is defined:
defineParameterType({
    name: 'assetType',
    regexp: /prefab|audio|image|spine|atlas/,
    transformer: (s: string) => AssetType[s]
});

Aha insteresting! I should be able to reproduce and fix this now.

Can you share the definition of AssetType as well please?

export enum AssetType {
    atlas = 'atlases',
    audio = 'audio',
    image = 'images',
    prefab = 'prefabs',
    spine = 'spine'
}

And finally, some cucumber expressions that use {assetType}?

Yeah that is something similar to what I have
Then('The {assetType}( file) {string} exists', async (assetType: AssetType, filename: string): Promise<void> => {
   ...
});

Thanks for the response, @aslakhellesoy. I upgraded to the latest version and restarted VS Code. Still getting same issue. Here's the output you asked for:
[Info  - 12:28:02 PM] Reindexing... [Info  - 12:28:02 PM] * Found 0 feature file(s) in ["src/test/**/*.feature","src/test/resources/feature"] [Info  - 12:28:02 PM] * Found 0 steps in those feature files [Info  - 12:28:02 PM] * Found 0 glue file(s) in ["src/test/**/*.java","src/test/java/com/oddball/xmlcomparemaven/*.java"] [Info  - 12:28:02 PM] * Found 0 parameter types in those glue files [Info  - 12:28:02 PM] * Found 0 step definitions in those glue files [Info  - 12:28:02 PM] Generating diagnostics [Info  - 12:28:02 PM] * Built 0 suggestions for auto complete [Info  - 12:28:02 PM] Unable to generate step definition. Please create one first manually.
Relevant settings look like this:
`
"cucumber.features": [
"src/test/**/*.feature",
"src/test/resources/feature"
],
"cucumber.glue": [
    "src/test/**/*.java",
    "src/test/java/com/oddball/xmlcomparemaven/*.java"
]

This is my stepdef class:
package com.oddball.xmlcomparemaven;
import io.cucumber.java.en.Given;
public class StepDefs {
@Given("This is my step def and its terrific")
public void this_is_my_step_def_and_its_teriffic() {
    System.out.println("You left out the apostrophe");
}

}
`
This is what I get. Am I doing something wrong?:

@richwyantoddball I closed this because I believe #56 addressed the issue originally posted by @NickSchudloProdigy.
Your issue seems to be unrelated. You're not seeing any step definitions, but your logs suggest it's not because of a parsing error, but rather that no feature files or glue files are found from your settings globs. Please create a separate issue for this. Are you on Windows? If so, the bug might be related to that.

@NickSchudloProdigy the bugfix is released in the VSCode extension version 1.2.3. Please open a new issue referring this one if the problem persists.

Seems all good on my end! Thanks for working on fixing this 🎉

Thanks for confirming @NickSchudloProdigy and thanks again for providing all the logs so we could fix this!

Thanks for your efforts, @aslakhellesoy. I'm on a Mac and upgraded to 1.2.3. Still having the same issue. I'll open a separate thread.


remove oehost dependencies from oesgx

bors try

I'll describe the problem that Dmitry shared with me earlier regarding the purpose of this PR below.
oesgx has been linked against the "oehost" library in the past, even though it only uses one function from the oehost library. The act of linking against oehost causes oesgx to inherit some dynamic library linkages, like the Intel libsgx* libraries and the OpenSSL libssl library. Those linkages require those libraries to exist on a system where oesgx runs, and those dependencies make oesgx less portable.
This PR makes oesgx more portable by removing those dynamic library dependencies.

Yes, the PR description could use a nice writeup and @johnkord already summarized it well. So, this will go into the git logs.

bors try

The purpose of this PR is to reduce footprint of oesgx utility.
oesgx is used to query SGX capabilities, and is not dependent on other OE SDK components.
By removing unnecessary library dependencies we can you oesgx binary for SGX diagnostics outside of OE SDK.

bors try

bors r+

bors r+


Stylized Depth Meter

More of a visual, non-essential feature request but a custom depth meter would be cool (based on the mine you're in
For example, the main mine would look something like this:

dang it it only uploaded the 2nd layer one second

This will take quite a bit of graphic design. I can get the basic stuff setup for this, such as the depth reading as a image on the side with an indicator. The graphics would be the only think I would need help with


Design publishing pipeline

We need to determine our organization, artifact names, packages, and set up automatic CI rebuilding. Java's current packaging is not ergonomically friendly.

We have org and artifact names, we have versioning rules in place, we have some CI automation (need more)


Add docker generation to Github Actions

Fixes #574. Add image signature and verification based on cosign

I don't see any problems, but I can't claim to understand everything in the .yml files. I wonder if any instructions should be added, though, so that people know how to update things in future?

I added some instructions.


How about an image update?

Hi,  the current image is aiyprojects-2017-09-11.img.xz
That image is missing a few things such as:

The assistant_library_with_local_commands_demo.py (which is ultra useful to all newbies)
The buzzer driver.

Any chance of updating the image?

Also consider moving to the Stretch (Debian 9) as the latest Raspberry Pi is at.


Handle response and callback function

Hi,
I implemented Axios successfully so far but I don't get it to work to fire a callback function after the response is send back.
What I want to achieve:
I call my helper function doing a request and when the result is send back I want to call my callback function sending the result as a parameter.
What I have:
My Helper function:
export function fetchData(ajaxUrl, postParams) {
  const params = new URLSearchParams()
  _.forEach(postParams, (value, key) => {
    params.append(key, value)
  })

  axios.post(ajaxUrl, params)
  .then((response) => {
    console.log('axios log: ', response)
    return response
  })
  .catch(error => Promise.reject(error))
}

I call the helper function like this:
// call the helper function in my app.js:
fetchData(ajaxUrl, postParams).then(
        (response) => {
          this.initOffices(response)
        })

The console.log('axios log: ', response) logs a correct result comming from my database.
But in the calling code block (app.js) response is undefined.
I'm new to javascript so I don't have a understanding of promises in general. If somebody can tell me what I'm doing wrong or how to write the code I would appreciate it!
#### Context

axios version:0.16.2
Environment: *e.g.: node v7.7.0, mac El Captain 10.11.6

I got help from a friend - it turned out that I placed the return at the wrong place..
This way it works:
export function fetchData(ajaxUrl, postParams) {
  const params = new URLSearchParams()
  _.forEach(postParams, (value, key) => {
    params.append(key, value)
  })

  return axios.post(ajaxUrl, params) // return here
      .then(response => response.data)
      .catch(error => error)
}

and the calling block:
fetchData(ajaxUrl, postParams)
	.then((response) => {
		this.myCallbackFunction(response)
	})
	.catch(error => error)

Or maybe return the response completely and just pass response.data to the callback function..

Same results but a little different, first created a function for refresh the list with axios
  // refresh the list on the template using php file   function allRecords(tablx,callback) {    axios.post('/module/ajax_sites.php', {     request: 1,     files: tablx,  }).then(function (response) {      products = response.data;      callback();  }).catch(function (error) {     console.log(error);  }); }
then on the template where I was trying to delete a record and then update the list
allRecords('sites',function() {            console.log('loading..');           router.push('/');     });
Here you can see the call back function, the method to delete and then refresh the list is below.
deleteProduct: function () {       //this will delete data in the php file       axios.post('/module/ajax_sites.php', {         request: 4,         files: 'sites',         id: this.$route.params.product_id       })       .then(function (response) {         console.log('deleted..');         **allRecords('sites',function() {            console.log('loading..');           router.push('/');          });**       })       .catch(function (error) {         console.log(error);       });     }
The previous method uses the axios premise to delete the record, and also refresh the list using allRecords function, also using another promise and a callback function to wait for the data to come back, and then route.push to display the list again on the screen.

Same results but a little different, first created a function to refresh the list with axios, notice the callback();
// refresh the list on the template using php file function
allRecords(tablx,callback) {
  axios.post('/module/ajax_sites.php', {
  request: 1,
  files: tablx,
})
.then(function (response) {
  products = response.data;
  callback();
})
.catch(function (error) {
  console.log(error);
});
}

Here is the method for the template. It's going to the database twice, first to delete, then to refresh. The callback in allRecords() waits for the data to come back before routing back to the list using route.push().
method:
  deleteProduct: function () {
      //this will delete data in the php file
      axios.post('/module/ajax_sites.php', {
        request: 4,
        files: 'sites',
        id: this.$route.params.product_id
      })
      .then(function (response) {
        console.log('deleted..');
        allRecords('sites',function() {
            console.log('loading..');
            router.push('/'); });
      })
      .catch(function (error) {
         console.log(error);
      });
   }


Fix formatting for MPL 3.3.0+

I tried to fix the error from using pprint_val which was removed from the latest version of matplotlib.
Fixes #97

Thanks for the PR!

@joferkington Please make a release containing this.

@pvangoor @joferkington @jondo @dashesy @anntzer thanks for trying to fix this. is there a reason why my version still has the bug? thanks!

@yishairasowsky are you using the master branch of the git repo or have you installed via pip? If you installed via pip then you will be using the latest release, which I don't think has been updated to include this fix yet.

ok, so you are saying i should use the git repo and then i will have the
fix. thank you!
On Fri, Jul 16, 2021 at 1:34 AM pvangoor @.***> wrote:

@yishairasowsky https://github.com/yishairasowsky are you using the
master branch of the git repo or have you installed via pip? If you
installed via pip then you will be using the latest release, which I don't
think has been updated to include this fix yet.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/joferkington/mpldatacursor/pull/98#issuecomment-881053238,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJN7CN54EWCFASAE2XXE6O3TX5O6LANCNFSM4ROAPU6Q
.

--
Yishai Rasowsky
054.848.2245
Audio classes here https://anchor.fm/yishai-rasowsky.

I have switched to the similar mplcursors library, which does not have this problem.

Thanks!
On Mon, Jul 19, 2021, 10:46 Robert Pollak @.***> wrote:

I have switched to the similar mplcursors
https://github.com/anntzer/mplcursors library, which does not have this
problem.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/joferkington/mpldatacursor/pull/98#issuecomment-882322540,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJN7CN2UUJUJOZHAQVLA2ZDTYPJ6DANCNFSM4ROAPU6Q
.

Yishai Rasowsky
kollelklal.org


Laravel 5.8

Q
A

Bug fix?
Yes or No

New feature?
Yes or No

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Fixes # (issue)
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 wrote unit tests for my code
[ ] I have made changes in CHANGELOG.md file

About your changes in CHANGELOG.md:

Add new version header like ## v1.x.x, if it does not exists
Add description under Added / Changed / Fixed sections
Add reference to closed issues [#000]
Add link to issue in the end of document

@tarampampam can you merge bro ?

@bsormagec Sure, dude, but now I think which version should be assigned for fresh release (semver is our all). What do you think about custom branch-alias for this changes?

Great thx for your PR!


Persist changed language without NEXT_LOCALE cookie

My nextjs app is running in a third-party context (iframe) and now with all the new cookie regulations (no third-party cookies anymore), it is not possible for me to set the NEXT_LOCALE cookie.
I was wondering if any of you knows a way to force nextjs to use a specified locale without the cookie? Maybe localStorage?
Thanks for any response!

You can use the localStorage and create a custom hook to redirect to the preferred locale, but then the redirect will be done in client-side...


Enable Immutable Seaport by exposing test helpers and including immutable/seaport-core from lib

Motivation

Solution

We don't merge into the base branch. As this is approved, I'll pin this as the established immutable version


Optimizing smoltcp->smoltcp (no operating system) throughput with loopback example

Thanks to the creators, and maintainers of smoltcp, it is incredible.
I was wondering what the throughput of smoltcp is without hitting the operating system.
So, I hacked up the loopback example, see attachment.
And I seem to be getting about 5GB/s or 42Gb/s on an Intel 12400 CPU
elapsed: Duration { micros: 1874114 }
ntx:<PHONE_NUMBER>2
nrx:<PHONE_NUMBER>6
throughput: 5.3 GBps
throughput: 42.7 Gbps

I am wondering if that seems about right for TCP throughput, when going Smol->smol_loopback->Smol
without hitting an operating system devices, ie, tap, tun, etc.
If you have any suggestions on improving the performance, please let me know.
Attached is the modified loopback example. (I got rid of pcapwriter, etc)
(it is renamed from .rs to .txt as github doesn't like .rs attachments)
loopback-bench.txt

Interestingly, I get nearly 100Gb/sec with iperf on that same system using the OS loopback interface,
so it would seem I might be able to improve my speeds with smoltcp somehow.
(I could try two threads for example)
iperf client
c@intel12400 ~/smoltcp (main)> iperf -c <IP_ADDRESS>
------------------------------------------------------------
Client connecting to <IP_ADDRESS>, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[  1] local <IP_ADDRESS> port 33038 connected with <IP_ADDRESS> port 5001 (icwnd/mss/irtt=319/32741/9)
[ ID] Interval       Transfer     Bandwidth
[  1] 0.0000-10.0159 sec   115 GBytes  98.7 Gbits/sec

iperf server
c@intel12400 ~> iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  1] local <IP_ADDRESS> port 5001 connected with <IP_ADDRESS> port 33038 (icwnd/mss/irtt=320/32768/7)
[ ID] Interval       Transfer     Bandwidth
[  1] 0.0000-10.0004 sec   115 GBytes  98.8 Gbits/sec

It would be nice if we could also do it for IPv6!


Skip chart revision for charts with identical data

What
Improve the chart revision flow by skipping charts that have no differences.
Why? Why now?
Currently, charts are queued up for manual review even when there are no changes, e.g. because other variables in a dataset changed.
We should make this flow more efficient by only requiring QA when there is something to QA.
Technical notes

Aren't there already options for auto-applying some chart revisions in staging sync?

Yes, in staging sync this is to avoid a double approval workflow

The chart revision code is the last piece for Daniel to migrate TypeORM-to-Knex database code; should he do it, or should we migrate it to Streamlit? Unclear
Decision: we should do this not in the chart approval code but in the code that decides whether to queue a chart for approval

This is simple to do and still useful

But maybe we should move it over to the grapher repo as this is where this logic lies?

We plan to deprecate chart revisions in favour of chart-diff (which already has this feature). What is "worth QA-ing" in general is a bigger question we shall open soon after.


Virtual Network Peering Name?

Hi,
It would be helpful with a standard for Virtual Network Peering Names. Any plans? :-)
Regards Peter

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

ID: 0e540bb6-9f72-0529-28ea-ae82bc869835
Version Independent ID: 24e71392-985b-59fb-1552-46395b169612
Content: Naming conventions for Azure resources - Best practices for cloud applications
Content Source: docs/best-practices/naming-conventions.md
Service: architecture-center
Sub-service: cloud-fundamentals
GitHub Login: @telmosampaio
Microsoft Alias: pnp

Thanks for the question! We are investigating and will update you shortly.

Added to our list for updates which are in flight! Thanks so much @theheatDK for the suggestion. Update coming soon we hope!


Plugin Changelog for local plugins

Description

Questions
Answers

Why?
Local plugins should have the same abilities like in store

BC breaks?
no

Tests exists & pass?
yes

Related tickets?

How to test?
Install latest version of https://github.com/shyim/shopware-profiler from github

Requirements met?
Yep

Screenshot:

plugin.xml
<?xml version="1.0" encoding="utf-8"?>
<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../../../engine/Shopware/Components/Plugin/schema/plugin.xsd">
    ShyimProfiler
    ShyimProfiler
    <version>1.1.0</version>
    <copyright>Shyim</copyright>
    <license>MIT</license>
    <link>https://github.com/shyim/shopware-profiler</link>
    <author>Shyim</author>
    <changelog version="1.1.0">
        <changes lang="en">
            <![CDATA[

Performance Event Charts

Added event charts to show which events needs how long to execute

Added overview of cache read/write/delete and a hit/miss metric

Added new sidebar of security with all user informations and password encoders

Added overview of container parameters to "Configuration" tab

Added search form to developers.shopware.com

            ]]>
        </changes>
    </changelog>
</plugin>

Hi @shyim, we just merged your PR: https://github.com/shopware/shopware/commit/79856faf0fba0a5c80770a498597840d6a0b1e8f (and added a bit of HTML sanitizing). 😉
Thank you again for your awesome help! 💙