Error when module's qualified name is different from the module file location

Hi Kale,
Thanks for your work on this project, I find it very useful for documenting large classes.
I have a project where, via __init__ files, the qualified names differ from the file path for files containing some class definitions. When I try to add .. autoclasstoc:: to an existing RST doc (that successfully builds prior to adding), I get a ModuleNotFound error. For example, I have a RectangleGate class that has the qualified path flowkit.gates.RectangleGate and would be imported like:
from flowkit.gates import RectangleGate
but the actual file path to the module where the class is defined is:
flowkit/_models/gates/_gates.py
This was a working docs build prior to adding the autoclasstoc line for this class. The RST file that triggers the error:
RectangleGate Class
===================

.. currentmodule:: flowkit.gates

.. autoclass:: RectangleGate
    :members:

    .. autoclasstoc::

Full stack trace:
Traceback (most recent call last):
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/cmd/build.py", line 276, in build_main
    app.build(args.force_all, filenames)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/application.py", line 329, in build
    self.builder.build_update()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 288, in build_update
    self.build(to_build,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 302, in build
    updated_docnames = set(self.read())
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 409, in read
    self._read_serial(docnames)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 430, in _read_serial
    self.read_doc(docname)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 483, in read_doc
    publisher.publish()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/core.py", line 217, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/io.py", line 103, in read
    self.parse()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/parsers.py", line 78, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 170, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 240, in run
    context, next_state, result = self.check_line(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 452, in check_line
    return method(match, context, next_state)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2779, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 393, in new_subsection
    newabsoffset = self.nested_parse(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 281, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 240, in run
    context, next_state, result = self.check_line(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 452, in check_line
    return method(match, context, next_state)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2354, in explicit_markup
    self.explicit_list(blank_finish)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2379, in explicit_list
    newline_offset, blank_finish = self.nested_list_parse(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 318, in nested_list_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 240, in run
    context, next_state, result = self.check_line(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 452, in check_line
    return method(match, context, next_state)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2354, in explicit_markup
    self.explicit_list(blank_finish)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2379, in explicit_list
    newline_offset, blank_finish = self.nested_list_parse(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 318, in nested_list_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 240, in run
    context, next_state, result = self.check_line(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 452, in check_line
    return method(match, context, next_state)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2657, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2364, in explicit_construct
    return method(self, expmatch)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2101, in directive
    return self.run_directive(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2151, in run_directive
    result = directive_instance.run()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/ext/autodoc/directive.py", line 159, in run
    result = parse_generated_content(self.state, params.result, documenter)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/ext/autodoc/directive.py", line 106, in parse_generated_content
    state.nested_parse(content, 0, node)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 281, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 240, in run
    context, next_state, result = self.check_line(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 452, in check_line
    return method(match, context, next_state)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2352, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2364, in explicit_construct
    return method(self, expmatch)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2101, in directive
    return self.run_directive(
 File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2151, in run_directive
    result = directive_instance.run()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/domains/__init__.py", line 281, in run
    return super().run()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/sphinx/directives/__init__.py", line 199, in run
    self.state.nested_parse(self.content, self.content_offset, contentnode)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 281, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 240, in run
    context, next_state, result = self.check_line(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/statemachine.py", line 452, in check_line
    return method(match, context, next_state)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2352, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2364, in explicit_construct
    return method(self, expmatch)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2101, in directive
    return self.run_directive(
  File "../envs/flowkit-dev/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2151, in run_directive
    result = directive_instance.run()
  File "../envs/flowkit-dev/lib/python3.10/site-packages/autoclasstoc/plugin.py", line 29, in run
    mod, cls = utils.load_class(mod_name, cls_name)
  File "../envs/flowkit-dev/lib/python3.10/site-packages/autoclasstoc/utils.py", line 46, in load_class
    mod = import_module(mod_name)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'flowkit.gates'

Thanks for the bug report.  I'm not immediately sure what's causing the problem, since it seems like the code already trying to do the right thing: import flowkit.gates via importlib.import_module (which should behave identically to import flowkit.gates).
Can you double-check that sys.path is set correctly?  I found the FlowKit github repo and took a look at conf.py.  The  sys.path.insert(0, os.path.abspath('../..')) approach is fragile, since it's relative to the directory that sphinx is invoked from.  Better would be to (i) install flowkit using pip and not change sys.path at all or (ii) configure sys.path relative to __file__, e.g. sys.path.insert(os.path.dirname(os.path.dirname(__file__))) or similar.
Let me know if either of those approaches solve the problem, otherwise I'll look into this more over the weekend.

Completely unrelated to this issue, I have a library that I use for flow cytometry analysis that I want to shamelessly plugbring to your attention, since it seems complementary to FlowKit and might be useful to you.  It's called wellmap, and it's basically a simple text file format that allows you to describe which experimental conditions are tested in which wells of a microplate.  It's very useful for writing analysis scripts (such as those using FlowKit) that aren't tied to one specific plate layout.

It's a small world! I starred wellmap and will check it out.
I also questioned whether that janky sys path business could be the culprit. I just changed my local version to insert os.path.dirname(os.path.dirname(__file__)) but got the same error. Another odd thing is there doesn't seem to be any autoclasstoc code referenced in the stack trace, but maybe there are callbacks in the inner workings of sphinx.

I know!  As soon as I saw flowkit.gates, I was thinking "that sounds like a flow cytometry library!".  It looks nice, too, I'll give it a try the next time I have flow data to analyze.
Anyways, I'll have to take a closer look at this bug.  The stack trace you copied above has two autoclasstoc lines right at the end, so I don't think there's anything odd in that respect.


Can't search history of shared-history private streams

A user reports:

We […] keep every stream private […]  Users don't understand what's going on and why the search appears to just be completely broken.

This is referring to the bit of UI you get when a search returns nothing, or if you scroll to the top of search results:

End of results from your history. Consider searching all public streams.

As I said in the chat thread: the search already includes messages in private streams, when they're messages you actually received (i.e., they were sent while you were already subscribed.) The "Consider …" thing just adds the earlier history for public streams.
It used to be that you couldn't see earlier history in private streams. Now we have two kinds of private streams: those where you can't see earlier history of messages you didn't directly receive, and those where once you're added you can. I suspect that that search feature just didn't get updated to handle the new flavor of private stream.
The user confirms that all the streams in question have shared history, so this does apply to them.

See also our help text about searching history, and #12036 which discussed some more-explicit text we could use for that "End of results" message.

@zulipbot claim

The fix for this is likely to be completing https://github.com/zulip/zulip/issues/13052.

@timabbott I am working on it

@zulipbot still working

@zulipbot claim

Hey there, this is just to express interest in this feature, and a possibility to quickly access this search operand without having to type it.

Yeah, I expect we'd want to have a button, like we do with streams:public today; some design work may be required to figure that out, but step one is to make the desired search operator.


failed to cherry pick PR 3925 from ty-dc, to branch release-v0.8

commits b64851c1b6f6b5471e2e79b8ef17331f50241e17 of ty-dc conflict when merging to branch release-v0.8, please manually cherry pick it by yourself.
PR https://github.com/spidernet-io/spiderpool/pull/3925 ,  action https://github.com/spidernet-io/spiderpool/actions/runs/10717054051
Auto-merging .github/workflows/e2e-init.yaml
CONFLICT (content): Merge conflict in .github/workflows/e2e-init.yaml
Auto-merging Makefile
CONFLICT (modify/delete): charts/spiderpool/templates/deleteHook.yaml deleted in HEAD and modified in b64851c1 (Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov).  Version b64851c1 (Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov) of charts/spiderpool/templates/deleteHook.yaml left in tree.
Auto-merging charts/spiderpool/templates/role.yaml
CONFLICT (content): Merge conflict in charts/spiderpool/templates/role.yaml
CONFLICT (modify/delete): cmd/spiderpool-controller/cmd/clean.go deleted in HEAD and modified in b64851c1 (Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov).  Version b64851c1 (Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov) of cmd/spiderpool-controller/cmd/clean.go left in tree.
Auto-merging pkg/constant/k8s.go
CONFLICT (content): Merge conflict in pkg/constant/k8s.go
Auto-merging pkg/k8s/apis/spiderpool.spidernet.io/v2beta1/rbac.go
CONFLICT (content): Merge conflict in pkg/k8s/apis/spiderpool.spidernet.io/v2beta1/rbac.go
CONFLICT (modify/delete): pkg/k8s/utils/utils.go deleted in HEAD and modified in b64851c1 (Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov).  Version b64851c1 (Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov) of pkg/k8s/utils/utils.go left in tree.
Auto-merging test/Makefile
Auto-merging test/Makefile.defs
Auto-merging test/scripts/debugEnv.sh
CONFLICT (content): Merge conflict in test/scripts/debugEnv.sh
error: could not apply b64851c1... Merge pull request #3925 from ty-dc/fix/uninstall-with-sriov
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
hint: Disable this message with "git config advice.mergeConflict false"

fix #4032


nixos/systemd-boot: pass EFI variable flags during update too

8f2babd0326e was partially reverted by mistake. Original message below

On some systems, EFI variables are not supported or otherwise wonky. bootctl attempting to access them causes failures during bootloader installations and updates. For such systems, NixOS provides the options boot.loader.efi.canTouchEfiVariables and
boot.loader.systemd-boot.graceful which pass flags to bootctl that change whether and how EFI variables are accessed.
Previously, these flags were only passed to bootctl during an install operation. However, they also apply during an update operation, which can cause the same sorts of errors. This change passes the flags during update operations as well to prevent those errors.
Fixes https://github.com/NixOS/nixpkgs/issues/151336
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

I did find a slight quirk in that bootctl update will exit with a failure status (and not try to write EFI variables for that matter) if any bootloader executable found does not need to be updated. This shouldn't happen in normal operation though.

@ofborg test systemd-boot
With #267093 merged, these should pass now

Can this be merged? It would be good to have a fix out and the tests do pass.


Improve performance of opening long shabads/banis

See end of #92

Long Banis (and probably Shabads) can take a few seconds to open. Perhaps there is a smarter/faster way of loading/streaming the data?

At the very least, we probably want a loader to indicate something is happening, perhaps?

With the advent of https://github.com/ShabadOS/database/pull/1345, opening should be considerably faster. Needs some further testing.

tested in dev, appears to be working well.


Behavior on parse to Option[T] are different between Optics and Core's cursor

problem:
for given JSON { "foo": { "baz": 1 } } and two cursor
json.hcursor.downField("foo").downField("bar").as[Option[String]]
root.foo.bar.as[Option[String]].getOption(json)
first one got Right(None) indicated parse success but got no value as expected.
but Optics got just None, which can only be understood as parse failed i guess.
is this behavior intended? and if i want first behavior but still use JsonPath's convenient syntax is there any way?
thanks

This is intended behavior, in the sense that the optics version is a pointer to a location that is either available or not, without keeping track of history or any specific information in the unavailable case, while the cursor version is more special-cased.
It might be possible to make a version of at for circe-optics that would behave like the cursor version in this situation, but I haven't really thought about it and am unlikely to work on it myself. I'd be happy to review a PR, though.
Personally I'd use the new circe-pointer module for this kind of thing:
scala> import io.circe.literal._, io.circe.pointer.literal._
import io.circe.literal._
import io.circe.pointer.literal._

scala> pointer"/foo/bar"(json"""{"foo": {"baz": 1}}""".hcursor).as[Option[String]]
val res0: io.circe.Decoder.Result[Option[String]] = Right(None)

It doesn't have the same kind of compositionality as circe-optics but in my experience it's more convenient in practical use.

thanks for your quickly and detailed explanation, i understand it doesn't make sense to make optics work like this, at least when retrieve value directly.
but i still think it's worth a mention in document since use undefined to represent empty value are pretty common at front-end.

i figure out that just compose at and parse with a little modify, it works, probably should be called as atAs?
i will submit a PR ASAP when i figure out how to integrate it into lib properly.


Better and platform agnostic path handling in commands

I think we have two goals:
1. Express and append paths in a native form

Common case to express paths properly depending on platform
Should use the native os.pathsep for appending

2. Convert/Enforce to a non-native form after expansion

Case where env variable is either not representing a PATH or has non-native expectations
This may mean the need to control the os.pathsep  (which we have already)

For better illustration here samples of non-handled cases and their intentions:
def commands():
    # Case 1.
    env.PATH.append("{root}/bin")     # This really should be "{root}\\bin" on some platforms

   # Case 2.
   env.LANGUAGE_COMMENTS.append(r"//")    # This does not represent a path, should be literal
   env.CMAKE_MODULE_PATH.append("{root}/cmake")    # Tricky: This path needs to use forward slashes and ; regardless of platform.

Solution A
One way to deal with 1. is to make the native path conversion implicit.
So imagine that we assumed any environment variable is by default a path that should be native.
Our sample would need to be explicit in the 2. cases:
# We got this already. Necessary in rezconfig / package for case 2. later on
with scope("config") as c:
    c.env_var_separators = {
        "CMAKE_MODULE_PATH": ";",
    }

def commands():
    # Case 1.
    env.PATH.append("{root}/bin")     # Converts to native path with os.pathsep

   # Case 2.
    env.LANGUAGE_COMMENTS.append(literal(r"//"))    # Literal with os.pathsep
    # This needs special treatment.
    # Can't use str.replace() since it must happen after expansion(?)
    env.CMAKE_MODULE_PATH.append(unixpath("{root}/cmake")
    #                                   ^ we don't have this

Solution B
The alternative solution would be to always be explicit, and assume literal otherwise:
# Necessary in rezconfig / package for case 2. later on
with scope("config") as c:
    c.env_var_separators = {
        "CMAKE_MODULE_PATH": ";",
    }

def commands():
    # Case 1.
    env.PATH.append(nativepath("{root}/bin"))     # Can't use os.path.join

   # Case 2.
    env.LANGUAGE_COMMENTS.append(r"//")    # No special treatment

    # Still need to handle this case
    env.CMAKE_MODULE_PATH.append(unixpath("{root}/cmake")
    #                                   ^ we don't have this

Solution C
This is an extension of Solution A, but we give the user control over the behavior in rezconfig so we could even act as Solution B.
Like before we implement three additional bindings:

nativepath -> Converts to native path
unixpath -> Converts to forward slashes
windowspath -> Converts to backwards slashes

But we add a definition in config that handles paths.
Similar to the env_var_separators environment variables do have special types and I wouldn't mind this information to be hidden away in config, especially since we can always override it per package.
# rezconfig.py

env_var_separators = {
        "CMAKE_MODULE_PATH": ";",
}

# Tries functions, else uses default
env_var_default_functions = ["nativepath"]
env_var_functions = {
    "CMAKE_MODULE_PATH": ["expandvars", "unixpath"],    # Accepts list for chaining
    "LANGUAGE_COMMENTS": ["literal"],
}

Our packages become idiomatic:
def commands():
    # Case 1.
    env.PATH.append("{root}/bin")     # Assumes native path

   # Case 2.
   env.LANGUAGE_COMMENTS.append(r"//")    # Handled by rezconfig
   env.CMAKE_MODULE_PATH.append("{root}/cmake")    # Handled by rezconfig

And we should be able to express any other case in rezconfig or the package directly.

Literal is wrong as default. I probably mean expandvars.

I agree with the general direction of C, but I'd be up for simplifying it a
little, and generalising the settings (which will make more sense below).
RE env_var_functions: I don't think we should have this 'chaining' -
expandvars should always be implied (knowing that expansion won't happen if
literal() is used). Exposing 'expandvars' to the user like this is
confusing IMO. So instead I would just have a single function name for each
entry - "nativepath", "unixpath" etc ("posixpath" instead?) - implying that
these all do variable expansion anyway.
RE generalization. So there is a need to give more control over env-vars in
general. Right now for eg, append/prepend always works in
set-if-first-then-append mode - ie, PYTHONPATH gets set the first time it's
appended/prepended, then appended/prepended on all subsequent ops. We
should have a way of refining this behaviour - for eg, a useful default
would be, "append/prepend, but retain the original, pre-rez-env value as
well, and keep it appended to the result". You could have other modes as
well, like "retain" (which would do what the "parent_variables" setting
does currently).
In any case, without going too much into those details, I think the
settings need to be structured in a way that promotes this idea of more env
var control, and we could start doing this now. What I mean is, instead of
this:
env_var_separators = {
"CMAKE_MODULE_PATH": ";",
}
env_var_default_functions = ["nativepath"]
env_var_functions = {
"CMAKE_MODULE_PATH": ["expandvars", "unixpath"],    # Accepts list
for chaining
"LANGUAGE_COMMENTS": ["literal"],
}
We would have:
env_var_settings = {
"": {
"path_modify_op": "nativepath"  # ie append, prepend
},
"_PATH": {
"set_op": "nativepath"  # eg, so "env.MAYA_PLUGIN_PATH = ..." uses
nativepath
},
"CMAKE_MODULE_PATH": {
"pathsep": ";",
"path_modify_op": "unixpath"
}
}
Note that the globbing would allow for less verbose settings, by sharing
settings across vars (eg, "CMAKE_MODULE_PATH" would inherit settings from
"", then "_PATH", in that order. Which actually isn't useful in this
specific example, but you get the idea).
Lastly - I don't know if you already implied this or not, but nativepath()
should be able to take any sensible path syntax (posix or windows) and
convert it to the native equivalent. That way, studios can just default use
whichever they are comfortable with. We should check for ambiguous cases
(like "/hey/this\is\weird"), and raise an error for those. Do we also
need to deal with drives in Windows (eg C://), is that even still a thing?
I have no idea.
On Sat, Aug 31, 2019 at 12:48 AM Blazej Floch<EMAIL_ADDRESS>wrote:

Literal is wrong as default. I probably mean expandvars.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nerdvegas/rez/issues/707?email_source=notifications&email_token=AAMOUSXPP6CWELITP7KL7YTQHEXLLA5CNFSM4ISODKG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5R34SQ#issuecomment-526630474,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMOUSVSMCMLKL5MNDEKQ5TQHEXLLANCNFSM4ISODKGQ
.

I agree. Thanks for taking the proposal further.
On Wildcards and inheritance
I wonder how the order would work - I can imagine this brings up some challenges, like:
{
  "*": { ... },        # A
  "*_PATH": { ... },   # B
  "HELLO_*": { ... },  # C
}

In this case what would the the right initial setting given HELLO_PATH and the fact that dicts are unordered?
Maybe a better approach would be to have ordered settings with explicit inheritance (although not as nicely looking):
OrderedDict([
  ("CMAKE_MODULE_PATH", {...} ),  # D
  ("*_PATH", {...} ),             # B
  ("HELLO_*", {                   # C
      "inherits": "*",
      ...
  })
  ("*", {...} ),                  # A, usually at the end.
])

Then the rule is:

If it has the explicit key use it (e.g. env_var_settings["CMAKE_MODULE_PATH"])
Else iterate the keys and cancel if a match is found (can skip non wildcards)
If there is inheritance, then follow it and apply in reverse order.

The benefit is now we can express both inheritance and explicit rules that don't want to inherit.
Looking at this I wonder how strong the relationship between variables is. Maybe we don't need inheritance at all, due to the complexity involved.
It shouldn't be too much work to have separate settings for each special case. Since it is python you could also define you little helpers variables.
But I would be fine with having inheritance if there are strong opinions about it.
I'll put some more thought into the ops and try to come up with all the crazy cases that we might want to handle across platforms.

I would avoid the ordered inheritance for two reasons - 1) it just looks
odd as you mention, but 2) it forces you to put things in order that are
not related (FOO and BAH for eg).
In terms of inheritance - we at least need to specify global defaults, and
perhaps that, combined with specific env-var overrides, is enough. What we
could do is use the schema I've already suggested, but support only full
env-var names as keys, or "*" (which is the global defaults). Doing it this
way also means that we don't break compatibility if we decide later that we
do indeed want more fine-grained inheritance as I described.
If we did want inheritance, then a fairly simple set of rules can be used
to determine order:

Globbed before non-globbed
shorter before longer
lastly, alphabetical

Thus "" would be used, then "PATH_" to override, then "FOO_PATH" to
override again. Ambiguous cases like "PATH_" and "_HELLO" would just fall
back to alphabetical (ie arbitrary but deterministic).
In summary, I'd be happy to use suggested schema but support only '*' and
full env-var names, leaving the option for further inheritance open in case
we decide we want it.
Thx
A
On Thu, Sep 5, 2019 at 5:13 AM Blazej Floch<EMAIL_ADDRESS>wrote:

I agree. Thanks for taking the proposal further.
On Wildcards and inheritance
I wonder how the order would work - I can imagine this brings up some
challenges, like:
{
"": { ... },        # A
"PATH": { ... },   # B
"HELLO*": { ... },  # C
}
In this case what would the the right initial setting given HELLO_PATH
and the fact that dicts are unordered?
Maybe a better approach would be to have ordered settings with explicit
inheritance (although not as nicely looking):
OrderedDict([
("CMAKE_MODULE_PATH", {...} ),  # D
("PATH", {...} ),             # B
("HELLO", {                   # C
"inherits": "",
...
})
("", {...} ),                  # A, usually at the end.
])
Then the rule is:

If it has the explicit key use it (e.g.
env_var_settings["CMAKE_MODULE_PATH"])
Else iterate the keys and cancel if a match is found (can skip non
wildcards)
If there is inheritance, then follow it and apply in reverse order.

The benefit is now we can express both inheritance and explicit rules that
don't want to inherit.
Looking at this I wonder how strong the relationship between variables is.
Maybe we don't need inheritance at all, due to the complexity involved.
It shouldn't be too much work to have separate settings for each special
case. Since it is python you could also define you little helpers variables.
But I would be fine with having inheritance if there are strong opinions
about it.
I'll put some more thought into the ops and try to come up with all the
crazy cases that we might want to handle across platforms.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nerdvegas/rez/issues/707?email_source=notifications&email_token=AAMOUSRPWRGG2NOE7I7GCQ3QIACEZA5CNFSM4ISODKG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD54U4UY#issuecomment-528043603,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMOUSRGMQTWFKY4EUHLQDDQIACEZANCNFSM4ISODKGQ
.

@nerdvegas - I agree with everything you said.
I'd prefer the first pass implementation (* and specific vars inheriting it) for now and then we can expand on it like you proposed. Maybe it is not that much work to begin with doing the full thing. We'll see.
Let's open the next and bigger can of worms:
Settings and Ops
This is a rather complex topic since we want to support so many use cases so I'll build up to the suggestion based on every possible use case imaginable. It also gives us opportunity to migrate existing settings in a generic configuration.
I don't want to jump into implementation details yet (hope this is doable at all :) ), but let's see if we
can come up with use cases best demonstrated via an sample.
References
#703
#698
#661
(more ?)
Use cases
(cases handled by the sample are crossed)

Path operations:

[x] Handle paths in platform independent fashion
[x] Handle paths in explicit platform dependant fashion
[ ] Handle differences in Drive handling (C:\ -> C:/ vs /C/) (Needed?)
[ ] Handle platform dependent path prefix (C:\path -> /mnt/c/path) (Needed?)

[x] Define platform dependent settings
[x] Migrate all_*_variables
[x] Define path separators (like ; and :)
[ ] Stable de-duplication of separated values (Needed?)
[x] Implicit variables, system variables and there placement with context variables

Sample
(Note: This is a completely artificial example to showcase many possible use cases)
env_var_settings = {

    # -------------------------------------------------------------------------
    # Global control inherited(!) by all other variables.

    "*": {

        # Migration of all_parent_variables
        #
        # Full control over variables is achieved given the following parent_variables & actions:
        #
        # clear (No parent variables)
        #  [prepend_all] [prepend_parent->FAILS] [append_parent->FAILS] [$REZ_VARS] [append_all]
        #
        # prepend (parent before rez variables)
        #  [prepend_all] [prepend_parent] [$PARENT_VARS] [append_parent] [$REZ_VARS] [append_all]
        #
        # append (parent after rez variables)
        #  [prepend_all] [$REZ_VARS] [prepend_parent] [$PARENT_VARS] [append_parent] [append_all]
        #
        "parent_variables": "clear"

        # Migration of all_resetting_variables
        # Note: Actually had a problem with understanding the naming, but kept for consistency
        "resetting_variables": False

        # Any variable (!!!) on this level may be "its expected type" OR dict of
        # ("platform": "its expected type").
        # Note we are only handling platform.system differences.
        "pathsep": {
            "windows": ";",
            "linux":   ":",
            # Any other platform, except specific one …
            "*":       "🍎",
        },
        # Default append, prepend and set operation
        "modify_op": "nativepath",
        # Interestingly this could now also be implemented as followed :-)
        # but we probably still need nativepath on commands() side.
        "modify_op": {
            "windows": "windowspath",
            "*": "posixpath",
        },
    },

    # -------------------------------------------------------------------------
    # Creation of variables without having to rely on bootstrap file or package
    # (Studio must make decision of when to use implicit packages vs. rezconfig)

    # Set custom variables without package.

    "STUDIO_REZCONFIG_VERSION": {
        "parent_variables": "clear",
        "prepend_all": "2<IP_ADDRESS>",
    },

    "STUDIO_STORAGE": {
        "parent_variables": "clear",
        "prepend_all": {
            "windows": "P:\\",
            "*":  "/mnt/production",
        }
    },

    # Sample where a user might run a local STUDIO_CACHING_SERVER
    # [Parent] [This] [Rez]
    "STUDIO_CACHING_SERVERS": {
        "parent_variables": "prepend",
        "append_parent": ["<IP_ADDRESS>", "cache.studio.com"], # Note multiple things as list
    },

    # Sample where user might override for debugging, rez is default authority but
    # ultimately use sensible default
    # [Parent] [Rez] [This]
    "STUDIO_LOCATION": {
        "parent_variables": "prepend",
        "append_all": "UNKNOWN",
    },

    # Artificial case where REZ packages always have priority, but we guarantee a fallback
    # coming from Parent Environment or This config
    # [Rez] [Parent] [This]
    "STUDIO_USER_GROUPS": {
        "parent_variables": "append",
        "append_parent": {
            "windows": ["UPDATING"],
            "linux": ["WORKING"],
            "osx": ["BROKE"],
        }
    },

    # -------------------------------------------------------------------------
    # Common use cases
    # We now can control the "always-on" tools and their order very precisely

    "PATH": {
        # In this sample: Rez first
        "parent_variables": "append",

        "prepend_all": {
            "windows": "C:\\ImportantTools",
            "*": "/opt/important_tools"
        },

        # Here after the system paths
        "append_all": {
            "windows": ["C:\\WindowsFallbackTools"],
        },
    },

    "PYTHONPATH": {
        "parent_variables": "clear",
    },

    "CMAKE_MODULE_PATH": {
        "parent_variables": "clear",

        # Nice.
        "pathsep": ";",
        "modify_op": "posixpath",
    },

    "PATHEXT": {
        "pathsep": ";",
        "parent_variables": "prepend",
        "append_parent": {
            # Does not pollute other platforms
            "windows": [".PY", ".PS1"],
        }
    }
}

Naming, features and details are like always up for discussion. Let me know if I missed anything.

I'll close this in favor for #737 which has a broader context.


verification: core cron job to remove expired verifications and their associated accounts

Reference: https://github.com/bobheadxi/calories/blob/dev/bot/scheduler.go#L11


Ability to exclude fragment route changes

Hi all,
I am wondering if we could add the ability to exclude fragment route changes.
For example, if we are navigating to example.com/page#fragment I would like to avoid showing the progress bar.
The use case is I use fragments on my website exclusively to jump around the already fully loaded current page so there is no need to show the top loader in these cases as it is distracting.
The change seems simple enough, add a configuration option to enable fragments and then do a check for fragment when redirecting to url.
I am happy to contribute a PR for it if maintainers are happy with idea.

Hey @TheSGJ , I put up a PR for your review, thanks 🙇


expose "with_quotes" param on Query and Table objects

would like this to propagate the "with_quotes" down to all the get_sql() functions.
Reason:
I would like a way to turn off quoting. My use cases are very simple and would like to keep the SQL I generate easy to read. this also avoids case sensitivity errors.

Right now we force quotes to always be on because it prevents any issues with field names, although I don't see any reason why it shouldn't be configurable via parameters.

@cjstudioz I pushed v0.2.5 to pypi containing all the fixes you requested.  You can now call query.get_sql(quote_char=None) to get a query formatted without quotes.

Has this feature been documented in the documentation?


Expose AudioSpec (obtained) when using AudioQueue

It doesn't look like we can get access to the obtained AudioSpec when using open_audio_queue.
https://github.com/AngryLawyer/rust-sdl2/blob/8e5a095ba96594e2d5320509187ae95fc0a06702/src/sdl2/audio.rs#L488
Any chance we can either get that saved with the AudioQueue struct or perhaps returned as a tuple with the creation method?

Sure, I guess we could git AudioSpec somewhere in the AudioQueue struct, and add a spec() method to AudioQueue as well.
Do you want to give it a try ?

@Cobrand Added in #578


Update 01-spell-check.md

done changes

Thank you @Allhailankurgupta for the PR!
Since we want to keep the mistakes for other participants to work on, we wouldn't be merging this PR. Hope the practice was good nevertheless :)


Feature/game manager refactor

Overview
The Game Manager has been refactored and split up. The sub-system now conforms to the standards laid out by the MVVM architecture.
Details
The 1 singular class has been split up.
Existing classes to do with this sub-system have been made to use dependancy injection.
Flow of calls is as follows:

GameDataViewModel.swift
GameModel.Swift
GameAPIRepo.swift

All of the above steps use dependancy injection to ensure that abstraction and unit tests can be followed

Sorry for the late check. I'm quite impressed with the code quality here. I've made some small suggestions here and there. Since this is already merged you dont need to go and change everything but just take some of them into consideration for the future :smile:


Transaction sort behavior

When I try to sort my transactions by payment/deposit, "blank" values still stand between sorted values.
I expected at least not to have those blank lines in between valued lines. At most, I would have seen blank rows at the bottom whichever is the sort (ASC or DESC).
Example:

https://github.com/ucoin-io/cutecoin/commit/5652bad7b2100613af09e3914a761e1abec77d95


Add noisered and ladspa in sox_effects

noisered and ladspa from here are not listed as an effect. Not picked up due to its interface?
>>> from torchaudio.sox_effects.sox_effects import effect_names
>>> torchaudio.__version__
'0.7.0a0+ac17b64'
>>> effect_names()
['allpass', 'band', 'bandpass', 'bandreject', 'bass', 'bend', 'biquad', 'chorus', 'channels', 'compand', 'contrast', 'dcshift', 'deemph', 'delay', 'dither', 'divide', 'downsample', 'earwax', 'echo', 'echos', 'equalizer', 'fade', 'fir', 'firfit', 'flanger', 'gain', 'highpass', 'hilbert', 'loudness', 'lowpass', 'mcompand', 'norm', 'oops', 'overdrive', 'pad', 'phaser', 'pitch', 'rate', 'remix', 'repeat', 'reverb', 'reverse', 'riaa', 'silence', 'sinc', 'speed', 'stat', 'stats', 'stretch', 'swap', 'synth', 'tempo', 'treble', 'tremolo', 'trim', 'upsample', 'vad', 'vol']
>>> 'noisered' in effect_names()
False

It affects facebookresearch/WavAugment#16.

The effects that are not tensor manipulation are explicitly not supported. We do not plan to support them.
ladspa is not explicitly excluded but probably the plugin is not available on your system.
https://github.com/pytorch/audio/blob/0e1d814b76725f50b76d938b474b616a15009b45/torchaudio/csrc/sox_utils.h#L50-L51

ladspa is not explicitly excluded but probably the plugin is not available on your system.

I can use ladspa effects just fine when I manually call my sox binary, and I have all the required libraries installed to build sox  with ladspa support (AFAIK).
Still, I get the following error whenever I apply a ladspa effect:
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
...
    o, _ = torchaudio.sox_effects.apply_effects_tensor(
  File "/usr/lib/python3.9/site-packages/torchaudio/sox_effects/sox_effects.py", line 152, in apply_effects_tensor
    return torch.ops.torchaudio.sox_effects_apply_effects_tensor(
RuntimeError: Unsupported effect: ladspa vocoder

I also modified audio/third_party/sox/CMakeLists.txt such that ladspa support is explicitly included:
diff --git a/audio/third_party/sox/CMakeLists.txt b/audio/third_party/sox/CMakeLists.txt
index a7f2989..7ac0ec5 100644
--- a/audio/third_party/sox/CMakeLists.txt
+++ b/audio/third_party/sox/CMakeLists.txt
@@ -160,12 +160,12 @@ set(SOX_OPTIONS
   --with-mad
   --with-oggvorbis
   --with-opus
+  --with-ladspa
   --without-alsa
   --without-ao
   --without-coreaudio
   --without-oss
   --without-id3tag
-  --without-ladspa
   --without-magic
   --without-png
   --without-pulseaudio

@mthrok So is ladspa support out of the question, have I done something wrong, or does ladspa support require some special handling within the torchaudio implementation?

system info
> ls $LADSPA_PATH
amp.so                 noise.so              ZamCompX2-ladspa.so     ZamGEQ31-ladspa.so
delay.so               sine.so               ZamDelay-ladspa.so      ZamGrains-ladspa.so
filter.so              vocoder.so            ZamDynamicEQ-ladspa.so  ZamPhono-ladspa.so
ladspa-rubberband.cat  ZamAutoSat-ladspa.so  ZamEQ2-ladspa.so        ZamTube-ladspa.so
ladspa-rubberband.so   ZaMaximX2-ladspa.so   ZamGate-ladspa.so       ZaMultiComp-ladspa.so
lsp-plugins-ladspa.so  ZamComp-ladspa.so     ZamGateX2-ladspa.so     ZaMultiCompX2-ladspa.so
> python
>>> import torchaudio
>>> torchaudio.__version__
'0.9.0a0+33b2469'

To somewhat answer my own question, it seems that sox with ladspa can only be build without --disable-shared (at least according to this discussion)

Hi @rien333
The build process has been changed since the time of above discussion, and ladspa is indeed explicitly disabled. This is because now we only support static build of libsox and because of an issue with in-memory decoding (for file-like object support) and many binary distribution of libsox provided by package manager has the issue. The issue with in-memory decoding has been patched on the latest dev version but there is no release that includes the patch.
I did not know much about ladspa, but according to your finding, the possible way to support is,

install the latest libsox with dynamic linking and ladspa support (if file-like object support matters, otherwise you can use the version from your system's package manager)
change the way torchaudio is built so that it links to the libsox from step 1.

Step 2. is not straightforward for us because we do not know how many different environments we need to support, and this makes the build process prune to configuration errors. If you would like to try, you can look at the previous version of CMakeLists.txt. You need to make sure that the version of libsox you want to use shows up first in the search path.

@mthrok Thanks for your quick and detailed reply! Following your instructions, I was able to add ladspa support.


add basic helm template sanitize and output in CI

To avoid problems like this one https://github.com/chainloop-dev/chainloop/issues/1189 we should add some basic CI checks for the Helm Chart rendering.
What I'd do

On PR, if the helm chart directory is touched
do helm template chainloop -n chainloop . --set development=true
ideally, show the diff compared to the version without the change

cc/ @javirln


Added info about rate limit

Fixes tmrowco/tmrow#2090

Will this automatically get deployed?

Yes it will!


menu will show behind command center

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

版本: 1.70.0-insider (user setup)
提交: 12b08be500f8a307f30e92cbc3ee39ba115eab69
日期: 2022-07-29T10:47:14.408Z
Electron: 18.3.5
Chromium: 100.0.4896.160
Node.js: 16.13.2
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.25169
Steps to Reproduce:

reduce the window length, menu will be collapsed

click terminal/ help

click command center

menu will show behind command center

https://github.com/microsoft/vscode/issues/152906#issuecomment-1185382173


Document restrictions of the main function

Also updated a link for attributes and changed the first paragraph to a note.

This now also documents that trait and lifetime parameters aren't allowed and the newly added restriction of no where clauses.

Thanks!


traceLevel setting is not taken into account since 1.x

steps
Given a task
TaskKey[Unit]("testTrace") := {
  sys.error("oops")
}

The exception stack trace is printed out when the task is ran no matter what the value of traceLevel is set.
problem
traceLevel setting does not suppress stack traces of being printed.
notes
sbt version: 1.0.4, 1.1.0-RC1
Works as expected with sbt 0.13.16.

Would this be related to my SO post? After a week no one seems to know the answer over there either.

I have the same issues with sbt 1.0.4. The use of -error does not suppress any message (info nor debug). Finally, i changed to 0.13.16

sbt:hello> set check/traceLevel := 4
[info] Defining check / traceLevel
[info] The new value will be used by no settings or tasks.
[info] Reapplying settings...
[info] Set current project to hello (in build file:/Users/eed3si9n/work/hellotest/)
sbt:hello> check
[error] java.lang.RuntimeException: boom
[error] 	at scala.sys.package$.error(package.scala:30)
[error] 	at $0d89407eaa29f35a5d10$.$anonfun$$sbtdef$1(/Users/eed3si9n/work/hellotest/build.sbt:14)
[error] 	at sbt.std.Transform$$anon$3.$anonfun$apply$2(Transform.scala:46)
[error] (check) boom
[error] Total time: 0 s, completed Aug 20, 2019 11:36:09 AM

This seems to work now.

I tried 1.3.0-RC4. I want to get the full stack trace. It still does not work for me. Am I doing it the wrong way?
sbt:akka-db-load> set run/traceLevel := 10000
[info] Defining run / traceLevel
[info] The new value will be used by no settings or tasks.
[info] Reapplying settings...
[info] Set current project to akka-db-load (in build file:/home/e/Local/decay/)
sbt:akka-db-load> about
[info] This is sbt 1.3.0-RC4
[info] The current project is ProjectRef(uri("file:/home/e/Local/decay/"), "decay") 0.1
[info] The current project is built against Scala 2.12.8
[info] Available Plugins
[info]  - sbt.ScriptedPlugin
[info]  - sbt.plugins.CorePlugin
[info]  - sbt.plugins.Giter8TemplatePlugin
[info]  - sbt.plugins.IvyPlugin
[info]  - sbt.plugins.JUnitXmlReportPlugin
[info]  - sbt.plugins.JvmPlugin
[info]  - sbt.plugins.SbtPlugin
[info]  - sbt.plugins.SemanticdbPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.12.8
sbt:akka-db-load> run
[info] Compiling 1 Scala source to /home/e/Local/decay/target/scala-2.12/classes ...
[info] running Main
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Uncaught error from thread [default-akka.actor.default-dispatcher-2]: akka/actor/dungeon/FaultHandling$$anonfun$handleNonFatalOrInterruptedException$1, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[default]
java.lang.NoClassDefFoundError: akka/actor/dungeon/FaultHandling$$anonfun$handleNonFatalOrInterruptedException$1
	at akka.actor.dungeon.FaultHandling.handleNonFatalOrInterruptedException(FaultHandling.scala:310)
	at akka.actor.dungeon.FaultHandling.handleNonFatalOrInterruptedException$(FaultHandling.scala:310)
	at akka.actor.ActorCell.handleNonFatalOrInterruptedException(ActorCell.scala:447)
	at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:557)
	at akka.actor.ActorCell.systemInvoke(ActorCell.scala:569)
	at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:293)
	at akka.dispatch.Mailbox.run(Mailbox.scala:228)
	at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: akka.actor.dungeon.FaultHandling$$anonfun$handleNonFatalOrInterruptedException$1
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 12 more

Thank you for the  prompt reply. I just tried bgRun. It seems to be not working also. I don't know what is going on. I think sharing settings could lead to less confusion.


Update API Key

Hi,
integration is working fine so far but I need to update the API key. How can I do that without deleting the integration and installing it again?
Regards

Hum, that is a good question.
Why do you need to update an API key ?
I am not sure it is currently doable without hand editing some home assistant files and the home assistant database.

As i have no answer, I suppose it is working now. Do not hesitate to answer this ticket if it is not the case !
Jérémie


region_cache: restrict access to store related fields

This is the first stage of extracting store index from region cache. (ref https://github.com/tikv/client-go/issues/1104)

@crazycs520 PTAL


Update openrowset-transact-sql page

Propose to update OPENROWSET overview page (https://docs.microsoft.com/en-us/sql/t-sql/functions/openrowset-transact-sql).
05/07/2020 It was announced that OPENROWSET is available for the Azure Synapse Analytics (https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/develop-openrowset)

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

@gron1987 HI and thank you for submitting this update to the document. The article you reference, https://docs.microsoft.com/en-us/azure/synapse-analytics/sql/develop-openrowset, explains how to use OPENROWSET which is in preview for Azure Synapse Analytics SQL on-demand only. As of now we are not updating the T-SQL doc with this preview capability. Thank you for your submission and we hope to hear from you again soon.

#please-close


Scroll top using iframeResizer

Hello, I currently have an iframe, and I use your javascript:
Example:
<iframe id = "myIframe" src = "https://www.compras.icambio.es/compradivisas.aspx" scrolling = "no"> </ iframe>

On the page that is the URL of the src, I have included the javascript iframeResizer.contentWindow.js
The problem is the following, when I am browsing:
I have a form on the first page, when I sent it the scroll stays in half because the second screen is higher than the first and I want it to go back to the top of the second page.
I have tried to use a jquery to return top of the page when loading:
window.parent. $ ("body"). animate ({scrollTop: 0}, 'slow');

But it's not working.
I would like that when you load the second page into the iframe, return to position 0 of the top of that page.
I do not know if you can help me, regards.

Please see the docs:
https://github.com/davidjbradshaw/iframe-resizer#scrolltoxy

These links are broken !!

Updated links
https://github.com/davidjbradshaw/iframe-resizer/blob/master/docs/iframed_page/methods.md#scrolltooffsetxy
And
https://github.com/davidjbradshaw/iframe-resizer/blob/master/docs/parent_page/events.md#onscroll

Hi guys, can someone help me out here. I read this documentation but I still don't get it to scroll to the top if the user clicked a link inside the iframe. I do not have access to the content inside the iframe. I try to scroll to the top always when the user clicks something. I would be happy if somebody can help me with this code. thx

$('iframe').iFrameResize({
onInit: function() {
$(window).scrollTop(0);
}
});

$("#my_iframe").on("load", function () {
  $('#my_iframe').iFrameResize({
    'log': true
     resizedCallback : function(info){
        scrollTo(0, 0);
      }
    });
  });


Profile Assume Role not being consumed in named provider

Hello!

Vote on this issue by adding a 👍 reaction
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already)

Issue details

The Pulumi named provider ignores the role configured in the profile, you must add it explicitly.
Steps to reproduce

    // Doesn't work
    new aws.Provider(
        name,
        {
            profile: profile.name,
            region: args.region,
        },
    )
    // Works
    new aws.Provider(
        name,
        {
            profile: profile.name,
            region: args.region,
            assumeRole: { roleArn: 'foo', sessionName: 'bar' },
        },
    )
}

Additionally, the exact same code worked before when I was using a named provider but passing in key, secret and assumeRole directly. We can't use this though as eks requires us to use the profile.

This is exactly the same as https://github.com/pulumi/pulumi-aws/issues/1422, but for assume role.

@stack72 do you have thoughts here?

@liamawhite can you let us know if you are still seeing this issue? I've tried to reproduce this on the latest version and everything seems to be working.


Cleanup/rework python plugin implementation

Note: check out https://github.com/wjakob/pybind11

I have prioritized the dialogs. Making sure the experience is equal between platforms. I have time to continue on Thursday, but maybe earlier. After that i'd like to work on this.

Sounds good!

Be aware that I still need to do some work in source* before once can implement for instance python autocomplete through plugins, I probably do not have time to do this before December, but I know roughly how it can be done. Same with diagnostics. Refactoring however, accessible through anonymous functions, should be doable with only a couple lines of code. Safest for the time being is to work on snippets. However, try not to modify the existing source too much for the time being. I think python plugins can be implemented without significant modification of the existing source, but not 100% sure.


Instagram to HTML conversion should drop the  tag in the content

Right now each instagram image appears twice in the HTML output. Once inside the e-content element, and again outside with the u-photo class. It's enough to have it outside the content with the u-photo class since that will make it appear as the photo property to mf2 consumers.

👍 will do


Add post config step to start microshift on ACC

Add a post config step which will start the microshift service.
Example config:
clusters:

name : "iso_cluster"
api_vip: "<IP_ADDRESS>"
ingress_vip: "<IP_ADDRESS>"
network_api_port: "eno12409"
kind: "iso"
install_iso: "http://my-server/rhel9_4.iso"
masters:

name: "216-acc"
node: "localhost"
type: "physical"
bmc: "my_imc_address.redhat.com"
bmc_user: "root"
bmc_password: "bmc_pass"
ip: "<IP_ADDRESS>"
mac: "00:09:00:01:03:18"
postconfig:
name: "microshift"

@vrindle @bn222 this is working / ready for review


Unable to remove container atlassian-confluence

Unable to remove container. Please help removing the container.
Error:
ETIMEDOUT
ETIMEDOUT
connect
<IP_ADDRESS>
2376

@sabuva How are you trying to remove the container?

Hi,
I was able to remove the containers after I re-started my mac computer and
re-tried the operation. Thanks. You may close the ticket now.
Regards
Sabu Nair* | IT  Mgr*
W ☎<PHONE_NUMBER> | M ☎:<PHONE_NUMBER>
On Wed, Aug 19, 2015 at 8:25 AM, FrenchBen<EMAIL_ADDRESS>wrote:

@sabuva https://github.com/sabuva How are you trying to remove the
container?
—
Reply to this email directly or view it on GitHub
https://github.com/kitematic/kitematic/issues/952#issuecomment-132637598
.

@sabuva Thanks for the feedback - This you opened this issue, you can actually hit the 'Close' button below :+1:


Experiment with replacing Jackson serde

Pull Request Description
JSON serialization setup between Language Server and Runtime is a major contributor to startup time. This PR experiments with an alternative implementation that remedies the problem.
Important Notes

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[ ] The documentation has been updated, if necessary.
[ ] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[ ] All code follows the
Scala,
Java,
TypeScript,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
[ ] Unit tests have been written where possible.

Nit: what I really like about this library is that, when it works, the context of the parsing error is pretty visible:
com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderException: expected '{' or null, offset: 0x0000018a, buf:
+----------+-------------------------------------------------+------------------+
|          |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |<PHONE_NUMBER>abcdef |
+----------+-------------------------------------------------+------------------+
| 00000160 | 72 6f 75 70 73 22 3a 5b 7b 22 67 72 6f 75 70 22 | roups":[{"group" |
| 00000170 | 3a 7b 22 6e 61 6d 65 22 3a 22 49 6e 70 75 74 22 | :{"name":"Input" |
| 00000180 | 7d 2c 22 63 6f 6c 6f 72 22 3a 22 6f 6b 6c 63 68 | },"color":"oklch |
| 00000190 | 28 30 2e 35 34 35 20 30 2e 31 34 20 31 37 30 29 | (0.545 0.14 170) |
| 000001a0 | 22 2c 22 65 78 70 6f 72 74 73 22 3a 5b 5d 7d 2c | ","exports":[]}, |
+----------+-------------------------------------------------+------------------+


Syntax highlighting: keyword import wrong color

should be orange, not purple

This may be fixed already, with the next version of js-slang.


starting more than one listener in a binary can result in socket confusion on restart

when starting more than one listener (most likely through goroutines) the initialization order is not determined. on restart this can result in the wrong socket being assigned to a server.
solution: pass original initialization order (by address) to the child.
this only affects users that start more than one server in one binary.

remaingin: x session kill on first restart tho...? server works fine.
need to test on other machines. does not happen in vm.

cant reproduce this on other machines nor vm. if anybody sees that pls help investigate.


Setting language specific tab size gets reset

Issue Type: Bug
Yaml files have 2 spaces indent
Go to settings and change editor
[yaml]": {
"editor.tabSize": 4
},
yaml files do not update
Reload window
yaml files do update
when fully reloaded tabSize resets to 2 spaces
VS Code version: Code - Insiders 1.22.0-insider (b75321329388d74e34f79dcfcb789246e31836a8, 2018-03-22T06:11:18.197Z)
OS version: Darwin x64 17.4.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz (8 x 2800)

Load (avg)
5, 4, 3

Memory (System)
16.00GB (0.05GB free)

Process Argv
/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron -psn_0_2958034

Screen Reader
no

VM
0%

Extensions (48)

Extension
Author (truncated)
Version

bracket-pair-colorizer
Coe
1.0.26

EditorConfig
Edi
0.12.1

beautify
Hoo
1.3.0

php-namespace-resolver
Meh
1.0.2

material-icon-theme
PKi
3.2.6

vscode-docker
Pet
0.0.25

code-settings-sync
Sha
2.9.0

vscode-file-peek
abi
1.0.1

Bookmarks
ale
0.18.2

numbered-bookmarks
ale
0.11.1

vscode-processes
and
0.0.4

folder-indexing
ast
0.2.0

vscode-intelephense-client
bme
0.8.8

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

vscode-svgviewer
css
1.4.3

vscode-eslint
dba
1.4.7

gitlens
eam
8.1.1

vscode-html-css
ecm
0.2.0

vscode-phpmd
eco
1.0.4

tslint
eg2
1.0.28

vscode-npm-script
eg2
0.3.3

prettier-vscode
esb
1.2.2

php-debug
fel
1.12.2

php-intellisense
fel
2.3.0

php-pack
fel
1.0.1

sass-lint
gle
1.0.1

vscode-firefox-debug
hbe
1.1.3

vscode-dimmer
hoo
2.1.0

phpcs
ika
1.0.5

smarty
imp
0.2.0

docthis
joe
0.6.0

puppet-vscode
jpo
0.9.0

php-cs-fixer
jun
0.1.59

graphql-for-vscode
kum
1.9.1

twig-language-2
mbl
0.3.1

vscode-scss
mrm
0.6.2

vsliveshare
ms-
0.2.260

debugger-for-chrome
msj
4.2.1

color-highlight
nau
2.3.0

vscode-journal
paj
0.5.0

vscode-code-outline
pat
0.0.13

webstorm-icons
pms
0.0.3

vscode-yaml
red
0.0.10

sass-indented
rob
1.4.8

sockscode-vscode
shy
1.0.1

flowmaker
spe
1.2.0

vim
vsc
0.11.2

(2 theme extensions excluded)

Reproduces only with extensions

By default vscode will try to guess the tab size for files, you'll also have to set "editor.detectIndentation": false to disable that to force it to use editor.tabSize instead.

I already have the detect indentation disabled.

You indicated that this only reproduces with extensions, do you know which extension is interfering with it?

Sadly I have no idea which extension causes this.

vscode-yaml is the only one I can exclude because that was my initial guess.

The same happens to me.
Looking through the list of extensions I found that both of us use the same extension: EditorConfig.
When I disabled it and reloaded window everything went back to normal. After enabling it back tab settings got screwed again. So it looks like EditorConfig extension resets settings at some moment.

I've met the same problem, but I have nothing affecting the tab settings like .editorConfig in my project !

Please file issues against EditorConfig. Thanks!


Proposal: Enhance docker info UI to show running and stopped containers

I have a long running swarm that I use mostly for testing, sometimes I just stress test running containers while shutting down Agents and Managers.
The output of docker info in this case is:
Containers: 1362
Images: 11
Role: primary
Strategy: spread
Filters: affinity, health, constraint, port, dependency
Nodes: 3
swarm-agent-0: <IP_ADDRESS>:2376
└ Containers: 516
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.019 GiB
└ Labels: env=dev, executiondriver=native-0.2, kernelversion=3.13.0-55-generic, operatingsystem=Ubuntu 14.04.2 LTS, region=us-east, storage=hdd, storagedriver=aufs
swarm-agent-1: <IP_ADDRESS>:2376
└ Containers: 423
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.019 GiB
└ Labels: env=dev, executiondriver=native-0.2, kernelversion=3.13.0-55-generic, operatingsystem=Ubuntu 14.04.2 LTS, region=us-east, storage=ssd, storagedriver=aufs
swarm-agent-2: <IP_ADDRESS>:2376
└ Containers: 423
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.019 GiB
└ Labels: env=prod, executiondriver=native-0.2, kernelversion=3.13.0-55-generic, operatingsystem=Ubuntu 14.04.2 LTS, region=us-west, storage=ssd, storagedriver=aufs
CPUs: 3
Total Memory: 3.058 GiB
Name: swarm-manager-0

From the output, we could think that I have 1362 running containers even though I only have 10. I don't think it makes much sense to show Stopped containers on docker info as it does not help at assessing what is the overall resource utilization of the cluster. Especially for users with tons of short-lived batch jobs. I don't know what would be the best UI for this but I'd expect docker info to show more useful informations such as:
Containers [Running]: 10, [Stopped/Exited]: 1352
Images: 11
Role: primary
Strategy: spread
Filters: affinity, health, constraint, port, dependency
Nodes: 3
swarm-agent-0: <IP_ADDRESS>:2376
└ Containers: 516
    └ Running : 4
    └ Stopped/Exited : 512
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.019 GiB
└ Labels: env=dev, executiondriver=native-0.2, kernelversion=3.13.0-55-generic, operatingsystem=Ubuntu 14.04.2 LTS, region=us-east, storage=hdd, storagedriver=aufs
swarm-agent-1: <IP_ADDRESS>:2376
└ Containers: 423
    └ Running : 3
    └ Stopped/Exited : 420
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.019 GiB
└ Labels: env=dev, executiondriver=native-0.2, kernelversion=3.13.0-55-generic, operatingsystem=Ubuntu 14.04.2 LTS, region=us-east, storage=ssd, storagedriver=aufs
swarm-agent-2: <IP_ADDRESS>:2376
└ Containers: 423
    └ Running : 3
    └ Stopped/Exited : 420
└ Reserved CPUs: 0 / 1
└ Reserved Memory: 0 B / 1.019 GiB
└ Labels: env=prod, executiondriver=native-0.2, kernelversion=3.13.0-55-generic, operatingsystem=Ubuntu 14.04.2 LTS, region=us-west, storage=ssd, storagedriver=aufs
CPUs: 3
Total Memory: 3.058 GiB
Name: swarm-manager-0

WDYT?
@vieux @aluzzardi @jimmyxian @chanwit

:+1: pretty good. It's OK to show it in docker info

@abronan this is great!
Maybe tweaking a bit of the format would be easier to map this into JSON in long term.
Containers:
└ Running : 10
└ Stopped/Exited: 1362
Images: 11
Role: primary
Strategy: spread
Filters: affinity, health, constraint, port, dependency
Nodes: 3
swarm-agent-0: <IP_ADDRESS>:2376
└ Containers: 516
    └ Running : 4

+1. Sounds great. May be, we can have a more tabular form of output, that can go easier on eyes. I mean, like in OpenStack, each row can contain a node of the cluster, and the information can be given in columns.

@chanwit better :+1:
@Pensu I guess that using columns will be harder to parse maybe? (for our integration tests for example)

I like the idea, but can I suggest what we try to make this change in the engine itself ? I think it would be valuable even in single mode.
@abronan can you open an issue/proposal in the engine ?

@vieux Yeah I guess it could make sense even on a single docker daemon, having the information exposed through the remote API directly through info.

@abronan I was just talking about presentation. Parsing we can do in json format only. The thing is when you are listing 60-70 nodes, it kinds of become a lot of information to go through. Anyways, just a food for thought. :)

@vieux @abronan +1 for adding this to the engine.

@abronan did you open an issue on the engine ?

@vieux Yes the proposal on the Engine side is on docker/docker#15639. Needs your input :)

This has been solved long ago.


new version of psqlutils, add update method to serializers

@cormacp @niallryan @Rondineli

:+1:

👍


CI: Disable pytest warnings plugin

This is causing some failures in our test suite (see
https://travis-ci.org/dask/dask/jobs/235253007). Disable it for now,
but should eventually re-enable it when the pytest bug is fixed

I believe https://github.com/pytest-dev/pytest/issues/2430 is the pytest issue. I'll track it, and revert this change once the next pytest release is out.

I don't like this. If some test produces a warning that makes it fail, then there are probably ways to disable that warning in that test instead of disabling them in the whole test suite. Probably a combination of warnings.filter_warnings and warnings.catch_warnings.

That's not what this does. This disables the new pytest plugin that captures all warnings to output them at the end. We have tests that need to check stderr for testing warnings and thus need this capturing to be disabled.

This disables the new pytest plugin that captures all warnings to output them at the end.

I understood this. I think outputting warnings is a good thing, because they can point to legitimate issues. Here there are two specific tests that fail because of this, my suggestion is to find a way to write the tests so that they don't get affected by the pytest plugin.

I'm happy to rewrite with catch_warnings rather than capsys. I don't think it'll take much time.

Ah, I missed that one of the tests is failing because of a deprecation warning being raised when it shouldn't be (this is #2369). Sorry about that. The other should probably be rewritten to use pytest.warns.

Hmmm, afaict there doesn't seem to be a way to stop intentional warnings from still showing up in the test log. This makes our pytest output a bit noisier than desired, as ideally we'd try to keep the warnings output at the end empty. Playing around with the options here I wasn't able to find one that still allowed for warning testing, but didn't output the warning again at the end of the test run.

Hmmm, afaict there doesn't seem to be a way to stop intentional warnings from still showing up in the test log.

How so? I'll push this in a second, but at the moment things like
diff --git a/dask/dataframe/io/tests/test_csv.py b/dask/dataframe/io/tests/test_csv.py
index ee6a60e8..542eb030 100644
--- a/dask/dataframe/io/tests/test_csv.py
+++ b/dask/dataframe/io/tests/test_csv.py
@@ -422,23 +422,27 @@ def test_read_csv_compression(fmt, blocksize):
                   expected.reset_index(drop=True), check_dtype=False)

-def test_warn_non_seekable_files(capsys):
+def test_warn_non_seekable_files():
     files2 = valmap(compress['gzip'], csv_files)
     with filetexts(files2, mode='b'):

-        # with tm.assert_produces_warning(UserWarning):
-        df = dd.read_csv('2014-01-*.csv', compression='gzip')
-        assert df.npartitions == 3
-        out, err = capsys.readouterr()
-        assert 'gzip' in err
-        assert 'blocksize=None' in err
+        with pytest.warns(UserWarning) as w:
+            df = dd.read_csv('2014-01-*.csv', compression='gzip')
+            assert df.npartitions == 3

-        df = dd.read_csv('2014-01-*.csv', compression='gzip', blocksize=None)
-        out, err = capsys.readouterr()
-        assert not err and not out
+        assert len(w) == 1
+        msg = str(w[0].message)
+        assert 'gzip' in msg
+        assert 'blocksize=None' in msg
+
+        with pytest.warns(None) as w:
+            df = dd.read_csv('2014-01-*.csv', compression='gzip',
+                             blocksize=None)
+        assert len(w) == 0

         with pytest.raises(NotImplementedError):
-            df = dd.read_csv('2014-01-*.csv', compression='foo')
+            with pytest.warns(UserWarning):  # needed for pytest
+                df = dd.read_csv('2014-01-*.csv', compression='foo')

 def test_windows_line_terminator():
@@ -727,8 +731,8 @@ def test_read_csv_sep():
     charlie###300""")

     with filetext(sep_text) as fn:
-        ddf = dd.read_csv(fn, sep="###")
-        df = pd.read_csv(fn, sep="###")
+        ddf = dd.read_csv(fn, sep="###", engine="python")
+        df = pd.read_csv(fn, sep="###", engine="python")

         assert (df.columns == ddf.columns).all()
         assert len(df) == len(ddf)
@@ -859,13 +863,15 @@ def test_to_csv_multiple_files_cornercases():

 @pytest.mark.xfail(reason="to_csv does not support compression")
 def test_to_csv_gzip():
+    import warnings
+    warnings.simplefilter("error", category=DeprecationWarning)
     df = pd.DataFrame({'x': ['a', 'b', 'c', 'd'],
                        'y': [1, 2, 3, 4]}, index=[1., 2., 3., 4.])

     for npartitions in [1, 2]:
         a = dd.from_pandas(df, npartitions)
         with tmpfile('csv') as fn:
-            a.to_csv(fn, compression='gzip')
+            a.to_csv(fn, compression='gzip', sep=",")
             result = pd.read_csv(fn, index_col=0, compression='gzip')
             tm.assert_frame_equal(result, df)

diff --git a/dask/dataframe/utils.py b/dask/dataframe/utils.py
index 36ba68ef..f3a924b2 100644

prevents the warnings from showing in the output.

Ah, nvm, I missed adding the pytest.warns under the  pytest.raises(NotImplementedError) block, which still led to output. Sorry for the noise :).

This is the minimal set of changes required to get the test suite passing again. I have more work on another branch to fix the rest of the warnings, but wanted to get this in to not hold anyone else up.

LGTM. Thanks for taking care of this.


Log 13026 Build/Packaging

Maybe just some information in the description about the general PR structure, i.e. the general steps around packaging it up for brew?

that exists, i'll link it to you


fix populate python constraints from markers

Resolves: python-poetry#

[x] Added tests for changed code.
[ ] Updated documentation for changed code.

Should be fixed by #284 and/or #324. If there's still an issue feel free to reopen.


Entity Linking

https://github.com/deepmipt/DeepPavlov/blob/master/docs/features/models/entity_linking.rst
I was reading this and got how to run entity linking.
But could you give me more detailed description of output meaning?
python -m deeppavlov interact entity_linking_eng -d

The city stands on the River Thames in the south-east of England, at the head of its 50-mile (80 km) estuary leading to the North Sea.
(['the river thames', 'the north sea', 'england'], [[4, 5, 6], [30, 31, 32], [13]], ['Q19686', 'Q1693', 'Q21'])

What does this output mean?

Hi, @rider8581
Firs list is detected entities substrings, second - detected entities positions, third is detected entities ids in wikidata (https://www.wikidata.org/wiki/Q19686 for the river thames etc)


Feature target reference linking

Fixes #122 and #123

Coverage decreased (-0.01%) to 87.997% when pulling 597e3b36c605d9f1001c34174d87c290fb1bd9eb on feature-target-reference-linking into d661872609d6d01df8b315a2e1874f8ee7498d87 on develop.


Microsoft.PowerBI version 2.114.664.0

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Microsoft.PowerBI package needed an update as there's a new version out there and the hash no longer matches - causing all new installations to fail.


RFC 0036: Ack on receipt or acceptance?

If an issuer includes ~please_ack in its credential-issue message, the diagram in RFC 0036 implies that the holder sends ack on acceptance (i.e, holder saves credential). But the default semantics of the decorator apply to the credential-issue message itself, not the credential it contains, implying that the holder owes an ack on receipt, whether the prospective holder saves the credential or not.
I'm inclined to think that the picture is closest to the design intent and hence the ack should follow on storage.
Note however that both the text of RFC 0036 and the example of RFC 0317 imply ack-on-receipt, even if the holder ultimately decides not to save the credential. It's a dilemma.
I think a key question is this: are credential-received, credential-saved, and credential-acked truly three distinct states? If not, how many distinct states do they represent?
If we can model them as all distinct states, the issuer ought to ask for acknowledgement on storage; i.e., {... "on": ["credential_stored"]}. I don't think it's of interest to the issuer to receive multiple acks for one credential issue (i.e., on receipt and storage both). Just my initial prejudice. If that's correct, then the text of RFCs 36 and 317 ought to reflect the exact semantics and I'm happy make such proposals if I get a nod here.

I believe protocols should adopt ack wherever appropriate and should specify how it drives state transitions. ~please-ack seems an unnecessary complication and protocols should not rely on it.
Reference: #306

Regardless, Aries RFC 36 https://github.com/hyperledger/aries-rfcs/tree/master/features/0036-issue-credential#issue-credential calls for please-ack decorator inclusion at present, so although I believe there is something to this argument, it is a separate (broader) topic.

A working prototype using issuer explicit please-ack on credential acceptance appears in https://github.com/hyperledger/aries-cloudagent-python/pull/278.

We're planning to have a run through of this issue on the Aries WG call tomorrow - US Afternoon.
On @sklump's original question - I think it is up to the holder to decide if/when to respond to the ~please_ack, and IMHO, it should be done at the completion of the processing of the credential.
The sender of the ~please_ack must realize that the responder may not support the decorator, may choose to ignore it and may choose when to respond. That is further complicated by a responder choosing to answer immediately on receipt of the message (e.g. before it is delegated to the message's handler) or within the handler (if the handler has adopted the ACK message).
We need to address the difference in the 0036 picture (an explicit ACK from the holder at the end of the protocol) and the text, which says "only send an ACK if the issuer asks for it via a ~please_ack".  In ACA-Py, it's been implemented as the picture shows, but we can update that if necessary. Alternatively, we update the RFC to 1.01 and remove the reference to the ~please_ack.

I think a key question is this: are credential-received, credential-saved, and credential-acked truly three distinct states? If not, how many distinct states do they represent?

There is no guarantee in this protocol that a credential will be saved, ever. The goal of the protocol is to issue a credential, not to make sure it gets saved in the holder's wallet. (I know, those are closely related. I'm splitting hairs. But still...)  Therefore, even if credential-saved is a state for a particular holder's impl, it's not a state that the other party in the protocol can reference. The ack has to be associated with the receipt of the message that carries the attached cred; any greater precision (before or after save to disk) is not supported by the protocol. If I were implementing the protocol, I'd probably react to ~please_ack after saving to disk (or at least, after making sure I could parse the attachment and it looked like I expected, so I knew I wasn't going to return an error instead). But  some other impl could make a different choice. The ACK is proof that the credential-bearing message arrived and was seen/processed in some way--nothing more.

We didn't get to talk about this on the Aries WG call last week (ran out of time), but my $0.02CDN after thinking about it a bit:

I'd like to drop other than "on": "receipt" and "on": "outcome" from the ~please_ack RFC, and get the RFC accepted.

for example, remove the mention in the RFC of every n hours as a possible value of "on"
other features can be added in later versions.

Define that the scope of the ~please_ack is just the current message (e.g. doesn't affect other messages)
Be explicit about the meanings of what the "on" value:

receipt: message has been received, no processing done. Typically used when there is likely to be a delay between the receipt and response to a message - much as chat apps use to indicate received.
outcome: at the end of the processing of the current message.  Used when there is no implicit or explicit ACK at the end of a protocol, such as we (we might) have with 0036.

For 0036 I'd like to drop the explicit ACK from the holder and make it optional at the request of the issuer, as is described in the text.

We would need an update to the picture to clarify that.

Add to the 0005 Ack RFC that all protocols should not error on receipt of an Ack or a Problem Report.

Feedback welcome - that proposal still has some ambiguity to be eliminated.  This discussion shows how we need to be a tighter in defining our RFCs as we transition from proposed to accepted.

(edit: 0005 Ack RFC -> 0015 Ack RFC)

It bothers me having an ACK that only indicates that the message was received, not that it was fully validated and (at least initially) processed. The agent could conceivably crash and lose the message between sending this ACK and processing it. Asking for such an acknowledgement seems like an aspect of the message transport, and having that exclusive of further acknowledgements doesn't seem right, because the sender may want both.

Agreed that the sender could want both and as the ~please_ack is currently defined, it supports having both requested.
When the receipt ACK is sent is (I think) up to the implementation. Could be sent in the dispatcher (e.g. the thing that first decrypts the messages) when it sees the ~please_ack:receipt, or by the handler for the message type.  Not sure if that should be defined in the RFC or left to implementations.
The idea of there being a transport level ~please_ack mechanism is (I think) a new idea that could be explored.

Per discussion on Aries WG call 20200108, we're going to close this call. Some clarifying comments maybe added to the RFC to clarify that the implementation can decide when to send the ACK, with the understanding that the ACK tells the issuer that all is well, and the issuer need not track the protocol state any further.  Other topics raised in the discussion are open elsewhere - notably the discussion on ~please_ack that now is in it's own RFC.
Please reopen if we missed anything that remains open.


[Improvement] Username and password should not be displayed in plaintext when loading catalogs

What would you like to be improved?

Plaintext is dangerous and can't be applied in production, we should encode those information when loading catalogs from Gravitino
How should we improve?
No response

I think username should be displayed in plaintext, just password need b encoded.
Username is an important information in many scenarios

I think username should be displayed in plaintext, just password need b encoded.
Username is an important information in many scenarios

Agree.

See also #1395. It would be best to fix this in the backend, not the UI.

Since it's repeated with #1395, @Clearvive can you work on it?

I'm also interested in this.  @Clearvive If you don't have the time, I can take on this task.


chore(dcos-ui): update to v1.11.1

High-level description
What features does this change enable? What bugs does this change fix?
Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS-21305: feat(Packages): respect minDcosReleaseVersion
DCOS-21440: fix(vips): keep VIP label
DCOS_OSS-2244: feat(task-details-tab): display task's ip addresses
DCOS-21190: fix(services-table): hide text if the service status is N/A
DCOS-19586: feat(podDetail): add volume views to podDetail
DCOS-21571: fix(moment): update moment
DCOS-21784: fix(MesosStateStore): adjust stream data handling
DCOS-21701: feat(mesos-stream): repeat the stream
DCOS-21469: feat(package-describe): add fixture for x-region:string

Related tickets (optional)
Other tickets related to this change:
Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[ ] Read the DC/OS contributing guidelines
[ ] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label [Ready For Review]


Do not filter by namespace if vm is missing a namespace

Currently when vm is missing a namespace we do not show any nic, we want to show all namespaces when not namespace is defined.
Ref: https://github.com/kubevirt/web-ui/pull/265
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1687917

@rawagner Thanks for finding the issue that caused the bug 100 ,
@rawagner @suomiy please review.
I think this should be wip until https://github.com/kubevirt/web-ui/pull/265 is mered, does that make sense ?

Pull Request Test Coverage Report for Build 1049

4 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 87.617%

Totals

Change from base Build 1264:
0.01%

Covered Lines:
3102

Relevant Lines:
3396

💛  - Coveralls

IMHO its not necessary to do the filtering here again, when we agree that we are expecting networks which are already filtered

IMHO its not necessary to do the filtering here again, when we agree that we are expecting networks which are already filtered

@rawagner  :+1: I also think so, will remove the check, and leave as WIP until 265 is merged.
p.s.
I didn't know what is going to happen with https://github.com/kubevirt/web-ui/pull/265 so didn't want to remove ...

Currently when vm is missing a namespace we do not show any nic, we want to show all namespaces when not namespace is defined.

what do you mean? how could a vm possibly miss a namespace?

what do you mean? how could a vm possibly miss a namespace?

@suomiy we do not have a vm at that stage. The bug happen when we edit vmTemplate , when createNicRow is called from edit vmTemplate vm.namespace is not defined.

@rawagner @suomiy I removed the filtering by namespace per comment https://github.com/kubevirt/web-ui-components/pull/316#issuecomment-480741538 this should also adress comment https://github.com/kubevirt/web-ui-components/pull/316#pullrequestreview-223754545 because filtering is moved upstream.

Removed wip because https://github.com/kubevirt/web-ui/pull/265 is merged.

@suomiy any thoughts about coveralls error, I do not know what I did to upset it :-( ?

@yaacov coverage decreased so coveralls wont approve this PR - but I will!


End point needed to pull current term course data for Gies students

The 8th item in the Gies checklist should show a list of courses the student is currently registered for for the current term. An end point is needed for the app to query to get that data. The end point should take a UIN as parameter and pass that to the campus data sources to get data for the student in the following format.
[{"term":"FA2022","subject":"CS","number":"121","section":"A3","title":"Intro to CS","instructor":"N. Vance"},{"term":"FA2022","subject":"CS","number":"235","section":"C2","title":"Algorithms","instructor":"Y. Lee"},{"term":"FA2022","subject":"BUS","number":"445","section":"A0","title":"A Business Course","instructor":"C. Tidrick"},{"term":"FA2022","subject":"MATH","number":"232","section":"B3","title":"Calc II","instructor":"T. Nelson"}]

This was released in the initial version..


Integrate diagnostic-comments.nvim with LLM.nvim for automated error context

Integrate diagnostic-comments.nvim for Automated Error Context
Hi there!
I'm Ken Taylor, and I love using llm.nvim for code improvements in Neovim. I've developed a complementary plugin called diagnostic-comments.nvim that I believe could enhance the workflow for llm.nvim users.
The Idea
diagnostic-comments.nvim automatically creates comments above lines with errors, describing the error. This automates the process of providing context to the LLM, which is currently done manually by users adding comments before sending code to llm.nvim.
Benefits

Streamlines the process of providing error context to the LLM
Reduces manual work for users
Ensures consistent and accurate error descriptions
Potentially improves the quality of LLM responses

Potential Implementation
We could integrate diagnostic-comments.nvim with llm.nvim by:

Adding an option in llm.nvim to automatically invoke diagnostic-comments.nvim before sending code to the LLM.
Extending llm.nvim's text selection to automatically include the generated error comments.

I've created a video showcasing both projects working together, which demonstrates the potential of this integration. Will add it at the end.
Would you be interested in exploring this integration? I'm open to contributing to make this happen.
Looking forward to your thoughts!
Ken Taylor
https://github.com/user-attachments/assets/19a29e1d-ec83-4c0e-a663-14718134f8e0

forgot to link my project - diagnostic-comments

Very interesting idea. Unfortunately the video is unplayable. Btw you do not need to integrate this with llm.nvim. you can make a user command on your end that calls diagnostic-comments, then calls llm.nvim, binded to a shortcut. I would rather prefer this approach to minimize frills, in the spirit of chaining stuff the unix way. But I appreciate the idea!

Thank for your reply, I also agree. That seems like the best approach for this.
uploaded the video to youtube here
Thanks again


Cell Network Up Keep Going Callback Fails at Tick Wrap-Around

Problem Description
The root of this issue seems to be that the stop time is stored as a 64-bit integer in the cell context.
https://github.com/u-blox/ubxlib/blob/05f4af4287e9c80f45e5272ca2e3d4bafb4a66ad/common/device/src/u_device_shared_cell.h#L46-L51
When the stop time is calculated, if the tick is within the timeout window of INT32_MAX (by default, 60 seconds), the stop time will be set beyond the range of int32_t.
https://github.com/u-blox/ubxlib/blob/05f4af4287e9c80f45e5272ca2e3d4bafb4a66ad/common/network/src/u_network_private_cell.c#L176-L177
Additionally, even if it were wrapped around correctly, this buggy check in the default keep going callback means that it would immediately time out.
https://github.com/u-blox/ubxlib/blob/05f4af4287e9c80f45e5272ca2e3d4bafb4a66ad/common/network/src/u_network_private_cell.c#L77-L92
Proposed Solution

Change the stop time value to use int32_t to match the portable API.
Fix the check used in the keep going callback to calculate a difference.

See attached example patch

Hi, and thanks for spotting this; your proposed fix looks good.  We will integrate it but, unfortunately, at the moment the cellular side of our test system is down, as the equipment we use as our cellular test network lost its hard disk at the weekend.
Once we have put the pieces back together again, so that we are able to regression test cellular stuff, we will get the change tested/reviewed and pushed to master here.  I will update this issue when that occurs.
[Also talk later I understand].

The fix for his issue is included in the rather larger fix of commit 79e808eb8be3095b4f94efcffba97515ba1870bd.