Update error.js

Standardize error key for status code

Hi, thanks for taking your time to contribute.
In my opinion code is more standard in most apis, see the github api for an example.
You can create an issue so we can discuss more about this, please take at look at our contributing guide.


Failing coverage check on forked Pull Requests

As seen on #17 , #12 , #11 and any other forked PRs to master, the coverage check fails.
The check fails due to CC_TEST_REPORTER_ID which is used in uploading test reports to codeclimate not being available to forks. The discussion at https://github.community/t/make-secrets-available-to-builds-of-forks/16166 is inconclusive, meaning we have to find our own solution or remove the check completely.
Possible solutions include:

Find a way to make CC_TEST_REPORTER_ID available to forks following the above link.
Remove the check from PRs. This will involve playing around with the main.yaml github action file to get it just right.
Non Ideal Make CC_TEST_REPORTER_ID public. This is something we really shouldnt do as people using parts of the code might end up using this secret.

I'm not so familiar with CI on Github, but if CC_TEST_REPORTER_ID was made available to forks isn't that the same as making it public? For example, I could just do something like echo $CC_TEST_REPORTER_ID and I'd have the key.

I just made a commit to master which should solve this case by using if in the .github ci file. We'll need to test if this works on the next fork before closing this.

Thanks for the help everyone, it was fixed by having another look at github actions conditionals.


Repo sync for protected CLA branch

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

Learn Build status updates of commit 1b3bebe:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Add proxy entity resource to readme

Customer explained that they had a bit of a time trying to figure out how to do a proxy check with the cookbook. Could use a useful example of a proxy check.

#93 adds an example proxy entity resource but to satisfy this request, we still need an example check which would be scheduled for an agent on behalf of this proxy entity

@cwjohnston can you expand or raise a PR with what you are expecting? I thought that having a valid value for subscriptions and specifying the entity_type is enough to define a proxy check and get it scheduled. Am I missing anything? https://github.com/sensu/sensu-go-chef/tree/1.1.0#examples-10

@majormoses took a shot at trying to explain this in the readme in #113. If it's incorrect or could use more clarity let me

Ah gotcha, @joe-armstrong fyi since you likely need to update some internal cookbooks your migrating.


Specs for the ontology group

So dear @pyiron/ontology team, I wrote down in a very explicit way the parts that we can probably agree on quickly, in order for the implementation to be done systematically. I'm obviously painfully aware of the fact that I haven't included any of the tricky points discussed this Monday and in the following conversation on the discussion page, but I think it's good to have a solid ground to build a house on. I think the list below is fairly rudimentary but I still don't think it's something to sneeze at, because just for having this information we can already extract quite an amount of ontological data.
Anyway I would be very happy to have your comments. Especially it would be nice if we could also think about how to include the points we discussed this week.
I already started writing a prototype here, but it doesn't strictly follow the points I wrote here, so I will rewrite it and post the revamped version here below.
Basics

(Technical) The user should provide a default name space EX = Namespace(my_namespace)
"An argument with a URI" <-> "An ontological object"
The label should be defined by the user, otherwise the label extracted by pyiron_workflow is used
The label defines the node (cf. next point)
The following information is automatically extracted and added to the knowledge graph

label: (URIRef(label), RDFS.label, Literal(label))
uri: (URIRef(label), RDF.type, uri)
data type?
value (if available) (URIRef(label), EX.hasValue, Literal(value))
units (if available) (URIRef(label), EX.hasUnit, EX[units]) (probably a different namespace for units)

All the items above (URI, label, data type, units) can be specified either by a data class or by semantikon arguments, i.e. the following two cases are equivalent:
Case I
from semantikon.converter import semantikon_class
from ase import Atoms

@semantikon_class
@dataclass
class ComputationalSample:
    class Structure(Atoms):
        uri: 1234

    class Output:
        class Energy:
            uri: 5678
            units: "eV"
            dtype: float

def calculate_energy(structure: ComputationalSample.Structure) -> ComputationalSample.Output.Energy:
    ...
    return energy

Case II
from semantikon.typing import u
from ase import Atoms

def calculate_energy(structure: u(Atoms, uri=1234)) -> u(float, uri=5678, units="eV"):
    ....
    return energy

Triples

Only triples define the relationships between nodes (EX["IsElementOf"], "structure")

For the object of the triple, the label must be given as a str

Triples can also define properties, e.g. (EX["HasDefect"], EX["vacancy"])

For the object of the triple, the property must be given as a URI

Parsing

The parsing of the information above is done without an additional parser, i.e. pyiron provides a tool (probably a function) to automatically extract the ontological information mentioned above.
The extracted information is given in the form of a knowledge graph

This time (in contrast to my last attempts), I strictly followed the text above, and wrote a prototype. It's again workflow to calculate the volume of a chemical element, where it involves two steps: element -> structure -> volume.
Parser
from rdflib import Graph, Literal, RDF, URIRef, RDFS, Namespace
from semantikon.converter import parse_input_args, parse_output_args

EX = Namespace("http://example.org/")

def get_inputs_and_outputs(node):
    """
    Read input and output arguments with their type hints and return a dictionary containing all input output information

    Args:
        node (pyiron_workflow.nodes.Node): node to be parsed

    Returns:
        (dict): dictionary containing input output args, type hints, values and variable names
    """
    inputs = parse_input_args(node.node_function)
    outputs = parse_output_args(node.node_function)
    if isinstance(outputs, dict):
        outputs = (outputs, )
    outputs = {key: out for key, out in zip(node.outputs.labels, outputs)}
    for key, value in node.inputs.to_value_dict().items():
        inputs[key]["value"] = value
        inputs[key]["var_name"] = key
    for key, value in node.outputs.to_value_dict().items():
        outputs[key]["value"] = value
        outputs[key]["var_name"] = key
    return {"input": inputs, "output": outputs}

def get_node_dict(io_dict):
    """
    Translate the dictionary returned by get_inputs_and_outputs into
    the one that contains keys with their labels (or variable names
    whenever labels are not available) and the values with the dict
    content
    """
    results = {}
    for io_ in ["input", "output"]:
        for key, value in io_dict[io_].items():
            if "uri" not in value:
                continue
            if value["label"] is not None:
                results[value["label"]] = value
            else:
                results[key] = value
    return results

def node_to_knowledge_graph(node, graph=None, EX=EX):
    """Translate a node into a knowledge graph"""
    if graph == None:
        graph = Graph()
    d = get_inputs_and_outputs(node)
    node_dict = get_node_dict(d)
    for key, d in node_dict.items():
        label = URIRef(key)
        label_def_triple = (label, RDFS.label, Literal(key))
        if len(list(graph.triples(label_def_triple))) == 0:
            graph.add(label_def_triple)
            graph.add((label, RDF.type, d["uri"]))
            graph.add((label, EX.HasValue, Literal(d["value"])))
            if d["units"] is not None:
                graph.add((label, EX.HasUnits, EX[d["units"]]))
        if d["triple"] is not None:
            graph.add((label, d["triple"][0], URIRef(d["triple"][1])))
    return graph

def workflow_to_knowledge_graph(wf, graph=None, EX=EX):
    if graph is None:
        graph = Graph()
    for node in wf.children.values():
        graph = node_to_knowledge_graph(node=node, graph=graph, EX=EX)
    return graph

User definition
from pyiron_workflow import Workflow
from semantikon.typing import u
from ase import Atoms, build

@Workflow.wrap.as_function_node
def create_structure(
    element: u(str, triple=(EX["IsElementOf"], "structure"), uri=EX["element"])
) -> u(Atoms, uri=EX["ComputationalSample"]):
    structure = build.bulk(element, cubic=True)
    return structure

@Workflow.wrap.as_function_node
def get_volume(
    structure: u(Atoms, uri=EX["ComputationalSample"])
) -> u(float, units="angstrom**3", triple=(EX["IsCalculatedPropertyOf"], "structure"), uri=EX["volume"]):
    volume = structure.get_volume()
    return volume

wf = Workflow("my_workflow")

wf.structure = create_structure(element="Al")
wf.volume = get_volume(structure=wf.structure)
wf.run()

Parsing
graph = workflow_to_knowledge_graph(wf)
print(list(graph.triples(3 * (None, ))))

Output:
[(rdflib.term.URIRef('element'),
  rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
  rdflib.term.URIRef('http://example.org/element')),
 (rdflib.term.URIRef('volume'),
  rdflib.term.URIRef('http://example.org/HasUnits'),
  rdflib.term.URIRef('http://example.org/angstrom**3')),
 (rdflib.term.URIRef('structure'),
  rdflib.term.URIRef('http://www.w3.org/2000/01/rdf-schema#label'),
  rdflib.term.Literal('structure')),
 (rdflib.term.URIRef('element'),
  rdflib.term.URIRef('http://www.w3.org/2000/01/rdf-schema#label'),
  rdflib.term.Literal('element')),
 (rdflib.term.URIRef('element'),
  rdflib.term.URIRef('http://example.org/IsElementOf'),
  rdflib.term.URIRef('structure')),
 (rdflib.term.URIRef('volume'),
  rdflib.term.URIRef('http://example.org/HasValue'),
  rdflib.term.Literal('66.43012500000002', datatype=rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#double'))),
 (rdflib.term.URIRef('volume'),
  rdflib.term.URIRef('http://example.org/IsCalculatedPropertyOf'),
  rdflib.term.URIRef('structure')),
 (rdflib.term.URIRef('volume'),
  rdflib.term.URIRef('http://www.w3.org/2000/01/rdf-schema#label'),
  rdflib.term.Literal('volume')),
 (rdflib.term.URIRef('structure'),
  rdflib.term.URIRef('http://example.org/HasValue'),
  rdflib.term.Literal("Atoms(symbols='Al4', pbc=True, cell=[4.05, 4.05, 4.05])")),
 (rdflib.term.URIRef('volume'),
  rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
  rdflib.term.URIRef('http://example.org/volume')),
 (rdflib.term.URIRef('structure'),
  rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
  rdflib.term.URIRef('http://example.org/ComputationalSample')),
 (rdflib.term.URIRef('element'),
  rdflib.term.URIRef('http://example.org/HasValue'),
  rdflib.term.Literal('Al'))]

Nice work, @samwaseda. At a first read it looks good to me. The only clear problem is see is that the io parsing needs to more particularly specify whether a reference to another object is referencing an input or output object. If I'm reading this correctly, labels are scraped from the function, all the labels are lumped together, and then we look for our reference. Since there's nothing stopping us from having the same label as both an input and output, this is thus not fully defined.
I reserve the right to find other complaints later 😝 but so far this is the only thing that I see as definitively problematic. This is a nice strong foundation.

The only clear problem is see is that the io parsing needs to more particularly specify whether a reference to another object is referencing an input or output object. If I'm reading this correctly, labels are scraped from the function, all the labels are lumped together, and then we look for our reference. Since there's nothing stopping us from having the same label as both an input and output, this is thus not fully defined.

Ah it's true that I removed label="structure" etc. in the example above just to test the code, but yes, otherwise people should write:
@Workflow.wrap.as_function_node
def create_structure(
    element: u(str, triple=(EX["IsElementOf"], "structure"), uri=EX["element"], label="element")
) -> u(Atoms, uri=EX["ComputationalSample"], label="structure"):
    structure = build.bulk(element, cubic=True)
    return structure

And I'm kind of hoping that the introduction of label enable the user to specify whether it's input or output by choosing distinct labels, i.e. they could say something like
@Workflow.wrap.as_function_node
def some_transformation(
    u(Atoms, uri=EX["ComputationalSample"], label="input.structure")
) -> u(Atoms, uri=EX["ComputationalSample"], label="output.structure"):
    ...
    return structure


Move some test fixtures to go

moves ensure-frozen-images to go
moves ensure-syscall-test to go
moves ensure-nnp-test to go
moves ensure-httpserver to go
Also makes some of the fixtures load only for the required tests. This makes sure that fixtures that won't be needed for a test run such as make TESTFLAGS='-check.f Swarm' test-integration-cli (for example) aren't loaded... like the syscall tests.

@cpuguy83 Windows is not passing.
I wonder if it makes sense to split up the frozen images as well. For example, whole DockerDaemonSuite+swarm never needs more than busybox. Can easily be a follow-up.
Before you tackle the main daemon to also start from Go lets figure out what to do with #24613

Looks like just 1 more issue with win2lin.

I've restarted win2lin. Let's get this to pass before merging :)

Yes, it looks like the remote-daemon case is not quite right. Will have to investigate further.

@jhowardmsft fixtures_linux_daemon.go:21: fork/exec C:\Jenkins\gopath\src\github.com\docker\docker\contrib\download-frozen-image-v2.sh: %1 is not a valid Win32
How am I supposed to exec this shell script?

Launch sh.exe with the script name as a parameter?

@tonistiigi I (kinda) got it working to only load frozen images as needed. But there is a problem that when the frozen images already exist on disk, it has to load everything in that dir, which includes the big images, like buildpack-deps.
 So basically no improvement for local dev.

@cpuguy83 LGTM (apart from win2lin).
I have some ideas for loading daemons to replace #24613 and include/share frozen images based on these daemons. I'll try out some poc code and let you know how it goes.

This is all green

LGTM

LGTM from the Windows side.

Has anyone run this against another arch job?

It was run against arm earlier... I'll re-trigger.

@cpuguy83 Ok, thanks. I kicked off power too.

@cpuguy83 Failures look related. :crying_cat_face: I can help look into it today if it's not obvious what went wrong.

argh, the never-ending PR.

Ok, powerpc passes. ARM is still running (go figure), but looks like it'll be ok.
Think we're good here.

@cpuguy83 the arm fail looks like it might be related:
17:19:44 ----------------------------------------------------------------------
17:19:44 FAIL: docker_cli_logs_test.go:230: DockerSuite.TestLogsFollowSlowStdoutConsumer
17:19:44
17:19:44 docker_cli_logs_test.go:259:
17:19:44     c.Assert(actual, checker.Equals, expected)
17:19:44 ... obtained int = 130718
17:19:44 ... expected int = 200000
17:19:44
17:19:49
17:19:49 ----------------------------------------------------------------------

I don't think it's related.

ok sorry for the noise :)

Rebased

LGTM


Add --enable-strict-locations option, describe default in its help text

Rather than guess user's intention based on whether --prefix was
specified, use an explicit option to enable strict GNU Coding Standards
for installation directories.
The default is to use /etc and /var rather than corresponding directories
under prefix.
Use --enable-strict-locations in "make distcheck", it expects all
installed files to be under prefix.

The choice of the command line option name is consistent with xorgxrdp, which already has that option.
As it stands now, --prefix has unexpected side effects. The PR addresses the issue by

decoupling --prefix from non-standard install directories
documenting the default directories in ./configure --help
providing an option to get standard behavior

+1


categoryID parameter, multiple id problem

Hi,
First of all thanks a lot for this repo.
I was checking and trying to implement a project with it but there seems to be a problem when you try to provide multiple ids separating with coma like: "categoryID" : "4xxxxxxx, 4xxxxxx"
It returns back with invalid categoryID response, even though all the categories works perfectly fine alone.
Thanks,
Emre

@emrepun Hi,
Is it possible to remove space?
"categoryID" : "4xxxxxxx, 4xxxxxx"
-> "categoryID" : "4xxxxxxx,4xxxxxx"

Hi again,
Last night I've also tried without space and it didn't work. But now I tried again with different IDs and it worked fine, I guess the problem was with one of the IDs I tried yesterday.
Thanks for your answer :)


appengine: limit outgoing connections [needs further investigation]

App Engine can only support a limited number of outgoing connections.

/cc @raggi

cc @adamtanner

What's the limit?
What's this bug about, constraining some client library (which? all?) from hitting the max and getting errors?

@broady do you have more info? AFAICT, the number of open connections should be predictable for any given API (correct me if I'm wrong), so the developer should be able to control the concurrent requests/connections themselves…

This came up during a customer meeting. I didn't quite understand the details.
If a system (e.g., App Engine) has a limit for outgoing connections, I don't think it's for libraries/packages like this one to limit their connections.

I agree. It seems the if the customer has a hard limit on connections, they should be able to achieve this themselves with their own http.RoundTripper implementation that they passing via option.WithBaseHTTPClient to the relevant APIs – @bradfitz correct me if I'm wrong and that wouldn't be feasible.

Closing for now. Please re-open if there's a compelling reason.

What they described was that during relatively heavy Datstore usage, they were seeing their processes hitting the fd limit. This was on MVM, so I presume it's at the userspace default of 1024.
We should ask them for a replication case, but their description of doing around 500 transactions per second should be sufficient to attempt a repetition.
I believe the desired behavior here would be to be able to set a limit that would lead to blocking, rather than having the system limit lead to errors.


Support for knex 0.95.0

I just upgrade knex to 0.95.0 and now I'm getting typescript compilation errors in objectionjs like this:
node_modules/objection/typings/objection/index.d.ts:1830:12 - error TS2709: Cannot use namespace 'Knex' as a type.

1830     (knex: Knex, modelClasses: AnyModelConstructor[]): Promise<void>;
                ~~~~

Will support for 0.95 be added soon?

with 0.95.1  same problem

Supporting 0.95 means dropping support for all versions before. Knex has put us in quite of a pickle. It's better to not update to 0.95 for now.

@koskimas I apologize for the problems caused by this change, but since we are starting to prepare for 1.0.0, it was important to lock in all the major breaking changes within 0.95.0 so that 1.0.0 is mostly uneventful with just last-minute lesser breaking changes included. And personally I find previous default exported type that could mean three different things, depending on a context, extremely confusing.
I take it that there are no plans for next Objection.js semver major in the nearby future?

Well, objection should have limited the range of accepted peer dependencies to knex. You did bump the largest nonzero version with the breaking change, which is in line with semver. Objection used to have a strict selector for accepted knex versions, but then I had to bump that like every week when a new knex version came out, so I changed it to 0.x.
I don't want to bump the objection major version just for this though. I'll probably just bump the minor.

I'll update the PR for 0.95 support then.

If it's a breaking change, why wouldn't knex just go for 1.X.X?

@Zeswen You can only have one 1.0.0 release ever, so our decision was to do as many big changes in 0.95.0 as possible and work out all the rough edges, so that 1.0.0 is as polished and as attractive to the wide audience as possible. I expect it to have much lesser amount of breaking changes.

@Zeswen You can only have one 1.0.0 release ever, so our decision was to do as many big changes in 0.95.0 as possible and work out all the rough edges, so that 1.0.0 is as polished and as attractive to the wide audience as possible. I expect it to have much lesser amount of breaking changes.

Thank you for your clarification, but I belive a better approach would have been possible :)
As the semVer documentation implies, a pre-release 1.0.0-beta or 1.0.0-rc.1 would have been a great one for it.
Updating the minor versions breaks most of the packages that have automated minor/patch versions updates, its a great risk.

After giving it some more thought, I'll just go ahead and do "the right thing" and release 3.0. @kibertoad Are you sure there will be no more breaking changes before 1.0? Because if there will, We'll have to wait until that. I don't want to release 4.0, 5.0 and 6.0 too just because of knex.

@koskimas No more breaking changes in 0.95.0; next batch of breaking changes will be in 1.0.0, but hopefully none of them will be major enough to require changes on Objection side.

I'll update the 0.95.0 compatibility PR in a few hours, sorry for the delay

@kibertoad Thank you so much for working on the PR. I really appreciate it!

batch of breaking changes will be in 1.0.0

I'm afraid this means that we'll have to wait until 1.0 to release objection 3.0. I don't want to release 3.0 now to support > 0.95 < 1.0 and then 4.0 when knex 1.0 comes out 😞

@koskimas Honestly, I believe 1.0.0 breaking anything in Objection to be extremely unlikely. We've released 7 major versions of knex in last 2 years, and I think that 0.95.0 was the first one to include changes that ended up to be breaking for Objection. I think the extent of breaking changes in knex are going to amount to dropping deprecated use-cases such as passing negative offset, which Objection shouldn't care about. The whole idea of 0.95.0 was to do all the scary changes prior to 1.0.0.

If the period of time is going to be relatively short between v0.95 and the release of v1, I'd recommend we just wait!  What's the rush?  Then objection v3 can support v0.95+, or if there do end-up being breaking changes between v0.95 and v1 that affect objection, perhaps objection would just skip v0.95 or be able to offer some compatibility option.  I don't see any major downside, besides not being able to use v0.95 immediately which sounds like it's being used as a beta version of v1 anyway, and the upside is that objection users are protected from potential churn and confusion.  I feel pretty sure that if it had been released as a v1 beta, that is how it would be approached on the objection side.  I have been following this conversation, as I maintain schwifty which is a peer of objection.

I doubt it's going to be short. My current estimate would be half a year to a year till 1.0.0.

@devinivy We are starting new project, which combination of versions would you suggest to use?

@vladaman The newest objection version supports knex < 0.95. So I'd use the latest objection and the highest knex < 0.95

According to previous knex 1.0 plans, it's reasonable to release 0.95 support in 3.0.
Knex major release may happen in a few years and it'll be nice to use 0.95 in objection until then.

Was there something critical released with knex 0.95? Is there a compelling reason for people to update to knex 0.95? If there was no major bug fixes or new features, I don't see the point in releasing 3.0 just for 0.95 - 1.00 and I agree with @devinivy that we should just wait.

@koskimas There were drastical improvements to MSSQL support and plenty of new stuff for SQLite, and overall it was probably the most improvement-packed major version in the last three years.
If that would make you more comfortable to release 3.0 earlier, I can personally promise that there will be no changes that would be breaking for Objection.js in 1.0.0, and if there end up being any, I would revert them.

@kibertoad Sounds great! Thank you. I'll move forward with the release of 3.0 then.

Ohhhhh, sh*t, things are happening! @koskimas is Objection3 going to be just a semver update to accomodate knex0.95/1 or do you see making other breaking changes as well (or using this opportunity to add/drop some features)?

There were at least two other breaking changes mentioned that are likely to be included in this window as well.

@kibertoad for knex or objection3?

Objection. To quote koskimas:
"I'll also get the chance to fix #1651 and #1689 at the same time, both of which require breaking changes."

@AnianZ There's no ETA unfortunately. It'll happen when I find couple of days of spare time to do work on objection.

Is there something broken with the newer knex? I got it in my project and everything seems to be working. 🤷

@thefoxie I think it's mostly the typings that are incompatible.

@koskimas is there a WIP branch for objection 3.0? If there was, I'd love to take a peek at those typings and try my best to get them fixed.

@capaj Typings are fixed in https://github.com/Vincit/objection.js/pull/1992, you can use that branch.

I'll soon release the first alpha version of objection 3. It supports the newest knex. To install it, run npm install objection@next

@koskimas Are you open to introducing additional breaking changes during the alpha phase of Objection 3, or it's API-frozen already?

@kibertoad The API is not frozen yet. I'll be implementing multiple breaking changes in the near future. The first RC should be frozen.

Any updates on this?

@kibertoad do you have any timeline for these breaking changes? Or did you mean knew will have them or do you have something for objection directly?

@koskimas I've been considering landing https://github.com/knex/knex/pull/4471 for the next semver major, I don't think I have anything else scheduled yet. Do you expect this to require adjustments on Objection side as well?

That should't affect objection. Objection already always returns model instances.

One more thing that would be great to support from the new version of knex - transactions for MySQL: https://github.com/knex/knex/pull/4185

@koskimas is there any changelog for objection@3? I've checked https://vincit.github.io/objection.js/release-notes/changelog.html, but it only documents changes up to<EMAIL_ADDRESS>I would like to start using<EMAIL_ADDRESS>with objection@3, but I don't know how to migrate from objection@2.

@DominikSerafin That one doesn't seem up-to-date. There's also a tag missing here on Github.
So I guess you'll have to use the compare feature for now: https://github.com/Vincit/objection.js/compare/2.2.13...3.0.0-alpha.3

Any update on this? What are the risks exactly if use 0.95.x > ? Are these TypeScript only issues?

Are these TypeScript only issues?

Yes.

I'll comment here as soon as there is something to comment. No need for these "any updates on this" messages.

I just released the first 3.0 RC version. The release is just around the corner.

Will be looking forward to the release notes!

@JaneJeon You can see the initial release notes here

Objection 3.0 is now released.

https://vincit.github.io/objection.js/release-notes/changelog.html

Awesome work, thank you for this release! @koskimas

Hello
when updating objection to 3.0.0 and knex to 0.95.14, i got this error : type must be JSONType or JSONType[]: date.
and there are warnings in node modules objection

@wafaboussada this is probably related https://github.com/Vincit/objection.js/issues/2142#issuecomment-966195160


Add information that this is an ES6 module

I can do this next time I'm at my dev computer. Any particular reason why the whole browserify transform would be noticeable by the end consumer? It gets transformed to ES5 code (except when used as a node.js type of application.)

Yes, I'm trying to use it in node.js type of application (Plask / pex to be precise).
I think it would be a good convention to mention ES6 just like glsl-* modules mention they are designed for glslify,

Would it be helpful to also have something like this?
var genBox = require('geo-3d-box/es5')
I could output a transpiled version there.

Hmm, that could work but I don't want to pollute your repo and add another work in the future. I think the best way would be to simply add message in the README and then hopefully this will go away once node.js / io.js implements arrow functions and the other stuff.

Resolved with 39c387dba91d73c9c2fa49f540e5618e722b0114


Added new visual characteritics to the HLGs to highlight the size traits of each layer

[ ] Tests added / passed
[ ] Passes black dask / flake8 dask / isort dask

/cc @martindurant @GenevieveBuckley
Hi. I created this PR to add new size features to the HighLevelGraphs Graphviz depiction based on the amount of tasks each HLG layer has.
This is a follow-up to the information found at https://github.com/dask/dask/issues/7847/.
For now, I have just added a simple implementation of just a trivial case.
At this point in the code, adding new conditions and loops is simple and quick. All that remains is to decide how we want to display this information on the HLG.

It looks like this right now:

It looks unappealing to me. Maybe, we can remove the row and just add it within a bracket.

The top one in this image.

I would certainly opt for N=100 or 100tasks, whether in a bracket or on a separate line.If on a separate line, maybe I would suggest the same font size for this part of the box for all boxes.

@martindurant
I prefer the bracket variant.
looks clean and we will also be able to add more later in a different layer. The idea you suggested about having IO | CPU | GPU and so on can be shown on a different row.

I would suggest that "type" is the thing that makes most sense in colour, whether box background, border or font.

Yes! I was planning to make the dask.array tasks in red (red border with a light red fill color) and dask.dataframes to have a green/blue color (green/blue border with light green/blue fill color).
and the standard Black and White color (and fill color) for the remaining tasks.
This would look really pleasing to the eyes as well. But, as @GenevieveBuckley suggested, I will wait this out till we get more textual information on the graph. We can add color at the end.

Agreed, but I was referring to your comment

The idea you suggested about having IO | CPU | GPU and so on can be shown on a different row.

... I would not make too many rows. The basic type information is the class of the layer (there are a few of these) and the above three categories couple only loosely to API (array/dataframe/X). I don't think colouring by API is particularly interesting, there will only normally be one of these in the graph at a time, and it's often in the layer names anyway.

I don't think colouring by API is particularly interesting, there will only normally be one of these in the graph at a time, and it's often in the layer names anyway.

Yes I agree :heavy_check_mark:
What do you suggest for this particular PR?
Can I replace the -#x part from the name-#x which is currently followed to make it
name-#x -> name#n_tasks
(remove the - and change the number to n_tasks)

this?

No, I would not change the name of the layer, but display that name in full. The character "#" means ordinal number, or (numerical) tag, not quantity.
Note that in your examples, you should really use log scaling to give us a better idea of how it will eventually look. May as well implement that in code right now and show some real examples.

Oh yes, I have already added that implementation. I normalized the range of n_tasks : fontsize.
The examples I am showing are from the real source produced by to_graphviz(). I am just using http://magjac.com/graphviz-visual-editor/ to show it to you all.
You can have a look at the latest commit. I decided not to use log scaling and just used normalized values for all the tasks.
The Math
Minimum size of the Node: 10 (This gets mapped to the layer with the least tasks)
Maximum size of the Node: 30 (This gets mapped to the layer with the most tasks)
fontsize = 10 + (n_tasks - minimum_n_tasks)/(maximum_n_tasks - minimum_n_tasks) * 20

(n_tasks - minimum_n_tasks)/(maximum_n_tasks - minimum_n_tasks) -> [0, 1]
So, fontsize -> [10, 30]
I like this method and I think it locally normalizes all kinds of graph needs. Some graphs will have different minimums and different maximums and they will still look nice.
The examples I have sent till now all have been implemented.

Current Implementation
from dask.datasets import timeseries

result = timeseries().shuffle("id", shuffle="tasks").head(compute=False)

# result.visualize(filename="graph-low")
result.dask.visualize(filename="graph-high")

import dask.array as da

a = da.ones((20), chunks=(2))

b = da.dot(a, a) + da.dot(a, a) + da.dot(a, a)
result = da.dot(a, a) + da.dot(a, a) + da.dot(a, a)

result = result + 10

result = result + da.dot(a, a)

result = result - 5

# result.visualize(filename="graph-low")
result.dask.visualize(filename="graph-high")

import dask.array as da

x = da.arange(1000).reshape(1, 1000)
y = x.T
z = x * y
result = da.sum(z)

# result.visualize(filename="graph-low")
result.dask.visualize(filename="graph-high")

The only thing that is left now is how we want to show the n_tasks number.
It's easy to change that. So, if anyone has any ideas, lemme know. I will add it quickly and send demos.

OK, the code seems to do the right thing (your example using fixed values was not using this calculation).

Oh yes! my bad :) That was an old screenshot.

/cc @mrocklin
I'd love to get your thoughts on this.
How would you like to show the n_tasks on the final output?

In general this looks good to me.  A couple of suggestions:

For sizing I like that we're operating within a fixed range and that we're responsive to min/max of the graph.  We might consider increasing the dynamic range of the response curve a bit from something linear to something with a log in it.  To be clear I'm not suggesting this, but rather only suggesting that we consider it. This can also be future work, since our objective is not well defined here yet
It's not clear to me that we want to print out the number of tasks.  We may want this but I think that we should plan this out a bit more before doing this.  I recommend that for now we only convey this information through the size, which is a bit more subtle.  We should plan to continue the conversation of how to render nodes in the issue though.

I recommend that for now we only convey this information through the size, which is a bit more subtle.

Whenever you used "size", I always assumed it meant number of tasks. It feels like I was wrong!
Do you mean the chunk size? partition size? dimension?

Sorry, what I meant to say is "I recommend that we only convey the number
of tasks through the size of the node in graphviz.  I recommend that we not
currently also print out the number of tasks in the graphviz node."
Terms like chunk size, partition size, and dimension are specific to the
different collections (dask array, dask dataframe, ...) and aren't fully
general.  We probably can't use those concepts for the general visualize
method, but we can start using them when we being to specialize the
representation of each node based on the type of the layer.
On Wed, Jul 7, 2021 at 4:06 PM Freyam Mehta @.***>
wrote:

I recommend that for now we only convey this information through the size,
which is a bit more subtle.
Whenever you used "size", I always assumed it meant number of tasks. It
feels like I was wrong!
Do you mean the chunk size? partition size? dimension?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/7869#issuecomment-875932635, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTAUFNRPLTLEFH2SZTDTWS6T5ANCNFSM472MWE2A
.

Oh, understood. I misunderstood it before. I will remove the extra text from the output.

Current Implementation

It certainly looks cleaner/prettier without the n_tasks text.
Perhaps I should reframe my thinking so that:

graphviz output: good for getting a general sense of things
HTML repr: good for getting a more detailed overview

Separate to this PR, we should consider adding n_tasks to the collection_annotations dictionary, so that it can displayed in the HTML repr. We're not doing that right now, mostly because some layers (like the ArrayOverlapLayer) materialize when you call len(). That shouldn't be a blocker though.

Is there something else that needs to be done here?
I fixed the formula a bit (took care of a corner case) and cleaned the code a little.
Current Implementation (Increased minimum size to make it more readable)

Example 4 from the previous comment
This example really glorifies the changes I have made.
Code
import dask.array as da

x = da.random.random((10000, 10000), chunks=(200, 200))
result = x + x.T - x.mean(axis=0)

result.dask.visualize()

task_name
n_tasks
fontsize

sub-#0
2500
40

add-#1
2500
40

random_sample-#2
2500
40

transpose-#3
2500
40

mean_chunk-#4
2500
40

mean_combine-partial-#5
650
24

mean_combine-partial-#6
200
21

mean_agg-aggregate-#7
50
20

Before (Current)

After (My changes)

Just for fun
What if we try changing the font to a Sans Serif instead of Serif one.
When nodes have a fontsize of 40, they tend to look a little unpleasant.
++ HTML Repr also uses a Sans font.

This can be taken up in another PR. We can discuss the font family. Just sent this as this is something I noticed.

Is there something else that needs to be done here?

Not at the moment, no. Feel free to transfer your focus onto the next thing.
The one failed CI test doesn't look like it has anything to do with this PR. I think it's just flaky & will come good if the CI is re-triggered.

Just re-triggered CI

Well, I like it. Now that the CI tests have passed, can someone with merge privileges take a final look at it (maybe @martindurant  or @jrbourbeau)
I'm mildly supportive of the suggestion to use a sans serif font for consistency with other representations of the high level graph, but I wouldn't die on this hill if other people dislike it. Now that the font size is often a lot bigger, it certainly seems more like a bunch of headings (where sans serif is typically expected) rather than paragraph-like text.
Re: this comment

For sizing I like that we're operating within a fixed range and that we're responsive to min/max of the graph. We might consider increasing the dynamic range of the response curve a bit from something linear to something with a log in it. To be clear I'm not suggesting this, but rather only suggesting that we consider it. This can also be future work, since our objective is not well defined here yet

Now that we're not going to display the actual number of tasks in the text, I think it's worth sticking with a linear scaling until it's clear there is a problem a log or non-linear scale could fix. We can keep this idea in our back pocket until then.
Linear scales are more intuitive for people so if we don't have to introduce another complicating factor, then I think we should keep things simple.

@freyam can you change the PR title to something a bit clearer? Perhaps something like "Add size scaling to graphviz output for high level graphs"
(You probably remember we talked about how the PR title becomes the commit message since Dask squashes when merging PRs, so it's good to make it as clear as possible)

Done :heavy_check_mark:

I'm mildly supportive of the suggestion to use a sans serif font for consistency with other representations of the high level graph, but I wouldn't die on this hill if other people dislike it. Now that the font size is often a lot bigger, it certainly seems more like a bunch of headings (where sans serif is typically expected) rather than paragraph-like text.

:raised_hands:

bump @dask/maintenance

💛💜

@GenevieveBuckley Should I open a new PR for discussing the font family we would be using for Graphviz?


feat(SNW-155): Add Eventbrite option to CTA Button component

The is_event_button and event_id fields were added to the CTA Button component in order to open an Eventbrite modal when clicking the button, in this case the url field will be used as the Thank You page where the user will be redirected once he/she is registered.


Branchement du script d'import PE

fix #878

:tada: This PR is included in version 1.119.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fix script not to depend on brew command

Fixes #679
I've changed check-ruby-version script so that it executes on Windows WSL2 without errors when there is no brew installed.
After the change local tests are working on Linux (WSL2).
Checklist:

[x] I have performed a self-review of my own code
[x] All unit tests pass locally (after my changes)

maby its a good idea to get rid of chruby at some point?
we already removed this dependency from other bosh related repo's


Getting 429 rate limits even after switching to staging endpoint.

It would be helpful if kube-lego binary spit out an INFO line that told us which endpoint it's connecting to.
Anyway, these two screenshots illustrate the issue. I was under the impression that the staging endpoint didn't enforce limits? Is it possible kube-lego isn't actually reading the LEGO_URL environment variable?

Well, the code looks like it defaults to staging anyway... https://github.com/jetstack/kube-lego/blob/73b73901112030a9daeae1cb1c46734563612571/pkg/kubelego/kubelego.go#L213
I wonder if blowing the rate limits puts your in restricted mode on the staging endpoint as well...

I added a log line in a branch: https://github.com/colemickens/kube-lego/commits/colemickens-add-logging-for-acme-url
In my logs now I see. Note that my log line emits the staging URL, and yet later... we're pointed back at Production endpoint.
2016-10-06T06:11:19.083934650Z time="2016-10-06T06:11:19Z" level=info msg="initializing lego acme connection to: %!(EXTRA string=https://acme-staging.api.letsencrypt.org/directory)" context=acme
2016-10-06T06:11:19.503395968Z 2016/10/06 06:11:19 [INFO][api.mickens.tv, mickens.tv] acme: Obtaining bundled SAN certificate
2016-10-06T06:11:19.930693903Z time="2016-10-06T06:11:19Z" level=warning msg="Error while obtaining certificate: Errors while obtaining cert: map[mickens.tv:acme: Error 400 - urn:acme:error:badNonce - JWS has invalid anti-replay nonce oG76KFjxocdZCFrS_7CId3Xe7iSABJhKnoxPFxoS2co api.mickens.tv:acme: Error 400 - urn:acme:error:badNonce - JWS has invalid anti-replay nonce sb8CZiSG3lVEdr5qR32bo1xvgIabHpBq7bwYrfqMg9A]" context=acme
2016-10-06T06:11:19.930744105Z time="2016-10-06T06:11:19Z" level=error msg="Error while process certificate requests: Errors while obtaining cert: map[mickens.tv:acme: Error 400 - urn:acme:error:badNonce - JWS has invalid anti-replay nonce oG76KFjxocdZCFrS_7CId3Xe7iSABJhKnoxPFxoS2co api.mickens.tv:acme: Error 400 - urn:acme:error:badNonce - JWS has invalid anti-replay nonce sb8CZiSG3lVEdr5qR32bo1xvgIabHpBq7bwYrfqMg9A]" context=kubelego
2016-10-06T06:11:19.930750005Z time="2016-10-06T06:11:19Z" level=info msg="Worker: done processing true" context=kubelego
2016-10-06T06:11:19.930753605Z time="2016-10-06T06:11:19Z" level=info msg="Worker: begin processing true" context=kubelego
2016-10-06T06:11:19.933728126Z time="2016-10-06T06:11:19Z" level=info msg="ignoring as has no annotiation 'kubernetes.io/tls-acme'" context=ingress name=kube-lego-nginx namespace=kube-lego
2016-10-06T06:11:19.933744027Z time="2016-10-06T06:11:19Z" level=debug msg=reset context=provider provider=gce
2016-10-06T06:11:19.933747827Z time="2016-10-06T06:11:19Z" level=debug msg=finialize context=provider provider=gce
2016-10-06T06:11:19.933751127Z time="2016-10-06T06:11:19Z" level=debug msg=reset context=provider provider=nginx
2016-10-06T06:11:19.933755427Z time="2016-10-06T06:11:19Z" level=debug msg=finialize context=provider provider=nginx
2016-10-06T06:11:19.946223233Z time="2016-10-06T06:11:19Z" level=info msg="process certificates requests for ingresses" context=kubelego
2016-10-06T06:11:19.948964444Z time="2016-10-06T06:11:19Z" level=info msg="cert does not cover all domains" context="ingress_tls" domains=[api.mickens.tv mickens.tv] name=polykube namespace=polykube
2016-10-06T06:11:19.948979245Z time="2016-10-06T06:11:19Z" level=info msg="requesting certificate for api.mickens.tv,mickens.tv" context="ingress_tls" name=polykube namespace=polykube
2016-10-06T06:11:19.948988345Z time="2016-10-06T06:11:19Z" level=debug msg="testing reachablity of http://api.mickens.tv/.well-known/acme-challenge/_selftest" context=acme host=api.mickens.tv
2016-10-06T06:11:19.950927924Z time="2016-10-06T06:11:19Z" level=debug msg="testing reachablity of http://mickens.tv/.well-known/acme-challenge/_selftest" context=acme host=mickens.tv
2016-10-06T06:11:19.952390883Z 2016/10/06 06:11:19 [INFO][api.mickens.tv, mickens.tv] acme: Obtaining bundled SAN certificate
2016-10-06T06:11:20.238971410Z 2016/10/06 06:11:20 [INFO][api.mickens.tv] acme: Trying to solve HTTP-01
2016-10-06T06:11:20.717524025Z time="2016-10-06T06:11:20Z" level=info msg="responding to challenge request" basePath="/.well-known/acme-challenge" context=acme host=api.mickens.tv token="SXCxFiaERg3I_QRA86OOhekQupJSyErHLDMhVDbJ6eg"
2016-10-06T06:11:21.406654383Z 2016/10/06 06:11:21 [INFO][api.mickens.tv] The server validated our request
2016-10-06T06:11:21.406685584Z 2016/10/06 06:11:21 [INFO][mickens.tv] acme: Could not find solver for: dns-01
2016-10-06T06:11:21.406690184Z 2016/10/06 06:11:21 [INFO][mickens.tv] acme: Could not find solver for: tls-sni-01
2016-10-06T06:11:21.406693384Z 2016/10/06 06:11:21 [INFO][mickens.tv] acme: Trying to solve HTTP-01
2016-10-06T06:11:21.525082287Z time="2016-10-06T06:11:21Z" level=info msg="responding to challenge request" basePath="/.well-known/acme-challenge" context=acme host=mickens.tv token="zZTo7GUEyJznfCZYfPUT_S87m0EFPbAmkyHorT_e0w4"
2016-10-06T06:11:22.583815340Z 2016/10/06 06:11:22 [INFO][mickens.tv] The server validated our request
2016-10-06T06:11:22.583850142Z 2016/10/06 06:11:22 [INFO][api.mickens.tv, mickens.tv] acme: Validations succeeded; requesting certificates
2016-10-06T06:11:23.281000125Z 2016/10/06 06:11:23 [INFO] acme: Requesting issuer cert from https://acme-v01.api.letsencrypt.org/acme/issuer-cert
2016-10-06T06:11:23.350857559Z 2016/10/06 06:11:23 [INFO][api.mickens.tv] Server responded with a certificate.
2016-10-06T06:11:23.350957163Z time="2016-10-06T06:11:23Z" level=info msg="Got certs={api.mickens.tv https://acme-v01.api.letsencrypt.org/acme/cert/0385a77929e1d219b0d43077e908bd51ed00  https://acme-v01.api.letsencrypt.org/acme/reg/4908327 -----BEGIN RSA PRIVATE KEY----- [snipped]

It looks like you just follow redirects from the responses from the ACME endpoint: https://github.com/jetstack/kube-lego/blob/632072fe7d8f3a2eacc8921ad83855dfb243d227/vendor/github.com/xenolf/lego/acme/client.go#L516
So maybe the Staging endpoint is giving URLs that point back to Prod.

Added more logging... the Links header returned after validation was successful points at Prod:
2016-10-06T06:41:17.758801789Z 2016/10/06 06:41:17 [INFO][api.mickens.tv, mickens.tv] acme: Validations succeeded; requesting certificates
2016-10-06T06:41:17.961753105Z 2016/10/06 06:41:17 [INFO][api.mickens.tv] acme: links: map[up:https://acme-v01.api.letsencrypt.org/acme/issuer-cert]

Found it!
kube-lego caches the user registration in a secret. The user registration contains the directory endpoints. This ends up overriding the LEGO_URL specified in the environment.
This is definitely the bug, but I don't know enough about kube-lego to know the best way to fix it.

The repro is:

Run kube-lego in your cluster pointed at Prod. Let it get a cert, or at least go through user registration.

Change kube-lego ConfigMap to point at the LE Staging endpoint.

Observe that you are still getting certs from the LE Production endpoint.

I have a branch with logging that would seem to confirm this.

I've been struck by the same thing using gce and tried to delete using the tip in #21.
That didn't work for me, as I had to recreate other parts in setup to get new certs to be generated for the gce loadbalancers.


Fixes GH-119

Adds the check for DELETE method and adds unit tests verifying redirecting works as expected.
Also removes trailing whitespace. My editor removes them automatically, let me know if you'd prefer to keep them and I'll add them back in and re-send a clean PR.

can you remove the trailing whitespace change.

You got it.

Fresh PR coming right up.


[WIP] Registration

Ebert has finished reviewing this Pull Request and has found:

2 possible new issues (including those that may have been commented here).
1 fixed issue! 🎉

You can see more details about this review at https://ebertapp.io/github/khusnetdinov/sesamex/pulls/4.

Ebert has finished reviewing this Pull Request and has found:

2 possible new issues (including those that may have been commented here).
3 fixed issues! 🎉

You can see more details about this review at https://ebertapp.io/github/khusnetdinov/sesamex/pulls/4.

Ebert has finished reviewing this Pull Request and has found:

1 possible new issue (including those that may have been commented here).
3 fixed issues! 🎉

You can see more details about this review at https://ebertapp.io/github/khusnetdinov/sesamex/pulls/4.


Error when play. surfaceSizeChanged

    java.lang.AbstractMethodError: abstract method "void com.google.android.exoplayer2.video.VideoListener.onSurfaceSizeChanged(int, int)"
        at com.google.android.exoplayer2.SimpleExoPlayer.maybeNotifySurfaceSizeChanged(SimpleExoPlayer.java:1172)
        at com.google.android.exoplayer2.SimpleExoPlayer.setVideoSurfaceHolder(SimpleExoPlayer.java:338)
        at com.google.android.exoplayer2.SimpleExoPlayer.setVideoSurfaceView(SimpleExoPlayer.java:356)
        at com.google.android.exoplayer2.ui.PlayerView.setPlayer(PlayerView.java:554)
        at im.ene.toro.exoplayer.PlayableImpl.ensurePlayerView(PlayableImpl.java:240)
        at im.ene.toro.exoplayer.PlayableImpl.play(PlayableImpl.java:102)
        at im.ene.toro.exoplayer.ExoPlayable.play(ExoPlayable.java:47)
        at im.ene.toro.exoplayer.ExoPlayerViewHelper.play(ExoPlayerViewHelper.java:108)

i using
    implementation "im.ene.toro3:toro:<IP_ADDRESS>03"
    implementation ("im.ene.toro3:toro-ext-exoplayer:<IP_ADDRESS>03")
    implementation group: 'com.google.android.exoplayer', name: 'exoplayer', version: '2.9.3'

my xml is
            <FrameLayout
                android:layout_width="0dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toTopOf="@id/tv_management_banner_video_funding"
                app:layout_constraintDimensionRatio="343:194"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_chainStyle="packed"
                app:layout_constraintVertical_bias="0"
                >

                <com.google.android.exoplayer2.ui.PlayerView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:onClick="@{() -> videoInterface.onClickVideo()}"
                    app:resize_mode="fixed_width"
                    app:use_controller="false"
                    />

                <androidx.core.widget.ContentLoadingProgressBar
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:indeterminate="false"
                    android:max="100"
                    android:progressDrawable="@drawable/progress_video"
                    android:layout_gravity="bottom"
                    />
            </FrameLayout>

and video url is not invalid.

@yongju-jin Is this reproducable all the time?

Have the same issue on the real device (LG), but tests on the simulator and Samsung were ok.
Is there any update about this or some thoughts how to fix it?
Thanks

@bakhytk Add the following line to your gradle.properties file:
android.enableDexingArtifactTransform=false
The problem resides in a new feature of the gradle build tools 3.5 where it tries to optimize external dependencies as well and it strips default method implementations from exoplayer.
According to the android team issue tracker this issue should be fixed if you correctly declare all dependencies and transient dependencies on the pom.xml but I couldn't find any solution other than this.

Awesome! It fixes the problem.
Thank you

Thank you man @lglossman-ring

@bakhytk Add the following line to your gradle.properties file:
android.enableDexingArtifactTransform=false
The problem resides in a new feature of the gradle build tools 3.5 where it tries to optimize external dependencies as well and it strips default method implementations from exoplayer.
According to the android team issue tracker this issue should be fixed by correctly declaring all dependencies and transient dependencies on the pom.xml but I couldn't find any solution other than this.

Thanks....!

It really helped, thank you @lglossman-ring !


Volume Button to wake up the device

Hi, My power button is busted. So, when the device is on sleep i want any power button to wake the device and when device is on it should function as normal volume control. I am guessing we need root for this since another app i used previously requires root.

Can we achive this usecase without root access?
if i give root access to this app from kernelsu. Will it use it?
termux already have root access. Can we use termux to wake the device?

Thanks for this awesome app.

With root:

while read key; do
    if [ "$key" == "$PRESS_UP" ] ||
            [ "$key" == "$PRESS_DOWN" ]; then
        su -c input keyevent 26
    fi
done

This could also be done without root, but this functionality has not yet been implemented.


Shop page need to be fully working

http://localhost:8000/shop

Two main Sections:

Products for Sale
TV Parts for Sale


Fix a problem with kcctl registry loading kc-extension image package

Signed-off-by: zhuzhenfan<EMAIL_ADDRESS>
What type of PR is this?
/kind bug

What this PR does / why we need it:
Fix a problem with kcctl registry loading kc-extension image package
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

None

Additional documentation, usage docs, etc.:

@x893675 @lixd

/lgtm
/approve
/cherrypick release-1.3


Placeholder size

Hi,
We're trying to add an animated gif in order to indicate that the image is loading. The problem is that the placeholder is stretched to fill the element canvas, while we want it to be smaller.
Is there some way to use the placeholder as is?
Thanks in advance.
Best regards.

Is it Xamarin.Forms or native?
BTW: I wouldn't use gifs for placeholders as gifs are quite resource-heavy. Isn't it better to use some kind of loading indicator on top of the image view? You have IsLoading property for that, or callbacks (Started, Finished, Error, etc).

Hi,
Sorry for not answering earlier, I'm talking about Xamarin.Forms.
Do you have any example of a loading indicator that can be easily implemented in a ListView-like container?
Thanks,
Best regards.

<Grid>
    <Image x:Name="Primary" Source="{Binding Url}" />
    <ActivityIndicator x:Name="ActivityIndicator" IsRunning="{Binding IsLoading}" IsVisible="{Binding IsLoading}" BindingContext="{x:Reference Name=Primary}" />
</Grid>

I concur. Couldn't be this reopened, Daniel?
First, the ActivityIndicator is different on different platforms (rather puny on UWP, for instance) and not necessarily linked visually to the individual images). You have that nice LoadingPlaceholder ready and usablem the only problem is that, unlike the actual content that goes into the CachedImage, the placeholder is not supposed to be using the same Aspect in many cases but stay at a constant, original size, centered. So, if you could just change the aspect while loading (or allowing us to supply a LoadingAspect) would be terrific.


Add "history details" route to frontend

Like home route would be nice to add history details route with table of accepted receipts. That part contains filtering by account, bill-id, period of dates with paging. Maybe nice decision here is using GraphQL.

Done for now - No need GraphQL

Add paging later with another issue


Sharetool: Allow node/area ownership transfer to specific account

Allow using sharetool to change node and area ownership to selected account instead of default shared account.
How to implement:

[x] Add formspec through info function for extra functions
[x] Formspec should have input for new owner

[ ] Possibly with drop down menu that contains logged in players

[x] Check if new owner actually exists
[ ] Targeting air should check if there is protected area and transfer everything in that area to selected player account, also area ownership

[ ] Either disallow updating large areas because that can cause server freeze
[ ] or handle large areas asynchronously, requires async worker and would be good to lock area until transfer is completed

[ ] Handle cases where server is restarted during operation, requires persistent storage with information about area, progress, new owner.

[x] Targeting node not registered for sharetool should do things stated above, same behavior as air nodes
Update node infotext after owner is updated

[x] Technic chests
[ ] Protector block/badge
[ ] Locked chest
[ ] Locked steel door
[ ] Locked steel trapdoor
[x] Travelnet / travelnet elevator

First version operating inside static radius 5 cube, checks protections on all corners and middle, corners should already be enough to handle protector blocks.
Formspec receive handler will check everything again just before starting ownership updates and therefore should be safe.

Last change introduced bug #94 which can freeze server if tool is used without care.


Long Audio and Transcript and Audio only options are not available for all languages/locales

Long Audio and Transcript and Audio only options are not available for all languages. Would recommend that this be noted in the docs.

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

ID: 7e6fc39a-3260-dd83-f0e9-9d2b123d0970
Version Independent ID: ad59b5b5-fefa-5c01-751e-f83b74373d31
Content: How to prepare data for Custom Voice - Speech service - Azure Cognitive Services
Content Source: articles/cognitive-services/Speech-Service/how-to-custom-voice-prepare-data.md
Service: cognitive-services
Sub-service: speech-service
GitHub Login: @eric-urban
Microsoft Alias: eur

@glennstephensms
Thanks for your feedback! We will investigate and update as appropriate.

@glennstephensms
Please looking this below information in Sceenshot for your reference.

We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


POC: Implement Simcore CI/CD via GitLab Pipelines

Currently, we manually release new versions of osparc project. Some logic is automated by deployment-agent. We would like to fully automate the whole deployment process. As a first step, we should try GitLab Pipelines.

https://git.speag.com/oSparc/osparc-ops-deployment-configuration/-/merge_requests/48#f921a61f52a8f3377d6a0ddd8dbadb0899062ea3_5_0

Ideas / second-iteration items to make the new awesome CI/CD robust:

Use gitlab CI stages: plan creates docker-compose.yml, apply (triggered manually) applites changes. In the future we can add test before plan, where we check that env-vars are correct and migrations work successfully
We need to keep in mind that we ideally want to also handle the existance / inventory of simcore-microservices' docker images on dockerhub. With this I mean that, we do not want to deploy (fail the pipeline or retry) of the docker images belonging to a git tag or not yet fully built or for any reason unavailable on dockerhub. Ideally, we always want to deploy strictly version-pinned docker images, so something like itisfoundation/webserver:staging_Baklava2 instead of itisfoundation/webserver:staging-github-latest. The same goes for the env-var DYNAMIC_SIDECAR_IMAGE=itisfoundation/dynamic-sidecar:release-github-latest , which should better be version pinned.

A new implementation with Ansible. This makes us independant from Portainer (API) and allows us to easily deploy all stacks (both OPS and Simcore):
https://git.speag.com/oSparc/osparc-ops-deployment-configuration/-/merge_requests/54

done


Send one notification per sequential range in RemoveAll method of AvaloniaList

What does the pull request do?
This PR optimizes RemoveAll method of AvaloniaList to send one notification per sequential range

I don't think using LINQ at such a low level is a good idea. @MarchingCube you probably have something to say about this.
There's also https://github.com/AvaloniaUI/Avalonia/pull/5754 - what is the relation of that to this? Separate implementations by separate people?

I don't think using LINQ at such a low level is a good idea. @MarchingCube you probably have something to say about this.

I have not tested performance.  But the same solution is used in DynamicData, you can see it here in RemoveMany method.
//this line does the same thing
var toRemove = source.IndexOfMany(toRemoveArray).OrderByDescending(x => x.Index).ToArray();

Separate implementations by separate people?

Yes :)

I've added a comment there about what I think might be a better solution.

You solution is not correct because if  we have several sequences the state of list will be invalid between notifications. For example if receiver will try to check count of items after the first notification.

Closing this as mentioned in https://github.com/AvaloniaUI/Avalonia/pull/5754#issuecomment-820211836


Categorize favorites

Create filters for favorites or show the corresponding categories for the favorited items.

Added Gradient Tools and Color Tools favorite functionality

Categorised favorites

Adding option to show categorised or not and saving this choice in db

Added switch to show categorized or uncategorized favorites. Now working on saving the choice locally and in db if possible.

User choice is being saved succesfully on database if logged in. If not logged in, it's saved in LocalStorage


Multi scheme for multi tenant architecture

In multi tenant app every tenat have different schema for data isolation.
In this case prisma need to provide a feature to find the scheme of the user by subdomain and has to set in prisma and query data.
Now prisms provide multi scheme but it has to be done manually, what is needed that the schema should set automatically by the request subdomain or headers.
Now to achieve this we have to use raw queries. Please add the features in prisma client

Hi @jyotishman123.
Take a look at my reply to a sibling issue on the same topic: https://github.com/prisma/prisma/issues/24794#issuecomment-2228012222.
Does that work for you?

Hi @jyotishman123.
Take a look at my reply to a sibling issue on the same topic: https://github.com/prisma/prisma/issues/24794#issuecomment-2228012222.
Does that work for you?
Thanks for your response.

But what I need is that the schema should set dynamically means in multi tenant app every tenant have there own scheme so when the visit their account the data should be fetch from their schema and when they create store  or account then also prisma should allow to create new scheme for them.
In prisma now also it is possible to create schema and get scheme but by using raw queries. Prisms do not provide any additional features.
Think as it of multi tenant architecture where the database is shared and with multiple schema for each tenant.

This is quite similar to the response on my comment. My project is API endpoints only and I will require the user to provide the unique identifier. That identifier will be the schema name and will connect with a dynamic URL like:
    const dbName = req.headers['x-unique-customer-identifier'];
    const schemaName = req.headers['x-unique-client-identifier'];

    const databaseUrl = `postgresql://${process.env.POSTGRES_USER}:${password}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${dbName}?schema=${schemaName}`;

    const prisma = new PrismaClient({
      datasources: {
        db: {
          url: databaseUrl,
        },
      },
    });

If you do not have a master DB to store meta data then you can parse the URL and pull the username and use the username as the schema name.


Bsve to geojson

I don't think we'll want to merge this, at least not in its present form.  It's an experiment with specifying the type of data we get back from bsve search and also allowing for a bit of control over how geojson points are rendered.
This is an improvement over the current UI, and will be good to demo and gather feedback.

Let's say you do a search of the bsve api with this query
{
        "clientTimeZone": "EST",
        "fromDate": "2015-01-01",
        "locations": [
            {
                "location": "United States",
                "locationType": "country"
            },
            {
                "location": "USEUCOM",
                "locationType": "cocom"
            }
        ],
        "sources": [
            "ProMED",
            "AP Top Science News",
            "WebSearch"
        ],
        "term": "dengue",
        "toDate": "2015-10-02"
    }

and a similar one replacing dengue with flu.
These will be returned as JSON, which will be converted to a renderable Geojson dataset, all when you run the bsve_search analysis.
By default you can render the results as points.

You can also click on the paintbrush icon next to the dataset

and ask that the dataset be rendered with Geojs' cluster feature, and specify a color scheme.

Here I've set a different color scheme for flu and dengue, then rendered them both at the same time.

This is awesome @mgrauer specially the part of color scheme, that is altogether a new capability which will make a huge impact in the future.
Do you want us to review it?

@aashish24 I think the point clustering that @mgrauer implemented makes sense for us to use for Terra use case 1 (we discussed Friday).

@danlamanna agree +1, the clustering feature in GeojS is implemented by @jbeezley @mgrauer exposed it in Minerva.

Hmmm, good question.
Let's say, don't review it as if it would go into master.  You can take a look at the MapPanel.js additions to get a sense of how I did this, but these need to be improved.  Probably having someone with a better understanding of GeoJs would be helpful.  I'll improve it after I've got some feedback on the functionality and get a better sense of where want to go next.
My main sticking point right now is that the adapter between Geojson rendering in MapPanel and GeoJs feels awkward and too specific.  I can see this breaking out into its own JS file so we can have some more flexibility.
Probably more useful is a review of the UI/functionality, which you can give me after the demo.

I should amend that, if you have some UI/functionality suggestions, let me know as it is possible I could make some quick improvements there.

One addition I want to get in is a little color scheme depiction next to the session layer, i.e. you would be able to see that flu is the blue color scheme and dengue is the brown one by looking at the Session Layers panel.  Right now you can't tell which is which.

Added a display of the cluster color scheme, in the session layer panel, should one be set.

@mgrauer what's holding this branch?

This isn't very general or well thought out, it was more of an experiment.  It provides support for colored clusters by littering the codebase in a few different places with code specific to this use case.  Possibly some of the bsve analysis stuff can be broken out and go in soon.
Here are some of the questions I have, maybe you @aashish24 and @jbeezley could provide suggestions, or @danlamanna could chime in since he has need of the cluster display.

I'm not saving any of the other data fields when I convert the bsve json to geojson.  Should I allow the user to remap and perform the conversion again?
specifying the rendering of geojson makes sense assuming all you have is points, but what should the UI look like if your geojson is a mixture of points and other objects?
similarly, we either render as geojson using the geojs reader, or else we assume points and create the points from features.  how can we render the other geojson objects other than the points if we have a geojson with a mix of features?  look specifically in the MapPanel.  Is there some way I can render the points as is but let GeoJs render the other features?
I'm storing the color schemes (and I only have 3 of them) in multiple places.  does geojs expose the D3 or its own color schemes in some way, or should I just try to get them directly from D3?
The code to generate the clusters is fairly specific and brittle.  you can tie a color scheme to a dataset, but not to any features of the dataset.  and you can't change the size or coloration of a cluster from the fairly arbitrary choices I made.
The UI to change the geojson rendering is in the dataset panel, which is awkward when trying to change the rendering of a displayed dataset.  You need to remove it from the active session, change the property, then bring it back in.  This is relatively minor though.

specifying the rendering of geojson makes sense assuming all you have is points, but what should the UI look like if your geojson is a mixture of points and other objects?
similarly, we either render as geojson using the geojs reader, or else we assume points and create the points from features. how can we render the other geojson objects other than the points if we have a geojson with a mix of features? look specifically in the MapPanel. Is there some way I can render the points as is but let GeoJs render the other features?

There is the geojson reader, but it is one of those simplified interfaces that probably won't be generic enough to do what you need.  It is pretty easy to parse a geojson object by looping through the geometries and passing the data to the appropriate feature type.  There are some complications in that you can have a geometry alone or as part of a feature.  A feature can also be part of a feature collection.  Maybe we can come up with a more general interface for allowing users to customize how it gets rendered.

I'm storing the color schemes (and I only have 3 of them) in multiple places. does geojs expose the D3 or its own color schemes in some way, or should I just try to get them directly from D3?

GeoJS doesn't expose any color schemes.  D3 is a prerequisite and should be available globally.

@mgrauer is this need s to be reviewed again?

Thanks for checking @aashish24 .  I changed this to a WIP.  I'll pull some issues out of this and then close it.

Closing this PR, as all functionality has been extracted or documented in issues.


Improve handling of PersistentVolumes with Retain reclaim policy

PersistentVolumes can have a reclaim policy of either Delete or Retain.
When a PVC is deleted, if the PV's reclaim policy is Delete, the underlying storage disk is deleted and the PV is deleted.
When a PVC is deleted, if the PV's reclaim policy is Retain, the underlying storage disk is preserved, and the PV remains.
Ark works quite well with Delete:

if we have a native snapshot, we create a new storage disk from the snapshot, then associate it with the PV
if we have a restic snapshot, we don't restore the PV, and instead only restore the PVC, which results in a new PV being created, and then we restic restore into it

Ark doesn't work as well with Retain, depending on your restore scenario:

if you've "lost" your cluster or a portion of it, but you still have the underlying storage disk, and you're restoring into the same project/region/zone (if in the cloud), then we restore the PV and keep its association to the original underlying storage disk, so you get back to where you were pre-disaster
if you're trying to restore into a new cluster and you don't want to reuse the underlying storage disk, restoring the PV and preserving the association to the underlying storage disk is a problem

We should try to figure out how to handle the 80-90% case as well as possible. Maybe we need a new flag when creating the restore that indicates how to handle Retain PVs - to either keep the current behavior of preserving the association to the underlying disk, or to wipe the association and restore from a snapshot (if we have one) or create a new disk (assuming we have a restic snapshot).
Discuss!

Having walked through another occurrence of this today with a user, I feel like it's always expected behavior that if you back up a PV using restic, then on restore, it gets restored from restic.  That would imply that even if the reclaim policy is Retain, on restore we should re-provision an empty volume and use restic to restore its contents.  This is consistent with how we treat Retain PVs that have snapshots - if there's a snapshot, then we restore the PV from snapshot.
If that's the case, then rather than adding another CLI/API toggle, I'd prefer to just fix the bug for the case where a Retain PV has a restic backup.  This would be difficult to implement in our current restore code, though, because there's no easy way to determine if there's a restic backup of a PV (restic operates at the pod volume level).
However - if we could track in our volumesnapshots.json file when a PV has been backed up using restic (currently this only has entries for PVs that were snapshotted), then it would become easy during a restore to know whether a PV had a restic backup or not.  And, it looks like it should be easy to add that info to the file at backup time.
What do you all think? Is this a crazy idea? Would appreciate your input @ncdc if you have time!

So it ought to be "Retain" in the title, instead of "Delete"?

@nrb @carlisia would appreciate your input on https://github.com/heptio/velero/issues/1151#issuecomment-463849604. We can discuss in person once you've had a chance to look.

However - if we could track in our volumesnapshots.json file when a PV has been backed up using restic (currently this only has entries for PVs that were snapshotted), then it would become easy during a restore to know whether a PV had a restic backup or not. And, it looks like it should be easy to add that info to the file at backup time.

I like this idea, partially because by merging these we could report restic volumes in the PV section of our describe commands. Right now, having 2 sections depending on how your PV was backed up (native snapshot vs restic) is a little confusing.
I also agree with matching the restore logic regardless of whether a PV is coming from a native snapshot or restic. Again, having different behaviors between native and restic is confusing and the closer we can get them, the easier the whole process is to understand.

+1 for what @nrb said.

@nrb @carlisia I assigned the P1 label to this back in March, but I don't actually think it's must-have for v1.0 as it's a non-breaking change and a specific scenario - are you all cool with me changing it to a P2?

I like this idea, partially because by merging these we could report restic volumes in the PV section of our describe commands. Right now, having 2 sections depending on how your PV was backed up (native snapshot vs restic) is a little confusing.

Just wanted to connect the idea above ^ with this new issue: https://github.com/heptio/velero/issues/1476

ref. https://github.com/heptio/velero/pull/1538


Not support macos with arch = aarch64

I use the Macbook in apple silicon. and pico-download module not support target_arch = aarch64 so that there is no matching library can be downloaded for my computer.
    #[cfg(all(target_os = "windows", target_arch = "x86_64"))]

And i checked the download link for libraries on AWS s3 (EX: https://pico-drivers.s3.eu-west-2.amazonaws.com/macos/x86_64/libps5000a.dylib). and there is no link like https://pico-drivers.s3.eu-west-2.amazonaws.com/macos/aarch64/libps5000a.dylib for aarch64.
Not sure what can i do properly for this case.
Does anyone have any idea? Thanks!

Pico don't ship any arm64 drivers yet!


Does not work in Big Sur

Just tested it with Xcode 12 and Big Sur. Does not seem to work at all.

Everything  seems to be working fine. Did you press Shift+Cmd+O to launch OpenQuickly window?


Middleware locally and on CF Pages have different response when returning cookies. Local returns the index page with cookie set. CF only returns cookies without the html.

Not certain if this is intended behaviour. When running using npm run dev, the middleware below would add the cookie to the current request and then display the home page content.
Same method as nextjs middleware docs
    // Curr URL = /

export function middleware(request: NextRequest) {

    const response = NextResponse.next();
    response.cookies.set("myCookie", cookieVal);

    return response;
}

// See "Matching Paths" below to learn more
// Only set edge runtime for middleware, otherwise typewriter effect will break due to nodejs requirement
export const config = {
  runtime: 'experimental-edge',
  matcher: "/",
};

However, on CF Pages, it would not display the actual page content. Only rendering a pre in the body, without the index page html. The network tab does return the cookie though.
Edit Further Testing
Just tested with a blank return next() and it does the same thing. Nothing loads in the html.
return NextResponse.next()
Is there something wrong with using the above code? Not even doing anything fancy either.
Versions
    "next": "^13.0.2",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
     ....

It's pretty strange, when I get rid of the conditional redirects, everything loads and works fine. It's only when I have conditional redirects that the html doesn't load in. Eg, check for auth cookie, set in if set, otherwise unauth redirect.
Not sure if this is due to the experimental edge breaking in my index.tsx, hence it's only enabled in the middleware itself.
middleware.ts

export const config = {
  runtime: "experimental-edge",
};

I am seeing this too. I think it's because the worker always returns the result of the middleware as the response: https://github.com/cloudflare/next-on-pages/blob/main/templates/_worker.js/index.ts#L136
That should only happen if the middleware causes a redirect or writes to the body though, so there is some extra logic needed  to support rewrites & passing through. The code could check for the x-middleware-rewrite and x-middleware-redirect headers on the middleware response.

Note: This is most likely going to get fixed by the changes that @james-elicx is making in regards of https://github.com/cloudflare/next-on-pages/issues/129

@the-programmer-alex this should be fixed now in our beta release 🙂, if you want please have a check and let me know if you're still facing this issue<EMAIL_ADDRESS>


Drag item into a list

Is it possible to drag an outside item into an existing sortable list?

Not currently, see #138


Assignment 2

ASSIGNMENT 2

Complete all three notebooks and then send a pull request.

DID THE NUMPY EXERCISE AND THE OTHER TWO NOTEBOOKS . DO CHECK IT ONCE!


Using spread operator allows invalid keys

Bug Report

🔎 Search Terms

spread invalid
🕗 Version & Regression Information

I noticed this on 4.9.4
💻 Code

interface MyType {
  a: number;
  b: string;
}

const x: MyType = {
  a: 2,
  b: 'asdf',
  ...{ c: 2 }
};

🙁 Actual behavior

There was no error
🙂 Expected behavior

I get an error that c is not a valid property of MyType

Duplicate of #39998.


WAL file corrupt

System info: InfluxDB 1.5.1 running on k8s with data volume stored on NFS mouted via PVC
CoreOS 1632.3.0
Docker version 17.09.1-ce, build 19e2cf6
After a possible deficite on available disk space (~5% available) a single-node InfluDB instance after restart reported that some wal files are corrupted. It resulted in ~40 minutes loss of data in all measurements in all databases.
Log messages during deficite on available disk space:
lvl=error msg="[500] - \"engine: error rolling WAL segment: error opening new segment file for wal (2): close /var/lib/influxdb/wal/amis/default/1879/_00095.wal: file already closed\"" log_id=078ERvAl000 service=httpd
lvl=info msg="Write failed" log_id=078ERvAl000 service=write shard=1879 error="engine: error rolling WAL segment: error opening new segment file for wal (2): close /var/lib/influxdb/wal/amis/default/1879/_00095.wal: file already closed"
lvl=info msg="Error compacting TSM files" log_id=078ERvAl000 engine=tsm1 tsm1_strategy=full tsm1_optimize=false trace_id=078SFPDl000 op_name=tsm1_compact_group error="remove /var/lib/influxdb/data/amis/default/1371/000000185-000000002.tsm.tmp: no space left on device"

Log messages after restart:
lvl=info msg="File corrupt" log_id=078ERvAl000 engine=tsm1 service=cacheloader path=/var/lib/influxdb/wal/amis/default/1311/_00534.wal pos=3567596`

Expected behavior: no data loss, when there is space available!

The no space left on device is the Go runtime and probably OS saying there isn't enough space so that's definitely one problem. The system needs to have at least enough space left to compact the largest shard, flush the WAL, and any data cached in memory.

So is there a way to recover corrupted WAL files?

You could try the influx_inspect tool. Run influx_inspect export -help for options. I'm not sure if it will work with a corrupt WAL file. If the file was simply truncated due to running out of disk space, then it may be possible to salvage the data.

I exported the time interval from db, where the data was lost, with influx_inspect export. During the creation of the export file there was no errors. influx_inspect verify also shows no errors.
But when I imported this file back with influx -import the command ended with error: ERROR: 4548838 points were not inserted.
InfluxDB on the start now does not report any errors with wal files. Anyway, the data is lost.

@dev-e on the machine where you ran the import, did it dump errors to stderr? Looks like the export was successful, at least for 4.5M points. Those should be recoverable if we can figure out what stopped the import from working. Also, the export file should either be plain text with InfluxDB line protocol or compressed. Either way, you should be able to examine the contents and see if the data looks reasonable.


TypeError: 'MappedListIterable<dynamic, dynamic>' is not a subtype of 'Map<dynamic, dynamic>' when using $raw.query

What version of Prisma Dart is running?
5.2.1
What version of Prisma CLI is running?
5.22.0
What type of app are you using?
Dart Native (Server/CLI)
What database are you using?
PostgreSQL
What steps can reproduce the bug?
Use the $raw.query method with any valid SQL query.
Observe the runtime error.
What is the expected behavior?
Instead of returning a list of maps, the method produces a MappedListIterable, leading to the following runtime error:
Type 'MappedListIterable<dynamic, dynamic>' is not a subtype of type 'Map<dynamic, dynamic>'
Additional information
print on query method:
results[JsonQueryAction.queryRaw.name]: ({item_id: {prisma__type: int, prisma__value: 0}, price: {prisma__type: int, prisma__value: 1}, total_quantity: {prisma__type: bigint, prisma__value: 25}})
type: MappedListIterable<dynamic, dynamic>
No additional details are available at this time. If the return type of $raw.query is not meant to be directly processed as a Map, documentation or examples of the correct usage would be helpful.

`$raw.query()` explicitly returns a List> type, which seems inconsistent with the error you reported.

@renanpk I think I found your problem. Did you upgrade to Prisma CLI 5.22 and then run prisma generate command? I checked your extra information and found that the results structure is returned by a very old Prisma engine.


[Bug]: Certain spells not being imported (possibly due to D&D 2024 changes)

What happened?
An Alchemy user reports that certain spells are no longer importing since the D&D 2024 changes.
The linked character has the following spells:
Cantrips

Guidance
Gust
Message

1st Level

Burning Hands
Cure Wounds
Identify

2nd Level

Flaming Sphere
Scorching Ray

3rd Level

Plant Growth
Revivify

4th Level

Aura of Life
Fire Shield

5th Level

Flame Strike
Mass Cure Wounds

Alchemy is only receiving the following spells:

Message
Identify
Guidance
Gust

D&D Beyond Character Link
https://www.dndbeyond.com/characters/131288140
Alchemy Version
0.255.0
Alchemy User Agent
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Possibly the same root issue as https://github.com/alchemyrpg/ddb2alchemy/issues/44


base URL not defaulting to index.html

I saw something odd today when I went to localhost:8088/ I got a blank page but http://localhost:8088/index.html worked.

for the ui?

@jimzucker Is this still a problem ?

I will have to retest.

closing it for now.


feat: document on device eval bootstrap from java

🚀 Deployed on https://670ec4410a3d054dd88bc4f7--cozy-fox-0defec.netlify.app


AuthenticationResult create with NativeBrokerPlugin has invalid expiresOn value

Core Library
MSAL Node (@azure/msal-node)
Core Library Version
2.7.0
Wrapper Library
MSAL Node Extensions (@azure/msal-node-extensions)
Wrapper Library Version
1.0.15
Public or Confidential Client?
Public
Description
Please note, this only occurs with the NativeBrokerPlugin.
The AuthenticationResult returned by the NativeBrokerPlugin has an invalid expiresOn value.
The code is creating a Date object from a timestamp based in seconds but Date objects are based on the milliseconds since January 1, 1970.
This causes evaluation of the expiresOn in relation to Date.now() to always appear as though the result has expired.
Simply multiplying the expiresOn by 1000 resolves the issue.
Error Message
None
MSAL Logs
None
Network Trace (Preferrably Fiddler)

[ ] Sent
[ ] Pending

MSAL Configuration
{
    auth: {
      clientId: <client id>,
      authority: <authority>
    },
    broker: {
      nativeBrokerPlugin: new NativeBrokerPlugin()
    }
}

Relevant Code Snippets
**For this code to work, you must be logged in to a domain**
const msalApp = new PublicClientApplication(
  {
    auth: {
      clientId: <client id>,
      authority: <authority>
    },
    broker: {
      nativeBrokerPlugin: new NativeBrokerPlugin()
    }
  }
 );

const accounts =
  await this.m_cApplication.getAllAccounts();

const  result =
   await msalApp.acquireTokenSilent(
     {
       account: accounts[0],
       scopes: <scopes>
     }
);

/* Basically if the expiration time they sent us is < now it's bogus */
if ( result.expiresOn.valueOf() < Date.now().valueOf() ) {
     /* This resolves the issue and adjusts the date object to the right time */
      result.expiresOn =
          new Date( result.expiresOn.valueOf() * 1000 );
      }
}

Reproduction Steps
Create a NativeBrokerPlugin
Get an AuthenticationResult
Check the AuthenticationResult.expiresOn property
Expected Behavior
Result should be a proper date object in the future not the past.
Identity Provider
Entra ID (formerly Azure AD) / MSA
Browsers Affected (Select all that apply)
Other
Regression
No response
Source
External (Customer)

Apologies:
This line of code:
const accounts = await this.m_cApplication.getAllAccounts();
Should be:
const accounts = await msalApp.getAllAccounts();


Change character offsets from UTF-16 codeunits to Unicode codepoints

Addresses https://github.com/Microsoft/language-server-protocol/issues/376.

Should the commit message not note that this would break compatibility?
IIUC, Positions from clients written to version 3.16 would not work with servers complying with this change and vice versa.
The change in spec text should probably be accompanied by a non-normative note explaining how to manage that transition.  Without that, this would engender a lot of confusion.

@soc we can't simply change the spec that way since it is a breaking change and makes most existing server non spec conformant. The right approach is to add a capability on the client and server side and to spec a corresponding handshake.

@soc Sorry, I reacted based on @mikesamuel comment. Any objection to close the PR since as noted this needs more work

Sorry for the confusion

@dbaeumer I think closing this particular PR only makes sense if @soc doesn't plan to update the PR based on your comment (as well as fix the merge conflict). But would you consider a similar PR that does add a capability on the client and server side and specs a corresponding handshake?

Various implementations introduced some kind of encoding negotiation or changed the defaults already.
The world has moved on and the PR is obsolete.

Yes, I would accept a PR that defines such a handshake and adds an implementation to one of the client and server libraries that are out there.


Remove unused variable

This is a

[ ] Breaking change
[ ] New feature
[ ] Bugfix

I have

[ ] Merged in the latest upstream changes
[ ] Updated CHANGELOG.md
[ ] Updated README.md
[ ] Run the tests

Obviously ill-made pull request, will recreate


Serialization fails for response example

Here's a minimal reproducible example using the BasicPlayground : https://github.com/serpro69/kompendium/tree/serialization_failure

run main of Basic Playground
open docs at localhost:8081/docs
see the error thrown

Looks like an issue with AnySerializer :
kotlinx.serialization.SerializationException: Serializer for class 'Response' is not found.
Mark the class as @Serializable or provide the serializer explicitly.
	at kotlinx.serialization.internal.Platform_commonKt.serializerNotRegistered(Platform.common.kt:91)
	at kotlinx.serialization.SerializersKt__SerializersKt.serializer(Serializers.kt:149)
	at kotlinx.serialization.SerializersKt.serializer(Unknown Source)
	at io.bkbn.kompendium.oas.serialization.AnySerializer.serialize(AnySerializer.kt:26)
	at io.bkbn.kompendium.oas.serialization.AnySerializer.serialize(AnySerializer.kt:15)

also could you push this branch to the upstream?

I don't have permissions to push a branch to this repo, so you'll have to pull it yourself. Or I can make a PR that you can later pull and close?
And also do you want it in the state it is ? It was just a dirty example to reproduce the error, nothing more :)

oh really you can't push upstream? I thought that restriction was just on master 🤔 Don't worry about it then

This is fixed in v4


Newbie - Unable to generate HTML report

Summary
I'm newbie with stryker and I'm not able to generate/find the mutation html report :(
Is not a big problem because I have the console result, but HTML is better for reading and to look at the other mutations :)
Stryker config
module.exports = function(config) {
  config.set({
    mutate: ['app/src/**/*.ts'],
    mutator: "typescript",
    packageManager: "npm",
    reporter: ['html', 'progress', 'event-recorder'],
    testRunner: "jest",
    tsconfigFile: "./tsconfig.json",
    coverageAnalysis: "off"
  });
};

Stryker environment
+-- @stryker-mutator/core": "^2.0.0
+-- @stryker-mutator/jest-runner": "^2.0.0
+-- @stryker-mutator/typescript": "^2.0.0

Test Runner

+--jest": "^24.8.0
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>
Test runner environment
NPM Test as configured simply : test: jest
JEST Config file
module.exports = {
    roots: ['app/'],
    transform: {
        "^.+\\.tsx?$": "ts-jest"
    },
    collectCoverageFrom: ["app/src/**/*.{ts,js}"],
    testRegex: 'test/unit/.*\\.ts?$',
    moduleFileExtensions: ['ts', 'js', 'json'],
    collectCoverage: false
};

Your Environment

software
version(s)

node
12.1.0

npm
6.9.0

Operating System
macOS Mojave 10.14.5

Add stryker.log
stryker.log

I am using config like this:
module.exports = function(config) {
  config.set({
    mutator: "typescript",
    packageManager: "npm",
    reporters: ["html", "clear-text", "progress"],
    testRunner: "mocha",
    transpilers: ["typescript"],
    testFramework: "mocha",
    coverageAnalysis: "off",
    tsconfigFile: "tsconfig.json",
    mutate: ["src/**/*.ts"]
  });
};

and html reporter works. Maybe try adding 'transpilers' and 'testFramework'?

thank, it revealed the folder with the files.
Seems that with hidden folder activated or by terminal, the folder did not appear.
thanks :)

Great to hear you found the report! Have fun mutation testing 👽.
For anyone else facing this problem, the option is called reporters (not reporter). This changed since a year or so ago and got deprecated before we removed it completely in the 1.0 release.


What should I do if moving to a new resource group was successful?

[Enter feedback here]
My resource group contains the following few resources to help run my smart app on smart phones : (SQL server,SQL database,App Service plan,App Service,Application Insights), I know that there will be a down time, but will my smart app work immediately after the moving is completed? for example should I re-deploy my node.js back-end for example on azure?

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

ID: 51002d4a-d8de-53d1-2e78-cb0440f5f23e
Version Independent ID: 40f69d9c-2cb7-87e1-291d-525882347925
Content: Move resources to a new subscription or resource group - Azure Resource Manager
Content Source: articles/azure-resource-manager/management/move-resource-group-and-subscription.md
Service: azure-resource-manager
Sub-service: management
GitHub Login: @tfitzmac
Microsoft Alias: tomfitz

@Naseej-App Thanks for your comment! We will review and provide an update as appropriate.

@Naseej-App - there shouldn't be anything you have to do to get your app to work. You'll want to look at Move guidance for App Service resources to make sure you understand the requirements for moving an App Service app. If you have hardcoded resource IDs anywhere, you'll need to change those values.

@Naseej-App - we'll close this issue for now, but if you have any additional questions or feedback, feel free to reopen.

#please-close


Auto-progess

Make it possible to move to the next card after some time has passed, or the audio narration finishes.

Have a progress bar to indicate the time left.
Perform an automatic swipe, possibly randomly choosing in which direction.


Added show/hide sensor button in Lara app [#171887455]

@dstrawberrygirl this may change slightly (maybe button names) after Leslie looks at it but I think its good to review now.


2.1.x -- Count subjective CPU billing amount in deadline timer and pr…

…ovide better error messages

Change Description

https://blockone.atlassian.net/browse/EPE-909
The corresponding develop version of PR is https://github.com/EOSIO/eos/pull/10300.
This PR introduces a new exception subjective_cpu_bill_deadline_exception for subjective CPU billing, makes the deadline timer account for subjective CPU billed amount, and logs subjective CPU billed amount when a failure is caused by subjective CPU billing.
Change Type
Select ONE:

[ ] Documentation

[ ] Stability bug fix

[x] Other

[ ] Other - special case

Testing Changes
Select ANY that apply:

[ ] New Tests

[ ] Existing Tests

[ ] Test Framework

[ ] CI System

[ ] Other

Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

We will come back to this for develop at a later time (will not go into 2.1.x at this time)

Had a meeting with Kevin and Santhosh. We will do a complete fix in a future time by replacing leeway_deadline_exception
with subjective_cpu_bill_deadline_exception, using a negative default_subjective_cpu_leeway_us (-31000 ms), and cleaning the logic for setting the _deadline. Need more thought about what to report to user if subjective_cpu is negative; report 0?