Also send queries for A and AAAA when we have no cached records left

I observed some resolving issues, when one stops a browse for a service after "ttl" expires and starts the same browse again. The info is never resolved, as the the query_unresolved process believes there are addresses cached, but actually the records are just empty.
Without this change and a responder that doesn't eagerly publish it's A / AAAA records, i always get a sad 🐼at the end. Using the the patched example query.rs like this. With the changes, the 🐼 is always happy.
diff --git a/examples/query.rs b/examples/query.rs
index 30339e6..8fc1425 100644
--- a/examples/query.rs
+++ b/examples/query.rs
@@ -13,6 +13,8 @@
 //!
 //! Keeps listening for new events.

+use std::time::Duration;
+
 use mdns_sd::{ServiceDaemon, ServiceEvent};

 fn main() {
@@ -51,8 +53,48 @@ fn main() {
                     println!(" Property: {}", prop);
                 }
             }
+            ServiceEvent::SearchStopped(_) => {
+                break;
+            }
             other_event => {
                 println!("At {:?} : {:?}", now.elapsed(), &other_event);
+                if now.elapsed() > Duration::from_secs(122) {
+                    mdns.stop_browse(&service_type).expect("To stop browsing");
+                }
+            }
+        }
+    }
+
+    let receiver2 = mdns.browse(&service_type).expect("Failed to browse 2");
+
+    while let Ok(event) = receiver2.recv() {
+        match event {
+            ServiceEvent::ServiceResolved(info) => {
+                println!(
+                    "2 At {:?}: Resolved a new service: {}\n host: {}\n port: {}",
+                    now.elapsed(),
+                    info.get_fullname(),
+                    info.get_hostname(),
+                    info.get_port(),
+                );
+                for addr in info.get_addresses().iter() {
+                    println!(" Address: {}", addr);
+                }
+                for prop in info.get_properties().iter() {
+                    println!(" Property: {}", prop);
+                }
+                println!("Did resolve, happy 🐼");
+                mdns.stop_browse(&service_type).expect("To stop browsing 2");
+            }
+            ServiceEvent::SearchStopped(_) => {
+                break;
+            }
+            other_event => {
+                if now.elapsed() > Duration::from_secs(130) {
+                    eprintln!("Did not resolve, sad 🐼");
+                    break;
+                }
+                println!("At {:?} : {:?}", now.elapsed(), &other_event);
             }
         }
     }

An alternative aproach: we could also remove the cache entry entirely when it's records become empty.

Good catch! We actually have implemented the cache refresh logic to handle such case. Could you try out this patch:
diff --git a/src/service_daemon.rs b/src/service_daemon.rs
index 2b332a6..42b65f9 100644
--- a/src/service_daemon.rs
+++ b/src/service_daemon.rs
@@ -2229,8 +2229,8 @@ impl Zeroconf {

             let (instances, timers) = self.cache.refresh_due_srv(ty_domain);
             for instance in instances.iter() {
-                debug!("sending refresh query for SRV: {}", instance);
-                self.send_query(instance, TYPE_ANY);
+                error!("sending refresh query for SRV: {}", instance);
+                self.send_query(instance, TYPE_SRV);
                 query_srv_count += 1;
             }
             new_timers.extend(timers);

I use your example code diff for a quick test, it seems helping.  Let me know if it works for you.  Cheers!

Good catch! We actually have implemented the cache refresh logic that should handle such case. I think the problem is we sent the wrong qtype for instance SRV refresh query. We have a logic in place that automatically attach TYPE_A/TYPE_AAAA records for SRV query.
Could you try out this patch:
diff --git a/src/service_daemon.rs b/src/service_daemon.rs
index 2b332a6..6414f30 100644
--- a/src/service_daemon.rs
+++ b/src/service_daemon.rs
@@ -2230,7 +2230,7 @@ impl Zeroconf {
             let (instances, timers) = self.cache.refresh_due_srv(ty_domain);
             for instance in instances.iter() {
                 debug!("sending refresh query for SRV: {}", instance);
-                self.send_query(instance, TYPE_ANY);
+                self.send_query(instance, TYPE_SRV);
                 query_srv_count += 1;
             }
             new_timers.extend(timers);

I use your example code diff for a quick test, it seems helping. Let me know if it works for you. Cheers!

I've tried your patch and it doesn't seem to help, i found my old example for the original issue we solved earlier which exhibits the same exact behavior where it does not work. The python snippet from https://github.com/keepsimple1/mdns-sd/issues/182 does not get resolved the 2nd time we browse with your suggested change.

With an updated more picky example:
diff --git a/examples/query.rs b/examples/query.rs
index 30339e6..ed97787 100644
--- a/examples/query.rs
+++ b/examples/query.rs
@@ -13,6 +13,8 @@
 //!
 //! Keeps listening for new events.

+use std::time::Duration;
+
 use mdns_sd::{ServiceDaemon, ServiceEvent};

 fn main() {
@@ -32,13 +34,13 @@ fn main() {
     // Browse for a service type.
     service_type.push_str(".local.");
     let receiver = mdns.browse(&service_type).expect("Failed to browse");
-
+    let mut resolve_count = 0;
     let now = std::time::Instant::now();
     while let Ok(event) = receiver.recv() {
         match event {
             ServiceEvent::ServiceResolved(info) => {
                 println!(
-                    "At {:?}: Resolved a new service: {}\n host: {}\n port: {}",
+                    "1 At {:?}: Resolved a new service: {}\n host: {}\n port: {}",
                     now.elapsed(),
                     info.get_fullname(),
                     info.get_hostname(),
@@ -50,8 +52,57 @@ fn main() {
                 for prop in info.get_properties().iter() {
                     println!(" Property: {}", prop);
                 }
+                resolve_count += 1;
+            }
+            ServiceEvent::SearchStopped(_) => {
+                break;
             }
             other_event => {
+                println!("1 At {:?} : {:?}", now.elapsed(), &other_event);
+                if now.elapsed() > Duration::from_secs(122) {
+                    mdns.stop_browse(&service_type).expect("To stop browsing");
+                }
+            }
+        }
+    }
+
+    if resolve_count > 1 {
+        eprintln!(
+            "First browse resolved {} times, expected once, sad 🐼",
+            resolve_count
+        );
+        std::process::exit(resolve_count);
+    }
+
+    let receiver2 = mdns.browse(&service_type).expect("Failed to browse 2");
+
+    while let Ok(event) = receiver2.recv() {
+        match event {
+            ServiceEvent::ServiceResolved(info) => {
+                println!(
+                    "2 At {:?}: Resolved a new service: {}\n host: {}\n port: {}",
+                    now.elapsed(),
+                    info.get_fullname(),
+                    info.get_hostname(),
+                    info.get_port(),
+                );
+                for addr in info.get_addresses().iter() {
+                    println!(" Address: {}", addr);
+                }
+                for prop in info.get_properties().iter() {
+                    println!(" Property: {}", prop);
+                }
+                println!("Did resolve, happy 🐼");
+                mdns.stop_browse(&service_type).expect("To stop browsing 2");
+            }
+            ServiceEvent::SearchStopped(_) => {
+                break;
+            }
+            other_event => {
+                if now.elapsed() > Duration::from_secs(130) {
+                    eprintln!("Did not resolve, sad 🐼");
+                    std::process::exit(1)
+                }
                 println!("At {:?} : {:?}", now.elapsed(), &other_event);
             }
         }

And the latest commit i got it to work without the extra is_empty check, we now also remove the cache entry entirely if the cached addresses become empty.

@keepsimple1 does it make sense when refreshing SRV records, to also check whether the TYPE_A and TYPE_AAAA records for the matching host are also requiring a refresh?

Yes, I think it's good to refresh address records based on their own refresh timers (which mostly same as SRV records as they have the same TTL). Currently the responder includes the address records as well when replying TYPE_SRV refresh, but it looks like not always working. I will try out using your example.

@keepsimple1 does it make sense when refreshing SRV records, to also check whether the TYPE_A and TYPE_AAAA records for the matching host are also requiring a refresh?

Yes, I think it's good to refresh address records based on their own refresh timers (which mostly same as SRV records as they have the same TTL). Currently the responder includes the address records as well when replying TYPE_SRV refresh, but it looks like not always working. I will try out using your example.

I already added the refresh with my latest changes and it works fine for me so far, even on windows and also on android nowadays :)


Correct use of documentation param_type

Hello,
when params are defined using an existing grape entity documentation, param_type was not taken into account. I've commited a first modification for that issue.
But the correction has shown another issue : with a param_type now added, and if param is an array, data_type is now set to "array". I think this is inconsitant with allowMultiple parameter... In addition, according to swagger-spec 1.2 allowMultiple is valid only for some param_type ("query", "header" or "path"). Reason of the second commit.
Fab

Needs a CHANGELOG entry and a build fix, please (rubocop), and squash your commits. Thanks.

Ok, I've modified CHANGELOG, checked with rubocop and squashed my commit.
Note : a specific test has been commited for each change.

Merging. Thanks.


Allow passing a compressed WAR file in the '--war' argument

Currently --war option takes a part to the unzipped WAR file directory. Although it is good from the performance point of view, it causes confusion since Jenkinsfile Runner shows an odd behavior (classloading failures) when a WAR file is passed.
I suggest the following behavior:

If a WAR file is passed, Jenkinsfile Runner automatically unpacks it to a temporary directory OR to a work directory.
** In the case of the work directory (sharing between runs), a checksum should be calculated and persisted somehow to avoid collisions when a source war is changed. Such caching is not mandatory IMHO
When the option points to a WAR instead of the folder, a warning is printed to indicate the performance implications (WAR unpacking)

CC @btk3000

Is this still available?


Invite to the GitHub Community

Invite me to the GitHub Organization

oh this got missed because you didn't use the correct issue type of invite me to the organisation. I will manually add the label and the GitHub Action should pick it up

Thank you ! Eddie


use replace instead of insert to add extension

Previously ExtensionsMut::insert was used without a guarantee that we had exclusive access to a SpanRef's extensions.
This could lead to a panic in the insert function in the case where the extension was inserted concurrently by multiple calls to eval_ctx.
By using replace the assertion is ignored and it no longer matters whether we have exclusive access or not to a span in eval_ctx.
Example
Suppose we have have two parallel calls A and B to eval_ctx:
A is called with a span-tree with the following spans: iter: [SpanId(1), SpanId(2), SpanId(3)]
B is called with a span-tree with the following spans: iter: [SpanId(1), SpanId(2), SpanId(4)]
Both A and B enters the for loop and we suppose that they both adds Span(1) and Span(2) to their path.
Then A continues to iterate over its spans and reaches Span(3), which matches with the arm that eventually executes:
// path: [SpanId(1), SpanId(2)]
for span_ref in path.into_iter() {
    let mut write_guard = span_ref.extensions_mut();
    write_guard.insert::<LazyTraceCtx<SpanId, TraceId>>(LazyTraceCtx(
        TraceCtx {
            trace_id: local_trace_root.trace_id.clone(),
            parent_span: None,
        },
    ));
}

Everything is OK so far.
Then B reaches the same loop once it proceeds to SpanId(4).
B then tries insert the extension for SpanId(1), but it is already inserted by A.
This is forbidden and insert will panic.
Solution
As LazyTraceCtx is private, there is no way for another Layer implementation to conflict with our extension, this means that we should be able to ignore the assertion in insert and call replace instead . It should be OK to replace old extensions as the replacement will be identical to what's already stored.
The replace function does the same thing insert does but without the assertion (which we should be able to safely ignore):
https://docs.rs/tracing-subscriber/0.2.15/src/tracing_subscriber/registry/extensions.rs.html#90-92

@Fishrock123 We did experience panics multiple times when testing our system under heavy load. Specifically this assertion here failed: https://tracing.rs/src/tracing_subscriber/registry/extensions.rs.html#86.
About the write guard:
// WORKER A:
// path = [1, 2]
let mut path = Vec::new();

// iter = [3]
for span_ref in iter {
    // span_ref = 3

    let mut write_guard = span_ref.extensions_mut();
    // (write_guard protects span 3)

    // elided

    for span_ref in path.into_iter() {
        // span_ref = 1
        let mut write_guard = span_ref.extensions_mut();
        write_guard.insert::<LazyTraceCtx<SpanId, TraceId>>(LazyTraceCtx(
            // elided
        ));
    }
}

// WORKER B:
// path = [1, 2]
let mut path = Vec::new();

// iterm = [4]
for span_ref in iter {
    // span_ref = 4

    let mut write_guard = span_ref.extensions_mut();
     // (write_guard protects span 4)

    // elided

    for span_ref in path.into_iter() {
        // span_ref = 1
        let mut write_guard = span_ref.extensions_mut();
        write_guard.insert::<LazyTraceCtx<SpanId, TraceId>>(LazyTraceCtx(
            // elided
        ));
    }
}

In the example above, as worker A is locking span 3 and worker B is locking span 4, both of them can be in the "for-loop" at the same time. It's enough that any of the spans in the path is shared to cause this panic.

Hmm, seems reasonable enough (and unfortunate). I'll try to get a release out later today.

Also, cross linking the original issue: https://github.com/inanna-malick/tracing-honeycomb/pull/14

Thank you!  And thank you for all the work you have put into this crate!
We found another bug in libhoney that I thought you might be interested in: https://github.com/nlopes/libhoney-rust/issues/74

released:

eaze-tracing-distributed 0.2.0-eaze.3
eaze-tracing-honeycomb 0.2.1-eaze.3


fix(instrumentation): normalize paths for internal files in scoped packages

Which problem is this PR solving?
See #4436. On Windows, internal files were not instrumented as this check was failing.
This happens, as require-in-the-middle returns the package name concatenated with a path seperator (/ or \ depending on platform).
On scoped packages, this turns out to be something like @opentelemetry/test-package\src\internal.js (note the mixed \ and /). To find the files to patch, this check is performed in the node-specific instrumentation base class. As the string for name in the module's files is then @opentelemetry\test-package\src\internal.js (note: all path seperators are \), this check fails, and all files are filtered out.
While it would be possible to normalize the name passed to InstrumentationBase._onRequire() from RequireInTheMiddleSingleton, this would also normalize main module names like @opentelemetry/test-package to @opentelemetry\test-package, which means that internal files will be instrumented, but the main module will not.
Therefore this PR adds normalization of the name used during filtering instead of directly in RequireInTheMiddleSingleton.
Fixes #4436
Fixes #4402
Related https://github.com/open-telemetry/opentelemetry-js-contrib/issues/1925
Short description of the changes

normalizes path returned by require-in-the-middle hook before checking the name against module file names

Type of change

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

How Has This Been Tested?

[x] Added tests
[x] Manual testing on Windows

On scoped packages, this turns out to be something like @opentelemetry/test-package\src\internal.js (note the mixed \ and /).

Ew. RITM isn't being very nice here.


[Question] Why add Y-direction 64-bit hash?

I was using another image hash lib (https://pypi.org/project/ImageHash/) which does not do this.
Is this XY-128bit pattern a convention or something?

Are you asking why dhash does it in both the X and Y directions to form a 128-bit hash? That's because you get much better results if you do both directions -- images have "changes" or "differences" in both directions, so using both directions in your hash means fewer false positives. There's a note to this effect in Dr. Neal Krawetz's original blog entry about dhash:

Storing values by row or column really doesn't make a difference. Computing both row and column hashes significantly reduces the number of false-positives and is comparable to pHash (almost as accurate). So it maintains speed and gains accuracy as the cost of requiring 128 bits for the hash.

Are you asking why dhash does it in both the X and Y directions to form a 128-bit hash? That's because you get much better results if you do both directions -- images have "changes" or "differences" in both directions, so using both directions in your hash means fewer false positives. There's a note to this effect in Dr. Neal Krawetz's original blog entry about dhash:

Storing values by row or column really doesn't make a difference. Computing both row and column hashes significantly reduces the number of false-positives and is comparable to pHash (almost as accurate). So it maintains speed and gains accuracy as the cost of requiring 128 bits for the hash.


readBattery always returns 0.0 on inkplate5

So I continue tinkering with the device. With a battery that has been charging for about 2 hours, I try to run this simple example
from inkplate5 import Inkplate
from soldered_logo import *
import time

display = Inkplate(Inkplate.INKPLATE_1BIT)

if __name__ == "__main__":
    display.begin()
    display.clearDisplay()
    print(display.readBattery())

Being the result always "0.0".
I tried to debug a bit by making the function read_battery return only the value, here:
    @classmethod
    def read_battery(cls):
        cls.VBAT_EN.digitalWrite(0)
        # Probably don't need to delay since Micropython is slow, but we do it anyway
        time.sleep_ms(5)
        value = cls.VBAT.read()
        print(value)
        cls.VBAT_EN.digitalWrite(1)
        #result = (value / 4095.0) * 1.1 * 3.548133892 * 2
        result = value
        return result

And result always has the value 0, I understand that the reading has been incorrect in the first place. I have tried to give it a little more time (sleep_ms(15)) to no avail.
Temp reading works, by the way. But I can see that this utilizes the i2c bus.

So, it seems that you care more about selling new devices than to maintain those that you already sold. Besides, I don't know if it is normal that a simple watch that to partial resets and sleeps most of the time https://git.sr.ht/~danielside/Reloj/tree/master/item/main.py drains the battery in an hour.

Hi @Danielside
we prioritize the Arduino library over this one. The Micropython library was originally written as a contribution so, we're just adapting to it. If you're looking to use Inkplate in a more serious project with requirements, I recommend the Arduino library over this.
Could you try changing the first VBAT value to 1 and the second to 0? I believe that should be the way the GPIO pin should interact with the MOSFET.

Hi @Danielside
really sorry about this. I understand how this was frustrating for you. I take responsibility for it as I'm the one maintaining this repository, let me know if there is some other feature of this I could assist you with and I'd be happy to.
Unfortunately, we have a limited number of hours spent working on our libraries so we have to prioritize the Arduino one, this is mainly why this happened.
I've gotten around to look at this and the issue was an inverted usage of the VBAT_EN pin, check out the latest push to the dev branch: https://github.com/SolderedElectronics/Inkplate-micropython/tree/dev - if you're still interested in using the library, give it a try.
-Rob

It works now, thanks.
When I bought the device, I would have appreciated a BIG NOTE besides the micro python library, saying that it is not thoroughly tested or officially supported.
Keep in mind that you have been in the market for several years now, I did not expect this library to have these kind of problems.
Daniel


Investigate SQL Pools for Synapse

Related to this thread, we should investigate if we can use SQL Pools on Synapse in the Synapse operators

@phanikumv as per thread I think we should be good to close this?

Yes, closing it


Exclude non-rc pre-releases from qpy backwards compat tests

Summary
The QPY backwards compatibility tests are setup to verify that we can load qpy files generated with historical releases using the current version of Qiskit under development. This ensures we're meeting our backwards compatibility guarantees with QPY. However, the tests were over eagerly running on pre-releases that don't have any stability guarantees, mainly alpha and beta releases indicated by "a" and "b" suffixes respectively in the version number. This commit excludes these pre-release versions from the tests as it's not valid to run with these. Release candidate pre-releases should still be run because they have stable APIs and they're not skipped by this PR.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 89.372%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
59319

Relevant Lines:
66373

💛  - Coveralls


Correct way to use nullable()

Hi
This is my pseudocode, and I still can`t register a new record without userType and picture with null values... is there anything else to do?
class Students extends Table {
  IntColumn get id => integer().autoIncrement()();
  IntColumn get userId => integer()();
  IntColumn get userType => integer().nullable()();
  DateTimeColumn get date => dateTime()();
  RealColumn get value => real()();
  TextColumn get picture => text().nullable()();
}
...
var n = new Student(
  userId: loggedUser.id,
  date: new DateTime.now(),
  value: val,
);
...
await _dao.addEntry(n);
...
Future<void> addEntry(Student data) async {
  into(db.students).insert(data.toCompanion(true));
}

I would recommend to use a StudentsCompanion.insert instead of Student by that code looks alright to me. Are you getting an exception with that?


hello why in import something in class told me that if and else path not taken

Please do not submit this issue.

[ ] I understand

Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.


fix selected row className

close #488

Released on v2.3.4. Thanks your contribution

a pleasure!


pythonpackages.scikitimage: add missing dependency

Motivation for this change
imageio is a required package for scikit-image according to https://github.com/scikit-image/scikit-image/blob/master/requirements/default.txt but is missing from derivation. This causes a failed build.
Things done

[X] Tested using sandboxing
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

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

Notify maintainers

@GrahamcOfBorg build python37Packages.aplpy python37Packages.caffe python37Packages.dask-image python37Packages.datashader python37Packages.glymur python37Packages.image-match python37Packages.pims python37Packages.scikitimage


RuntimeWarning when train

I got a warning when training, the detailed message is as follow
/data/aigc/speech/AudioClassification-Pytorch/macls/data_utils/audio.py:501: RuntimeWarning: divide by zero encountered in log10   return 10 * np.log10(mean_square)
should it be noticed?

It's not a big problem, don't worry


add route prefix config

Why is this useful?

in my situation
Nginx configration like this
Domain.com/ response  index.html for react application
Domain.com/api/ production server
Domain.com/api-alpha/    alpha testing

can't you just set OPCACHE_URL=http://domain.com/api-alpha ?

but this change only requests routes still domain.com/opcache


ARROW-11146: [CI] Remove test-conda-python-3.8-jpype build

The changes to tasks.yml looks good, however a few notes:

Could you rebase/squash your commits here so that we don't have all of that extraneous history? It should be fine when we squash + merge it, but we want to make sure we're being clean with this and it's not touching other things accidentally / unnecessarily
Dig more into the failure that you noted. What failed? Does it make sense that these changes are touching that?
Could you update the format of the PR to match our style (pick either of the two tickets we have for this to use as the ticket number + mark the other as a duplicate)

The changes to tasks.yml looks good, however a few notes:
* Could you rebase/squash your commits here so that we don't have all of that extraneous history? It should be fine when we squash + merge it, but we want to make sure we're being clean with this and it's not touching other things accidentally / unnecessarily

* Dig more into the failure that you noted. What failed? Does it make sense that these changes are touching that?

* Could you update the format of the PR to match our style (pick either of the two tickets we have for this to use as the ticket number + mark the other as a duplicate)

sure !!
no problem, I'll do that now and push again

ready :)

I'm still seeing a bunch of commits that seem unrelated to this change — how did you go about squashing or rebasing so that you don't have that unrelated history in this branch?
Additionally: Dig more into the failure that you noted. What failed? Does it make sense that these changes are touching that?

hmm... i'm not so sure
here I see 1 file changed https://github.com/apache/arrow/pull/10232/files

I did a rebase and then a push and it went well

i'll open a new pr... it's better i think

moved to https://github.com/apache/arrow/pull/10238


sbt-assembly not working

Hi I have followed every way suggested by the community but I cant get my SBT assembly plugin to work.
I have created assembly.sbt file in project directory, use the same addSbtPlugin option in my plugins.sbt file. but still I cant get it to work,
IDE : IntelliJ  IDEA CS
Scala = 2.11.11,211.8(tested on both)
sbt = 0.13.16
Any sort of help would be appreciated

@reddybhavaniprasad

Why you are not using stackoverflow.com for this kind of questions?
Please run sbt assembly in your project's directory. Not in default root's directory.

Thanks for the reply.
I tried running "sbt assembly" from the project's directory still faced the same issue.
The issue is due to version mismatch of sbt-assembly. sbt with >1.0 versions need a sbt-assembly 0.14.6 versions and above. Now, it is working fine.


Blaming line causes errors when repo has no commits

Description
Blaming line causes errors when repo has no commits
Neovim version
NVIM v0.5.0
Operating system and version
Windows 10 21H2
Steps to reproduce

Create a repo with no commits:

mkdir new_repo
cd new_repo
touch README.md
git init

Write something into README.md

echo "Hello, world" > .\README.md

Stage README.md file:

git add README.md

Open README.md and press <leader>hb to blame the new input line.

Expected behavior
No errors occur.
Actual behavior
The following error occurs:

Gitsigns debug messages
No response
Minimal config
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvim/site]]
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'

if vim.fn.isdirectory(install_path) == 0 then
  print("Installing Gitsigns and dependencies.")
  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }
end

-- Load plugins
require('packer').startup {
  {
    'wbthomason/packer.nvim',
    {
      'lewis6991/gitsigns.nvim',
      requires = { 'nvim-lua/plenary.nvim' },
    },
    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  },
  config = {
    package_root = package_root,
    compile_path = install_path .. '/plugin/packer_compiled.lua',
    display = { non_interactive = true },
  },
}

_G.load_config = function()
  require('gitsigns').setup{
    debug_mode = true, -- You must add this to enable debug messages
    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  }

  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE

  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES
  vim.cmd('Gitsigns debug_messages')
end

require('packer').sync()

vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]

I have the same error

I could have a look at this later this weekend.

I could have a look at this later this weekend.

Thanks.
I forgot some key steps to reproduce the bug before, I have updated my post, now it's 100% reproduced by following the steps above.

Fixed in https://github.com/lewis6991/gitsigns.nvim/pull/361


ci: various fixes for linting

This PR

resolves CI blockers

Related Issues

Notes

More to come as I work through issues in CI
Follow-up Tasks

How to test

If the CI tests pass we're good to move forward

Still need to fix up some Flagd tests.

CI tests pass. This should unblock some more work with more safety 🛟


abi_serializer max_serialization time code cleanup

Currently the abi_serializer max_serialization_time is set via a static global. This would be cleaner if it was passed into methods that require it:
   fc::variant binary_to_variant(const type_name& type, const bytes& binary)const;
   bytes       variant_to_binary(const type_name& type, const fc::variant& var)const;
   fc::variant binary_to_variant(const type_name& type, fc::datastream<const char*>& binary)const;
   void        variant_to_binary(const type_name& type, const fc::variant& var, fc::datastream<char*>& ds)const;

   template<typename T, typename Resolver>
   static void to_variant( const T& o, fc::variant& vo, Resolver resolver );

   template<typename T, typename Resolver>
   static void from_variant( const fc::variant& v, T& o, Resolver resolver );

Done with 4463


Add 2023-content-blocking-for-the-ipfs-stack.md

Thanks for the suggestions @mishmosh, I think I've integrated them all 🙌
Over to you now @damedoteth 🤞

Thanks for the edits @damedoteth, looks great!


Repo sync for protected CLA branch

The pull request is created from main637794236805102903 to main to fix git push error for protected CLA branch

@opbld16 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"


Fix csi cinder disk teardown on EIO errors

What this PR does / why we need it:
Handle teardown of cinder disks which return an "Input/Output" during os.Stat system call.
It is a reproducible problem which exists and persists if the disk is already detached via nova volume-detach but still mounted inside the operating system.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Fixes the issue on the Cinder CSI side mentioned in https://github.com/kubernetes/kubernetes/issues/77969
Special notes for your reviewer:
As discussed in Mattermost :-)
The problem is reproducible as follows:

create statefulset gist
detach cinder disk manually (to reproduce the problem, may be a race-condition) nova volume-detach
wait for disk to get I/O error on vm# ls /var/lib/kubelet/plugins/kubernetes.io/csi/pv/pvc-fc52b5a4-77bc-11e9-8554-fa163e0629eb/globalmount
ls: cannot access '/var/lib/kubelet/plugins/kubernetes.io/csi/pv/pvc-fc52b5a4-77bc-11e9-8554-fa163e0629eb/globalmount': Input/output error

call pod deletion kubectl delete pod test-statefulset-0
Now the pod is stuck in termination and the logs show input/output error

Release note:

/ok-to-test

/test pull-cloud-provider-openstack-test

/test cloud-provider-openstack-acceptance-test-standalone-cinder

/test cloud-provider-openstack-acceptance-test-e2e-conformance

@chrischdi the fix looks good to me, assigning it to @ramineni, as she has worked on mount pkg.
/assign @ramineni

/lgtm

/test cloud-provider-openstack-acceptance-test-e2e-conformance

/test cloud-provider-openstack-acceptance-test-e2e-conformance

@chrischdi +1 , Thanks for the fix. Looks good to me as well .

/lgtm

cc @lingxiankong for approval :)

/approve


Content style guide discovery

Problem statement
The current style guide for ReportStream could use some updates and refreshing, especially in the glossary/terminology sections.
This might spawn into its own epic of style guide development, but starting with just logging things that stand out as I work on other projects.
What you need to know

Current/past style guide

Acceptance criteria

[ ] Gather notes on terms to define
[ ] Gather other observations on style guide elements to define or build
[ ] Create plan for next steps

To do

[ ] ...

@lizzieamanning FYI
@chris-kuryak Let me know if I need to explain more. This is kind of on-going work that I've been doing in the background but that I wanted to be defined somewhere. So this might not be "done" this sprint, but I wanted to track it as it is continuing.


FINERACT-1089 removing the rs.previous()

Description
Describe the changes made and why they were made. Ignore if these details are present on the associated Jira ticket https://issues.apache.org/jira/browse/FINERACT-1089
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Commit message starts with the issue number from https://issues.apache.org/jira/projects/FINERACT/. Ex: FINERACT-646 Pockets API.

[ ] Coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions have been followed.

[ ] API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm has been updated with details of any API changes.

[ ] Integration tests have been created/updated for verifying the changes made.

[ ] All Integrations tests are passing with the new commits.

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the list.)

Our guidelines for code reviews is at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide

@ptuomola @vorburger LGTY?

@percyashu are you still addressing comments from @ptuomola - looked like next step was a test case with known output.

@edcable am still addressing it, had some difficulties in understanding the appropriate test case for the extractData and the subsequent mapRow replacement.


fix: DocContainer, wrap with FaencyProvider

Description
FaencyProvider was not wrapping all stories at once when in doc mode, resulting in IdProvider rendering duplicate ids for some components:

tooltip
label/input

Docs addon describes a recipe to wrap the whole doc with a provider: https://github.com/storybookjs/storybook/blob/next/addons/docs/docs/recipes.md#overwriting-docs-container
Unfortunately, "canvas" mode doesn't share the same global rendering as "docs" mode. "docs" mode renders each canvas in a global doc, resulting in FaencyProvider wrapping duplication. So far, it doesn't seem to be a problem, but I'd like your feedback on that.
Changes:

solve the previous issue
don't break behaviour in "canvas" mode
duplicate FaencyProvider wrapping in "docs" mode:

I added a <div className="toto"> inside the FaencyProvider component to highlight its rendering in "docs" mode

I went through all options I found to avoid that wrapping duplication but none seems to work so far. Here's a summary of the documentation I read:

https://storybook.js.org/docs/react/writing-stories/decorators#global-decorators
https://storybook.js.org/docs/react/addons/writing-presets#previewmanager-templates
https://storybook.js.org/docs/react/configure/story-rendering#adding-to-body

Close issues
Closes #205
Preview
Before (from another PR)
https://user-images.githubusercontent.com/3367393/143468439-e76c5cb0-d5f8-4b0f-ba47-8435ed0bb339.mov
After (without other PR stories :shrug: )
https://user-images.githubusercontent.com/3367393/143468645-a57a822c-35e8-4f9a-8ed2-8cc7487afa6c.mp4
If you want to reproduce the previous use case (tooltips), simply rebase on top of seedy:feat/update-tooltip-styles

@matthieuh Whenever you have time, this PR has been stale for a while

:tada: This PR is included in version 2.5.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Drains spam their sound if there's a puddle on top

It's REALLY annoying.

seems like resolved
https://github.com/space-wizards/space-station-14/assets/124214523/387b5de6-7bf8-4292-af7c-c83101df1f5e

I think this one can be closed. Drain SFX are pretty unobtrusive now (I tested on master, and it's similar to the last commenter's video).


Fix AttachmentMessage.toString returning an Object

Fixes #303
The attachment link is included at the start of this.text

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Tex Moran seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Improve setup CMake file

Added an ON_DEMAND option to allow libraries to be built and installed individually.

Modified the build instructions to run ldconfig after each package is installed if the USE_SUDO option is in effect.

Add a parameter to the Abseil library build to set the RUNPATH of each library to $ORIGIN.

Signed-off-by: Derek G Foster<EMAIL_ADDRESS>

Changes LGTM.. A suggestion to add a readme we discussed on our call specifying the use of ON_DEMAND option and properties like EXCLUDE_FROM_ALL

An excellent idea.


chore(pfToolbar): fix typo in directive name and link from 'componenet' to 'component'

Description
Hi,
While browsing the PatternFly API, I noticed a typo in the URL [0] of the pfToolbar ('componenet' is used instead of 'component').
This short patch changes the name and links to 'component', so it's URL is more consistent with other component URLs.
Thoughts?
Cheers,
aptmac
[0] https://www.patternfly.org/angular-patternfly/#/api/patternfly.toolbars.componenet:pfToolbar
PR Checklist

[ ] Unit tests are included
[ ] Screenshots are attached (if there are visual changes in the UI)
[ ] A Designer (@beanh66) is assigned as a reviewer (if there are visual changes in the UI)
[ ] A CSS rep (@cshinn) is assigned as a reviewer (if there are visual changes in the UI)

Yeah sure, that sounds good.
Hm, I tried to amend the commit message and it wanted me to git pull before I could push it to my branch, so I ended up with this empty commit. Are these able to be squished and the commit message changed to that second commit? (I'm relatively new to PRs & Git features outside of backing up my own work)

Are these able to be squished and the commit message changed to that second commit?

Yes, you will need to issue a "git rebase -i HEAD~3" and squash all three commits into one with the 'chore(..).

Fair enough, I'm trying to rebase this now.

Alright thanks for your patience, that took me longer than I was hoping. This should be one commit now.


UnboundLocalError when mapping single modality new data

When trying to use a trained model for mapping of new (single-modality) data with predict_new I get the following error:
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
Input In [21], in <cell line: 1>()
----> 1 model.predict_new(adata)

File /nfs/team205/ed6/bin/multiDGD/src/multiDGD/_dgd.py:483, in DGD.predict_new(self, testdata, n_epochs, include_correction_error, indices_of_new_distribution)
    481 # prepare test set and loader
    482 if testdata is not None:
--> 483     self.init_test_set(testdata)
    484 else:
    485     self.test_set.data_to_tensor()

File /nfs/team205/ed6/bin/multiDGD/src/multiDGD/_dgd.py:475, in DGD.init_test_set(self, testdata)
    474 def init_test_set(self, testdata):
--> 475     self.test_set = omicsDataset(testdata, split='test', scaling_type=self._scaling)
    476     self.test_set.data_to_tensor()

File /nfs/team205/ed6/bin/multiDGD/src/multiDGD/dataset/_dataset.py:69, in omicsDataset.__init__(self, data, scaling_type, split)
     66 self.scaling_type = scaling_type
     68 # get modality name(s), position(s) at which modalities switch in full tensor, and number of features in each modality
---> 69 self.modalities, self.modality_switch, self.modality_features = self._get_modality_names()
     71 # I tested training with mosaic data, but that does not work well
     72 # I will add a training scheme in the future and then will do proper supprt
     73 self.mosaic = self._check_if_mosaic()

File /nfs/team205/ed6/bin/multiDGD/src/multiDGD/dataset/_dataset.py:178, in omicsDataset._get_modality_names(self)
    176 else:
    177     modality_features = [int(self.data.shape[1])]
--> 178 return modalities, switch, modality_features

UnboundLocalError: local variable 'switch' referenced before assignment

It looks like this originates from here (specific to AnnData)
https://github.com/Center-for-Health-Data-Science/multiDGD/blob/1f072f73c7d6d3f376618980874e107dc59d9388/src/multiDGD/dataset/_dataset.py#L172-L178
In my fork I managed to fix this by adding a line:
            modalities = list(self.data.var['modality'].unique())
            if len(modalities) > 1:
                switch = np.where(self.data.var['modality'] == modalities[1])[0][0]
                # currently only support 2 modalities
                modality_features = [int(np.where(self.data.var['modality'] == modalities[1])[0][0]), int((self.data.shape[1]-np.where(self.data.var['modality'] == modalities[1])[0][0]))]
            else:
                modality_features = [int(self.data.shape[1])]
                switch = np.where(self.data.var['modality'] == modalities[0])[0][-1] + 1

I added switch=None instead, as there is technically no modality switch for a single modality.


Aftab ansari/web sites create web app using vscode patch

@aftab10662,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

@Erikre @cephalin @danroth27 @Rick-Anderson @SyntaxC4 Request you guys to review the PR.

Hi @Rick-Anderson i have made all necessary changes, please have a look on this.
If needed any other correction, just let me know.

@tdykstra can you take a quick look

@aftab10662  looks good thanks. Hopefully the azure-docs folks will merge this soon.

@AftabAnsari10662 @Rick-Anderson Thanks for the contribution and review. Rick, for other pull requests, please sign off so that automation indicates that it's ready to merge.

@jomolnar @Rick-Anderson Thanks for approving and merging.
I would like to know when the deployment happens?


[QUESTION-HELP] Templater,Quickadd Problem - name of the note should come from the form?

great plugin, many thanks to the developer.
i have a problem with modal form and templater, quickadd.
how can i manage to pass a field from modal form to templater as the title of the note?
unfortunately i can't create the note via a form ;(
is there any way to do that?
I can use suggester from the templater plugin, but I want to make the input uniform and only via a form.
I have a form and the first field is a name.
The note should then be called exactly the same as the name. Unfortunately I can't find a solution!
Does anyone know what to do?

sorry if this post is not allowed here...
i didn't know where i could get help ...

there are a few ways to do it. start with https://github.com/danielo515/obsidian-modal-form?tab=readme-ov-file#formresult-methods.
there is also a  result.get("somthing") name that isn't documented that you can use.

Hi,
thank you for your answer. Unfortunately I can't get it to work. I have a template with the code:
i start the plugin via the plugin templater and call up the form, before that a note "untitled.md" is created. if i have a field in the form with the name "customer name", i would like the file "untitled.md" to be renamed to the content of the field Kundenname after the form has been submitted. unfortunately i always get a parsing error. unfortunately i can't program that well and don't know where to put what and the exact syntax ;(
<%*
const modalForm = app.plugins.plugins.modalforms.api;
const result = await modalForm.openForm('form');
tR += result.asFrontmatterString();
-%>
<%*
let filename = tp.file.title
if ( filename.startsWith("Untitled") ) {
await tp.file.rename(tR += result.get("Kundenname");)
}
%>

im not an expert .. so atb a glance
I don't think you have that first block correct.  I'd try something like
<%*
const modalForm = app.plugins.plugins.modalforms.api;
const result = await modalForm.openForm('form');
let frontmatter = result.asFrontmatterString();
-%>
---
<% frontmatter %>
---

also
result.get("Kundenname");)
looks wrong
alo check to make sure all the names match exactly between your template, and form.

thanks again for the quick reply. i have found a solution :-) the file has the name of the field and is moved to a specific folder :-) perfect. thank you very much and all the best
---
<%*
const modalForm = app.plugins.plugins.modalforms.api;
const result = await modalForm.openForm('form');
tR += result.asFrontmatterString();

let filename = tp.file.title

if ( filename.startsWith("Untitled") ) {

  await tp.file.rename(result.get("Kundenname"));
  await tp.file.move("Kunden/" + result.get("Kundenname"));
}

-%>
---

I'm super happy to see people from what looks like a little community helping each other. All the comments of @the1gofer are correct. tR is a special templater variable that just contains the text body of the note you are creating.
The right way of doing this is, if you don't have the title from the beginning, ask for the right values in the form,then move and rename from templater just like what you did .
@the1gofer let me know how we can improve the discoverability of the documentation, because the get method is documented. Check the "managing results" section (sorry for the lack of detail, on my phone now)


Library sync from Jellyfin is partial even though ersatztv claims it's complete

Did a clean install of ersatztv after fixing #1103, and while the seasons now have the correct info, only about 20% of the TV Shows got synced to Ersatztv. Sync has finished and only 101 shows out of 490 have been synced over. It seems to sync over a few more each successive sync after this (10 or so).
Movie library (2k items) has synced without issues.
No errors in ersatztv logs.

Oh. It looks like it's still syncing in the background even though the progress bar in the ui claims 100%.


Manage Documents

Is there anyway to send documents via api ?

Hi @carlos-ferreira,
Currently we are not supporting REST API for sending documents.
Please check our supported API
https://github.com/agilecrm/rest-api#table-of-contents
Please let us know in case need further information.
Thanks


Update specs2-core, specs2-scalacheck to 4.13.0

Updates

org.specs2:specs2-core
org.specs2:specs2-scalacheck

from 4.12.12 to 4.13.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.specs2" } ]

labels: test-library-update, semver-minor

Superseded by #101.


Adding InTriggerDistanceToLocationAlongRoute behaviour to the tree in TS03

Adding InTriggerDistanceToLocationAlongRoute behaviour to the tree

removed timeout from the tree
added names to the leaf nodes for better log entry

Where has this been tested?

Platform(s): Ubuntu 18.04
Python version(s): 3.5
CARLA version: 0.9.5

This change is

TS 3 is fine, with a just a few places where maybe the pedestrians would spawn too early.
But i think it makes complete sense to depend on time to arrival. Has this been tested on several routes ? 40+ routes  on all towns ? what is the advantage ? Is there any bug associated with the previous approach ?


Streamfield migration error

Migrations for streamfields import the actual classes for custom blocks but this causes an error once they've been removed, and prevent creating new migrations. If possible they should reference all classes by a string instead of trying to import them.

See https://github.com/torchbox/wagtail/issues/823#issuecomment-74682820 for the detailed explanation of this.
In the general case, when you create a custom block type, you are committed to keeping those class definitions around forever (or else you have to rewrite your migrations). This is because the migration mechanism needs to be able to construct a fully working replica of the StreamField object as it existed at the time of the migration - string references are not enough.
For StreamBlock and StructBlock subclasses, I've been able to make an exception: there's a standardised way of subclassing these, which the base classes know about, and so the migration can contain a definition of the block that's expressed entirely in terms of the base StreamBlock / StructBlock class. For FieldBlock and everything else, this isn't possible, because we have no way of knowing what customisations have been made.
This will be part of the documentation, I promise :-)

I believe the reason for importing them is so the classes are guarenteed to exist in the project whenever old migrations get run, this lets any old data migrations to deserialise the streamfield with the blocktypes that were available at the time the migration was first created.
So if you change them, this is basically Djangos way of warning you to update your old migrations...
Theres another related issue that if you change a custom block, those changes are not recorded in a migration, so somebody relying on Django/Wagtail to be able to deserialise some streamfield data reliably may have issues if they just change one of their custom blocks.
Since all custom stream blocks are built up from the standard ones, would it be possible to serialise them in migrations that way? This has the advantage that changes to custom blocks get recorded as well. This may lead to large, horrible to read, migrations though

So as long as I'm subclassing only StreamBlock and StructBlock this shouldn't be an issue? Btw, I should have been using a ChooserBlock anyway, instead of a custom FieldBlock.

@kaedroho "Since all custom stream blocks are built up from the standard ones, would it be possible to serialise them in migrations that way?" - Yes, this is exactly what happens for subclasses of StreamBlock and StructBlock.
@balazs-endresz Yes, that's correct. (And, actually, ChooserBlock is another special case that can be safely subclassed: you can pass choices to the constructor, or create a subclass with a choices property.)


Introduction of firework.css in AI on the edge firmware appears to have broken collectmeterdigits

Since upgrading AI on the edge firmware to rev 14, collecting images results in the error:
Traceback (most recent call last):
File "collectmeterdigits_main_.py", line 39, in
main()
File "collectmeterdigits_main_.py", line 34, in main
collect(args.collect, args.days, keepolddata=args.keepdownloads, download=not args.nodownload, startlabel=args.startlabel)
File "collectmeterdigits\collect.py", line 193, in collect
readimages(meter, target_raw_path, days)
File "collectmeterdigits\collect.py", line 69, in readimages
img = Image.open(requests.get(serverurl+url, stream=True).raw)
File "PIL\Image.py", line 3147, in open
PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x000002F32624E270>
[99400] Failed to execute script 'main' due to unhandled exception!
By filtering the list of urls in collect.py for only those ending in jpg I have avoided this issue, it appeared to by interpreting firework.css as an image file.

Fixed with v1.0.3


1.5.0 - problem with jaxrs Reader (implicit) body parameter handling

hi,
i am seeing the following:
when an @ApiImplicitParam is used with paramType = "body", the jaxrs Reader parses the whole api class (i.e. @Api annotated resource) as a model and puts it into the schema. this causes highly unpredictable behavior. in my case, i get an NPE trying to filter the resulting swagger with a SpecFilter.
i think the offending call is here:
https://github.com/swagger-api/swagger-core/blob/v1.5.0/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/Reader.java#L399
does it really make sense to supply method.getDeclaringClass() there or shouldnt that rather be sth. like Class.forName(param.dataType()) (or similar, if dataType is a simple type and not a fqcn)?
the issue only occurs when using an implicit body param because then we arrive here:
https://github.com/swagger-api/swagger-core/blob/v1.5.0/modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/ParameterProcessor.java#L119
if it is not a body param (i.e. an instance of AbstractSerializableParameter), the class/type is not used at all..
hope that makes some sense. thanks, zyro

Fixed in develop_2.0.

Is there a version we can use that has this fix? 1.5.1-SNAPSHOT maybe?

Yeah, it should be in 1.5.1-SNAPSHOT, feel free to try it and let us know how it goes.

I tried, but it's still giving me version 1.5.0. I attempted to just change the version in the dependency here. Am I misunderstanding how to change the version?
         <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-jersey-jaxrs</artifactId>
                <version>1.5.1-SNAPSHOT</version>
            </dependency>

If you're still getting 1.5.0, you may have another dependency in it.
Also, make sure you have the sonatype repository defined for snapshots because snapshots are not available at maven central.

I got it running on the latest version, but my swagger.json page is giving a 500 error now.
"javax.servlet.ServletException: java.lang.NoSuchMethodError: io.swagger.annotations.ApiParam.hidden()Z"

Looks like there's a trailing Z?

@Syzygy24 - thanks for the feedback, much appreciated.


TO REPORT A BUG:

Create your report here, with a screenshot of the bug, and any/all error codes that come with it.
If I do not reply within a satisfactory period, PLEASE DM me on discord: engineergaming2400

Hi dude I hope you are okay, Whenever I tried to create a characther Im getting "Unknown Error". Please help me if you can.


Export image for each labelled object

Is there a way to export an image of each labelled object. We use R at the moment to do this after exporting each task. It would be great if cvat supported this feature.
I.e. select export, select export as classifier, select which objects to export, cat, dog. Two folders would be created, one with cats and one with dogs.

@BarcaBear , CVAT supports multiple data annotation formats: https://github.com/openvinotoolkit/cvat#supported-annotation-formats. You can use REST API to export an archive in an appropriate format and use it for any purpose. Also https://voxel51.com/docs/fiftyone/ has great integration with CVAT.

Has this been marked completed because the feature has been implemented? Or because there is no work planned?

@BarcaBear
Your request in general is supported.
For example you can export data in Datumaro format and after that modify or filter the dataset as you wish.


handle empty autograd.Function

This does two things

reworks the autograd.Function.apply lookaside a bit to make it more principled with scopes and how the symbol is used,

use push_scope and pop_scope
call the function symbol to record it in the trace
create a meta-function from the trace

adds a copy_shallow prim giving us a copy of the tensorproxy. This is needed to handle outputs which are identical to the tensors except for the backward, in particular "empty"/identify forwards.

Fixes: #1187
@crcrpar removing the BoundSymbol is (a bit more than) what I meant with removing ..._ctx.

After this PR, @tfogal 's neva-dynamo.sh is at
[rank0]:   File "<eval_with_key>.131", line 14, in forward
[rank0]:     output_parallel = torch._functorch.autograd_function.autograd_function_apply(fwd_body_1, bwd_body_1, input_parallel, l_self_query_key_value_weight, args_tensor_mask = [True, True, False, False]);  fwd_body_1 = bwd_body_1 = input_parallel = l_self_query_key_value_weight = None
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/thunder/core/interpreter.py", line 1292, in wrapping_wrapper
[rank0]:     res = ufn(*uargs, **ukwargs)
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/thunder/core/jit_ext.py", line 387, in wrapper
[rank0]:     return fn(*args, **kwargs)
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/thunder/core/symbol.py", line 320, in __call__
[rank0]:     result = self.meta(*args, **kwargs)
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/thunder/core/langctxs.py", line 136, in _fn
[rank0]:     result = fn(*args, **kwargs)
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/thunder/torch/__init__.py", line 5472, in autograd_function_apply
[rank0]:     result, saved_for_backward = fwd(None, *args)
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/torch/fx/graph_module.py", line 738, in call_wrapped
[rank0]:     return self._wrapped_call(self, *args, **kwargs)
[rank0]:   File "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/torch/fx/graph_module.py", line 314, in __call__
[rank0]:     raise e.with_traceback(None)  # noqa: B904
[rank0]: TypeError: matmul(): argument 'input' (position 1) must be Tensor, not TensorProxy

and with nemo.sh (using the jit directly)
[rank0]:   File "/teamspace/studios/this_studio/nemo/nemo/collections/nlp/modules/common/megatron/transformer.py", line 1635, in forward
[rank0]:     hidden_states = layer(
[rank0]: TypeError: forward(): incompatible function arguments. The following argument types are supported:
[rank0]:     1. (arg0: torch.Tensor, arg1: float) -> torch.Tensor

[rank0]: Invoked with: <TensorProxy(name="t4334", dtype=thunder.dtypes.bfloat16, shape=(80, 384, 384))>, <TensorProxy(name="t4338", dtype=thunder.dtypes.int64, shape=())>

Probably could be made even prettier.