Project status

I don't see any activity in this repo. What is the current status of this amazing project? Is there any progress on adding documentation for building a SUQL-based conversational agent?

Hi! Thank you for your interest in this project. We are actively developing this project including support for more vector data stores (e.g. Qdrant and Pgvector) and better semantic parsing pipelines. I have just opened another issue for documenting SUQL-based conversational agents and will keep track of the status there!

Thanks for the reply. Please also consider adding support for Kuzudb https://kuzudb.com/ as the vector store.


Have Updated to remove State variables and the Issue they can cause

Also, removed un-necessary commands and functions that add no value

Superceeded


Bug 64465 - publish jmeter-bom and jmeter-dependencies-bom

jmeter-bom lists versions for JMeter artifacts only:
ApacheJMeter_core, ApacheJMeter_components, ...
jmeter-dependencies-bom lists versions for third-party dependencies only

Codecov Report

Merging #593 into master will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #593      +/-   ##
============================================
- Coverage     55.33%   55.32%   -0.01%
+ Complexity     9978     9976       -2
============================================
  Files          1032     1032
  Lines         63412    63412
  Branches       7168     7168
============================================
- Hits          35087    35084       -3
- Misses        25847    25848       +1
- Partials       2478     2480       +2

Impacted Files
Coverage Δ
Complexity Δ

...a/org/apache/jmeter/timers/PoissonRandomTimer.java
72.97% <0.00%> (-5.41%)
9.00% <0.00%> (-1.00%)

...n/java/org/apache/jmeter/reporters/Summariser.java
84.73% <0.00%> (-0.77%)
17.00% <0.00%> (-1.00%)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0dde720...bb5e8d0. Read the comment docs.

Should we include this in the next release?

I'm afraid it is not quite ready.

Closing as it's not mergeable


Where to download the knowledge base

麻烦问一下，知识库可以在哪里下载？

The knowledge database of the retrieval module will not be open sourced for now.

Closing since this won't be fixed.


Chef generate cookbook creates tests in a different location than where kitchen-inspec looks for tests

Issue Description
The default cookbook generators in chef-dk do not create the necessary scaffolding to work with kitchen-inspec.
By default, kitchen-inspec looks for tests in the cookbooks in these locations, in order of preference:

./test/recipes/default/
./test/integration/default/inspec/

However, chef generate cookbook lays down tests in /test/recipes/, without the default subdirectory.
Current behavior
In order to run Inspec tests, people must either:

manually move the files to the proper directories required to work with kitchen-inspec;
manually edit the .kitchen.yml file to point to the default created tests in ./test/recipes/default_test.rb

Desired Behavior

Inspec tests can be run on a freshly generated cookbook without modification.
Error message when no tests are found by kitchen-inspec is clarified, so that it is obviously referring to a path, and not a filename.

ChefDK Version
Chef Development Kit Version: 0.16.28
Platform Version
Mac OS/X latest
Replication Case

chef generate cookbook foo
cd foo
delivery local smoke
Note the output:

-----> Setting up <default-ubuntu-1604>...
       Finished setting up <default-ubuntu-1604> (0m0.00s).
-----> Verifying <default-ubuntu-1604>...
       Use `/Users/charlesjohnson/foo/test/recipes/default` for testing
Summary: 0 successful, 0 failures, 0 skipped
       Finished verifying <default-ubuntu-1604> (0m0.28s).
...
-----> Setting up <default-centos-72>...
       Finished setting up <default-centos-72> (0m0.00s).
-----> Verifying <default-centos-72>...
       Use `/Users/charlesjohnson/foo/test/recipes/default` for testing
Summary: 0 successful, 0 failures, 0 skipped
       Finished verifying <default-centos-72> (0m0.26s).

mkdir test/recipes/default && mv test/recipes/default_test.rb test/recipes/default/default_test.rb
delivery local smoke
Note the output:

Chef Delivery
Running Smoke Phase
-----> Starting Kitchen (v1.10.2)
-----> Verifying <default-ubuntu-1604>...
       Use `/Users/charlesjohnson/foo/test/recipes/default` for testing

Target:  ssh://vagrant@<IP_ADDRESS>:2222

  ○  1 skipped
     This is an example test, replace with your own test.
  ○  1 skipped
     This is an example test, replace with your own test.

Summary: 2 successful, 0 failures, 2 skipped
       Finished verifying <default-ubuntu-1604> (0m0.32s).
-----> Verifying <default-centos-72>...
       Use `/Users/charlesjohnson/foo/test/recipes/default` for testing

Target:  ssh://vagrant@<IP_ADDRESS>:2200

  ○  1 skipped
     This is an example test, replace with your own test.
  ○  1 skipped
     This is an example test, replace with your own test.

Summary: 2 successful, 0 failures, 2 skipped
       Finished verifying <default-centos-72> (0m0.29s).
-----> Kitchen is finished. (0m1.67s)

As of Chef-DK 0.16, chef generate cookbook foo creates Inspec scaffolding in test/recipes/.
kitchen-inspec will check both locations, preferring test/recipes.

The challenge here is that kitchen-inspec is actually looking for tests in the ./test/recipes/default directory. chef generate cookbook foo creates a sample test in ./test/recipes, which still leaves the user to create the default subdirectory. As a user, I expect the chef command to create all the scaffolding necessary for my cookbook.
Test case: ```09:51:46-rlupo~/cookbooks/dev/foo (master)$ kitchen verify
-----> Starting Kitchen (v1.10.2)
-----> Setting up ...
$$$$$$ Running legacy setup for 'Docker' Driver
Finished setting up  (0m0.00s).
-----> Verifying ...
Use /Users/rlupo/cookbooks/dev/foo/test/recipes/default for testing
Summary: 0 successful, 0 failures, 0 skipped
Finished verifying  (0m0.73s).
-----> Kitchen is finished. (0m2.65s)
09:51:57-rlupo~/cookbooks/dev/foo (master)$ mkdir /Users/rlupo/cookbooks/dev/foo/test/recipes/default
09:52:21-rlupo~/cookbooks/dev/foo (master)$ mv /Users/rlupo/cookbooks/dev/foo/test/recipes/default
default/         default_test.rb
09:52:21-rlupo~/cookbooks/dev/foo (master)$ mv /Users/rlupo/cookbooks/dev/foo/test/recipes/default
default/         default_test.rb
09:52:21-rlupo~/cookbooks/dev/foo (master)$ mv /Users/rlupo/cookbooks/dev/foo/test/recipes/default_test.rb /Users/rlupo/cookbooks/dev/foo/test/recipes/default/default_test.rb
/Users/rlupo/cookbooks/dev/foo/test/recipes/default_test.rb -> /Users/rlupo/cookbooks/dev/foo/test/recipes/default/default_test.rb
09:52:44-rlupo~/cookbooks/dev/foo (master)$ kitchen verify
-----> Starting Kitchen (v1.10.2)
-----> Verifying ...
Use /Users/rlupo/cookbooks/dev/foo/test/recipes/default for testing
Target:  ssh://kitchen@<IP_ADDRESS>:32778
○  User root should exist; User root This is an example test, r... (1 skipped)
This is an example test, replace with your own test.
○  Port 80 should not be listening; Port 80 This is an example ... (1 skipped)
This is an example test, replace with your own test.
Summary: 2 successful, 0 failures, 2 skipped
Finished verifying  (0m0.81s).
-----> Kitchen is finished. (0m2.32s)```

Updated the title and description of this issue to be more descriptive. Thanks for reporting this, @ricardolupo!

add leading / to ensure no confusion that default is a directory
-----> Starting Kitchen (v1.10.2)
-----> Verifying <default-centos-72>...
       Use `/Users/rlupo/cookbooks/dev/foo/test/recipes/default` for testing

Target:  ssh://kitchen@<IP_ADDRESS>:32778```

Another side effect is #1027 which causes foodcritic to fail.
I think it makes the most sense for chef generate cookbook to put the inspec files in /test/integration/default/inspec/ as this will keep with the current structure allowing us to have different suites and will allow for easier transition from ServerSpec to InSpec.

Now the generator explicitly generates an inspec_tests key with a location and we've reverted the changes that made this confusing in the first place, closing.


Function error

The functionalities provided by bigger-picture to handle lightboxes look great!
We are using Bootstrap in our project and followed the usage guidelines to implement bigger-picture (a couple responsive images in a page - no gallery) but could not make it work. We are definitely missing some step. Please could you confirm if the file to load for a HTML project  (no Svelte) is: bigger-picture.min.js.
We got the following error:
Uncaught TypeError: _bigger_picture__WEBPACK_IMPORTED_MODULE_1___default(...) is not a function
Here is the js code (same as usage recommendation):
import BiggerPicture from './bigger-picture'
// initialize
let bp = BiggerPicture({
target: document.body
})
// open (will be a child of the target element above)
bp.open({
items: document.querySelectorAll('#images a'),
})
The line triggering the issue is:
let bp = BiggerPicture({

bigger-picture.min.js is an IIFE script that you could include in a script tag and puts BiggerPicture in the global namespace.
bigger-picture.min.mjs is a module script that can be used by importing.
Best option is to use a package manager like NPM or PNPM to install the script (npm install bigger-picture) then import the installed script with the statement below (no forward slash). Not sure what your setup is, but if you're using webpack this will probably work.
import BiggerPicture from 'bigger-picture'

Did that help?

Yes it helped! Thank you for the feedback.
Installing via npm is not an option for our project, as it becomes unusable after adding any package with npm install.
We were able to get rid of the loading error and load 'bigger-picture' in the project following these steps:

Copied 'bigger-picture.min.mjs' to the folder 'src/js/modules'
Renamed the file to: bigger-picture.js
Loaded it via index.js: import "./modules/bigger-picture"

Using the suggested code the image automatically opens in the lightbox when the page loads:
bp.open({
items: document.querySelectorAll('#images a'),
})
We are now working to open the images in a lightbox only on click/touch, as the images now open in a new tab.

Gotcha, glad you got it working. For setting up click handlers you can reference the codesandbox linked in the readme:
https://codesandbox.io/s/bigger-picture-basic-gallery-o4kb82
There are other codesandboxes linked on the demo site as well, so hopefully that will have you covered.

I will check the link. Thanks!

Did you get it figured out?

The example helped. Thanks!


Name all entries which are overly long, confusing, or duplicated

As per #10

Closing this as I'm deprecating the Github rendering and @@html is too ugly and jumps to a slightly wrong position. More focus on #9 is needed.


add ova build boot wait

Otherwise build will fail in low performace machine.
boot-wait-time is the wait time for pc to enter CD/ISO install interface since power on.
If the machine performace is too bad, 10s will be not enough, and OS installation will hang at some interface.
And then packer build will hang forever.
==> vmware-iso: Starting HTTP server on port 8377
==> vmware-iso: Starting virtual machine...
    vmware-iso: The VM will be run headless, without a GUI. If you want to
    vmware-iso: view the screen of the VM, connect via VNC without a password to
    vmware-iso: <IP_ADDRESS>:5931
==> vmware-iso: Waiting 10s for boot...
==> vmware-iso: Connecting to VM via VNC
==> vmware-iso: Typing the boot command over VNC...
==> vmware-iso: Waiting for SSH to become available...

SSH will never become available.
@panpan0000 @PengTian0

Thanks. it's a reasonable fix in my view.

:+1:


How do you train Librispeech dataset?

Title
Training in Librispeech Data.
Description
The pipeline gives config errors when training with Librispeech data.

Sorry to late respond. This project focused on Korean ASR. Previously, I had also created code to support LibriSpeech, but it failed to update to suit LibriSpeech due to the recent high number of code updates.Sorry for inconvenience.


Update pom property fabric8.archetypes.release.version to 2.2.170

[merge]

retest this please

CI failed to find a dependency but I can see it in the jboss repo mentioned https://repository.jboss.org/nexus/content/groups/public/org/jboss/dashboard-builder/dashboard-builder-bom/6.4.0.Final/dashboard-builder-bom-6.4.0.Final.pom
Lets see if a retest will find it.

[merge]


Close context menu when refreshing logs

Is your feature request related to a problem? Please describe.
When right clicking a log and clicking "Refresh", the context menu stays open until the updated list of logCurveInfos are fetched.
Describe the solution you'd like
Close the context menu as soon as the action for refreshing the log is sent

I have created a fix for this. However, this is also an issue for all other selections in the context menu. Should we change it for those options too?

Sounds reasonable to me. Once any selection is done, the context menu should be closed. I'm pretty sure this is the way it worked earlier as well, but somehow it does not now

It also depends on the connection speed. If you get a server response almost immediately, you likely won't notice the delay. However, the slower the connection, the more noticeable.
If we want to do this for all context menus, could you expand the issue to include this?

It also depends on the connection speed. If you get a server response almost immediately, you likely won't notice the delay. However, the slower the connection, the more noticeable.

Correct. But the user interface should not be dependant on how long the underlying operation takes. This is out of scope for this issue, but a better way would be to have some kind of indication of background jobs running or data fetching (like a spinner)

If we want to do this for all context menus, could you expand the issue to include this?

Sure, I'll update the issue :)


Render Markdown emoji everywhere

This is what disappointment looks like

This is a fairly non-trivial task, and I'm not really sure it's worth it. I would actually like to avoid putting emojis in team names all-together, because it makes editing and updating teams by name through Rocket error-prone.

There are libraries that support it - I have emoji rendering in my jekyll blog

I guess what I'm saying it that the work required is relatively high for it's payoff. We'd have to add new option parsing rules to look for things that represent Slack emojis depending on command and context.

Slack emojis translate are exactly the same as normal Markdown emoji - for example, :cloud: is ☁ here in GitHub too

True, but that's not the case on our website, and my point about it being more work than it's worth still stands.

I'm open to us building this feature, but it needs to be done properly and there are much more useful things we should do first.


New version tested

Tested and working on Unifi Video 3.10.6!
All versions between 3.9.12 and 3.10.6 could be cleared in _supported_ufv_versions

@EagleOne42 note that you can pass check_ufv_version=False to UnifiVideoAPI() to pass the version check. (Forgot to include this in the README, sorry.)


tech stack icons center aligned for screens 768px  to 1024px

At projectCard.tsx line 20
-modified md:justify-start to md:justify-center
-added lg:justify-start

Congrats 🎉, your PR got merged. To be eligible for the swags from iNeuron X ClueLess. Follow this steps.

SignIn / SignUp in [ClueLess Website](https://www.clueless.tech/) .

Go to profile section from the top right hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard !
And don’t forget to share your achievement with your friends.

https://www.clueless.tech/profile/105228493382579654688 @Debajyoti14


0.6.1 upgrade

Upgrades all actors in wasmdome to Actor v0.6.0, and wasmdome to Host v0.6.1.
Also includes nkeys, structopt and nats version bumps where needed.

It looks like during a bunch of the refactors you started using the logger::default() capability. This requires signing the actors with wascc:logging ... Has that change been made to the appropriate makefiles/scripts?

@autodidaddict No I didn't update any Makefiles, good call will fix with next commit


[WIP] Adding Wishbone Wrapper

This WIP is where we'll add support for:

[ ] Wishbone master
[ ] Wishbone client
[ ] Possibly a non-bursting variant? Depending on overhead
[ ] Wishbone unicore top level
[ ] Wishbone memory
[ ] Wishbone testbench variant

Closing, this will actually be placed in bp subsystems


Add this integration to Home Asssistant Core

Hi @AlexxIT,
This seems to be a very complete integration and it definitely seems good enough to be natively in Home Assistant Core.
What is the reason that this is still a custom integration?

it is much more convenient to keep the integration at my own tempo and at my own level of quality when it is in a separate repository
no need to spend time on complying with mandatory requirements that do not affect integration quality
it is possible to write a large readme in own style
I can support older versions of Hass, all my integrations support Hass v2021.12 and more, I respect the choice of users
users don't have to wait for the next Hass release for some problem to be fixed
in any case, I release updates when backward compatibility breaks down in Hass

I disagree with some of the architectural ideas in Hass. But as a developer, I respect all the decisions of its creators.

I don't think all integrations have to be built into the core. Is this really the "core"? Would you be happy to buy a phone with one million pre-installed apps of any kinds? Maybe Windows should be installed with two thousand different applications?
I don't think the "core" should break backward compatibility with other applications several times a year. I can run applications in Windows 10 that worked in Windows XP
I don't think users have to upgrade the entire operating system to fix a bug in one of the application with the chance of getting new bugs in dozens of other very important applications
I think the core should have a built-in app store. Free one, all my work is free to users

I know that there is a opinion that custom integrations are less quality than embedded integrations. I don't think it's right.
By the way, I have a lot of quite successful projects on quite different topics and technologies. So I think I understand something about "good" application architecture https://github.com/AlexxIT
PS. Thanks for your cool custom integration Adaptive Lighting. I've been using it for several years and wrote an article about it https://habr.com/ru/post/529082/


Using PropTypes

Hi,
I see that the package is using PropTypes still and that practice has been deprecated in the newer versions of React.
-R

https://github.com/daviferreira/react-sanfona/commit/071cc69f7e7fd5896feda63c240c428acd6cd9da


Uncaught RangeError: Maximum call stack size exceeded

Problem
I still have the bug described in this issue https://github.com/yewstack/yew/issues/1449
Steps To Reproduce
Well, I only have this error on my rust gitlab-monitor after a certain amount of time (this time it was after 4 hours, it was 11 minutes before the fix)
Expected behavior
To not exceed call stack
Screenshots

Environment:

Yew version: [v0.17.4]
Rust version: [1.47.0, stable]
Target, if relevant: [wasm32-unknown-unknown]
Build tool, if relevant: [wasm-pack]
Web library: [web-sys]
OS, if relevant: [Linux]
Browser and version, if relevant: [Chrome v86]

Oops, i did not wanted to close this issue ..

Oh, interesting. Sorry you keep hitting this! Thanks for the report, sounds like I'll need to dig in again 😝

Hmm, I tried to update/rebuild my project and let it run all the night and I did not get this error again... I will make some more tests and tell you if it was just a false positive or not

Well I don't know what happened but after a weekend, no bug 🤷♂ So I close the issue^^


FakeExec is missing CommandContext

The FakeExec struct is missing an implementation of the CommandContext method which was added in this PR https://github.com/kubernetes/utils/pull/27
func (fake *FakeExec) CommandContext(ctx context.Context, cmd string, args ...string) exec.Cmd {
}

@anfernee

didn't notice that, pr on the way.


Relocate the deb package directory when building on Linux

Currently, this folder is created just under /installer. The right place should be /installer/installer_sw_linux.
This means changing the postbuild files for all libraries and tools.

Feature implemented.


Mod data not loading when using Quilt

Hi - I had a user report that when using my mod, data from resources/data related to my mod does not seem to load. Since what I've read seems to indicate that you're doing a re-implementation of FAPI and the data loading process relies on FAPI to work, I figure that this is the place to report it.
Here is the repository for my mod:
https://github.com/ejektaflex/Bountiful
Here is my data load method:
https://github.com/ejektaflex/Bountiful/blob/1.19.4/common/src/main/java/io/ejekta/bountiful/config/ResourceLoadStrategy.kt#L49
And here is where I add the event listener:
https://github.com/ejektaflex/Bountiful/blob/1.19.4/fabric/src/main/java/io/ejekta/bountiful/BountifulModFabric.kt#L60
This works with Fabric, but fails to load with Quilt. This is using Fabric API 0.76.0+1.19.4.

Well, I'll tell them that it can't be reproduced. If it comes up again, I'll try to look into it a bit further. Thanks!


Identical class names for props in nested styles

Environment
System:

OS: macOS 13.4
CPU: (8) arm64 Apple M1 Pro
Memory: 48.72 MB / 16.00 GB
Shell: 5.9 - /bin/zsh

Binaries:

Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 8.1.2 - ~/.nvm/versions/node/v16.13.1/bin/npm

npmPackages:

babel-plugin-styled-components: ^2.0.7 => 2.1.1
styled-components: 5.3.6

Reproduction
When I use passed props only in nested style definitions, apparently the class names generated for the used prop values are identical and therefor override each other. (If used outside the nested style definitions, the props are handled correctly.)
Steps to reproduce
See https://codesandbox.io/s/styled-components-base-forked-n3y3lq
Expected Behavior
Only the second div (with the active-prop) should have a green background.
Actual Behavior
Both divs have the green background.

Another similar reproduction https://codesandbox.io/s/styled-components-6-regression-gr2732?file=/src/App.js. There seems to be a regression using &. The main styled component class is used to replace & but since the stylesheets don't get removed, once the condition is no longer met the style still matches always.

Looks like this is now fixed as of 6.1.5 🥳  https://codesandbox.io/s/styled-components-6-regression-forked-2rwf29


Spaces between nodes are not preserved

First of all, thanks for this library as it makes our lives easier!
I've found an issue in the way whitespace is treated.
Given the text:
<mj-text>Our MJML and friends are happy to announce: an awesome new library!</mj-text>

The resulting text should not alter the HTML inside the mj-text element, but it does remove the space after the  tags:

Our MJMLand friendsare happy to announce: an awesome new library!

I've been doing some investigation an the problem is in the RenderRaw method as it does a TrimXmlStart for all the nodes (btw, i is not used in the loop) so it removes significant whitespace.

I see. The problem is that i is not incremented

@mcliment, thank you for the bug report. @SebastianStehle, I've created PR with a fix.

If you are happy with the library it would be great if would place your logo or so in the Readme.

Fixed by #100. Closing.

@SebastianStehle Not sure about the logo... we're an energy seller that just operates in Spain, but if you need some logos I can ask for permission.


Big size videos not reversing and application crashed

Hello Team,
I am checking demo attached with this repo and I have replaced default video with my video and try to replace video its crashing app.
Please check it once.
Thanks

Hello.
Thank you for the feedback. But to be able to trace the problem, I'll need more information.
What was the video? Size? Orientation? Quality? You need to add those details because as you've reported it right now I can't do anything. There's nothing for me to check.
Also, keep in mind that an iPhone/iPad has just so much processing power. If you load a like a 100MB photo in UIImageView, it will crash, too.
What was the error you got when it crashed? Was it a memory error or something else? Fill in the details and I'll check it out first chance I get.

Hello Team,
I am checking demo attached with this repo and I have replaced default video with my video and try to replace video its crashing app.
Please check it once.
Thanks

Hii... are you there?
Your Crashing app issue is solved?

Hello.
Thank you for the feedback. But to be able to trace the problem, I'll need more information.
What was the video? Size? Orientation? Quality? You need to add those details because as you've reported it right now I can't do anything. There's nothing for me to check.
Also, keep in mind that an iPhone/iPad has just so much processing power. If you load a 100MB photo in UIImageView, it will crash, too.
What was the error you got when it crashed? Was it a memory error or something else? Fill in the details and I'll check it out first chance I get.

Hii...
I think this is memory issue. due to "copyNextSampleBuffer()"

Hello.
First, let me start with this - this device (iPhone or iPad) has memory limitations. If you're trying to convert an HD video or something equally big, there is nothing to be done. I can refactor the code all day and it'll still crash.
That's why I asked for more information. But since you've tested it and seem to know where the issue is, feel free to work on it and create a merge request. I will review when I have the time and test to see its limitations.
I don't think I will have the time to look into this before the Holidays, however. And without more details, there's nothing to look into.

@chetanPuwar21 Hello.
First, let me start with this - this device (iPhone or iPad) has memory limitations. If you're trying to convert an HD video or something equally big, there is nothing to be done. I can refactor the code all day and it'll still crash.
That's why I asked for more information. But since you've tested it and seem to know where the issue is, feel free to work on it and create a merge request. I will review when I have the time and test to see its limitations.
I don't think I will have the time to look into this before the Holidays, however. And without more details, there's nothing to look into.

Thanks for reply.
my video size is only 30mb. this is not too big.

@chetanPuwar21 Hello.
First, let me start with this - this device (iPhone or iPad) has memory limitations. If you're trying to convert an HD video or something equally big, there is nothing to be done. I can refactor the code all day and it'll still crash.
That's why I asked for more information. But since you've tested it and seem to know where the issue is, feel free to work on it and create a merge request. I will review when I have the time and test to see its limitations.
I don't think I will have the time to look into this before the Holidays, however. And without more details, there's nothing to look into.

are you solved this issue?


Expands List comparability definition

As this is an accepted CIP, we need to ascertain whether or not this change is simply propagated as-is, or whether it needs to be part of an "Addendum" section.
For this reason, I have added the NOT READY FOR MERGE label

Merged into #262


Models in a NameSpace won't generate

I need this too. Would be awesome...

Thanks for letting me know that you need it. I will prioritize it higher.

@semikolon if you use gem "active_mocker", github: "zeisler/active_mocker" you can try out this feature. I am not able to release a new version yet because of some environment differences in Travis that cause the build to fail.

it's released: https://rubygems.org/gems/active_mocker/versions/2.1.0

Hey, thanks! :) Awesome, trying it out soon
tis 9 feb. 2016 kl. 02:03 skrev Dustin Zeisler<EMAIL_ADDRESS>
Closed #28 https://github.com/zeisler/active_mocker/issues/28.
—
Reply to this email directly or view it on GitHub
https://github.com/zeisler/active_mocker/issues/28#event-543751261.


Question: logo for app store

Hey @antelle, would you mind providing me either the SVG or with 4 different sized PNGs for the app store version of your app I'm building for Sandstorm?
The sizes are:
        #appGrid = (svg = embed "path/to/appgrid-128x128.svg"),
        #grain = (svg = embed "path/to/grain-24x24.svg"),
        #market = (svg = embed "path/to/market-150x150.svg"),
        #marketBig = (svg = embed "path/to/market-big-300x300.svg"),

FYI: this is the app store I'm talking about: https://apps.sandstorm.io. Please note that your project will be linked and all credits go to you - not me. I'm doing this because your app is one of the most useful things I have seen in a while and I want to help making it available to more people.

I don't have SVG versions (it's not so hard to make one though).
PNG logos (they are png-24 but if you need a smaller size, you can save to png-8, they will still look pretty):
logos.zip


Allow referencing from ERB templates other fields of properties in a job spec file

When writing jobs we currently have two ERB helpers for accessing the value of properties: p("my_property") and if_p("my_property"). What we are noticing is that we often find ourselves repeating the description of a property (in the spec file) as comments inside the ERB templates (e.g. in the deployed configuration files).
A proposal that could help is to be able, in a configuration file, to do something like:
my_configuration_directive: <%= p("my_property") %>   # <%= pdesc("my_property") %>

where pdesc(prop) returns the description of property prop if available, empty string otherwise.
Going one step further, if we wanted to allow access not just to the description but also to other fields that may have been defined in the spec file (e.g. the default value or other non-standard fields - we often have example keys in our spec files):
my_configuration_directive: <%= P("my_property") %>   # <%= P("my_property").description %>

where P returns an object/hash with all fields defined in the spec file for that properties, plus value and default_value (for the actual value and the value defined in the spec file, respectively). The object's to_s method would simply return whatever is the content of value (to be used as a drop-in replacement for p).

I am bit surprised you are adding descriptions to your configuration files. I don't think I've seen that before. We are planning to add property types soon to the Director and may consider this as a use case; however, I am not too eager to expand the p(...) interface only for this use case.

Hi @CAFxX
I don't think we're too eager to expand the p(...) interface for this use case, as @cppforlife mentioned.  As there hasn't been activity on this issue for some time, we will close this out for now.  Please feel free to re-open if you'd still like to discuss this further.
Cheers,
Amit
/cc @mfine30 @dpb587 @jfmyers9


intro.html is one huge table

The intro.html page is one huge table 💀

tf you mean? 😭

oh daaaamn


Add the packaging metadata to build the speed-test snap

This is a package for the secure installation of apps that works in most Linux distributions.
Landing it upstream will enable builds for adventurous users.

You can find more information about snapcraft here: http://snapcraft.io/
Uploading the package to the snap ubuntu store is a great way to deliver the software to your users. Also, I would personally love to have this nice speed test utility in the snappy raspberry pi, dragonboard and beaglebones that are around my house :)
In order to give it a try in ubuntu xenial, you can:
$ sudo apt install snapcraft git
$ git clone https://github.com/elopio/speed-test
$ cd speed-test
$ git checkout snapcraft
$ snapcraft
$ sudo snap install *.snap --dangerous
$ speed-test
If you have any doubts or comments, please let me know.

No thanks


Geolocation Filter

in the TwitterCriteria(), is it possible to give some geolocation as a paramater to filter the tweet? thank you

yes you can, put something like this:
python Exporter.py --querysearch "Refugees AND geocode:19.4372,-99.1732,100km" --maxtweets 100
The geocode has the following estructure: geocode:Latitud, Longitud, Miles/Km around of that point.
Hope this helps you.
Ivan


Information complement

Some information complements
Signed-off-by: zhouhao<EMAIL_ADDRESS>

52db7f57 looks good to me.

ping @opencontainers/image-tools-maintainers

LGTM

LGTM


Change the for loop to create a new binding per iteration

As mentioned in chat today, this could catch some by surprise:
⬥ for x [a b c] { put { constantly $x} } | each  {|f|  ($f) }
⮕ c
⮕ c
⮕ c

I suggest creating a new binding for the loop variable with each iteration of the loop, essentially turning for x $seq { … } into all $seq | each {|x| … }.
This is of course a backward incompatible change. In particular, some users might use the value of the loop variable after the loop is done, to see what was the last value handled. This would now have to be done manually.
 One might consider having the compiler analyze the code and reuse the variable binding if it is not captured inside the loop.

This is effectively the same issue as https://github.com/golang/go/discussions/56010 for Go itself. And it seems clear that Go is going to change its loop var binding behavior since doing so is going to break very few programs and result in a big reduction in bugs. Elvish should make the same change.

Somewhat related: In try { … } catch e { … } the exception variable (e in this case) also appears in the current namespace. (Even if there is no error, in which case the value is $nil.)


SLO/R dashboard shows 0 for Current, 7 Day and 30 Day Error Budget values

Description
After following the instructions as per the section "How to configure and use SLO/R" at https://github.com/newrelic/nr1-slo-r and configuring it for one of the entities - always getting 0 values (screenshot attached)
Expected Behaviour
Expected to reflect the actual SLI values in the tile.
It is configured for web transaction which comes properly in the APM dashboard. However, while inspecting the NRQL in the SLO/R dashboard, it shows containing the conditions "httpResponseCode IS NOT NULL" which fails as there is no "httpResponseCode" field in "Transaction"
Have also followed https://github.com/newrelic/nr1-slo-r/blob/main/docs/entity_lookup_error.md to remove and re-add SLO/R from the account but does not help.
Is there any means to get this fixed ?

Hi @propelup - we're actually introducing some new capabilities into the core NR UI that will allow us to replace the SLO/R app functionality. We're just in the midst of developing a migration plan for SLO/R users, so we won't be fixing the bugs and broken functionality but focusing on seamless migration to core NR features.
I'll be updating the repo in the next 2 weeks with plans for the migration.

Hi @propelup - we're actually introducing some new capabilities into the core NR UI that will allow us to replace the SLO/R app functionality. We're just in the midst of developing a migration plan for SLO/R users, so we won't be fixing the bugs and broken functionality but focusing on seamless migration to core NR features.
I'll be updating the repo in the next 2 weeks with plans for the migration.

Hi o/
"I'll be updating the repo in the next 2 weeks with plans for the migration."
Has this happened yet?


System.InvalidOperationException: No value provided for required parameter '__grainKey'.

I've been running into this issue for a while now and can't seem to find a solution. I believe it's coming from the CreateKeyPredicate and CreatePreCompiledDefaultReadStateFunc methods inside of the GrainStorageConvention. Do you have any idea why this is happening?
For some background info, I have an ASP.NET Core 3 project that was using EF Core 3 to talk to a SQL DB. I'm now trying to use Orleans as middleware between the API and DB to help the project scale. I upgraded my models to match the default grain storage convention and applied the migrations to the DB but now I'm running into the above error. Is there something I'm missing with the DB structure?

@james-carroll-bencin Which version are you using?
There shouldn't be any restriction on how you make your models, at least it's not intended. If your models don't match the convention you can change the convention. Can you make a repro?
Also I haven't tested this against EF Core 3. Will look into it in a few days I'm on vacation right now.

I was using the latest on nuget. The repo I currently have has a lot of code I can't share but I will try to make a small example to show  the bug this weekend.
Have fun on your vacation.

@james-carroll-bencin Sorry for the very late response.
I played with it for a while. Seems it's caused by a breaking change in EF core 3.0. I opened an issue  for it.
Meanwhile you can disable query precompilation if you're still stuck.


definition of peak time returned by ImageExtractors is ambiguous

The ImageExtractors all return both a charge image and a peak_time image,  however the definition of the peak_time image is ambiguous.  It could have two definitions:

the peak_time used to position the integration window (which is what is currently returned)
the time of the maximum pulse in the readout window

These two are not the same, particularly for method that predict an integration window from the timing slope, e.g. TwoPassWindowSum.  In that case, the peak time that is returned as the time of maximum in the readout window only for pixels where the internal image cleaning threshold was exceeded, and for all other pixels you get the predicted peak time
The question is: which peak time should be returned by methods that predict the window from a timing fit?   In ImageProcessor, peak_time is used to get the timing parameters, but then if the image cleaning is not the same as the image cleaning used in the TwoPass method for example, the result is probably not what is expected.
Examples:
Peak time returned by LocalPeakWindowSum,  NeighborPeakWindowSum (which you can see is correlated, due to the summing over neighbor waveforms), and TwoPassWindowSum:

The last one is just wrong. peak time is the time that shall be used for timing parameters. It has to be an extracted peak time for that pixel, not some globally predicted value.
In the extract_around_peak, we implemented it as the weighted sum. The question for algorithms correlating multiple pixels is whether peak time should be calculated on the correlated signal or on the single pixel signal, where I expect there are good arguments for both cases.

The last one is just wrong. peak time is the time that shall be used for timing parameters. It has to be an extracted peak time for that pixel, not some globally predicted value.

That's the question here: the return values are not consistent for pixels outside the cleaning mask.  However,  you can use the TwoPass's return value to compute the timing parameters, and you do get the right answer, though it is somewhat redundant as it should just give you the same answer as was derived inside the algorithm (by construction), so this still fits the definition "shall be used for timing parameters", even though it's not at all what I would have expected to get.

I would suggest in the TwoPass method we just return the peak time image it used internally to compute the time gradient, and then it would solve this. And to update the documentation to state exactly what should be returned.  Now it only says "Floating point pulse time in each pixel in units “ns” Shape: (n_pix)"

If the output you expect has to be analogous to the first 2 plots you show I would say that we can safely use the 1st pass.
What the TwoPassWindowSum extractor does is anyway keep the (surviving) core pulse times unchanged and modify the other ones in order to see if some neighboring weak charge can be retrieved, but is is used only for this.
To be more precise (but maybe we should test this if it makes sense) we could overwrite the pulse time only for pixels in which we effectively retrieved more charge than in 1st pass, while leaving unchanged the other pixels (which are expected to be noise ones anyway).

should just give you the same answer as was derived inside the algorithm (by construction),

No. The timing features inside the two-pass algorithm are used to redo the extraction. So the charges will change, so the weights will change so the result of the time fit will change.

the current return value for TwoPass is the output of extract_around_peak, but extract_around_peak is called with the predicted window (which is the correct thing to do for the intensity).
Yes, I'm ignoring a small change a few percent due to the charges changing, but that is not the point here.

The final charge returned by TwoPassWindowSum is the one composed of 1st pass core-pixels and (if the image wasn't bright enough from the start) 2nd pass non-core pixels.
Peak time should be of course correlated with the peak, so it should be time-correlated to the extracted charge (weighted sum or whatever - it doesn't matter how since it comes anyway from the same function as the charge).
So we could return:

1st-pass pulse time for core pixels surviving the cleaning,
2nd-pass pulse time for non-core pixels where charge_2ndPass > charge_1stPass,
1st-pass pulse time for non-core pixels where charge_2ndPass <= charge_1stPass.
Whereas in the case of a bright extracted image right from 1st pass we just get that.

@HealthyPear I am very dreadful of several effects when several pixels have their times coming from different methods.
I think we should provide the same peak time estimation for each pixel and not have three different methods depending on how the two-pass algorithms treated those pixels.

Well, the method of peak-time extraction would be always the same, do you agree? The function is always the same, so every peak-time will have the same exact definition every time.
In the case of 1-pass image extractors, of course, there is no problem, there is just 1 peak time available.
What I propose (to solve the doubts that arose with this discussion) is to use/output the right peak time when is the case - aka for 2-pass methods.
This is because the entire point of using 2-pass methods is to retrieve more correct information, which in our case is always the pair of floats (charge, time) which by definition need to be correlated.
Thus for me, it is simply wrong to use only 1st pass peak-times (in this case) together with a set of charge values of which (possibly) some of them have been corrected via a time-correlation.
By making use of a time-correlation to correct some pixels' charge we are implicitly saying that for those few pixels in which we effectively retrieve charge the information would have been lost using only 1st pass, so the time for those pixels should be the correct(ed) peak time.

So just to be clearer:
I am in favor to have an output like the first 2 plots that @kosack showed, but when it comes to 2-pass image extraction methods we must remember (and this is my point: output) that some pixel information could have been reviewed by the algorithm (correctly if we have retrieved charge from them) and in that case I see no problem in overwriting only that information to output.

The reason I opened this issue is because there are several use cases for the peak time, and it's clear from this conversation that they are still being mixed.   The main cases are:

computing the time parameters cleaned image, which is useful for reconstruction (as a second measure of asymmetry, complementary to the 3rd order moments). For that, the return values we have now are probably ok.
for advanced image cleaning (e.g. looking where the peak time is inconsistent, and using that to help determine signal pixels), For that, returning the "recovered" peak time in the TwoPass method is maybe less useful, since you want to see the transition from noise (no clear peak) to clear peak, so the 1st pass peak time would be better (which uses a 3-sample sliding window).
reconstruction (using e.g. the peak time in an ImPACT fit, etc), where you want to model the image and peak time in clean pixels, and probably a few rings of nearest-neighbor pixels.  For that the current return from TwoPass may be ok, but it's not clear to me.

One option is to go back to breaking this into two steps:

TimingImageExtractor, which uses potentially a different algorithm than the ImageIntensityExtractor to derive timing images (peak time, and maybe later width, etc)
IntensityImageExtractor (which can use the timing image from the previous step, or internally re-compute it (for advanced methods), and returns only intensity

It might even be interesting for the TimingImageExtractor to return also a measure of the significance of the peak, that way algorithms like the TwoPass extractor can determine which pixels need to have the peak time predicted, and which are stable, without having to resort to a simple intensity threshold as now.
So the workflow would be:
TimingImageExtractor → peak_time, peak_significance → IntensityImageExtractor → intensity

I think the main problem here is that the two pass image cleaning is just conceptually doing too much.
It does not simply extract peak sizes and times. It already has an assumption about the signal shape in all pixels.
So I would say that when using two pass image cleaning, you probably don't want or need to use a cleaning looking at times, since the extraction will already result in low charges where the peak is not at the expected time.
Same for the more advanced templating analyses: you probably don't want to use the two-pass extraction at all, because know you make two, maybe incompatible, model assumptions about the signal.
To conclude: I would say it's fine like it is now. Just we have to keep in mind that the two-pass algorithm already employs a modelling step of the signal that biases the results (maybe such that the reconstruction of small showers gets better).

It's a bit difficult for me to understand why do we need a different way of defining the peak time.
I think what we have now is sufficient, since we calculate the integrated charge from a window it makes sense that the peak time is just associated to that integration window which is the case now (apart from the special case of extractors that use the absolute highest ADC peak and we just take the window centered there, but in the end is the same concept).
I think having a peak time associated with the final amount of charge should be sufficient to define the output of every extractor. I cannot seem to disentangle the 3 cases you listed...

It might even be interesting for the TimingImageExtractor to return also a measure of the significance of the peak, that way algorithms like the TwoPass extractor can determine which pixels need to have the peak time predicted, and which are stable, without having to resort to a simple intensity threshold as now.

This is something maybe for another 2-pass image extractor, since that one is bonded to the CTAMARS one.

I'm ok with sticking with what we have now, but with the caveat that the timing image is not what one expects for things like timing cleaning if you use TwoPass, NeighborPeak (due to correlations), or FixedWindow.   However, I suspect this will lead to confusion in the future, so it's worth thinking about refactoring into two steps, so we can also implement nicer peak-finding algorithms. Right now the filtering is different for each, while in principle it would be nice to use an advanced peak finding filter and still use TwoPass, etc.

TimingImageExtractor, which uses potentially a different algorithm than the ImageIntensityExtractor to derive timing images (peak time, and maybe later width, etc), but is consistent in it's output.

If we do go for splitting the methods, this point is moot, since we would break the TwoPass method (and all other methods) into two pieces anyhow - it would be a large refactor.

why do you say we would break TwoPass?
you are talking about refactoring only extract_around_peak, no?

In my refactoring, twopass would only return intensity, and it's initial timing info would come from the TimingImageExtractor.
So the "two pass method" would be refactored as two components:  SlidingWindowTimingImageExtractor(window_size=3) + TimeSlopePredictingIntensityImageExtractor

OK, still I would like to stress that in case you want to see something like the first 2 plots you showed but using this 2-pass extractor, then the "correct" pulse time final output should be
1st-pass pulse time for core pixels surviving the cleaning,
2nd-pass pulse time for non-core pixels where charge_2ndPass > charge_1stPass,
1st-pass pulse time for non-core pixels where charge_2ndPass <= charge_1stPass.
Whereas in the case of a bright extracted image right from 1st pass we just get that.

we can't use a 1st pass pulse time with a (corrected) 2nd pass charge


Bring back the split terminal button in the panel

I added a new setting terminal.integrated.tabs.showActions which defaults to singleTerminalOrNarrow:

If you use middle and alt+click to kill/split then you can always disable it by setting it to never.

9d728bdda8693f4a113b7d93b8216afa11f39b1b


Have FileStorage inherit from IOBase so code that checks for IOBase will work with FileStorage

There appear to be some tests failing (you can ignore the test_cache failures. https://travis-ci.org/pallets/werkzeug/jobs/301605892#L3713
You can run the tests locally using tox.

I can't figure out what it is about IOBase that is changing this behavior. I have a workaround for my needs:
    class IOFileStorage(IOBase):
        def __init__(self, filestorage):
            self.filestorage = filestorage

        def __getattr__(self, name):
            return getattr(self.filestorage, name)

    uploaded_file = IOFileStorage(request.files['document'])

I imagine it will fail the tests in the same way but it works in our application where a 3rd party library is checking isinstance(uploaded_file, IOBase).


Make it so test cases automatically update themselves, and that you can't have two instances of the same test case open simultaneously.

Right now, if you rerun a test case, it'll open in a new window, rather than displacing the old one.

Was just about to post this :-)

Yeah, I've now added all the issues I had on my old bug tracker.

oh ok sounds good!

Fixed by #41


folly: 2<IP_ADDRESS> -> 2<IP_ADDRESS>, fix build

Motivation for this change
ZHF: #97479
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"
[ ] 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.

Fyi, this fails for me on macos:
builder for '/nix/store/2zd1ac73w6hyl2vqcc0fzjxwfilg6fsr-folly-2<IP_ADDRESS>.drv' failed with exit code 2; last 10 log lines:
    "_xallocx", referenced from:
        folly::threadlocal_detail::StaticMetaBase::reallocate(folly::threadlocal_detail::ThreadEntry*, unsigned int, unsigned long&) in libfolly.a(ThreadLocalDetail.cpp.o)
        folly::IOBuf::reserveSlow(unsigned long, unsigned long) in libfolly.a(IOBuf.cpp.o)
        folly::fbvector<iovec, std::__1::allocator<iovec> >::reserve(unsigned long) in libfolly.a(IOBuf.cpp.o)
        void folly::fbvector<iovec, std::__1::allocator<iovec> >::emplace_back_aux<iovec>(iovec&&) in libfolly.a(IOBuf.cpp.o)
  ld: symbol(s) not found for architecture x86_64
  clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

Looks like it requires the 10.13 SDK now.

Works non-nixos linux x86_64,
fails as above on macos 10.14

Is there a reason for this to be a static library, or has it just not been changed from its default? Adding "-DBUILD_SHARED_LIBS=ON" to cmakeFlags ought to build a shared library.

Is there a reason for this to be a static library, or has it just not been changed from its default? Adding "-DBUILD_SHARED_LIBS=ON" to cmakeFlags ought to build a shared library.

None that I know of. Let's ask the maintainers @abbradar @pierreis (I guess I should've pinged them way earlier…)

bump :)

Considering #59846 exists, my guess is that the build has always been failing for macOS, and is non-trivial to fix, so I don't think that should be a blocker for this being merged (should meta.platforms be made to exclude Darwin?).
I am pretty sure that shared libs should be built though, so I think that ought to be changed.

Sorry didn't see your question earlier, can confirm 2<IP_ADDRESS> is currently building on macos. Agree w.r.t. shared libs.

I've added "-DBUILD_SHARED_LIBS=ON", just squash on merge.

Actually, I think this builds fine on macos without jemalloc support. Maybe we can just add jemalloc to deps for linux only. Adding jemalloc to deps for 2<IP_ADDRESS> causes similar failures, and I'm seeing some upstream issues related to this.

Didn't work for me without jemalloc, but I was able to build it after a following change:
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 128ba7e0548..c4349a75977 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -17,7 +17,7 @@
 , fmt
 }:

-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   pname = "folly";
   version = "2<IP_ADDRESS>";

@@ -63,4 +63,7 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ abbradar pierreis ];
   };
-}
+} // stdenv.lib.optionalAttrs stdenv.isDarwin {
+  CXXFLAGS = "-faligned-allocation";
+  LDFLAGS = "-ljemalloc";
+})

@Sohalt can you incorporate the darwin patch?

Result of nixpkgs-review pr 99133 run on x86_64-linux 1

1 package built:

folly

@Sohalt can you incorporate the darwin patch?

I just did, but I cannot test it.

@r-burns I've squashed everything.


Exclude default config value from the pip-compile header

Resolves https://github.com/jazzband/pip-tools/pull/1863#issuecomment-1611728125
Contributor checklist

[x] Provided the tests for the changes.
[x] Assure PR title is short, clear, and good to be included in the user-oriented changelog

Maintainer checklist

[x] Assure one of these labels is present: backwards incompatible, feature, enhancement, deprecation, bug, dependency, docs or skip-changelog as they determine changelog listing.
[ ] Assign the PR to an existing or new milestone for the target version (following Semantic Versioning).

Looks like something is wrong with QA & CI.. Let's restart the jobs tomorrow.  And maybe wait until #1894 is merged for the failing PyPy tests.

This will need rebasing on top of https://github.com/jazzband/pip-tools/pull/1895.

@atugushev There is a bug with pip 6.14.0.
I just use pip-compile --allow-unsafe --generate-hashes --output-file=test.txt --resolver=backtracking --strip-extras test.in
but now it adds --config=pyproject.toml even there is no configuration in pyproject.toml
When running pip-compile click context has no src_files, so select_config_file returns pyproject.toml, but after compiling click context has src_files as test.in, so select_config_file returns None and so pyproject.toml != None
Making --config is_eager=False works

@q0w thanks for heads up. Referenced this in https://github.com/jazzband/pip-tools/issues/1903


heroku-container-registry is blacklisted

It was moved to the heroku CLI, we may need to check the heroku cli version and warn if lower than certain version.

Do you know how to fix this? I’ve been hitting this for a week or so and Travis has been zero help!

Yes, its because we're trying to install that plugin. I can fix it by avoiding installing that.
I also wonder if we should handle the case where the user doesn't have a version of heroku-cli that has the container part inside and at least show an error saying heroku version needs to be updated, WDYT?

Of course. Make it work, please. :)


Exceptions option

these commits add possibility to catch soap exceptions (sometimes needed when you want to validate vatid manually using regex once VIES is down)

Codecov Report

Merging #52 into master will decrease coverage by 0.85%.
The diff coverage is 50%.

@@            Coverage Diff            @@
##           master     #52      +/-   ##
=========================================
- Coverage   94.66%   93.8%   -0.86%
=========================================
  Files           5       5
  Lines         206     210       +4
=========================================
+ Hits          195     197       +2
- Misses         11      13       +2

Impacted Files
Coverage Δ

src/Mpociot/VatCalculator/VatCalculator.php
91.85% <50%> (-1.28%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 86776da...077dc4f. Read the comment docs.

Great! Thank you!

Hi @mpociot is this available in a release?
I'm using "^2.2" but this code is nowhere to be found :(


Stageout issues with CERN implementation

Please see https://savannah.cern.ch/support/?133803 and referenced SNOW ticket for details about a double stage out and deletion.

Very old and certainly fixed by now :) @ticoann please close


The model was working 2 months ago, but the new version won't run now. It gets stuck and doesn't progress. How can I get it to run?

Show me the errors in the screenshot...

Oh,I fix it .thankyou


PIP package isntallation doesn't seem to work...

Hi @c-martinez! Recently together with @rapw3k we have tried to install grlc through pip. Unfortunately, it doesn't work. Setup.py breaks with the following error:
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      error in keepalive setup command: use_2to3 is invalid.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

I have tried it on both macOS and Linux (the latest Ubuntu).
PS I was playing with this issue a bit and I was able to fix the initial error by installing a specific version of setuptools, however as a result I ended up with another dependency issue, this time greenlet extension:
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> greenlet

Could you please check and let me know if this is fixable?
Best regards,
montanaz0r

Hey @Montanaz0r -- out of curiosity, which version of python are you using?

Hey, @c-martinez 3.9 and 3.10 respectively. Thanks for letting me know, I will try an older version of Python and let you know!

hey @c-martinez a quick update; I have tested two other solutions:

python 3.6 and all grlc versions below the latest one on pip (1.3.7 - this one requires python 3.7 at least). All of them failed due to the conflicts

python 3.7 with the latest version of grlc from pip (1.3.7). Here we got the same error that I made initial ticket with so use_2to3 is invalid...

Best regards,
montanaz0r

Hey @Montanaz0r , I've just added a fix for this issue (although not yet for Python 3.10). Once tested we can probably merge to dev branch and then to master for the next release.
If you are able to test it, that would be very helpful!

Hi @c-martinez
i tried with python 3.9 but didnt work for me.
Problem was with use_2to3 as originally mentioned in the ticket...
edu240-183:grlc rap$ pip3.9 install .
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Processing /Users/rap/GitRepositories/grlc-clone/grlc
  Preparing metadata (setup.py) ... done
Collecting docopt==0.6.2
  Using cached docopt-0.6.2.tar.gz (25 kB)
  Preparing metadata (setup.py) ... done
Collecting docutils==0.17.1
  Using cached docutils-0.17.1-py2.py3-none-any.whl (575 kB)
Collecting Flask==1.0.2
  Using cached Flask-1.0.2-py2.py3-none-any.whl (91 kB)
Collecting Flask-Cors==3.0.6
  Using cached Flask_Cors-3.0.6-py2.py3-none-any.whl (13 kB)
Collecting gevent==1.4.0
  Using cached gevent-1.4.0.tar.gz (5.2 MB)
  Preparing metadata (setup.py) ... done
Collecting greenlet==0.4.15
  Using cached greenlet-0.4.15.tar.gz (59 kB)
  Preparing metadata (setup.py) ... done
Collecting html5lib==1.0.1
  Using cached html5lib-1.0.1-py2.py3-none-any.whl (117 kB)
Collecting isodate==0.5.4
  Using cached isodate-0.5.4.tar.gz (27 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      error in isodate setup command: use_2to3 is invalid.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Closed by new release v1.3.9


Schedule fails when set month

i receive a error when set schedule. i'm using python 3.8.10
This is log error
Failed to set schedule: time data 'November' does not match format '%B'
[17:28:33] Failed to set schedule: time data 'November' does not match format '%B'

Honestly, using a cron job would probably be easier

Honestly, using a cron job would probably be easier

Scheduling has it's uses, I can't get it to work right now tho sadly. #75


EVEREST-973 | update DatabaseCluster schema

We added new fields in the DatabaseCluster CRD in https://github.com/percona/everest-operator/pull/369. This PR updates the DatabaseCluster API schema with those CRD changes.

Should we also update the go.mod?

Should we also update the go.mod?

Yes, we should. I thought I did 🙈 .. updated now


Add timezone flag for Docker and Apptainer

Docker or Apptainer's timezone is set to UTC or local time during built as default. According to the various resources in order to change it one should add
--env TZ=your_local_time_zone
flag to the execution of the image run.
However, I couldn't reproduce its use at my end for these two containers; hence I excluded the adding a note regarding the use of this flag.
So it awaits reproducing, hence adding back into the docs!

looks like apptainer doesn't need the flag to get the right time

fixed in https://github.com/courtois-neuromod/cneuromax/pull/246


mergeFrom() on supertypes and their builders

Hi everyone,
here is my implementation of the mergeFrom() for super types. It basically addresses #160. I am already using in in my project.
It supports mergeFrom() super types and their builders (if the super type is correctly annotated with the FreeBuilder annotation).
I've added one minor test to the analysator. I can add more but at first it would be great to know if my implementation is acceptable.
The #176 can be solved with this as well (metadata now have record about supertypes with builders).
Cheers

I signed it!

Closing due to lack of activity. I hope you manage to get back to this sometime, @ph4r05


Added the food detector script

Title and Issue number

Food detector using PyTorch #2618
Close #<2618>

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md

which folder should I put it in? Should I put it in ML Projects?

which folder should I put it in? Should I put it in ML Projects?

You should put your project inside the respective folder according to your project tech stack

Hey, I made the changes as mentioned. Please check @TusharKesarwani


Fix range search benchmark wrong with IP metric type

Signed-off-by: yudong.cai<EMAIL_ADDRESS>

/kind improvement

/lgtm


fatal error: ffi.h: No such file or directory

Tested on config.vm.box = "geerlingguy/ubuntu1604"
Running setup.py bdist_wheel for cryptography: finished with status 'error'
==> default:   Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-KiMAPG/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmp5uiFmwpip-wheel- --python-tag cp27:
==> default:   c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
==> default:   compilation terminated.

You need to install the development package as well.
libffi-dev + libssl-dev on Debian/Ubuntu, libffi-devel + something for openssl dev package on Redhat/Centos/Fedora.

For reference, paramiko which we install has a hard dependency on cryptography which state:

For Debian and Ubuntu, the following command will ensure that the required dependencies are installed:

$ sudo apt-get install build-essential libssl-dev libffi-dev python-dev

For Fedora and RHEL-derivatives, the following command will ensure that the required dependencies are installed:

$ sudo yum install gcc libffi-devel python-devel openssl-devel

https://cryptography.io/en/latest/installation/

This was fixed in PR #30

For Alpine Linux: libffi-dev and openssl-dev


No longer possible to mount parameterized components?

In version 0.2x you could do like this:
m.mount(el, m.component(myComp, {hello: hi}))
Now that m.component has been removed I have tried
m.mount(el, m(myComp, {hello: hi}))
but that doesn't work since m(myComp, {hello: hi}) returns a vnode and m.mount expects a component.
Am I missing something?

@bgstcola You're not missing anything, but you can work around it by using a component literal:
m.mount(el, {view: function() {
  return m(myComp, {hello: hi})
}})

It is covered in the migration guide.


Use struct for simple milestones and cleanup

What this PR does / why we need it:
It cleans up the general code and uses a struct for simple milestones.
Furthermore it makes the code workable.
Special notes for your reviewer:
Never use actual configuration as defaults!
Release note:

Working PoC

Hey can you guide me how to authenticate token for error checking? Also for error message by API.

Also strconv.Itoa only returns string should I write my own error check?

Ok then we can skip the error check for strconv.

What do you mean with your question about the token. Not sure I understand the whole question.

whether there should be an error displaying wrong token if token is not identified? can the api do it? is it safe?

You can use the user api to get the currently authenticated user. If that fails, one could assume that the user is not authenticated: https://docs.gitlab.com/ce/api/users.html#user

great. thanks.


Create initial Issue templates

Added bug, feature and research issue templates.

This is currently on the Sequencescape repository branch. Better to put it at Sanger organisation level in a separate repository but would need agreement for that. Else need to also add to Limber and Sequencescape-Client-API repositories.


Ethernet fixes

Trivial stuff

Codecov Report

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

@@           Coverage Diff           @@
##           master    #8573   +/-   ##
=======================================
  Coverage   63.95%   63.95%
=======================================
  Files         429      429
  Lines       41281    41281
  Branches     6957     6957
=======================================
  Hits        26403    26403
  Misses      11720    11720
  Partials     3158     3158

Impacted Files
Coverage Δ

include/net/ethernet.h
33.33% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 85c1522...d258231. Read the comment docs.


i push to docker registry successed , but i get  "Repositories entry not found"(always)  in   registry admin

i follow the example : basic_auth
at the beginning every thing is ok
i can login registry-admin ,i can manager user , when i request docker registry the basic auth is worked also.
but ..... i always get "Repositories entry not found" with registry-admin , i tried to click 'sync'  nothing changed.
why i get this , what i should to do ,  can you help me please
oh,  by the way , i changed admin default password and i also changed base64 string which used in registry config file ,  i think it is ok.
i checked registry config , i found this
notifications:   events:     includereferences: true   endpoints:     - name: ra-listener       disabled: false       url: http://{registry_admin_host:port}/api/v1/registry/events
i think this is to set registry to notify registry admin repositery changed  then i turned on registry-admin logout , then i'm not found any request to '/api/v1/registry/events' , is that wrong ?

i maybe find where is the problem , i will try to fix it


Add documentation for Array.head

Add documentation for the Array.head function.
Refs #184

:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/conceptual/collections.array-module-[fsharp].md
:warning:Warning

Details

docs/conceptual/array.head['t]-function-[fsharp].md
:white_check_mark:Succeeded

docs/conceptual/collections.array-module-[fsharp].md

Line 42: [Warning] Invalid file link:(~/array.comparewith['t%5D-function-%5Bfsharp%5D.md).
Line 44: [Warning] Invalid file link:(~/array.contains['t%5D-function-%5Bfsharp%5D.md).
Line 46: [Warning] Invalid file link:(~/array.countby['t,'key]-function-[fsharp].md).
Line 48: [Warning] Invalid file link:(~/array.distinct['t%5D-function-%5Bfsharp%5D.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

LGTM


Remove sent/received, add unconfirmed balance

Sent and received don't make much sense in general, whether transactions are confirmed or not. But knowing your unconfirmed balance does make a lot of sense.

I also just realized that sent/received makes less sense in the context of change addresses, so one more reason to cut them.


Experiment OSRM cucumber

Experiment OSRM cucumber:

How to make cucumber work in local
How to make tests automatic running
How to write cucumber tests

How to make cucumber work(on local)

Following information here: https://github.com/Project-OSRM/osrm-backend/wiki/Cucumber-Test-Suite#install-dependencies
Try to set env up in docker

// build docker image
docker build -t osrm-dev-experiment-cucumber:v1 -f docker-orchestration/osrm-backend-dev/Dockerfile .

// start container and mapping local code into it
docker run -v /Users/xunliu/Desktop/go/src/github.com/Telenav/osrm-backend:/osrm-code -it osrm-dev-experiment-cucumber:v1 /bin/bash

Install node with nvm
curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
source $NVM_DIR/nvm.sh
// reference from https://travis-ci.org/github/Project-OSRM/osrm-backend/builds/628365424/config
nvm install 10
nvm use 10

// make sure you are under root folder of osrm's code
npm install
npm link

// I also run following command because I met errors with dependencies, they probably not needed if config correctly
npm audit fix --force
apt-get install -y cucumber

How to make it automatic run
OSRM team choose travis-ci for automatically check, you could go to here for more details: https://travis-ci.org/github/Project-OSRM/osrm-backend
https://travis-ci.org/github/Project-OSRM/osrm-backend/builds/628365424/config

How to write cucumber tests in OSRM
Here are links you could follow:
https://github.com/Project-OSRM/osrm-backend/wiki/Cucumber-Test-Suite#writing-tests
https://cucumber.io/docs/guides/10-minute-tutorial/
Here are existing feature files:
https://github.com/Telenav/osrm-backend/tree/master/features

@wangyoucao577, if we plan to extend the tests and make it running on travis-ci, we need to spend some time to experiment setting up node's dependencies and make them into Dockerfile.

@CodeBear801 Very good doc for beginners.
I think we don't need travis-ci anymore. The GitHub Actions is much better: better integration with Github, and very fast. It's ok to put cucumber dependecy in the osrm-backend-dev docker. Also, we can setup the cucumber test based on GitHub Actions directly.
By the way, I saw the cucumber provides a lot of choices for installation, we can pick up the best one for us(node is one of the choices, aha~). https://cucumber.io/docs/installation/

Discussion summary on 03252020 with our QA leaders, for Using Cucumber to test TelenavNavigationSDK

BDD is not silver bullet.  We should start with small scope to verify whether it is the way to go, then iteratively make it bigger or adjust the direction
Define the contract between development and testing is key: From developer's perspective, he could use such contract to verify all his logic, from QA's perspective, it should be easy to represent target features
Besides Cucumber, spock is also a BDD framework
BDD can be expressed by given, when, then

Given some mockable condition
When attempting to do some operation
Then check expect result
You could find a great article here: https://martinfowler.com/bliki/GivenWhenThen.html


Giving folder access to groups in Sharepoint online

I really don't believe that you could make this topic more confusing if you went out and out to do so :-(

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

ID: 812da0c1-b351-62bb-bf61-a30ff65b8987
Version Independent ID: cdf8e0e7-a61f-651b-eb92-eb8bd5b16a9f
Content: Create, edit, or delete a security group in the Office 365 admin center
Content Source: Office365-Admin/email/create-edit-or-delete-a-security-group.md
Service: o365-administration
GitHub Login: @Sirkkuw
Microsoft Alias: sirkkuw

@hooperman Thank you for this feedback
Is there a specific part that you need clarification on?

Hi @hooperman, we would like to follow up and get more details from you. Can you please share what specific issue you have with this article?

@hooperman - thank you for engaging with the community here for the docs.
I know the product teams are always looking for user feedback and how to make the SharePoint better. They keep a close tab on User Voice https://sharepoint.uservoice.com and if you don't mind it would be awesome if you could look through and give your input in User Voice and if you don't see a similar request already you could open one. Let us know and we can up-vote your request too.
Thank you for your contribution to make the docs better! Much appreciated!

Neither of the links in this email worked
Kind Regards
<EMAIL_ADDRESS>Paul Hooper
Director
,
Route22 Limited
<EMAIL_ADDRESS>+441883370692tel:+441883370692
|
<EMAIL_ADDRESS>+447903938616tel:+447903938616
<EMAIL_ADDRESS>paul.hooper<EMAIL_ADDRESS>|
<EMAIL_ADDRESS>www.route22.co.ukhttp://www.route22.co.uk/
<EMAIL_ADDRESS>76 Campbell Road
,
Caterham on the Hill
,
CR3 5JN
[Twitter]https://twitter.com/
[Facebook]https://www.facebook.com/
[LinkedIn]https://www.linkedin.com/in/hooperman/
Please join our mailing list
http://eepurl.com/duq1kb
All prices exclude VAT unless it is specifically stated otherwise.
Please see our website: www.route22.co.ukhttp://www.route22.co.uk/ for terms and conditions of service.
Route22 Ltd accepts no liability for the content of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company.
Route22 Ltd is a company registered in England and Wales under number 3986440.
Registered office: 76 Campbell Road, Caterham, Surrey, CR3 5JN
From: AndreaBarr<EMAIL_ADDRESS>Sent: 05 February 2019 15:47
To: MicrosoftDocs/OfficeDocs-O365ITPro<EMAIL_ADDRESS>Cc: Paul Hooper<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/OfficeDocs-O365ITPro] Giving folder access to groups in Sharepoint online (#78)
Closed #78https://github.com/MicrosoftDocs/OfficeDocs-O365ITPro/issues/78.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/OfficeDocs-O365ITPro/issues/78#event-2118845840, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAx6FIR6NHSS7RKz3AlXNCkrKsqlu-d5ks5vKadngaJpZM4YpIeq.


Improve Mean Average Precision performance

What does this PR do?
Fixes #1024
Update: The initial PR contained erroneous information about the running time due to a silent issues that was happening, killing the run because some tensors were in a different device: CPU instead of GPU and vice-versa. The changes are still interesting as the performance increased a lot.
It seems that we faced some regression between version 0.6.0 and the latest releases. With the refactor of moving away from pycocotools and the addition of new operations, the appropriate device was not being used. That behaviour lead to unnecessary transfer of computation between GPU and CPU.
Based on the code provided in the issue #1024 discussion, I also added a couple of unit tests to cover for computation with GPUs and CPUs. Since the results might vary a bit, depending on the GPU/CPU model, I added a relative tolerance of 1.0 trying to cover for the gap.
Some results:
Before (GPU):
Total time in init: 1.0306465921457857
Total time in update: 0.0780688391532749
Total time in compute:<PHONE_NUMBER>859836

After (GPU):
Total time in init: 1.1004462020937353
Total time in update: 0.08146677981130779
Total time in compute:<PHONE_NUMBER>179443

At it has been pointed out, those computations when performed on the CPU might be faster. The important part is making sure that the device is properly allocated to the tensors. When running the same tests on CPU I got the following results:
Total time in init: 0.020693536149337888
Total time in update: 0.08699228917248547
Total time in compute: 72.37102157599293

I will run some tests with our production model and share the deltas here.
Before submitting

[X] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[X] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[X] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Yep! This was fun. After trying different versions and commit hashes, I just decided to clone, fix and push the PR. It will help us a lot and I'm sure it will help out the community.
Test with real data

2 RTX 3090
VisDrone dataset

The pink line is the result with the same run using the master branch (which is faster than the latest 0.11 release)
Don't bother about the flat line at the end of each run. That's just PyCharm holding the GPU busy before I clicked on stop.

wow, very nice boost!

wow, very nice boost!

I marked it as WIP for now because there is sill something wrong with it. The initial results could be wrong due to some internal error that was not picked up. For instance, some tensors being on the CPU and other on the GPU. I’m looking into it right now.

My apologies, @Borda. It seems that when I rebased with master and force-pushed, a lot of other things came up to the PR. It looks a bit overwhelming now to review. Could have also been the pre-commit I ran.

@wilderrodrigues no problem :)

Just a quick update on this PR:

We have consistency across multiple runs w.r.t runtime (see fig. 1)
We have consistency - determinism - on our metrics across multiple runs

See fig. 2 for Val mAP and fig.3 for Test mAP

2 RTX 3090 GPUs
VisDrone dataset
32 batch size
16 workers
batch limits for train, val and test is 50
10 epochs each run, validating every 2 epochs

@wilderrodrigues sorry for the long return time in this review. Your PR looks good to me!

Thanks, @Borda .
Ben also a bit away in the last few days, a lot of work to catch up with before the holidays season. I will rebase the PR and wait for the merge to happen. :)

A second approval and we can merge this one, @Borda .

A second approval and we can merge this one, @Borda .

could we pls fist fix the failing tests :)

A second approval and we can merge this one, @Borda .

could we pls first fix the failing tests :)

Oh yeah, sure. I haven't seen them.

Most of the tests have been fixe. I'm now trying to fix the test_map_box as it is showing a discrepancy in the mAP results.
The assertion is not passing during the CI run:
pl_result = {'map': tensor(0.6477)

sk_result = array([0.637], dtype=float32), atol = 0.01, key = 'map')

As we can see, 0.0107 difference.
What is getting me intrigued is that running on my RTX-3090 is passing just fine (see below).
(torchmetrics) wilderr@XXXXXXXXX:/mnt/vidint_ssd/wilder/remote_metrics$ pytest tests/unittests/detection/test_map.py::TestMAP::test_map_bbox
============================================================================================ test session starts ============================================================================================
platform linux -- Python 3.9.0, pytest-7.2.0, pluggy-1.0.0
rootdir: /mnt/vidint_ssd/wilder/remote_metrics, configfile: setup.cfg
collected 2 items

tests/unittests/detection/test_map.py ..                                                                                [100%]

============================================================================================ 2 passed, 2 warnings in 31.49s ============================================================================================
(torchmetrics) wilderr@XXXXXXXXX:/mnt/vidint_ssd/wilder/remote_metrics$

It fails with on those cases:
unittests/detection/test_map.py::TestMAP::test_map_bbox[False-True]
unittests/detection/test_map.py::TestMAP::test_map_bbox[True

However, those are passing. It makes life hard to debug if they work on my MacBook and RTX-3090.

On the CI environment, the issue is intermittent: in some environment, the test fails twice, with 2 different parameters sets; and some others it fails just once. The gap is always the same: 0.0007 above the tolerance.
Need some ideas here, @Borda

I tried this in a training job and got this error:
Traceback (most recent call last):
  ...
  File ".../torchmetrics/metric.py", line 542, in wrapped_func
    value = compute(*args, **kwargs)
  File ".../torchmetrics/detection/mean_ap.py", line 888, in compute
    precisions, recalls = self._calculate(classes)
  File ".../torchmetrics/detection/mean_ap.py", line 762, in _calculate
    recall, precision, scores = MeanAveragePrecision.__calculate_recall_precision_scores(
  File ".../torchmetrics/detection/mean_ap.py", line 861, in __calculate_recall_precision_scores
    pr[pr.isnan()] = torch.tensor(0).to(recall.device)
RuntimeError: Index put requires the source and destination dtypes match, got Float for the destination and Long for the source.

Index put requires the source and destination dtypes match, got Float for the destination and Long for the source.

I think we are fine to retype it for the test comparison so both will be float in this case :otter:

I tried this in a training job and got this error:
Traceback (most recent call last):
  ...
  File ".../torchmetrics/metric.py", line 542, in wrapped_func
    value = compute(*args, **kwargs)
  File ".../torchmetrics/detection/mean_ap.py", line 888, in compute
    precisions, recalls = self._calculate(classes)
  File ".../torchmetrics/detection/mean_ap.py", line 762, in _calculate
    recall, precision, scores = MeanAveragePrecision.__calculate_recall_precision_scores(
  File ".../torchmetrics/detection/mean_ap.py", line 861, in __calculate_recall_precision_scores
    pr[pr.isnan()] = torch.tensor(0).to(recall.device)
RuntimeError: Index put requires the source and destination dtypes match, got Float for the destination and Long for the source.

Hey @senarvi , thanks for reporting this. Fixing it here.
It's a bit weird it was not caught in in the tests.

This torch.tensor(0) should be like this torch.tensor(0.)
Pushing a fix and you can go ahead again.

@wilderrodrigues could you check why the results are not matching?

@wilderrodrigues could you check why the results are not matching?

Hi @Borda,
Sorry for the delay in my responses: just back from some days off and get through everything.
Yeah, I will put some time on it and try to get those results to match. It's really weird to have it working on 2 different machines and not on CI. I mean, it's not the usual "it works on my computer". haha A clean checkout of the branch and installation on a RTX 3090 works out of the box, just fine. Will investigate today/tomorrow so we can get this one merged.

I tested this pull request on real-world data and it's a considerable improvement in terms of speed.

The current master: around 350 seconds per epoch
This pull request: around 100 seconds per epoch
The old version that uses pycocotools: around 15 seconds per epoch

Unfortunately my experiment also seems to indicate some problem with the code. With the current master version and the pycocotools version I get identical results, but using the code from this PR I get higher scores.

I tested this pull request on real-world data and it's a considerable improvement in terms of speed.

The current master: around 350 seconds per epoch
This pull request: around 100 seconds per epoch
The old version that uses pycocotools: around 15 seconds per epoch

Unfortunately my experiment also seems to indicate some problem with the code. With the current master version and the pycocotools version I get identical results, but using the code from this PR I get higher scores.

Hi @senarvi ,
Do you have a benchmark of the results? I would like to see the difference in the scores. I'm trying to make some time tomorrow to dig into it and get it fixed for good.

Do you have a benchmark of the results? I would like to see the difference in the scores. I'm trying to make some time tomorrow to dig into it and get it fixed for good.

Great! Unfortunately I cannot share this benchmark, as it's proprietary data.

Do you have a benchmark of the results? I would like to see the difference in the scores. I'm trying to make some time tomorrow to dig into it and get it fixed for good.

Great! Unfortunately I cannot share this benchmark, as it's proprietary data.

Okay, @senarvi , I totally understand.
But could you at least tell me in which range the gap is? For instance, AP 0.7 with pycocotools and with these changes the AP goes to 0.85. Just for me to have an idea.
Thanks!

The difference was considerable. There's a benchmark in this issue that uses random data. Using that script I get the following difference:
pycocotools version: {'map': tensor(0.1534), 'map_50': tensor(0.5260), 'map_75': tensor(0.0336), 'map_small': tensor(0.1534), 'map_medium': tensor(-1.), 'map_large': tensor(-1.), 'mar_1': tensor(0.0449), 'mar_10': tensor(0.3039), 'mar_100': tensor(0.5445), 'mar_small': tensor(0.5445), 'mar_medium': tensor(-1.), 'mar_large': tensor(-1.), 'map_per_class': tensor(-1.), 'mar_100_per_class': tensor(-1.)}
this PR: {'map': tensor(0.2222), 'map_50': tensor(0.7135), 'map_75': tensor(0.0594), 'map_small': tensor(0.2222), 'map_medium': tensor(-1.), 'map_large': tensor(-1.), 'mar_1': tensor(0.0449), 'mar_10': tensor(0.4453), 'mar_100': tensor(2.2028), 'mar_small': tensor(2.2028), 'mar_medium': tensor(-1.), 'mar_large': tensor(-1.), 'map_per_class': tensor(-1.), 'mar_100_per_class': tensor(-1.), 'classes': tensor([0, 1], dtype=torch.int32)}
Maybe you can debug it by generating random data and observing what kind of data causes a difference.

These performance gains look great! Are there any plans to merge this soon?

These performance gains look great! Are there any plans to merge this soon?

Hi @lucasc896 ,
I have to benchmark the changes against pycocotools as some discrepancies have been mentioned.
I did benchmark against the previous version of Torchmetrics before the MR was created, and it was fine. Have to see what's going on.
Most of the unit tests are fine and they also cover for the benchmark. The only thing is that 1 case have a mAP of 0.0007 above the expected threshold and then fails. Will make time to look into it this week.

Hello guys, I came across this pull request precisely because I'm facing performance issues with torchmetrics MAP right now.
This is my code:
import torch
from torchmetrics.detection.mean_ap import MeanAveragePrecision
import random

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

def _generate_random_bbox():
    xmin =  random.random()
    ymin =  random.random()
    xmax = xmin + random.random() * (1 - xmin)
    ymax = ymin + random.random() * (1 - ymin)
    return [xmin, ymin, xmax, ymax]

N_examples = 3000
N_classes = 36

preds = [
  dict(
    boxes=torch.tensor([_generate_random_bbox() for _ in range(N_classes)]).to(device),
    scores=torch.tensor([random.random() for _ in range(N_classes)]).to(device),
    labels=torch.tensor([i for i in range(N_classes)]).to(device),
  )
    for _ in range(N_examples)
]

target = [
  dict(
    boxes=torch.tensor([_generate_random_bbox() for _ in range(N_classes - 4)]).to(device),
    labels=torch.tensor([i for i in random.sample(range(N_classes), N_classes - 4)]).to(device),
  )
    for _ in range(N_examples)
]

import time
start = time.time()
metric = MeanAveragePrecision(
    iou_thresholds=[0.1, 0.5, 0.9],
    rec_thresholds=[0.0, 0.3, 0.7, 1.0],
    max_detection_thresholds=[N_classes],
)
metric.update(preds, target)
from pprint import pprint
output = metric.compute()
pprint(output)
print('Elased time:', time.time() - start)

And this is the output I'm getting:

{'map': tensor(-1.),
'map_50': tensor(0.0039),
'map_75': tensor(-1),
'map_large': tensor(-1.),
'map_medium': tensor(-1.),
'map_per_class': tensor(-1.),
'map_small': tensor(0.0186),
'mar_36': tensor(0.0315),
'mar_36_per_class': tensor(-1.),
'mar_large': tensor(-1.),
'mar_medium': tensor(-1.),
'mar_small': tensor(0.0315)}
Elased time:<PHONE_NUMBER>1123047

So my main concern is that this is taking too much time to compute. A batch of 36 classes and 3000 examples, which is a reasonable estimate of the sizes of my validation sets, is taking 340 seconds (5 minutes and 40 seconds), which is a lot. Another concern I have is the fact that I'm getting -1.0 as map. Why is it so? How should I interpret -1.0 as output? I thought that map ranges between 0 and 1, so I guess I'm probably doing something wrong with my implementation above.
Thanks in advance.

Hello guys, I came across this pull request as I was searching for solutions to the performance issues with torchmetrics MAP I'm having right now.
This is my code:
import torch
from torchmetrics.detection.mean_ap import MeanAveragePrecision
import random

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

def _generate_random_bbox():
    xmin =  random.random()
    ymin =  random.random()
    xmax = xmin + random.random() * (1 - xmin)
    ymax = ymin + random.random() * (1 - ymin)
    return [xmin, ymin, xmax, ymax]

N_examples = 3000
N_classes = 36

preds = [
  dict(
    boxes=torch.tensor([_generate_random_bbox() for _ in range(N_classes)]).to(device),
    scores=torch.tensor([random.random() for _ in range(N_classes)]).to(device),
    labels=torch.tensor([i for i in range(N_classes)]).to(device),
  )
    for _ in range(N_examples)
]

target = [
  dict(
    boxes=torch.tensor([_generate_random_bbox() for _ in range(N_classes - 4)]).to(device),
    labels=torch.tensor([i for i in random.sample(range(N_classes), N_classes - 4)]).to(device),
  )
    for _ in range(N_examples)
]

import time
start = time.time()
metric = MeanAveragePrecision(
    iou_thresholds=[0.1, 0.5, 0.9],
    rec_thresholds=[0.0, 0.3, 0.7, 1.0],
    max_detection_thresholds=[N_classes],
)
metric.update(preds, target)
from pprint import pprint
output = metric.compute()
pprint(output)
print('Elapsed time:', time.time() - start)

And this is the output I'm getting:

{'map': tensor(-1.),
'map_50': tensor(0.0039),
'map_75': tensor(-1),
'map_large': tensor(-1.),
'map_medium': tensor(-1.),
'map_per_class': tensor(-1.),
'map_small': tensor(0.0186),
'mar_36': tensor(0.0315),
'mar_36_per_class': tensor(-1.),
'mar_large': tensor(-1.),
'mar_medium': tensor(-1.),
'mar_small': tensor(0.0315)}
Elapsed time:<PHONE_NUMBER>1123047

So my main concern is that this is taking too much time to compute. A batch of 36 classes and 3000 examples, which is a reasonable estimate of the sizes of my validation sets, is taking 340 seconds (5 minutes and 40 seconds), which is a lot. Another concern I have is the fact that I'm getting -1.0 as map. Why is it so? How should I interpret -1.0 as output? I thought that map ranges between 0 and 1, so I guess I'm probably doing something wrong with my implementation above.
Thanks in advance.

Hi @PabloMessina ,
Thanks for taking time to have a look at it and also the PR. The code implemented here makes the metrics run in 1/3 of the time. I'm looking into what's left today and hopefully this will get merged this week.
Cheers!

@Borda , I'm now able to reproduce it locally. Will look into fixing this once and for all.
result["map"]
tensor(0.6477)
sk_result["map"]
tensor([0.6370])

I'm now able to reproduce it locally. Will look into fixing this once and for all.

@SkafteNicki @Lightning-AI/core-metrics thoughts?

New fixes coming in, @Borda @senarvi ... finally.

All tests are good now, just trying to improve speed a little bit more, as we now are above the previous (yet broken) implementation.

Performance on CPU

Total time in init: 0.0009379680000023427
Total time in update: 0.11780578900001615
Total time in compute:<PHONE_NUMBER>7199999

Current Master performance on CPU is about 160 seconds. The broken implementation was 77 seconds... but well, it was broken.

Hi @wilderrodrigues 👋
Out of curiosity: any chance you could run a substantial map calculation through py-spy and post the flamegraph here?
pip install py-spy
py-spy record -o profile.svg -- python myprogram.py

All tests are good now, just trying to improve speed a little bit more, as we now are above the previous (yet broken) implementation.

That's really great!

Hi @wilderrodrigues 👋
Out of curiosity: any chance you could run a substantial map calculation through py-spy and post the flamegraph here?
pip install py-spy
py-spy record -o profile.svg -- python myprogram.py

Hi @ddelange ,
Sure. I'm busy with some last things in terms of speed and will run it once I push the last commits.

We can sequence it out to another PR, let's just get this green...

@wilderrodrigues, we value your work and thank you for your contribution :purple_heart: could you pls revisit this PR with respect to the recently merged revert to COCO implementation #1327 and setting the torch version as an Internal option? :rabbit:

Once again thank you for all your effort! :purple_heart:
Feel free to reopen this PR, and happy to talk about it any time in the future :chipmunk:


fix: use babel-loader on client to fix IE11/Edge SVG issues

Thank you very much for this fix, sorry it took a few days to review it. Awesome work 👍


Docs for Linux installation are out of date

So I had fun installing the agent in a new Linux install.  This page, https://github.com/logdna/logdna-agent-v2/#installing-on-linux, has a section
Installing on Linux

Refer to the documentation for [deploying the agent on Linux](https://github.com/logdna/logdna-agent-v2/blob/master/docs/LINUX.md).

Following the link there, specifically the configure the agent section (https://github.com/logdna/logdna-agent-v2/blob/master/docs/LINUX.md#configure-the-agent), I arrived at a section that is out of date. Those steps, specifically writing etc/logdna.env and setting the environment variables inside that file as specified in step 2 did not work.
What did work is following the steps in the Configuration section of the first page (https://github.com/logdna/logdna-agent-v2/#configuration) and setting up a yaml configuration file.
Please update the documentation to prevent others from wasting time trying outdated approaches to configuring the agent. Thanks!

etc/logdna.env is specified in systemd service config.
does your linux uses systemd?

We do not use systemd on our systems, but the problem is that the docs specifically say to follow the instructions for installation on Linux, but that's not necessarily the correct approach. It wasn't until I read the Configuration section that I tried the approach of the yaml file and found that to work.

The doc does say that agent is using systemd. https://github.com/logdna/logdna-agent-v2/blob/master/docs/LINUX.md#usage.

@holyoaks Thanks for your feedback! We'll bring this feedback to our team and hopefully make the instruction more clear to users, so that one doesn't have to jump between multiple pages. We do have some initiative this year making the documentation better across the board. I'll create an internal JIRA to keep track.


Create pipeline stages using allocator and pass/use them by pointer.

Some stage structs can't be copied, other shouldn't be moved. Movable structs should be marked @movable, UDA will be checked by startPipe() and appendPipe() and then they'll create non-movable, non-copyable stages using allocator API.

For now, all stages will be constructed in-place.


add Ord instance for PlaylistName, Path, and Value

Useful for sorting them alphabetically.

Thank you!

Thank you!