Veranstaltungsreihen

Adds option to add events lasting multiple days with adding an 'event_end_date' field
TODO:

Translations

This allows adding multiday events (Mehrtagesveranstaltungen - called them Veranstaltungsreihe) by adding an end date to an event. This is useful for things like "call to actions" or "Beteiligungsverfahren".
This should (partly) fix https://github.com/studio-arrenberg/quartiersplattform/issues/135
Recurring events, like daily, weekly, monthly events (Stammtische, etc. ) are more complex to add, as it needs loops to create multiple single events and it needs loops to edit, delete, etc. those events. It even would be possible to have those events recurring x-times or until some date, etc. Some events, like 'Quartierstreffen' or others take place on every last friday in a month, every third monday, etc. ... would be a nice to have, but it's still a Quartiersplattform, not a calendar ;)
Open for comments and testing ;)

Ups, there's a problem I've only noticed when testing in production regarding looking at a Projekt. It shows wrong Veranstaltungen.

This should do it now

I've put it into production. Take a look at hammesberg.net to see it in action


Accept variables from Omnibar in workflow steps

Closes #90
https://user-images.githubusercontent.com/4615840/209391273-58489926-0525-470c-a5c7-9d474b7e86b8.mp4

@SeanKilleen just published this feature, thought you might be interested :D


grt: print all pins out of die area before erroring

It seems like the code meant to do this, but got warn/error switched around. Otherwise, GRT-0028 is actually unreachable.

@eder-matheus it seems like duplicate messages are printed if multiple shapes of the same pin are outside. Should we break out of the loop after the first warning?

@eder-matheus it seems like duplicate messages are printed if multiple shapes of the same pin are outside. Should we break out of the loop after the first warning?

Perhaps we can count the number of blockage shapes out of the die for each pin, and print this number instead of one print for shape.


Fix: name display regression

Accidentally put the parentheses in the JSX in, which caused a layout issue

When you push to master too quickly without visually QA'ing your changes ^


Missing log printouts in forwarder-vpp at DEBUG log level

Expected Behavior
Log printout is expected in forwarder-vpp logs at DEBUG log level.
Current Behavior
Setting log level to DEBUG the log printouts after "Startup completed in ..." printout are missing.
Failure Information (for bugs)
At TRACE log level any debug log printout can be seen in forwarder-vpp logs. For example printouts reporting netlink and vpp API operations regarding connection setup.
Steps to Reproduce

Set NSM_LOG_LEVEL to DEBUG value in apps/forwarder-vpp/forwarder.yaml
Start any basic use-case (e.g. Kernel2Ethernet2Kernel)
Check the logs of forwarder-vpp

Context

NSM Version: 1.9.0.

Example
Comparing the forwarder debug level printouts in case of TRACE and DEBUG log level:
trace-level-forwarder-vpp-log.txt
debug-level-forwarder-vpp-log.txt

grep DEBU trace-level-forwarder-vpp-log.txt | wc -l
69
grep DEBU debug-level-forwarder-vpp-log.txt | wc -l
19

Can be related to https://github.com/networkservicemesh/deployments-k8s/issues/9124

Can be related to #9124

It is not related. It is present from v1.4.0, when log.EnableTracing(level == logrus.TraceLevel) was introduced.

@ljkiraly The problem should be fixed by https://github.com/networkservicemesh/sdk/pull/1489
Latest main is available for testing.
Also, v1.10.0 will include the fix.
Feel free to reopen the ticket if the problem is still reproduciable.
Thanks for the pointing this problem we really appreciate any reports ;)


Upgrade to Checkstyle 8.18

Upgrades from CheckStyle 6.1.8
Removes FileHolderContent module which no longer exists

Can one of the admins verify this patch?


astro-sst is not compatible with the image service "Sharp"

03:52:22 PM [astro] update /.sst/sst.log
03:52:22 PM [astro] The currently selected adapter `astro-sst` is not compatible with the image service "Sharp".
03:52:22 PM [astro] The adapter astro-sst doesn't support the feature assets. Your project won't be built. You should not use it.
03:52:22 PM [astro] The selected adapter astro-sst does not support Sharp or Squoosh for image processing. To ensure your project is still able to build, image processing has been disabled.

I have somehow resolved this problem by switching to "hybrid" mode explicitly defining pages to pre-render. I think it's because now the images get optimized beforehand or something


Make UV_PYTHON_INSTALL_MIRROR configurable in uv.toml

Please consider making UV_PYTHON_INSTALL_MIRROR and UV_PYPY_INSTALL_MIRROR configurable in the user-scoped uv.toml config file. I think this is a separate use case from the similar pyproject.toml request in #8166.
Related:
#8015
#8068

I have no problem with supporting this!

I think I mentioned this somewhere else, but this would be a good one for enterprises who may want to adopt uv python install in a way that complies with internal security policy/tooling.

With my issue #8166 I did not mean to specify it in exactly pyproject.toml, I am also fine if it can be specified somewhere else with the code :)
So I also would support this !


Switch to the new semantics backend

This match switches the framework to use the semantics backend in dart:ui
rather than the Mojo backend.

I'll land the engine roll separately, but I included it here to help travis go green.


Request header field X-Parse-Application-ID is not allowed by Access-Control-Allow-Headers in preflight response.

Hello such community I have the following question'm trying to upload a file, but I have the following error

add these lines of code for testing file uploading #20
change the application ID and the rest-api-key
and finally add a service to upload the file
 Upload: function(file) {

    var defer = $q.defer();
    var parseFile = new Parse.File(file.name, file);

    parseFile.save({
      success: function(savedFile) {
        defer.resolve(savedFile);
      },
      error: function(error) {
        defer.reject(error);
      }
    });

    return defer.promise;

but it continues to appear the same mistake :(
MLHttpRequest cannot load https://xxxxxxxx/parse/files/4188biun0z82kklf3euc_400x400.jpeg. Request header field X-Parse-Application-ID is not allowed by Access-Control-Allow-Headers in preflight response.
main.js:43 Unable to connect to the Parse API
Anyone know how I solve this?
Thank you very much for your time

Have you set the correct serverURL including parse mount point in your app? If so, then this sounds like a CORS issue that we should fix. In the meantime, the workaround would be to host your parse server and your website on the same domain (including subdomain). This is definitely not the ideal situation, though, so we will definitely seek to address this bug. You could also submit a PR :)

hello @drew-gross replace the app-id and the rest-api-key
app.all('', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'accept, content-type,aa, bb, x-parse-session-token');
// intercept OPTIONS method
if ('OPTIONS' == req.method) {
res.send(200);
}
else {
next();
}
});
aa = x-parse-application-id
bb = x-parse-rest-api-key
I make a small application to test that everything is working . the parse.initializate is this
Parse.initialize('cc','dd');
Parse.serverURL = 'https://urlheroku.com/parse';
cc = application_id
dd = javacript_key
all right even create a new document in mongodb no problem.
this detail when uploading a file.
I will be doing wrong?
thanks for you time.

We'll do some additional investigation. In the meantime, if you could provide a complete reproduction script or test case that would be very helpful (ie. a parse-server application and JS application that we can run and instantly see the problem)

I'm having this issue just trying to connect through the JS SDK:
ERR Connection refused:
{code: 100, message: "XMLHttpRequest failed: "Unable to connect to the Parse API""}

+1
https://github.com/ParsePlatform/parse-server/issues/408

ran into same bug and can't find any solution - would really appreciate any pointers

This issue is fixed in #390. If you don't want to wait for the next release, you can clone the repo and run the master branch.


Add nemlig.com as Keda users

Signed-off-by: Lars Bing Bong<EMAIL_ADDRESS>

Can you fix the DCO issues please? You can learn more in our contribution guide.

Can you fix the DCO issues please? You can learn more in our contribution guide.

it's wait because I can see that the commit is signed, maybe it's something related with the verification?


readnovelfull

All ReadNovelfull novels chapters are 0/0 in the app, but not in website.


Ensure Service Principal assigned to Directory Reader

Included reference to adding Directory Reader role to AzOps SPN.
Without this step, AzOps Pull will not be able to retrieve role definitions & assignments and will skip over with warning
(Initialize-AzOpsRepository) Missing Directory.Read permissions in Azure AD Graph. Skipping discovery of RoleAssignments and RoleDefinitions

Yes, I'm okay with closing this PR.


pre requisite for installation

Hi,
Another requisite for install ultrastar singer is install git e put in the PATH. You should mention this on the installation guide.
without git installad you get this message:
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?
and the installation fail.
Anyway. Great Job. Amazing work

Yes true. I try to optimize the readme :)


tf.SparseTensorSpec in input_signature of tf.function does not take effect

Describe the current behavior
When we define a tf.SparseTensorSpec with some specific shape in the input_signature of tf.function, we still can pass a tf.SparseTensor with any arbitrary shape into the decorated function.
Related to #29198. For now, the shape of input sparse tensor is always None inside tf.function, which I think contradicts with the purpose of input_signature.
Describe the expected behavior
Like tf.TensorSpec, it should raise an error when the input tf.SparseTensor is not compatible with the tf.SparseTensorSpec.
Standalone code to reproduce the issue
See this notebook.

@llan-ml
have tried n colab with TF 2.3, nightly verson(2.5.0-dev20201210)  and was able to reproduce the issue. Please, find the gist here.Thanks!


feat: enable zfs on fsync-ba

Use fsync-ba as a fallback if fsync-coreos isn't building due to no matching versions.
Thank you for contributing to the Universal Blue project!
Please read the Contributor's Guide before submitting a pull request.

This needs some work. However I'm unsure if we should do this or not since fsync-ba seems to only be built occasionally

We won't be doing this as we had to revert #234


Loss of data due to cutting (for pasting) of switch area

Describe the bug

Working small bot - need to change logic slightly
Small bot with a few dialogs.
Cut a region to paste elsewhere with switch case, 2 dialog invokes, welcome message
Screen turns blank, loss of work. Need to restart. See image.

Version
1.1.1-nightly

Browser

[X] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] macOS
[X] Windows
[ ] Ubuntu

To Reproduce
Unknown
Try bunch of cut & pasting different regions of bots with switch etc.

Debug info:

@scheyal is there a reason you're on a 1.1.x nightly and not the latest nightly?

Yes - Used Tai's build for Orchestrator.
See also -  https://microsoft-my.sharepoint-df.com/:v:/p/eyals/EXkJaGfFT9hKulRK0SjYuuIBggtSbHISDPWtx24yvp63DQ?e=yndbEp

Will try to repro with latest build in bugbash.

No repro in bugbash bits.


Export a TSV file of disease associations

The PomBase curated input file (pombase_disease_associations_mondo_ids.txt) has six columns:

gene systematic ID
gene name
MONDO term ID
evidence code (always blank)
reference
date

I think it makes sense to use those columns except for the evidence code.

Our nightly update now writes out a disease association file:
https://curation.pombase.org/dumps/latest_build/misc/disease_association.tsv
The columns are:

gene systematic ID
gene name
MONDO term ID
reference
date

Most of the references are PMIDs but some are "PB_REF:0000003" which is a PomBase internal reference.  It's defined here: https://curation.pombase.org/dumps/latest_build/pombe-embl/supporting_files/PB_references.txt
but I think it would be OK to just leave the reference in PombaseMine unset if it's "PB_REF:0000003" in the file.
@rachellyne
@danielabutano

Hi Kim,
Itwould be useful for me to take a copy of this and replace the old complicated pipelines that can now be deprracated. It will really streamline the editing and maintenance. We can chat about this.
v

Itwould be useful for me to take a copy of this and replace the old complicated pipelines that can now be deprracated. It will really streamline the editing and maintenance.

One thing we get from the current system is a way to link to the Malacards pages.  When we load malacards_data_for_chado_mondo_ids.tsv we store the Malacards details with the MONDO terms.

RIght. I don't think we will realign with  Malacards, they have tended to overpredict. In future I will check against
Alliance (which covers lots of species/sources) and OMIM (via Intermine) and Monarch. So one option is just to take the current set of used MAlacards IDs in a MONDO mapping file . The part  which takes time at the moment is, that when something changes (MONDO obsolete terms  quite often) there are sometimes multiple places to track things down change things, and it always takes me a while to figure out where something is coming from. Especially as the malacards file is based on the human ID...it's all a bit convoluted.
It isn't urgent, but it would streamline the maintenance task.

We can probably close this and open new tickets if anything else is needed. We have a separate issue about streamlining disease associations but that isn't urgent.


Support the reviver option of JSON.parse

Describe the feature
It would be helpful if users of destr could provide a reviver function which is passed through to JSON.parse. destr already uses this parameter for jsonParseTransform, but I think it should be possible to chain the user's reviver function.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#reviver
Additional information

[X] Would you be willing to help implement this feature?

Can you please share examples that this might be useful?

I'd noticed unstorage will serialize a Buffer on setItem. I was thinking an approach like this might be useful for deserializing.

hmm I don't think unstorage for raw operations should even do json serialization/desrialization. It uses a specific signature (in text-only drivers).
Do you have any other usecase in mind? (if not, I prefer to keep destr simple -- simplicity matters most..)

The serialization seems to happen here: https://github.com/unjs/unstorage/blob/6163be0eb5035b54f3a576086e7b41a48efa3607/src/_utils.ts#L43
To me this is not a high priority. I filed the issue since I thought it might make sense to match the JSON.parse API, but I understand the motivation to keep things limited as well.

Sounds good! Working on using setItemRaw for the cache is actually how I ended up here :D

Yep, we need to migrate but needs lots of risky changes which makes only possible way to create a new rewrite for nitro. (I will involve you as soon as got into motion)


Update dependencies and Django version to 1.11

This starter is currently written for 1.10, so I decided to go ahead and update it to 1.11 since 1.10 will soon be un-supported throughout many 3rd party libraries when Django 2.0 is released.
The different dependency version bumps I also added were for more stable versions of the package. The actual updates don't seem to interfere with the code that's already written.
Anyways, I ran the the tests and build seems to be working fine. I also went and tested out the different features on the actual web-app.

Coverage remained the same at 97.468% when pulling 0e8073f59be7a1e593acb523b34e7f6fa8c44818 on Nifled:master into b495cbb0d70187de3a44b21d5965a45cf86f6e64 on BeDjango:master.

Thank you very much


feat: add option to not fail if configured resource group does not exist

Fix #649

Edited the PR title. Please update or let's discuss if the update don't make sense. Thanks again for this PR.

Do you know what "R" stands for in that output? Also, as of now with your changes, there's only 2 test cases. So, why is there 3 output info (including the "R"). I tried to lookup pytest output info in their docs but couldn't find anything relevant.

At the end ok the log, I see 3 rerun, so I think "R" stands for "Rereun" => Flaky tests?

Do you know what "R" stands for in that output? Also, as of now with your changes, there's only 2 test cases. So, why is there 3 output info (including the "R"). I tried to lookup pytest output info in their docs but couldn't find anything relevant.

At the end ok the log, I see 3 rerun, so I think "R" stands for "Rereun" => Flaky tests?

Ahh... You're right. That's only coming up now with the additional tests from this PR. Seems to be happening only once, isn't it? Not sure which test case needs retries. Could it be because of the time.sleep(5) in the first test. That line was moved. Also, shouldn't we need that timer for the other test cases? That fixture is currently scoped to function. So it will need to be executed for each tests. Or, we could change the scope of it to class instead. Maybe the timer would be part of the fixture?

@amimas Is this PR OK for you?

Hi @philippe-granet. Sorry about the delay. Have been very busy lately.
I think this PR mostly looks good. I was hoping to have a look at why resource group test from this PR is retried. It doesn't happen on main branch, if I'm not mistaken. Also, I think we don't need to add the add_gitlab_ci_config fixture to all the new rest cases. The fixture is scoped to function and the project is scoped to class. So, having the add_gitlab_ci_config fixture only on the first test case/function should be enough?
I was hoping to have a look at those. But I just haven't had the time to look into it. Are you able to help reviewing the above? Appreciate all your work.

@philippe-granet - will you be able to look into the above comments? I think we should create a new release soon. Would be nice to have it included but no rush.

@amimas Sorry, I'm currently on vacation, I will only be available from February 26

No problem :)

Hi @philippe-granet . Will you be able to continue with this? I feel the PR is almost ready. If I recall correctly, some minor tweaks to the test and addressing test rerun issue is outstanding. If you can, please update your branch with latest of main. Thanks.

I pushed the 2 small updates mentioned above since this was so close to the finish line.

@gdubicki  - this PR pipeline seems to be in a weird state. Some of the GitHub actions are not triggering. Any idea what's going on? I know there were some changes around GitHub action workflows recently. Not sure if this is related.

There's a test using ensureExists: true, so not quite sure why coverage is showing that line as missed 👍

Please make sure to Squash on merge

Please make sure to Squash on merge

Actually, we as the maintainers need to do the merges, @TimKnight-DWP, as only we have the push permissions to the repo. This is how it works in GitHub, apparently. 🤷♂ We should really move to GitLab... 😅

@gdubicki yes and then we could have a second repo which uses GLF to apply GitLab config to the GLF group 😂


No MASTER_TAB re-election on Firefox iframe

No reelection occurring after MASTER_TAB refresh on a iframe.
Steps for reproducing:

Open Firefox 40;
Open 2 tabs with Javascript running on an iframe;
Refresh the master tab;

Result:

There are no MASTER_TAB elected.  I'll do that ASAP.

Hi @tejacques,
That's good news! We have an important release tomorrow morning.
 That means this is a new issue. I believe it is related to firefox not firing an unload event in the iframes, or something similar.
If possible, could you verify that this is the case? Since it's not a quick fix as I expected I will not be able to look into fixing it until I get home from work.

Ok @tejacques,
I've updated the library to v0.2.12 and It didn't change the behavior, so I've started debuging it.
I've added a lot of logs to check what's going wrong, and I ended with this:

The problem seems that the old MASTER updates the TAB_KEYS on unloading (with himself as MASTER) and the SLAVE tab manages this event right after declaring himself as a MASTER... so it's demoted to SLAVE again because of the late event.
I'll continue updating.

I think that just removing all handlers on unload fixes the issue:
	function unload() {
		window.removeEventListener('storage', onStorageEvent);
		window.removeEventListener('beforeunload', unload);
		window.removeEventListener('DOMContentLoaded', swapUnloadEvents);
		eventHandler.removeListener(util.eventTypes.tabClosed, onTabClosed);
		eventHandler.removeListener(util.eventTypes.tabUpdated, onTabUpdated);
		eventHandler.removeListener(util.eventTypes.tabPromoted, onTabPromoted);
		// ...
	}

I made some tests and it's working ok!

What you said makes a lot of sense. I think there are some edge cases for recoverable unloads, though. Would you mind making a PR with your changes? Would be very helpful for getting the fix out to the masses.
I think here is the full solution:
in unload:

destruct eventHandler via eventHandler.destructor() -- this removes all listeners. Or perhaps simply disable the eventHandler with some new disable() and enable() methods.
mark handler as destructed/disabled

in swapUnloadEvents:

eventHandler.enable() or re-setup if destructed.

After writing it out, I prefer the enable() and disable() approach.
I can try to do this tonight, or if you would like to give it a go and submit PR that would be very helpful. Thanks for your efforts in improving the library!

Cool! I would be proud to contribute with a PR. Maybe tomorrow I can do it (for today I'll leave just as a temporary fix on the code).
Thanks

Sounds good. Let me know if you are able to get to this. If you aren't I will work on it tonight. Thanks!

@tejacques didn't have available time yesterday, neither today. Feel free to do it if you have a chance.
Thanks

So I realized the issue here isn't really that the tab continues to handle events. That's actually somewhat desirable in the case where the tab resumes (before DOMContentLoaded has swapped them). The real issue is that in firefox after the unload event fires, it can still handle other events. This is also potentially possible in beforeunload as well.
There are some events then that we want to queue (anything from localStorage) if we are unloading, which we then want to flush if it is a beforeunload event that gets cancelled.
Working on and testing a solution here, but it's pretty tricky to get right.


Upcoming: [DI-20844] - Tooltip for widget level filters and icons, beta feedbacks and CSS changes for CloudPulse

Description 📝
We have added Tooltip for all of our icons and widget level filters. Also addressed some of the beta demo feedbacks like
CamelCase for Aggregation Function dropdown label, Zeroth state of time duration and CSS updates for legend rows inside the widget.
Changes  🔄

Added Tooltip for all icons and widget level filters
CamelCase labels for Aggregation Function dropdown in widget
Zero state update for time duration to move to Last 30 Minutes
Padding and minHeight adjustment for legend rows inside widget
Widget Unit scale up display logic update
CloudpulseResourceSelection, publish the selected values only if the autocomplete closes since it is a multiselect component and reduce metrics call fired.
Interval selection should default to AUTO if there are no preferences in its initial state

Target release date 🗓
10-10-2024
Preview 📷

Before
After

How to test 🧪

Login as mock user as some endpoints are not ready
Navigate to Monitor page
Select dashboard and necessary filters to view the widgets
You can see tooltips for icons and widget level filters
Also you can see aggregate function dropdown displaying labels in camelcase
Once you clear the selected dashboard time duration returns to Last 30 Minutes

As an Author I have considered 🤔
Check all that apply

[x] 👀 Doing a self review
[x] ❔ Our contribution guidelines
[x] 🤏 Splitting feature into small PRs
[ ] ➕ Adding a changeset
[x] 🧪 Providing/Improving test coverage
[x] 🔐 Removing all sensitive information from the code and PR description
[x] 🚩 Using a feature flag to protect the release
[ ] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[x] 📱 Providing mobile support
[ ] ♿  Providing accessibility support

This is looking better - just waiting on the tooltip update before approval

This is looking better - just waiting on the tooltip update before approval

@jaalah-akamai , we have moved to the common tooltip

@bnussman-akamai , I have addressed the comments you have left. Please check once

I had to re-run the CI E2E... when it passes, we'll merge

@jaalah-akamai , for this PR, in the same branch, in local if run yarn coverage:summary, yarn test, our ACLP cy, everything is passing. I don't know whats with the CI


Home button closes without warning

Testing #109283 on playground.
When using "window.confirmBeforeClose": "always", clicking the home button

will exit without warning. This is potentially unexpected as it's not clear that "home" in a CS means go back to github and lose all your state.

I am not able to reproduce, tried today. In the console I see this log.ts:191  WARN Unload veto: window.confirmBeforeClose=always
Can you try again? What OS/Browser is this?

Unable to test rn due to https://github.com/microsoft/vscode-internalbacklog/issues/1581

@JacksonKearl you can always open the settings editor as file to change settings, no?
Second icon in editor toolbar:

No :( button throws the same error, command pallete entry throws a new one.

Ok strange, my Codespace seems fine, maybe try with a new one?

Nope, brand new codespace has the same errors. I cant open any files either.

Filed https://github.com/github/codespaces/issues/1637


Consider change manual release workflow

I think going forward we should make releasing to gemfury a bit more like how we handle docker images to DO... A manual release workflow it seems is actually less tedious and more flexible then pushing to a release branch.
I have already moved the tag automation since I tend to do that with setversion script anyway.

@krysh1 @tinnaing347 Since we made this public I will unravel the release branch to gemfury... There is no need to keep using gemfury

See #66


Add missing return

Add a return so that the does not crash when trying to load rawTextureData from an empty pixelBuffer.

Thanks for this catch! I will update Changelog.md to mention this then merge it.


invoke() is not wrapped with act() and requires manual update() calls

Current behavior
Calling methods with invoke requires surrounding the method with act() AND calling wrapper.update() afterwards. If invoke is called directly, the following warning is thrown:
console.error node_modules/react-dom/cjs/react-dom.development.js:506
    Warning: An update to TestA inside a test was not wrapped in act(...).

    When testing, code that causes React state updates should be wrapped into act(...):

    act(() => {
      /* fire events that update state */
    });
    /* assert on the output */

    This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act
        in TestA (created by WrapperComponent)
        in WrapperComponent

Expected behavior
According to the docs, invoke should wrap all method calls in act() and wrapper.update() by default.
https://github.com/airbnb/enzyme#react-hooks-support
Your environment
Test case is the same as a previously reported issue.
https://github.com/airbnb/enzyme/issues/2231
New versions of the Enzyme adapters have been released recently that include the logic for wrapping invoke. However, the main library still needs to be updated with the following commit to actually include the wrapInvoke calls from the adapter: https://github.com/airbnb/enzyme/commit/d2bb6554c57af7eda789f63059c76ae029e9f64e#diff-f51a48d4631e74e85755869409584c3f
Enzyme 3.10 was cut right before this commit was introduced in master.
API

[ ] shallow
[x] mount
[ ] render

Version

library
version

enzyme
3.10.0

react
16.10.1

react-dom
16.10.1

react-test-renderer
16.10.1

adapter (below)

Adapter

[x] enzyme-adapter-react-16 | 1.15.1
[ ] enzyme-adapter-react-16.3
[ ] enzyme-adapter-react-16.2
[ ] enzyme-adapter-react-16.1
[ ] enzyme-adapter-react-15
[ ] enzyme-adapter-react-15.4
[ ] enzyme-adapter-react-14
[ ] enzyme-adapter-react-13
[ ] enzyme-adapter-react-helper
[ ] others ( )

That's already fixed in #2158, but unreleased.
The docs on github reflect master; the docs on https://airbnb.io/enzyme/ reflect the latest published version of enzyme.

Do you have any estimates of when a new version of Enzyme will be released?

I don’t.

That's good to know. Thank you!
We'll just keep working around it for now. :D


Add json for uploaded assets to recipe

As discussed in #31 with the current version of mealie the step-images are missing. That is due the following behavior of mealie and kptncook:

kptncook creates recipe in mealie and uploads assets (working fine)
kptncook uploades recipe-json
mealie expects an assets-node. That was already implemented in kptncook but it was never filled, so an empty assets-node was sent to mealie
mealie deletes all assets that are not in the assets node from the uploaded json --> all our uploaded assets are getting deleted again

This PR fills the assets node with the metadata of the uploaded assets.

Wow, really cool, thanks a lot!


Investigate a new coverage system

For large scale projects, instrumenting coverage for all files becomes quite slow; even more if you tell Jest to instrument **/*.js or other similar patterns, so that you can get non-covered files as well.
By default, Jest only instruments required files, which means that if a file is not required at all because it has no tests, it will not show up on the list, thus giving fake percentages on coverage.

I would recommend changing the coverage reporter to have an optional fast-path to generate the approximate coverage info (with uncovered vs. uncovered/not executable). What do you think?

I'd rather try fixing the root problem. The approximated coverage just does that for non-covered files, so if there is a lot of files being required, the problem will persist. Based on the fact that we require per-line coverage, a simpler, faster instrumentation might be able to be done.

from my experience, people use coverage completely different depending on the project they work on.
for library code/shared code/utility code branch/statement/function coverage is important, and people often aim for 100% coverage (think React, Jest, Immutable kind of projects)
for application code, 100% branch coverage is impossible and just wrong. When you move fast, have millions of lines of app code, build features and deprecate them next month, coverage is not something that you'll be using to measure your quality. It can give some signal, that is helpful, but coverage by line is more than enough there.
there's another case that involves webdriver tests. In this case we only want a 'per file' coverage, to know which files were executed during the webdriver test run (so we can retrigger the test next time there's any change in the corresponding file)
based on this i think we should have a 3-level coverage:

current coverage (branches/statements/lines/functions)
lines only
files only

^ works for me, although I would probably scrap (3) and leave it up for the user to reduce line coverage (2) to file coverage (3) through a results processor.

i only mentioned 3. because line coverage generation and collection is pretty slow which can timeout already slow webdriver tests.
do you think we can reuse parts of flow for instrumenting files?

I agree with @mjesun and this is a topic I've struggled with more than once across multiple systems at Spotify. The rolling coverage (coverage based on what files are required) that is typical of many systems is simply inaccurate and hard to reason about. But when I setup istanbul (with mocha at the time) to instrument ALL files it would have increased test run times 6x so I did not re-attempt.
My opinion is that line coverage is not going to offer accurate coverage numbers and I would rather know the true coverage than have some percentage that doesn't reflect reality.
Enforcing 100% coverage on a large application, as @aaronabramov says, is probably not likely. But the important part is having consistently accurate numbers. All too often I see coverage changes that are hard to reason about and I wish we could just standardize on actual accurate full coverage.

Actually, just backing up a little bit, I have a suspicion that we are collecting coverage for node_modules (or other irrelevant code) which is why we found coverage collection to be slow. Miguel, could you (internally at FB) show me the list of files we are trying to collect coverage from at FB that showed this to be slow?

@mjesun might sharing the full list of files with me in an internal paste?

Would #7062 alleviate this?


Bookmarking with TimetableItemDetail automatically shrinks the DescriptionSection

Issue

close #967

Overview (Required)
Cause of bug

When creating a TimetableItemDetail, uiState was specified as the target of AnimatedContent, and TimetableItemDetail was being recomposed whenever uiState's isBookmarked changed.

Fixes

Specify { uiState is Loaded } in the contentKey lambda of AnimatedContent so that it is recomposed only when the uiState changes to Loaded.

Links

Screenshot (Optional if screenshot test is present or unrelated to UI)

Before
After

Movie (Optional)

Before
After

I didn't know this behavior 😮

I didn't know as well 😅
But after looking at the AnimatedContent documentation, I thought it sounded like a cause.

If targetState is expected to mutate frequently and not all mutations should be treated as target state change, consider defining a mapping between targetState and a key in contentKey. As a result, transitions will be triggered when the resulting key changes. In other words, there will be no animation when switching between targetStates that share the same same key. By default, the key will be the same as the targetState object.


ASR: Problems replicating NeMo example

Hi,
I am new to label-studio and want to start with replicating the example that has been created for ASR using NeMo as the ML backend.
I intend to have label-studio and label-studio-ml-backend running on the same Ubuntu server in different containers.
Label-Studio frontend (<IP_ADDRESS>:8080) shows that it successfully connects to the model at http://<IP_ADDRESS>:9090 (and in this case the default is QuartzNet15x5Base-En) but it appears the prediction isn't working for the loaded audio files.
For label-studio I have been running this:

docker run -it -p 8080:8080 -v ~/ASR/NeMo/lbl_fe_dock:/label-studio/data heartexlabs/label-studio:latest label-studio --log-level DEBUG

for label-studio-ml-backend I have been starting with a NeMo container and installing ml-backend:

docker run --runtime=nvidia -it --rm -v ~/ASR/NeMo/lbl_be_dock:/tmp/host_dock --shm-size=16g -p 8888:8888 -p 6006:6006 -p 9090:9090 --ulimit memlock=-1 --ulimit stack=67108864 --device=/dev/snd nvcr.io/nvidia/nemo:22.11

In the NeMo container:

cd /tmp/host_dock
git clone https://github.com/heartexlabs/label-studio-ml-backend

I first needed to modify label-studio-ml-backend/requirements.txt to allow newer packages (replaced '==' with '>=') then run:

pip install -U -e label-studio-ml-backend

In addition I've needed to manually install 2 packages:

pip install redis
pip install rq

Then I can run:

label-studio-ml init my_model --from label-studio-ml-backend/label_studio_ml/examples/nemo/asr.py
label-studio-ml start ./my_model

Upon first connection there are several errors from label-studio-ml-backend:

[2023-01-23 07:23:27,393] [WARNING] [label_studio_ml.model::_get_result_from_job_id::196] => Warning:<PHONE_NUMBER> dir doesn't contain result file. It seems that previous training session ended with error.
W0123 07:23:27.393369<PHONE_NUMBER>62112 model.py:196] => Warning:<PHONE_NUMBER> dir doesn't contain result file. It seems that previous training session ended with error.
[2023-01-23 07:23:27,393] [ERROR] [label_studio_ml.model::get_result_from_last_job::131]<PHONE_NUMBER> job returns exception:
Traceback (most recent call last):
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/model.py", line 129, in get_result_from_last_job
result = self.get_result_from_job_id(job_id)
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/model.py", line 111, in get_result_from_job_id
assert isinstance(result, dict)
AssertionError
E0123 07:23:27.393426<PHONE_NUMBER>62112 model.py:131]<PHONE_NUMBER> job returns exception:
Traceback (most recent call last):
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/model.py", line 129, in get_result_from_last_job
result = self.get_result_from_job_id(job_id)
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/model.py", line 111, in get_result_from_job_id
assert isinstance(result, dict)
AssertionError

I've assumed the above errors are related to starting with the stock pretrained model since the output ends with:

[NeMo I 2023-01-23 07:35:34 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.14.0/QuartzNet15x5Base-En/2b066be39e9294d7100fb176ec817722/QuartzNet15x5Base-En.nemo.
[NeMo I 2023-01-23 07:35:34 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.14.0/QuartzNet15x5Base-En/2b066be39e9294d7100fb176ec817722/QuartzNet15x5Base-En.nemo
[NeMo I 2023-01-23 07:35:34 common:912] Instantiating model from pre-trained checkpoint
[NeMo I 2023-01-23 07:35:35 features:267] PADDING: 16
[NeMo I 2023-01-23 07:35:35 save_restore_connector:243] Model EncDecCTCModel was successfully restored from /root/.cache/torch/NeMo/NeMo_1.14.0/QuartzNet15x5Base-En/2b066be39e9294d7100fb176ec817722/QuartzNet15x5Base-En.nemo.
[2023-01-23 07:35:35,770] [INFO] [werkzeug::_log::224] <IP_ADDRESS> - - [23/Jan/2023 07:35:35] "POST /setup HTTP/1.1" 200 -
I0123 07:35:35.770120<PHONE_NUMBER>27904 _internal.py:224] <IP_ADDRESS> - - [23/Jan/2023 07:35:35] "POST /setup HTTP/1.1" 200 -

When trying to upload and use an audio file I receive these errors per audio file;

[2023-01-23 07:37:29,036] [ERROR] [label_studio_ml.exceptions::exception_f::53] Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 174, in _new_conn
conn = connection.create_connection(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/connection.py", line 95, in create_connection
raise err
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/connection.py", line 85, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 398, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 239, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File "/usr/lib/python3.8/http/client.py", line 1256, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
self.send(msg)
File "/usr/lib/python3.8/http/client.py", line 951, in send
self.connect()
File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 205, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 186, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f971f80d2b0>: Failed to establish a new connection: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 489, in send
resp = conn.urlopen(
File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 787, in urlopen
retries = retries.increment(
File "/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/0e2da086-Audio_2-2022-12-11-22-09-00.mp4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f971f80d2b0>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/exceptions.py", line 39, in exception_f
return f(*args, **kwargs)
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/api.py", line 51, in _predict
predictions, model = _manager.predict(tasks, project, label_config, force_reload, try_fetch, **params)
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/model.py", line 617, in predict
predictions = cls._current_model.model.predict(tasks, **kwargs)
File "/tmp/host_dock/my_model/asr.py", line 29, in predict
audio_path = self.get_local_path(audio_url)
File "/tmp/host_dock/label-studio-ml-backend/label_studio_ml/model.py", line 323, in get_local_path
return get_local_path(url, project_dir=project_dir, hostname=self.hostname, access_token=self.access_token)
File "/usr/local/lib/python3.8/dist-packages/label_studio_tools/core/utils/io.py", line 96, in get_local_path
r = requests.get(url, stream=True, headers=headers)
File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 565, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/0e2da086-Audio_2-2022-12-11-22-09-00.mp4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f971f80d2b0>: Failed to establish a new connection: [Errno 111] Connection refused'))

And here is a pertinent section of debug output from the label-studio container:

[2023-01-23 07:37:28,272] [urllib3.connectionpool::_new_conn::228] [DEBUG] Starting new HTTP connection (1): <IP_ADDRESS>:9090
[2023-01-23 07:37:28,470] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:37:28,534] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:37:28,679] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:37:28,682] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:37:28,683] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:37:28,686] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:37:29,025] [urllib3.connectionpool::_make_request::456] [DEBUG] http://<IP_ADDRESS>:9090 "POST /setup HTTP/1.1" 200 28
[2023-01-23 07:37:29,026] [ml.models::update_state::141] [INFO] ML backend responds with success: {'model_version': 'INITIAL'}
[2023-01-23 07:37:29,026] [ml.models::update_state::144] [DEBUG] Changing model version: INITIAL -> INITIAL
[2023-01-23 07:37:29,032] [urllib3.util.retry::from_int::351] [DEBUG] Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
[2023-01-23 07:37:29,032] [urllib3.util.retry::from_int::351] [DEBUG] Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
[2023-01-23 07:37:29,033] [urllib3.connectionpool::_new_conn::228] [DEBUG] Starting new HTTP connection (1): <IP_ADDRESS>:9090
[2023-01-23 07:37:29,037] [urllib3.connectionpool::_make_request::456] [DEBUG] http://<IP_ADDRESS>:9090 "POST /predict HTTP/1.1" 500 5487
[2023-01-23 07:37:29,037] [ml.models::predict_tasks::174] [INFO] Prediction not created for project  (id=1, url=http://<IP_ADDRESS>:9090): 500 Server Error: INTERNAL SERVER ERROR for url: http://<IP_ADDRESS>:9090/predict
[2023-01-23 07:37:29,042] [urllib3.connectionpool::_new_conn::1003] [DEBUG] Starting new HTTPS connection (1): tele.labelstud.io:443
[2023-01-23 07:37:29,042] [django.server::log_message::161] [INFO] "GET /api/tasks?page=1&page_size=30&view=1&project=3 HTTP/1.1" 200 2012
[2023-01-23 07:37:29,042] [django.server::log_message::161] [INFO] "GET /api/tasks?page=1&page_size=30&view=1&project=3 HTTP/1.1" 200 2012
[2023-01-23 07:37:29,421] [urllib3.connectionpool::_make_request::456] [DEBUG] https://tele.labelstud.io:443 "POST / HTTP/1.1" 200 0
[2023-01-23 07:38:03,211] [urllib3.connectionpool::_make_request::456] [DEBUG] https://o227124.ingest.sentry.io:443 "POST /api/5820521/envelope/ HTTP/1.1" 200 2

Looking around I did notice something amiss where the directory structure in the Label-Studio container has the following path:

/data/media/upload/3/...mp4

whereas the error messages from label-studio-ml-backend showed a different path:

/data/upload/3/...mp4

Any advice on how to get this NeMo ASR example running?
Many thanks

Please use docker-compose for ML backends:
https://github.com/heartexlabs/label-studio-ml-backend/tree/master/label_studio_ml/examples/nemo#quickstart

Unfortunately still not able to get predictions and getting similar errors.
I am now using docker compose found in '/label-studio-ml-backend/label_studio_ml/examples/nemo' on the same machine that is running the label_studio frontend.  Everything appears fine with the connection to the backend via the settings for the labeling project.  I am new to label_studio but I expect there to be some predictions shown.
Here are some logs:
label_studio:

[2023-02-12 05:17:16,619] [ml.models::update_state::141] [INFO] ML backend responds with success: {'model_version': '1676169662'}
[2023-02-12 05:17:16,619] [ml.models::update_state::144] [DEBUG] Changing model version:<PHONE_NUMBER> -><PHONE_NUMBER>
[2023-02-12 05:17:16,623] [urllib3.util.retry::from_int::351] [DEBUG] Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
[2023-02-12 05:17:16,623] [urllib3.util.retry::from_int::351] [DEBUG] Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
[2023-02-12 05:17:16,623] [urllib3.connectionpool::_new_conn::228] [DEBUG] Starting new HTTP connection (1): <IP_ADDRESS>:9090
[2023-02-12 05:17:16,625] [urllib3.connectionpool::_make_request::456] [DEBUG] http://<IP_ADDRESS>:9090 "POST /predict HTTP/1.1" 500 5554
[2023-02-12 05:17:16,625] [ml.models::predict_tasks::174] [INFO] Prediction not created for project  (id=1, url=http://<IP_ADDRESS>:9090): 500 Server Error: INTERNAL SERVER ERROR for url: http://<IP_ADDRESS>:9090/predict

label_studio_ml_backend:
Early in the uwsgi.log I see this:

[NeMo I 2023-02-12 05:26:47 save_restore_connector:243] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.12.0/stt_en_conformer_
ctc_large/afb212c5bcf904e326b5e5751e7c7465/stt_en_conformer_ctc_large.nemo.
[pid: 49|app: 0|req: 2/2] <IP_ADDRESS> () {36 vars in 706 bytes} [Sun Feb 12 05:26:46 2023] POST /setup => generated 31 bytes in 1093 msecs (HTTP/1.1 200) 2 headers i
n 71 bytes (1 switches on core 0)
[pid: 49|app: 0|req: 3/3] <IP_ADDRESS> () {32 vars in 657 bytes} [Sun Feb 12 05:26:47 2023] GET /health => generated 54 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 7
1 bytes (1 switches on core 0)
[pid: 49|app: 0|req: 4/4] <IP_ADDRESS> () {36 vars in 709 bytes} [Sun Feb 12 05:26:47 2023] POST /setup => generated 31 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 7
1 bytes (1 switches on core 0)
[2023-02-12 05:26:47,671] [ERROR] [label_studio_ml.exceptions::exception_f::53] Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 175, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 95, in create_connection
raise err
File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 85, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 710, in urlopen
chunked=chunked,
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 398, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 239, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File "/usr/local/lib/python3.7/http/client.py", line 1281, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1327, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1276, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1036, in _send_output
self.send(msg)
File "/usr/local/lib/python3.7/http/client.py", line 976, in send
self.connect()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 205, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 187, in _new_conn
self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fe1ce16c8d0>: Failed to establish a new connection: [Errno 111] Connection refused

and later:

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 499, in send
timeout=timeout,
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 788, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/0e2da086-Audio_2-2022-12-11-22-09-00.mp4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe1ce16c8d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/exceptions.py", line 39, in exception_f
return f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/api.py", line 32, in _predict
predictions, model = _manager.predict(tasks, project, label_config, force_reload, try_fetch, **params)
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 582, in predict
predictions = m.model.predict(tasks, **kwargs)
File "./asr.py", line 29, in predict
audio_path = self.get_local_path(audio_url)
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 322, in get_local_path
return get_local_path(url, project_dir=project_dir, hostname=self.hostname, access_token=self.access_token)
File "/usr/local/lib/python3.7/site-packages/label_studio_tools/core/utils/io.py", line 91, in get_local_path
r = requests.get(url, stream=True, headers=headers)
File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 565, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/0e2da086-Audio_2-2022-12-11-22-09-00.mp4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe1ce16c8d0>: Failed to establish a new connection: [Errno 111] Connection refused'))

also note that my earlier attempts to get this running (see above) found that the label_studio frontend was using this file structure to access the audio (notice the additional 'media' subdirectory vs the label_studio_ml_backend directory above.

/data/media/upload/3/...mp4

Any further help appreciated!

Please use docker-compose for ML backends: https://github.com/heartexlabs/label-studio-ml-backend/tree/master/label_studio_ml/examples/nemo#quickstart

Unfortunately still not able to get predictions and getting similar errors.
I am now using docker compose found in '/label-studio-ml-backend/label_studio_ml/examples/nemo' on the same machine that is running the label_studio frontend.  Everything appears fine with the connection to the backend via the settings for the labeling project.  I am new to label_studio but I expect there to be some predictions shown.
Here are some logs:
label_studio:

[2023-02-12 05:17:16,619] [ml.models::update_state::141] [INFO] ML backend responds with success: {'model_version': '1676169662'}
[2023-02-12 05:17:16,619] [ml.models::update_state::144] [DEBUG] Changing model version:<PHONE_NUMBER> -><PHONE_NUMBER>
[2023-02-12 05:17:16,623] [urllib3.util.retry::from_int::351] [DEBUG] Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
[2023-02-12 05:17:16,623] [urllib3.util.retry::from_int::351] [DEBUG] Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
[2023-02-12 05:17:16,623] [urllib3.connectionpool::_new_conn::228] [DEBUG] Starting new HTTP connection (1): <IP_ADDRESS>:9090
[2023-02-12 05:17:16,625] [urllib3.connectionpool::_make_request::456] [DEBUG] http://<IP_ADDRESS>:9090 "POST /predict HTTP/1.1" 500 5554
[2023-02-12 05:17:16,625] [ml.models::predict_tasks::174] [INFO] Prediction not created for project  (id=1, url=http://<IP_ADDRESS>:9090): 500 Server Error: INTERNAL SERVER ERROR for url: http://<IP_ADDRESS>:9090/predict

label_studio_ml_backend:
Early in the uwsgi.log I see this:

[NeMo I 2023-02-12 05:26:47 save_restore_connector:243] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.12.0/stt_en_conformer_
ctc_large/afb212c5bcf904e326b5e5751e7c7465/stt_en_conformer_ctc_large.nemo.
[pid: 49|app: 0|req: 2/2] <IP_ADDRESS> () {36 vars in 706 bytes} [Sun Feb 12 05:26:46 2023] POST /setup => generated 31 bytes in 1093 msecs (HTTP/1.1 200) 2 headers i
n 71 bytes (1 switches on core 0)
[pid: 49|app: 0|req: 3/3] <IP_ADDRESS> () {32 vars in 657 bytes} [Sun Feb 12 05:26:47 2023] GET /health => generated 54 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 7
1 bytes (1 switches on core 0)
[pid: 49|app: 0|req: 4/4] <IP_ADDRESS> () {36 vars in 709 bytes} [Sun Feb 12 05:26:47 2023] POST /setup => generated 31 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 7
1 bytes (1 switches on core 0)
[2023-02-12 05:26:47,671] [ERROR] [label_studio_ml.exceptions::exception_f::53] Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 175, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 95, in create_connection
raise err
File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 85, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 710, in urlopen
chunked=chunked,
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 398, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 239, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File "/usr/local/lib/python3.7/http/client.py", line 1281, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1327, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1276, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.7/http/client.py", line 1036, in _send_output
self.send(msg)
File "/usr/local/lib/python3.7/http/client.py", line 976, in send
self.connect()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 205, in connect
conn = self._new_conn()
File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 187, in _new_conn
self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fe1ce16c8d0>: Failed to establish a new connection: [Errno 111] Connection refused

and later:

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 499, in send
timeout=timeout,
File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 788, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/0e2da086-Audio_2-2022-12-11-22-09-00.mp4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe1ce16c8d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/exceptions.py", line 39, in exception_f
return f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/api.py", line 32, in _predict
predictions, model = _manager.predict(tasks, project, label_config, force_reload, try_fetch, **params)
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 582, in predict
predictions = m.model.predict(tasks, **kwargs)
File "./asr.py", line 29, in predict
audio_path = self.get_local_path(audio_url)
File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 322, in get_local_path
return get_local_path(url, project_dir=project_dir, hostname=self.hostname, access_token=self.access_token)
File "/usr/local/lib/python3.7/site-packages/label_studio_tools/core/utils/io.py", line 91, in get_local_path
r = requests.get(url, stream=True, headers=headers)
File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 565, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/0e2da086-Audio_2-2022-12-11-22-09-00.mp4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe1ce16c8d0>: Failed to establish a new connection: [Errno 111] Connection refused'))

also note that my earlier attempts to get this running (see above) found that the label_studio frontend was using this file structure to access the audio (notice the additional 'media' subdirectory vs the label_studio_ml_backend directory above.

/data/media/upload/3/...mp4

Any further help appreciated!

Please use docker-compose for ML backends:
https://github.com/heartexlabs/label-studio-ml-backend/tree/master/label_studio_ml/examples/nemo#quickstart

Hi @makseq , I replied to the same ticket since I was receiving the same errors for docker compose method as I was running label-studio-ml-backend inside a NeMo container.

Hi @speakermagnet
Can you connect to your ML backend and check connection to your LS instance?

Hi @KonstantinKorotaev
Yes, when I check settings on my project in the Label Studio frontend it indicates that it is successfully connected to the backend:
"Connected
URL     http://<IP_ADDRESS>:9090
Version<PHONE_NUMBER>"
When I check http://<IP_ADDRESS>:9090/health I receive
{"model_dir":"/data/models","status":"UP","v2":false}

@speakermagnet
I mean connect from label studio ML backend back to label studio, it seems it can't connect with specified URL

@KonstantinKorotaev :  I am not familiar with the best way to test for this connection.  Can you provide me specific instructions?
In the meantime I went ahead and opened a shell in the -ml-backend container:

docker exec -it {containerID} /bin/bash

and ran:

curl --noproxy "*" http://<IP_ADDRESS>:8080/health

and received:

{"status": "UP"}

Frankly I don't know what address the -ml-backend container is trying to use.   When I try:

curl --noproxy "*" http://localhost:8080/health

I get:

curl: (7) Failed to connect to localhost port 8080: Connection refused

Checking /etc/hosts:

% cat /etc/hosts
<IP_ADDRESS>       localhost
...

Thoughts?

@makseq Can you reopen this issue?  If not should I file a new issue?

@speakermagnet
Add self.hostname = '<IP_ADDRESS>' in model init method

@KonstantinKorotaev :
I am currently running docker-compose for ML backends found in the ml-backend example directory as per makseq's guidance.  I don't have access to the explicit init command line with this method.  Is there a way to accomplish the desired effect via the docker-compose yml file or command line?  If not, how about from the command line inside the running backend container?

@speakermagnet
You can modify example with this line.

@speakermagnet You can modify example with this line.

Hi @KonstantinKorotaev, I don't fully understand your response; did you forget to post another line?  Would you mind posting some specific commands that you would advise me to try?
I am currently running the label-studio-ml-backend as per @makseq 's guidance:

Please use docker-compose for ML backends: https://github.com/heartexlabs/label-studio-ml-backend/tree/master/label_studio_ml/examples/nemo#quickstart

Specifically:
on my host machine traversing to:
cd label-studio-ml-backend/label_studio_ml/examples/nemo
docker compose up -d

Go to this folder:
cd label-studio-ml-backend/label_studio_ml/examples/nemo
and change asr.py with adding line self.hostname = '<IP_ADDRESS>' to __init__ method

Thank you @KonstantinKorotaev .
Unfortunately I don't see any improvement.
Here is the uwsgi.log from the "docker compose up -d"
*** Starting uWSGI <IP_ADDRESS> (64bit) on [Sun Feb 26 07:16:45 2023] ***
compiled with version: 10.2.1 20210110 on 12 February 2023 01:14:55
os: Linux-5.15.0-60-generic #66-Ubuntu SMP Fri Jan 20 14:29:49 UTC 2023
nodename: 02dc8f392c94
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 32
current working directory: /app
writing pidfile to /tmp/uwsgi.pid
detected binary path: /usr/local/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
your memory page size is 4096 bytes
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address <IP_ADDRESS>:9090 fd 3
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
Python version: 3.7.16 (default, Feb 11 2023, 03:01:17)  [GCC 10.2.1 20210110]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x55a32ea0d780
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145840 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
/usr/local/lib/python3.7/site-packages/sentry_sdk/_compat.py:90: Warning: We detected the use of uwsgi with disabled threads.  This will cause issues with the transport you are trying to use.  Please enable threading for uwsgi.  (Add the "enable-threads" flag).
  "We detected the use of uwsgi with disabled threads.  "
[NeMo W 2023-02-26 07:16:47 optimizers:55] Apex was not found. Using the lamb or fused_adam optimizer will error out.
WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x55a32ea0d780 pid: 9 (default app)
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 9)
spawned uWSGI worker 1 (pid: 48, cores: 1)

Then later when I access via label-studio:
[pid: 48|app: 0|req: 1/1] <IP_ADDRESS> () {32 vars in 654 bytes} [Sun Feb 26 07:29:15 2023] GET /health => generated 54 bytes in 2 msecs (HTTP/1.1 200) 2 headers in 71 bytes (1 switches on core 0)
[NeMo I 2023-02-26 07:29:15 cloud:56] Found existing object /root/.cache/torch/NeMo/NeMo_1.12.0/stt_en_conformer_ctc_large/afb212c5bcf904e326b5e5751e7c7465/stt_en_conformer_ctc_large.nemo.
[NeMo I 2023-02-26 07:29:15 cloud:62] Re-using file from: /root/.cache/torch/NeMo/NeMo_1.12.0/stt_en_conformer_ctc_large/afb212c5bcf904e326b5e5751e7c7465/stt_en_conformer_ctc_large.nemo
[NeMo I 2023-02-26 07:29:15 common:910] Instantiating model from pre-trained checkpoint
[NeMo I 2023-02-26 07:29:16 mixins:172] Tokenizer SentencePieceTokenizer initialized with 128 tokens
[NeMo W 2023-02-26 07:29:16 modelPT:143] If you intend to do training or fine-tuning, please call the ModelPT.setup_training_data() method and provide a valid configuration file to setup the train data loader.
    Train config :
    manifest_filepath:
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket1/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket2/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket3/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket4/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket5/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket6/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket7/tarred_audio_manifest.json
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket8/tarred_audio_manifest.json
    sample_rate: 16000
    batch_size: 1
    shuffle: true
    num_workers: 4
    pin_memory: true
    use_start_end_token: false
    trim_silence: false
    max_duration: 20.0
    min_duration: 0.1
    is_tarred: true
    tarred_audio_filepaths:
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket1/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket2/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket3/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket4/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket5/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket6/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket7/audio__OP_0..8191_CL_.tar
    - - /data2/nemo_asr/nemo_asr_set_3.0/bucket8/audio__OP_0..8191_CL_.tar
    shuffle_n: 2048
    bucketing_strategy: synced_randomized
    bucketing_batch_size:
    - 34
    - 30
    - 26
    - 22
    - 18
    - 16
    - 12
    - 8

[NeMo W 2023-02-26 07:29:16 modelPT:150] If you intend to do validation, please call the ModelPT.setup_validation_data() or ModelPT.setup_multiple_validation_data() method and provide a valid configuration
file to setup the validation data loader(s).
    Validation config :
    manifest_filepath:
    - /manifests/librispeech/librivox-dev-other.json
    - /manifests/librispeech/librivox-dev-clean.json
    - /manifests/librispeech/librivox-test-other.json
    - /manifests/librispeech/librivox-test-clean.json
    sample_rate: 16000
    batch_size: 32
    shuffle: false
    num_workers: 8
    pin_memory: true
    use_start_end_token: false

[NeMo W 2023-02-26 07:29:16 modelPT:156] Please call the ModelPT.setup_test_data() or ModelPT.setup_multiple_test_data() method and provide a valid configuration file to setup the test data loader(s).
    Test config :
    manifest_filepath:
    - /manifests/librispeech/librivox-dev-other.json
    - /manifests/librispeech/librivox-dev-clean.json
    - /manifests/librispeech/librivox-test-other.json
    - /manifests/librispeech/librivox-test-clean.json
    sample_rate: 16000
    batch_size: 32
    shuffle: false
    num_workers: 8
    pin_memory: true
    use_start_end_token: false

[NeMo I 2023-02-26 07:29:16 features:225] PADDING: 0
[NeMo I 2023-02-26 07:29:16 save_restore_connector:243] Model EncDecCTCModelBPE was successfully restored from /root/.cache/torch/NeMo/NeMo_1.12.0/stt_en_conformer_ctc_large/afb212c5bcf904e326b5e5751e7c7465/stt_en_conformer_ctc_large.nemo.
[pid: 48|app: 0|req: 2/2] <IP_ADDRESS> () {36 vars in 706 bytes} [Sun Feb 26 07:29:15 2023] POST /setup => generated 31 bytes in 1065 msecs (HTTP/1.1 200) 2 headers in 71 bytes (1 switches on core 0)
[pid: 48|app: 0|req: 3/3] <IP_ADDRESS> () {32 vars in 657 bytes} [Sun Feb 26 07:29:17 2023] GET /health => generated 54 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 71 bytes (1 switches on core 0)
[pid: 48|app: 0|req: 4/4] <IP_ADDRESS> () {36 vars in 709 bytes} [Sun Feb 26 07:29:17 2023] POST /setup => generated 31 bytes in 0 msecs (HTTP/1.1 200) 2 headers in 71 bytes (1 switches on core 0)
[2023-02-26 07:29:17,338] [ERROR] [label_studio_ml.exceptions::exception_f::53] Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 175, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 710, in urlopen
    chunked=chunked,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.7/http/client.py", line 1281, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1327, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1276, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1036, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.7/http/client.py", line 976, in send
    self.connect()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 187, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fe6e01cdf90>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 499, in send
    timeout=timeout,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 788, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/f4999567-Audio_3-2022-12-13-21-38-00.wav (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe6e01cdf90>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/exceptions.py", line 39, in exception_f
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/api.py", line 32, in _predict
    predictions, model = _manager.predict(tasks, project, label_config, force_reload, try_fetch, **params)
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 582, in predict
    predictions = m.model.predict(tasks, **kwargs)
  File "./asr.py", line 29, in predict
    audio_path = self.get_local_path(audio_url)
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 322, in get_local_path
    return get_local_path(url, project_dir=project_dir, hostname=self.hostname, access_token=self.access_token)
  File "/usr/local/lib/python3.7/site-packages/label_studio_tools/core/utils/io.py", line 91, in get_local_path
    r = requests.get(url, stream=True, headers=headers)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/f4999567-Audio_3-2022-12-13-21-38-00.wav (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe6e01cdf90>: Failed to establish a new connection: [Errno 111] Connection refused'))

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 175, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 710, in urlopen
    chunked=chunked,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.7/http/client.py", line 1281, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1327, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1276, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.7/http/client.py", line 1036, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.7/http/client.py", line 976, in send
    self.connect()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 187, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fe6e01cdf90>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 499, in send
    timeout=timeout,
  File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 788, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/f4999567-Audio_3-2022-12-13-21-38-00.wav (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe6e01cdf90>: Failed to establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/exceptions.py", line 39, in exception_f
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/api.py", line 32, in _predict
    predictions, model = _manager.predict(tasks, project, label_config, force_reload, try_fetch, **params)
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 582, in predict
    predictions = m.model.predict(tasks, **kwargs)
  File "./asr.py", line 29, in predict
    audio_path = self.get_local_path(audio_url)
  File "/usr/local/lib/python3.7/site-packages/label_studio_ml/model.py", line 322, in get_local_path
    return get_local_path(url, project_dir=project_dir, hostname=self.hostname, access_token=self.access_token)
  File "/usr/local/lib/python3.7/site-packages/label_studio_tools/core/utils/io.py", line 91, in get_local_path
    r = requests.get(url, stream=True, headers=headers)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /data/upload/3/f4999567-Audio_3-2022-12-13-21-38-00.wav (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe6e01cdf90>: Failed to establish a new connection: [Errno 111] Connection refused'))

[pid: 48|app: 0|req: 5/5] <IP_ADDRESS> () {36 vars in 714 bytes} [Sun Feb 26 07:29:17 2023] POST /predict => generated 5533 bytes in 3 msecs (HTTP/1.1 500) 2 headers in 92 bytes (1 switches on core 0)

Here are the results of running curl inside of the nemo docker container:
root@02dc8f392c94:/app# curl --noproxy "*" http://<IP_ADDRESS>:8080/health
curl: (7) Failed to connect to <IP_ADDRESS> port 8080: Connection refused
root@02dc8f392c94:/app# curl --noproxy "*" http://localhost:8080/health
curl: (7) Failed to connect to localhost port 8080: Connection refused
root@02dc8f392c94:/app# curl --noproxy "*" http://<IP_ADDRESS>:8080/health
{"status": "UP"}

ConnectionRefusedError: [Errno 111] Connection refused

this means your redis is not running

@makseq
docker ps shows that the redis container is up.
I went ahead and killed both the nemo and redis containers to ensure they both came back up again:
CONTAINER ID   IMAGE                             COMMAND                  CREATED       STATUS         PORTS                                       NAMES
9e0774e4f501   heartexlabs/label-studio:latest   "./deploy/docker-ent…"   10 days ago   Up 10 days     <IP_ADDRESS>:8080->8080/tcp, :::8080->8080/tcp   boring_leavitt
02dc8f392c94   nemo-server                       "/usr/local/bin/supe…"   2 weeks ago   Up 2 minutes   <IP_ADDRESS>:9090->9090/tcp, :::9090->9090/tcp   server
80be730e724c   redis:alpine                      "docker-entrypoint.s…"   2 weeks ago   Up 2 minutes   6379/tcp                                    redis

(FYI I am using 'docker compose up -d' rather than 'docker-compose up -d')
Are there any commands you would like me to run to provide additional logs?

@speakermagnet
Could you please share your ML model code?

@KonstantinKorotaev
On our previous attempts I have tried to use 'stt_en_conformer_ctc_large' version of the language model.  Based on your question I decided to keep the original config file (asr.py w/ 'QuartzNet15x5Base-En') and adding your self.hostname line to see if the results are different.   I was still getting errors.
I realized that the changes I was making to asr.py were not getting propagated to the container and a previous cached version was getting used.  I searched around and found this command needed to be run in the examples/nemo directory:
docker system prune --all --force
After seeing my changes being reflected in the logs I found that I needed to specify the entire url to the self.hostname as well as use the external IP address.  In the end I added this to asr.py in the example directory:
      self.hostname = 'http://<IP_ADDRESS>:8080'
I am no longer getting the errors where the ml-backend was not able to access the data files.  Thank you for your help!
Best regards


can mozaik support reorder and resize?

Based on my experience (http://dashing.io/) reordering and resizing can be tricky at times, whereas explicit model support by Mozaik works always.
Having said that, I'm not against the feature (as long as it is not the only way to arrange and size the widgets).

@wangtun, as @juhamust said, Mozaïk only supports explicit sizing/ordering for now.

@juhamust @plouc thank you very much!


Add UVIP documentation

enhancement issue: https://github.com/kubernetes/enhancements/issues/4020

/sig api-machinery

Please squash commits either now (if confident) or after tech review @Richabanker
IMO, this is ready for tech review by SIG API Machinery.

Thanks for the recommendation, I have made an attempt at making these changes, PTAL when you can. Thanks

Thanks. It needs work but not a huge amount. For alpha we are OK with docs that are accurate but not complete.
Optionally, but recommended:

Add a glossary entry for Unknown Version Interoperability Proxy with UVIP as a synonym
Add GVK (group / version / kind) to the glossary, and use it to simplify the text

You can use any glossary term in text using a handy Hugo shortcode, glossary_tooltip.

Thanks for the recommendation, I have made an attempt at making these changes, PTAL when you can. Thanks

Once this has tech sign off, we can merge it. That doesn't have to be the end though: we can update the docs after merge (either before the v1.28 release, or afterwards on the main branch)

Once this has tech sign off, we can merge it. That doesn't have to be the end though: we can update the docs after merge (either before the v1.28 release, or afterwards on the main branch)

Once this has tech sign off, we can merge it. That doesn't have to be the end though: we can update the docs after merge (either before the v1.28 release, or afterwards on the main branch)

Got it, thanks! About the recent changes- I have updated the feature name to Mixed Version Proxy. @jpbetz can you PTAL?

/approve
/lgtm

/lgtm

/lgtm
for docs
/approve


bug login expired

Package
filament/filament
Package Version
v3x
Laravel Version
v11
Livewire Version
No response
PHP Version
PHP 8.2
Problem description
When the session expires and I return with the same login, ok, but when the session expires and I return with another user, the login goes to an expired page, it only returns if I change the url
Expected behavior
Validate that there was a user change at login when the session expired and clear the browsing history
Steps to reproduce
Login with first user and let it expire session and then login with second user.
Reproduction repository
https://github.com/pet-labs/pet-app/tree/feature-tenancy
Relevant log output
No response

No public reproduction repository, and probably nothing we can do about a session expiring


Error installing protobuf-3.8.0.sh

I have a jetson Nano with JetPack 4.5, python 3.6.9 and pip 21.0.1
I was doing this:
$ wget https://github.com/jkjung-avt/jetson_nano/blob/master/install_protobuf-3.8.0.sh
$ sudo chmod +x install_protobuf-3.8.0.sh
$ ./install_protobuf-3.8.0.sh
and got the next error:
./install_protobuf-3.8.0.sh: line 7: syntax error near unexpected token newline' ./install_protobuf-3.8.0.sh: line 7: '

Please replace the "wget" command with the following (downloading the raw file instead of the GitHub web page):
$ wget https://raw.githubusercontent.com/jkjung-avt/jetson_nano/master/install_protobuf-3.8.0.sh


Add support for Goeli testnet?

Correct me if I'm wrong, but it doesn't seem like there's support for testnet API calls in this package? How hard is it to add support for this? Thanks!

you can just use a goerli provider and it will query the chain id for proper signing :)


Fix #822

Coverage increased (+0.001%) to 91.523% when pulling d4bea75282c025b3ac1ea5cd6efd3182c2b9f7ee on carloscds:fix822-v1.0.x into 63c59c46c44fbed154694e6701569bfcf656aadb on code-cracker:v1.0.x.


Update rosdep only once during migration

Leverage ros-infrastructure/bloom#565 to prevent automatic calls to rosdep update by Bloom, but perform one explicit update at the start.
This should make the process substantially faster.

Nice!


Feature: Set log level

It seems not possible to set log level. I got info and debug logs when I configure Logger to "pyroscope.StandardLogger" and nothing when I set Logger to nil.
I would like to be able to set log level to for example "info" since debug is quite verbose.

Hello @jryberg. Due to a very wide variance of log drivers, options, and requirements (such as level, format, decorating, output destination, etc), we recommend providing own implementation of the interface, if the standard logger does not meet requirements. Or, use the existing implementations, such as logrus.
In the meantime, I think it would be nice to have support for the new Go structured logger https://pkg.go.dev/log/slog (Go 1.21 and higher)

Hello @jryberg. Due to the very wide variety of log drivers, options, and requirements (such as level, format, decorating, output destination, etc), we recommend providing own implementation of the interface, if the standard logger does not meet requirements. Or, use the existing implementations, such as logrus.
In the meantime, I think it would be nice to have support for the new Go structured logger https://pkg.go.dev/log/slog (Go 1.21 and higher)

Thank you @kolesnikovae for your reply.
I'm already using logrus for logging but changing logrus log level does not change pyroscope-go log level since it always seems to use debug level.
Do you know about any example where pyroscope-go logging has been modified?

Thank you @jryberg,
logrus logger already implements our interface, therefore you can provide it directly to the profiler:
logger := logrus.New()
logger.SetLevel(logrus.InfoLevel)

Start(Config{
	ApplicationName: "my-app",
	ServerAddress:   "http://localhost:4040",
	Logger:          logger, // logger.WithField("component", "profiler")
})

Thank you @jryberg,
logrus logger already implements our interface, therefore you can provide it directly to the profiler:
logger := logrus.New()
logger.SetLevel(logrus.InfoLevel)

pyroscope.Start(pyroscope.Config{
	ApplicationName: "my-app",
	ServerAddress:   "http://localhost:4040",
	Logger:          logger, // logger.WithField("component", "profiler")
})

Oh, that was embarrassing... I was hyper focused to create the log integration as an interface and did not realized that I could simply create a new logrus instance.
Thanks 🥇


Abstract verification

Fixes the review blockers I submitted to @ebfull's abstract-verification branch.

Thanks for your time Nathan!
See https://github.com/zcash/zcash/pull/1919#issuecomment-265942247


Standings fetch decimal places

Hello, I have been trying the api and it works just fine.
But, I am fetching the standings and I see that the result does not include all the decimals from ESI.
For example I use the function:
=characters_character_standings(B1, true, "latest")
And it returns i.e. for caldari navy the value:
5.674994141000000
But when I cross check it with eveskillboard that does the same thing, it shows:
5.6749941419931
Would it be possible to not truncate the last digits and include all to the result?
Thanks in advance.

GESI just returns what ESI returns, so if there's a discrepancy I would wait like an hour and try again as both Google and ESI cache data.  It's possible that eveskillboard has newer/older data than you're seeing now.
I tried this with my own standings and asserted that it returns exactly what ESI returns.

Feel free to re-open if you're able to reproduce this.


Add K8S v2 pod discovery

This adds plumbing for a parallel version of the new K8S SD
and adds pod discovery as the first role.
FYI @brancz @jimmidyson @brian-brazil
This is the first step altering the current behavior. It also adds the port protocol as a label as this might be useful for blackbox probing.
I want to provide both in parallel for one or two versions in case we have to break something in the new mechanism. Eventually it should replace the current SD.

CI failing as this still uses the "wrong" client packages, which I don't want vendor.
Still waiting for https://github.com/kubernetes/client-go/tree/master/1.5 to get fixed.

Added resolving of pod target references in endpoints.
One issue here. In theory, pods can be updated, which changes the pod labels in the endpoints targets. This only really affects modifications of pod labels. If a pod changes its ready state for example, this will also affect the endpoints list and we don't have to trigger an update manually due to a pod change.
This means we would need a full bi-directional mapping of endpoints<>pods. This a) comes with additional complexity and b) might get quite expensive at a larger scale.
The returns for doing this are diminishing. Updating of pod labels is not something I've seen people doing a lot as they are generally managed via replica sets or jobs, which don't do it either. The underlying client resyncs periodically, which will trigger an update anyway. So pod label metadata will at most be stale for a few minutes – and even that only if nothing else triggers an update of the endpoints list.
Opinions @jimmidyson @brian-brazil
At least for the first iteration I'd opt for keeping it simple. We can always add it later.

I think keeping it simple is fine

Keeping it simple sounds fine I think.

Simple - let's only complicate things if valid use cases come to light.

Node, service, endpoint, and pod discovery all implemented.
Should be good for experimenting and semantic review. Tests needed.

What's the new file size of the binaries? I the kubernetes client-go will blow it up by 30-40MB?

Ah, we had this discussion on IRC. Missed to add a summary here.
The blow-up is significant. The new binary size is 59MB. The recent GCE discovery already lifted it from 12MB to 30MB.
We agreed that this is not exactly great but likely irrelevant in practice to most users. The container image/tarball size was virtually unaffected by the 12 to 30MB increase. So container deployments should not suffer from it.
Generally, the benefits of using the client library seem to outweigh. Version 1.3 would not include much beyond the Kubernetes SD and would also be released as an RC first.
So should it turn out as an issue, users can stick with v1.2 without missing features and we can revisit.
On the bright side, reduction of dependencies is something being worked on upstream.

I'm giving this a thorough spin currently 😉 I spotted a small bug and will start implementing some tests soon. Depending on how quickly I finish I will either create a PR into this branch, or we will ff-merge it back into this branch in a week.

While writing some tests for this, I came across some things I'm wondering about... Commenting through the PR is quite impossible as rendering takes forever, so I'm referencing chunks of code in the latest commit directly:
v1.Node is non namespaced (already removed the namespacing in my work so tests don't have to be adapted)
Pod.Container without Port adds an anonymous target, maybe it should be dropped in that case? I'm not sure if/how networking within kubernetes is affected when not specifying a port, I believe there are some iptables things happening with the port information.
Nitpick naming NewPods, NewEndpoints vs NewService, NewNode ... naming (in)consistency (feel free to ignore).
I'm not too familiar with the higher level TargetGroup channel consumer, so I'm wondering whether having two Targets on non-ready endpoint targets can be a problem? (reference)
Is there a race condition, between sending the initial set of TargetGroups over the channel and registering the event handler? I'm unsure if having watches return an initial list and starting to watch with the version of that list is sufficient, as events might be missed as the event handler is not yet registered. (reference)
Probably missing something, but in which situation will there be a add/delete/update event to a service and the endpoint is in the storage, but the event is not sent through the endpoint informer?
(reference)

I'm done with writing up the tests. You can find them here. For now the entire communication with kubernetes is faked, but with some doable effort we could allow the tests to be run against an actual cluster.
My I posted my code review above, I don't think there is nothing major, just some things I noticed while writing the tests. Overall looks very good, looking forward to getting this released!

We thoroughly discussed outstanding issues in person. As we generally agreed on the semantics, I'll merge this soon unless someone wants to dig into the K8S client and do a further code review.


Fixed PulseSchedulerTester

Some pulses in the old back-end Json no longer exist, hence need to update.
Signed-off-by: Thien Nguyen<EMAIL_ADDRESS>

This passes and @tnguyen-ornl is covered under ut-battelle mla


Add padding to categories dropdown.

Signed-off-by: Arunima Chaudhuri<EMAIL_ADDRESS>Description
Add padding to categories dropdown.
This PR fixes #906
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@tinniaru3005, we don't need padding now....just remove the box shadow and its good to merge.

@Krishna2323 is it fine now?

@tinniaru3005, yes👌