feat(state): Report general and CAN session state

There are two controversial parts of this

If the interface isn't communication, time_start and time_communicating
throw an error rather than return 0.
Each state property will treat fault like any other return code,
raising an exception or warning, when these properties are accessed

Standard checklist

[x] This contribution adheres to CONTRIBUTING.md.
[x] New tests have been created for any new features or regression tests for bugfixes.
[x] tox successfully runs, including unit tests and style checks (see CONTRIBUTING.md).

Coverage decreased (-0.1%) to 63.413% when pulling b4ff4e14c63c1c4964cee0bcffc21fe7146eaf36 on epage:state into 427739f13015953182f1716c6cb69074f4ceba71 on ni:master.

Coverage decreased (-0.1%) to 63.427% when pulling 67b69cdaf05335eed2f1881220ddc3308f6f8042 on epage:state into 427739f13015953182f1716c6cb69074f4ceba71 on ni:master.

Coverage decreased (-0.1%) to 63.433% when pulling 93acd1b03d4ba0bc3f6c84b8a3209c2a515e95c0 on epage:state into 427739f13015953182f1716c6cb69074f4ceba71 on ni:master.

Coverage decreased (-0.1%) to 63.428% when pulling 812caf9d9490b82904e4fa6c210fe79c6d940cd2 on epage:state into 068181ec5acd57a6696a38e027657fc766efd497 on ni:master.

Coverage decreased (-0.1%) to 63.428% when pulling 812caf9d9490b82904e4fa6c210fe79c6d940cd2 on epage:state into 068181ec5acd57a6696a38e027657fc766efd497 on ni:master.

Originally, each state property would call check_for_error on the fault.  After talking with Christian, I switched to an explicit check_fault function.

Coverage decreased (-0.1%) to 63.428% when pulling 08c3d76e4540a20a595e0c1edcb94e691457ea28 on epage:state into 068181ec5acd57a6696a38e027657fc766efd497 on ni:master.

Coverage decreased (-0.1%) to 63.428% when pulling 08c3d76e4540a20a595e0c1edcb94e691457ea28 on epage:state into 068181ec5acd57a6696a38e027657fc766efd497 on ni:master.

Coverage decreased (-0.1%) to 63.428% when pulling 8dd86249c1a06a1978d885f7057e1db069abc7a8 on epage:state into 068181ec5acd57a6696a38e027657fc766efd497 on ni:master.


⚠ Bofrost.at has degraded performance

In 4598009, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1382 ms

Resolved: Bofrost.at performance has improved in 18788a3.


Arrange a UX meeting / Hangout call about Dashboard work.

As there are multiple interested parties in this work. Let's get co-ordinated.
Possibly a physical meet up as part of the UX Meeting in February or via a Hangout call, etc.

cc'ing @abrownhill of 'Prove you can apply' service based in Stockport.

Conversation with Andrew around what solution has been put in place for displaying metrics from the "Prove you can apply" service.
Agreed to catch up with Andrew in a weeks time to update on progress of the dashboard development.

Organised a session with Catherine Hope - analytics in Newcastle, to discuss ways in presenting the data to a dashboard. E.G which colours in graphs, pie charts, etc work well with users.


Whatsie sync message conversation

Hi everyone,
hope it's the right place to mention this issue. When i send a message to a contact on Whatsie, the contact doen't see it and the message sent to my contact doesn't show up on my mobile in the conversation.

I have the same problem - new messages from the phone show up, but sending messages doesn't work. Linux Mint 21.3, happy to provide logs if someone tells me which ones are needed.

I am facing a similar issue. The app only displays previous messages from other devices after reloading, and it doesn't send messages.
Ubuntu 22.04.03   WhatSie 2.2407.3

I am also facing a similar issue. Message sending isn't working it only shows the clock icon that it is waiting to send. And also it keeps showing syncing chats below in the chat list.
Ubuntu 22.04.4 LTS WhatSie 4.14

I also face Sync problems. Tried Reload but no use, the syncing message appears, but nothing happens. Ubuntu 22.04.4 LTS

I am facing a similar issue. The app only displays previous messages from other devices after reloading, and it doesn't send messages. Ubuntu 22.04.03 WhatSie 2.2407.3

I found a solution: turn on 'Sync in background' in the settings under 'Notifications'."


[feature] Permalink to specific SQL query/chart configuration

This plugin is awesome.
It would be great if the chart configuration was in the URL too. That way you can share a link that does both: run the sql query AND renders a customized chart.
Right now when you create a chart, if you refresh the page you will lose any changes you made to the chart.

Thanks @casidiablo ! I think this is a good idea and should be doable. I'll look into it.

@casidiablo this works now was of version 0.4.1. https://pypi.org/project/datasette-nteract-data-explorer/0.4.1/
Example link to a hexbin graph
Feel free to add a link to https://github.com/hydrosquall/datasette-nteract-data-explorer/discussions/10 if you have a future public graphs or datasette deployments you'd like to share!


propose-upstream does not adjust the spec's Version:

We tried to use packit for Fedora with cockpit, using this packit.yaml. Aside from the already filed hacks (#1505 and https://github.com/packit/packit/issues/1560), we have this hack:
   post-upstream-clone:
    # packit will overwrite the version in its "fix spec file" stage
    - tools/create-spec --version 0 --build-all -o cockpit.spec tools/cockpit.spec.in

We need this because our git repo does not contain a cockpit.spec, it needs to be built from a template. This works fine for COPR builds, but not for propose_downstream -- the release failed like this:
WARNING Version '0' in spec file is outdated
[...]
DEBUG  Upstream archive name: cockpit-0.tar.xz
DEBUG  Archive 'cockpit-0.tar.xz' not found in the lookaside cache.

So apparently that "fix spec file" magic does not get applied to propose_downstream stage?
Ideally packit would take cockpit.spec from the downloaded release tarball -- everything is correct there. I tried to drop post-upstream-clone, and propose_downstream immediately failed with "no spec file", so that doesn't work.
After some 10 other approaches which failed, I now have this hack:
--- packit.yaml
+++ packit.yaml
@@ -1,8 +1,8 @@
 upstream_project_url: https://github.com/martinpitt/cockpit
 actions:
   post-upstream-clone:
-    # packit will overwrite the version in its "fix spec file" stage
-    - tools/create-spec --version 0 --build-all -o cockpit.spec tools/cockpit.spec.in
+    # HACK: packit's "fix spec file" stage does not kick in here, and it does not take the spec from the tarball
+    - sh -exc 'tools/create-spec --version $(git describe | tr - .) --build-all -o cockpit.spec tools/cockpit.spec.in'
   create-archive:
     # The sandcastle doesn't have enough ram to run webpack, so wait
     # until the webpack-jumpstart workflow has run and grab the result.

to build the checkout's cockpit.spec with the expected version number.
With that hack, it worked: proose-downstream log and created Fedora PR
So in summary, I found it really difficult to get propose-upstream working in this scenario (spec file needs to be built). Is there some best practice here?

I filed https://github.com/packit/packit-service/issues/223 in the past, although your issue is very concrete.
The best practice so far is to manually adjust Version when doing releases. Which won't work for you since you generate the spec file.
If this --version $(git describe) would work for everyone, that would be a win.

Would running a fix-spec-file action during propose-downstream work for you?

I think so -- at least the builtin default does the right thing for COPR, i.e. replace the spec's Version: with the actual version. Packit already knows this, but does not expose it as a variable ($PACKIT_PROJECT_VERSION is not set for post-upstream-clone). As I said, this is not my most liked solution, but it would help to avoid these nasty shell/seddery hacks. FTR, I updated the description with a fixed git command, the previous one didn't work.

I am not sure if this can be used for all users -- upstream archive does not need to contain a spec-file at all.

Right, but if it contains it, then I feel this should be preferred to the version in the cloned git? These days, most upstream projects don't keep the git-tracked spec up to date with the version, that's outright impossible with COPRs from PRs even. Do you think it would be possible to apply the normal "search for a .spec file" approach in the upstream tarball for propose-downstream first, and only then fall back to all the post-upstream-clone:, fix-spec-file etc. magic?

OK, so we have basically three action items:

[ ] update the spec-version during a propose-downstream job.

What about doing this as a fix-spec-file action? Or a new bump-spec-version so users can disable this?
Do we want to use a new version (get from tag) or take the highest from tag and spec-file? Also, we can introduce get-current-version.
This might help our tools as well so we don't need to maintain the version in the upstream specfile...

[ ] Provide PACKIT_PROJECT_VERSION during propose-downstream.

We can do that if it makes sense. (With service, it will be a version transformed from git tag using the upstream_tag_template.)

[ ] Try getting a spec-file from the source archive.

But we are getting the info about the archive from the spec-file...;(
We can possibly do something with that but I am worried this can mess the already-a-bit-complicated process more.

Last update of the action items:
(Leaving the spec-from-archive for later):

[ ] update the spec-version during a propose-downstream job.

Do this as a bump-spec-version action so users can disable this.
Use the value from get-current-version action or get it from the tag by default.
Preserve the warning if upstream-release-monitoring has a new version.

[ ] provide PACKIT_PROJECT_VERSION env.var. during pre-sync action. (As a value we use the output from the get-current-version action or tag by default. (What we use in spec-file.)
[ ] make sure the following use-cases work:

[ ] propose-downstream in service with the spec-file present in upstream (e.g. Packit; spec-file does not need to updated in upstream)
[ ] propose-downstream in service with the spec-file generated during action (e.g. Anaconda, Cockpit)
[ ] propose-downstream run via CLI for both upstream-located and action-generated specfile

Do this as a bump-spec-version action so users can disable this.

Maybe call this set-spec-version, as versions are not only bumped.
Figure out some way, so that by default this actions doesn't do anything. This way we could maintain backwards compatibility.

Regarding the syntax, we have multiple options:

Nothing by default, the default behaviour when true yaml value is configured, user-defined command otherwise.

Here, I am worried about a collision between a dummy command (like true) and some special value (true/1/True/yes/..). Maybe, we can have some explicit special value like packit-default.

Have a dedicated config flag so turn this on. (Nothing set means no change, flag set means the action is run with the default to use the version from get-current-version/tag.)

The person who will work on this will see what is better to use.

Hi, I was looking into the propose_downstream code base and found out that we actually do set the Version in the specfile (here), in case of Packit Service we set here the version that we get from the upstream tag corresponding to the release that triggered the propose_downstream, but we do it after running the post_upstream_clone action, when preparing files to sync.
If I understand correctly, the real problem here is that the archive we try to get is not correct. But checking how you create the specfile in post_upstream_clone, the Source0 is hardcoded after running the action and since we set the Version in specfile correctly later, it is not considered when downloading the sources because the source name is already hardcoded.
Would it be possible for you to use in Source0 the version macro maybe? Or do you still think providing something similar to  fix-spec-file for propose_downstream where you can update the Source0 would be the best option?

Would it be possible for you to use in Source0 the version macro maybe?

Absolutely, yes, thanks for spotting! That also explains why we don't run into this problem in e.g. c-podman. Its spec file uses the version macro in the way you mention:
Source0:        https://github.com/cockpit-project/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz

and does the upstream-side templating through this indirection:
Version:        %{VERSION}

I'll try the same for cockpit.
If that works, I think we can close this -- indeed my initial "Ideally packit would take cockpit.spec from the downloaded release tarball -- everything is correct there" proposal is difficult due to the chicken-and-egg problem.
Thanks @lbarcziova !

Great! Let me know if there will be any problems after this change and in that case we can still implement some action.

@lbarcziova ! Works! https://github.com/cockpit-project/cockpit/pull/17450 Thanks for your help!


fix: wrong tag correction

Description
The tag differs from file name. Correcting the region tag to be consistent with the sample.
Checklist

[ ] I have followed Contributing Guidelines from CONTRIBUTING.MD
[ ] Tests pass:   go test -v ./.. (see Testing)
[ ] Code formatted:   gofmt (see Formatting)
[ ] Vetting pass:   go vet (see Formatting)
[ ] These samples need a new API enabled in testing projects to pass (let us know which ones)
[ ] These samples need a new/updated env vars in testing projects set to pass (let us know which ones)
[ ] This sample adds a new sample directory, and I updated the CODEOWNERS file with the codeowners for this sample
[ ] This sample adds a new Product API, and I updated the Blunderbuss issue/PR auto-assigner with the codeowners for this sample
[ ] Please merge this PR for me once it is approved

@telpirion I've noticed a mistake in one sample PTAL.
Also this is my last PR to this repo. Thank you, for your suggestions and patience to my PRs all this time :)
It was a pleasure working with you!
Merry Christmas!


Servercrash when Dropship or Titan gets removed while Player is attached

My servers crash fairly often:
[2021-12-27 15:56:17.306] [info] [DEDICATED PRINT] Tried to remove entity #76:npc_dropship [76]:models/vehicle/crow_dropship/crow_dropship_hero.mdl while a player (#9, 'iDurpyDude', lifestate #0) was attached
nslog27-12-2021 15-00-41.txt
nslog27-12-2021 15-06-22.txt
nslog27-12-2021 14-53-59.txt
Not sure how to produce it myself, probably needs like 2-4 people to do so.
PS: I hope im in the right repo now

this is fixed as of current commit, will be in next release which should ideally be out today


Update lasso hash in flake.nix

I'll confess to not really knowing what's going on here.  I just saw that there was a flake.nix here, so I dropped into a devshell and got an error about a hash mismatch. This PR updates it to the "correct" hash according to my experience.
Thought you might like to know, sorry I can't provide more context--I'm new to this project, although I'm looking forward to getting to know it better.

thanks! I don't use nix so these issues seem to pop up every once in a while. Perhaps I should start using it

Nix has its perks, and its pitfalls.  I think it's worth it :man_shrugging:
It looks like the hash has some context here: https://github.com/mattwparas/steel/pull/203#discussion_r1596263667, I don't know cargo or lasso well enough to weigh in on the specifics.

So it looks like the lasso dependency now has an up to date cargo dependency, which would mean we wouldn't need this has anymore.

That's good news 🙂
I'm not a skilled cargo user, so double-check me here, but I've changed the two Cargo.toml files which reference lasso like so:
- lasso = { git = "https://github.com/kixiron/lasso/", features = ["multi-threaded", "serialize"] }
+ lasso = { version = "0.7.3", features = ["multi-threaded", "serialize"] }

Then I deleted Cargo.lock and ran cargo generate-lockfile.  Following that, the following commands all seemed to work ok:

nix build (used to break with a hash mismatch)
cargo build
cargo test

Are there any additional checks that are warranted here?

That's good news. After rebasing I find that I can remove the hash and nix build still completes without trouble 😄


Tiered sparse merkle tree requirements

Miden VM - TSMT
Definition
A tiered sparse merkle tree will be a compound of sparse merkle trees combined into tiers. It will map 256-bits keys to 256-bits values, and will extend the functionality of sparse merkle trees.
Keys and values are arrays of 64-bits field elements F. We will use the last limb of the key to represent our traversing key.

T: Depth per tier, set to 16.
M: Maximum number of tiers, set to 4.
D: Maximum depth of the tree, set to T ⋅ M = 64
H({F}) -> F: Hash primitive of choice
H_{t}({F}) -> F: Hash in domain t, where the maximum t = D = 64
H_0(depth) -> F: Set of empty sub-tree constants for a target depth.

Lookup
Requirements:

H_0(depth) -> F
H_{t}({F}) -> F
Node(state, depth, index) -> Node Value: F
Traverse(state, bits) -> Target Node Depth Index: (F, F)
Traverse Key(Key, B) -> Bits: F

For a state of the tree (i.e. root), given a key, it will lookup its structure and find the appropriate node for that key. This will be referenced as target node within this document.
Lookup(Root, Key, Value) -> (Depth, Index)
For the first tier, we will:

Compute bits := Traverse Key(Key, B) for B = T = 16

Traverse key will get the most significant bits B from the traversing key of Key.

Compute the node value for that tier: V := H_{B}(Key, Value)
Fetch the target node via a traverse function (depth, index) := Traverse(state, bits)

The tree traversal is straightforward as it will be the same as a regular sparse merkle tree. For the sake of simplicity, we use below a T = 4 and a 8-bits key 0b10010110.

We start from the orange root, traverse the green nodes in accordance to the most significant bits of the key, and finish at the purple target node. The index pair for that tree will be (depth = 4, index = 9).

Fetch a node value N := Node(state, depth, index)
If the node value N equals V or H_0(depth), returns (depth, index). Otherwise, continue traversing until the next tier.

For the second tier t = 2, we will:

Compute bits := Traverse Key(Key, B) for B = t ⋅ T = 2 ⋅ 16 = 32
Compute the node value for that tier: N := H_{B}(Key, Value)
Fetch the target node via a traverse function (depth, index) := Traverse(state, bits)
Fetch a node value V := Node(state, depth, index)
If the node value N equals V, returns (depth, index). If V = H_0(depth), returns (depth, index) of the previous iteration.

Otherwise, continue traversing until B = 64. If we reach the maximum depth = D = 64, returns (64, index), where index is the traversed value for that maximum depth.
Node value for the last tier
Requirements:

Order Leaves By Key({(Key, Value)}) -> {(Key, Value})

The last tier might contain multiple leaves per node. We introduce a Node Value Last Tier(leaves: {Key, Value}) -> F procedure to compute the node values, and will behave as follows

Order leaves via ordered leaves := Order Leaves By Key(leaves)
Return the hash in domain for the max depth D = 64 as Node Value Last Tier(ordered leaves: {Key, Value}) -> H_64(ordered leaves)

Membership proof
Requirements:

H_{t}({F}) -> F
Last Tier Leaves(index) -> {(Key, Value)}
Lookup(Root, Key, Value) -> (Depth, Index)
Merkle Opening(Root, V, index, Merkle Path) -> boolean
Merkle Path(Root, depth, index) -> Merkle Path
Node(state, depth, index) -> Node Value: F
Node Value Last Tier(leaves) -> F

To check if a candidate leaf (Key, Value) opens to a state Root, we proceed as follows:

Fetch the target node via (depth, index) := Lookup(Root, Key, Value)
Compute the node value for that tier via N := H_{depth}(Key, Value)
If the depth is 64, fetch all leaves of the target node via leaves := Last Tier Leaves(index), assert (Key, Value) belongs to leaves, and replace N := Node Value Last Tier(leaves)
Fetch the node value of the state via V := Node(Root, depth, index)
Fetch the merkle path for the target node via P := Merkle Path(Root, depth, index)
Assert the correctness of the opening via Merkle Opening(Root, V, index, P)

Note: Both Merkle Path and Merkle Opening definitions doesn't belong to the scope of this document and are assumed to be known by the reader.
Non-Membership proof
Requirements:

Fetch Pre Image(Root, depth, index) -> {F}
H_0(depth) -> F
H_{t}({F}) -> F
Last Tier Leaves(index) -> {(Key, Value)}
Lookup(Root, Key, Value) -> (Depth, Index)
Merkle Opening(Root, V, index, Merkle Path) -> boolean
Merkle Path(Root, depth, index) -> Merkle Path
Node(state, depth, index) -> Node Value: F
Node Value Last Tier(leaves) -> F

To check if a candidate leaf (Key, Value) doesn't exist for a state Root, we proceed as follows:

Fetch the target node via (depth, index) := Lookup(Root, Key, Value)
Fetch the node value via N := Node(Root, depth, index)
Fetch the merkle path for the target node via P := Merkle Path(Root, depth, index)
Assert the correctness of the opening via Merkle Opening(Root, V, P)

In order to prove non-membership, we need to open the pre-image of target node and assert it doesn't contain the candidate leaf. The proof that we know a pre-image that will compute the opening correctly will suffice to prove the non-membership.

If N = H_0(depth), then the proof holds.
Otherwise, if depth < D, we fetch the pre-image (Key', Value') := Fetch Pre Image(Root, depth, index) and assert N = H_{depth}(Key', Value') && Key != Key' && Value != Value'. We can, alternatively, skip the value check as the key could independently verify the set membership - that would be up to the target use case.
Finally, if depth = D, then we fetch leaves := Last Tier Leaves(index), assert (Key, Value) doesn't exist in leaves, and assert N = Node Value Last Tier(leaves).

Insert new leaf
Requirements:

Fetch Pre Image(Root, depth, index) -> {F}
H_0(depth) -> F
H_{t}({F}) -> F
Insert Leaf(Root, N, depth, index, Key, Value) -> New Root: F
Last Tier Leaves(index) -> {(Key, Value)}
Lookup(Root, Key, Value) -> (Depth, Index)
Node(state, depth, index) -> Node Value: F
Node Value Last Tier(leaves) -> F
Traverse(state, bits) -> Target Node Depth Index: (F, F)
Traverse Key(Key, B) -> Bits: F

The insertion of a leaf (Key, Value) for a state Root should be implemented as follows:

Fetch the target node via (depth, index) := Lookup(Root, Key, Value)
Compute the node value for that tier via N := H_{depth}(Key, Value)
Fetch the node value of the state via V := Node(Root, depth, index)
If V = H_0(depth), then Insert Leaf(Root, N, depth, index, Key, Value)
Otherwise, if depth = D = 64, then we fetch leaves := Last Tier Leaves(index), append (Key, Value) to the set leaves (note that a set cannot hold duplicated values), compute the node value N := Node Value Last Tier(leaves), and Insert Leaf(Root, N, depth, index, Key, Value)

Finally, if the previous cases aren't met, we have a collision. We should promote both leaves until they don't collide.

Compute the depth of the next tier via next tier depth := depth + T
Fetch the node pre-image of the sibling via (Sibling Key, Sibling Value) := Fetch Pre Image(Root, depth, index)
Compute the sibling traversing bits via sibling bits := Traverse Key(Sibling Key, next tier depth)
Fetch the target sibling node via the traverse function (sibling new depth, sibling new index) := Traverse(state, sibling bits)
Compute the traversing bits via bits := Traverse Key(Key, next tier depth)
Fetch the target node via the traverse function (new depth, new index) := Traverse(state, bits)

If new depth = D = 64, then we insert the sibling and leaf into their indexes using the previous method for the maximum depth.
Otherwise, if new index != sibling new index, it means we can insert the nodes back into the tree:

Compute the sibling node value for that tier via Sibling N := H_{new depth}(Sibling Key, Sibling Value), then New Root := Insert Leaf(Root, Sibling N, new depth, sibling new index, Sibling Key, Sibling Value)

Note that this command should override the previous leaf from the set. It means it should behave the same as if we entirely removed the sibling from the set, and inserted it into the new depth and index.

Compute the value for that tier via N := H_{new depth}(Key, Value), then Insert Leaf(New Root, N, new depth, new index, Key, Value)

Finally, if new index = sibling new index, we repeat the procedure, promoting the leaves to the next tier.
MidenVM
The Lookup operation is used for all the routines. These are the requirements for its implementation.

H_0(depth) -> F
H_{t}({F}) -> F
Node(state, depth, index) -> Node Value: F
Traverse(state, bits) -> Target Node Depth Index: (F, F)
Traverse Key(Key, B) -> Bits: F

The remainder operations will require:

Fetch Pre Image(Root, depth, index) -> {F}
Insert Leaf(Root, N, depth, index, Key, Value) -> New Root: F
Last Tier Leaves(index) -> {(Key, Value)}
Merkle Opening(Root, V, index, Merkle Path) -> boolean
Merkle Path(Root, depth, index) -> Merkle Path
Node Value Last Tier(leaves) -> F
Order Leaves By Key({(Key, Value)}) -> {(Key, Value})

Known blockers
These implementations will require new VM instructions and/or advice provider modification:

H_{t}({F}) -> F

Hash in domain is currently not supported as VM instruction

Insert Leaf(Root, N, depth, index, Key, Value) -> New Root: F

We can map (depth, index) -> (Key, Value) via the advice provider, but we cannot insert a leaf on an arbitrary index.
Nice to have
The advice provider will allow us to map values to sequence of values. This theoretically can solve any situation, but might be too resource demanding to work with. Example:
If I'm to implement the Node(state, depth, index) -> Node Value: F, then I can do the following:

Compute the hash of the arguments x := H(state, depth, index)
Map x -> v

This means we will have to store every node, not only as a node, but also as a value mapping.
If we have a way to perform a custom request that will take n numbers as argument, we can easily implement more functions:

Define a constant N that will work as function selector
Invoke the advice provider, passing as arguments (N, state, depth, index)
Given N, the advice provider will know it should use the 3 arguments to fetch the node for the given state at depth+index, and return it

Hash in domain is currently not supported as VM instruction

We already can do this via the hperm instruction.

We can map (depth, index) -> (Key, Value) via the advice provider

Mapping (depth, index) -> (Key, Value) is actually 3 operations:

First we can map (depth, index) -> Node via the get_tree_node() function.
Then we can get pre-image of node via the write_tape() function followed by reading the pre-image from the advice tape.
Then we check that the pre-image hashes to the value of the node.

As you pointed out, while this works, it implies that the advice map should be pre-populated with pre-images of all leaves. For small trees that's probably not an issue. And maybe even for large trees this is not an issue either. So, I wonder if we should keep it as is or if we should come up with a better mechanism.
One example I can think of is adding another method to the advice provider which could look something like this:
fn write_leaf_value(&mut self, root: Word, index: Felt) -> Result<(), ExecutionError>

This method could write the pre-image of a leaf specified by the index into the advice tape.

we cannot insert a leaf on an arbitrary index.

I think this was mean to say that we cannot insert nodes at an arbitrary depth, right? If so - yes, this is correct and I think we should support this operation. The question is what's the best way to do it.


gremlin.sh buggy in 0.5.2

gremlin.sh in 0.5.2 ignores the -e and -i parameters. You can find a partially fixed version here. This version brings back the -e functionality, but still fails for -i. I'm not sure how to solve this one:
daniel@cube ~/titan $ bin/gremlin.sh -i "println 'Hello World'"
Exception in thread "main" java.io.FileNotFoundException: bin/titan-hadoop.properties (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at com.thinkaurelius.titan.hadoop.tinkerpop.gremlin.InlineScriptExecutor.main(InlineScriptExecutor.java:52)

hi

The diff of your gremlin.sh against the current gremlin.sh appears to exactly revert 018827a538979a93c0b1cd9b4de240e72a235f72.  In that commit, I broke -e.  Reverting does fix it, but it also introduces a regression on the problem that commit tried to fix: invoking, say bin/gremlin.sh -l INFO path/to/script.groovy dies with Gremlin initialization file not found at [-l].
I think we can fix both problems by moving the shift below the getopt loop.  The shell main class should never see the shell options anyway.  Here's the commit: 4f9ceb067e1e965615d6f71f5921016a305de312.
With these changes, -i and -e both appear to work.
I wrote a test.groovy file containing this:
g = TitanFactory.open('conf/titan-cassandra-es.properties')
GraphOfTheGodsFactory.load(g)
g.shutdown()

And then ran this:
bin/titan.sh start
bin/gremlin.sh -e test.groovy
bin/gremlin.sh -i conf/hadoop/titan-cassandra-input.properties 'g.V.map()'
cat jobs/job-0/sideeffect-m-0000*
3072    {_id=[3072], name=[tartarus]}
1536    {_id=[1536], name=[hercules], age=[30]}
1792    {_id=[1792], name=[alcmene], age=[45]}
2816    {_id=[2816], name=[cerberus]}
1280    {_id=[1280], name=[neptune], age=[4500]}
256     {_id=[256], name=[saturn], age=[10000]}
768     {_id=[768], name=[sea]}
2560    {_id=[2560], name=[hydra]}
512     {_id=[512], name=[sky]}
2304    {_id=[2304], name=[nemean]}
1024    {_id=[1024], name=[jupiter], age=[5000]}
2048    {_id=[2048], name=[pluto], age=[4000]}

The commit also appears to avoid breaking gremlin.sh -l LOGLEVEL SCRIPTFILE:
cat > hello.groovy <<EOF
> println('hello world')
> EOF
bin/gremlin.sh -l ERROR hello.groovy

         \,,,/
         (o o)
-----oOOo-(_)-oOOo-----
hello world
==>null
gremlin>

I thought -e expected that it will be followed by a script filename at least as far back as 0.3.2:
https://github.com/thinkaurelius/titan/blob/0.3.2/titan-core/src/main/java/com/thinkaurelius/titan/tinkerpop/gremlin/ScriptExecutor.java#L19
Is this incorrect?  It seems like you're using it differently.
You could certainly say that gremlin.sh -e <scriptfile> arg... is barely differentiated from gremlin.sh <scriptfile>, and that there should be some option that supports an arbitrary expression on the commandline without necessarily specifying a file (like perl -e).  And -i doesn't meet that need -- it supports an expression on the commandline, but it also requires a HadoopFactory config file.  That's entirely reasonable, though changing/adding options might be better suited to titan09.
Please reopen if I've missed something.


Any solutions to filter enum values for documentation ?

I use enum parameters for APIs and I want to expose subset of values, not all values.
Is there any annotations or configurations to support them ?

Maybe not related, but if you do not want to expose 'any value', instead, just push a reference to the enum class, you can check my pull request. I have implemented an option to make an Enum class and push a reference to it (If you are building manually from OpenAPI object)
https://github.com/swagger-api/swagger-core/pull/2996


trying to implement validations in login form

i am trying to implement validations for login form from below link.
https://truongtx.me/2014/03/29/authentication-in-nodejs-and-expressjs-with-passportjs-part-1/
as we are using mongdb for session, not able to do the clear message on GET call.
exports.loginForm = function (req, res) {
    console.log("in render");

  res.render('login',{ message: req.session.messages });
  // and then remember to clear the message
   req.session.messages = null;
  //**this line does not clear on next GET call**

};

exports.login = function (req, res,next) {
 // passport.authenticate('local', {successReturnToOrRedirect: '/', failureRedirect: '/login'})
//above line replaced with below code in
 passport.authenticate('local',function(err, user, info) {
    console.log("in here");
    if (err) {
      // if error happens
      req.session.messages = info.message;
      return next(err);
    }

    if (!user) {
      // if authentication fail, get the error message that we set
      // from previous (info.message) step, assign it into to
      // req.session and redirect to the login page again to display
     // console.log("not in user");
      req.session.messages = info.message;
      return res.redirect('/login');
    }

    // if everything's OK
    req.logIn(user, function(err) {
      if (err) {
       //   console.log("error");
        req.session.messages = "Error";
        return next(err);
      }

      // set the message
      req.session.messages = "Login successfully";
      return res.redirect('/');
    });

  })(req, res,next)

  };

two issues i am facing are

validation message does not clear on next GET call or refresh.
console error in terminal
TypeError: Cannot read property 'toString' of undefined express router layer
look like this is big issue but not able to reproduce this again.

exports.loginForm = function (req, res) {
    console.log("in render");

  res.render('login',{ message: req.session.messages });
  // and then remember to clear the message
   req.session.messages = null;
  //**this line does not clear on next GET call**
};

I would try to keep what you have to do before you call res.


System.NotImplementedException : 'Model load of h5 format has not been supported

Hello,
I am trying to load a .h5 model with the load_model function (Tensorflow.Keras.Models) but I get this error
issue:
System.NotImplementedException : 'Model load of h5 format has not been supported. Please submit an issue to https://github.com/SciSharp/TensorFlow.NET/issues if it's needed.'
any suggestions please,
Thank you

Hello, the loading of "h5" format keras model has not been supported. We has implemented the loading of "SavedModel" format first because it's recommended by tensorflow. The loading of "h5" format is also on our schedule but is not very urgent now. May I ask why you choose "h5" format instead of "SavedModel"?

Thank you for your answer, I chose the .h because it is a network that I have already trained in Python with tensorflow-keras, and since I work in c# I wanted to reuse it

I see. The loading of "h5" format is a big feature and support of the loading complex models (such as bert) with "SavedModel" format has higher priority in tf.net. We will implement the loading of of "h5" format model in the future but it costs time. A possible alternative is loading your model in python and save it again to "SavedModel" format, then load it in C#. If your model contains self-defined keras module, please try after the merge of #1022, which added support for it.

in python it loads normal (.h and .pb format) but in c# no
import tensorflow as tf
#import tensorflow.python.framework.convert_variables_to_constants_v2
from tensorflow.python.keras.models import load_model
from tensorflow.keras.models import Model
model =  tf.keras.models.load_model('mod/InceptionResNet/')
print(model.summary())

Hi, the file seems to be SavedModel format saved prior to TF 2.5. The loading itself is supported by using tf.saved_model.load. However it seems that your model has other parts such as restoring optimizer so it will still fail. I'll finish the lacked features in the next 2 or 3 days.

Yes

Yes

Thanks for your sharing. That's a very good work around. I'll still fix the bug of loading your uploaded model in this issue.

No, I didn't delete anything, as indicated above, I opted for a format.h5 conversion to frozen model.pb with a well-detailed tutorial.

Did you succeed in tensorflow (python)? I tried loading the file with tensorflow python but failed, which tells me it cannot find variable files.

a problem with this model that I put in attachment, I use another model, basically I took my basic model .h5 convert to .pb, but the attached model is wrong

Thanks, I'll close this issue as completed. Please don't hesitate to tell us if any problem in the future.

how about the loading a model?  You seem to have implemented model.save , model.save_weights   which saves the TF model.
How about loading it ? Cannot find it.
By the way , where  why is               model.predict() requires a different  data format from model.fit()?


Build Error when deploying hello world lambda

Describe the bug
Backend build fails when trying to deploy the hello world Lambda.
To Reproduce

I set up my project with Amplify and connected my GitHub repo to automate deployments.
The build in the Amplify console succeeded without any issues.
I added a lambda to my project using amplify add function and used the "Hello world function" template

I made no changes to the template, just pushed the code to github to trigger a build. However, this build failed.
running amplify function build or amplify function invoke addressAutocomplete works fine locally

Expected behaviour
Build should succeed, especially when I didn't do anything on my own and all the generated code was through the CLI.
Additional context
Here was the error in the Backend step of the build in the Amplify console:
# Starting phase: build
2019-02-20T09:15:28.775Z [INFO]: # Executing command: export STACKINFO={ "awscloudformation": { "AuthRoleName": "zero-amplify-20190219171557-authRole", "UnauthRoleArn": "arn:aws:iam::171535808574:role/zero-amplify-20190219171557-unauthRole", "AuthRoleArn": "arn:aws:iam::171535808574:role/zero-amplify-20190219171557-authRole", "Region": "ap-southeast-2", "DeploymentBucketName": "zero-amplify-20190219171557-deployment", "UnauthRoleName": "zero-amplify-20190219171557-unauthRole", "StackName": "zero-amplify-20190219171557", "StackId": "arn:aws:cloudformation:ap-southeast-2:171535808574:stack/zero-amplify-20190219171557/b2c16350-34a4-11e9-ba48-028d024c9854" } }
2019-02-20T09:15:28.780Z [INFO]: # Executing command: amplifyPush --environment prod
2019-02-20T09:15:28.782Z [INFO]: # Start initializing Amplify environment: prod
2019-02-20T09:15:28.783Z [INFO]: # Importing Amplify environment: prod (amplify env import)
2019-02-20T09:15:31.404Z [INFO]: Successfully added environment from your project
2019-02-20T09:15:31.412Z [INFO]: # Initializing existing Amplify environment: prod (amplify init)
2019-02-20T09:15:32.814Z [INFO]: Note: It is recommended to run this command from the root of your app directory
2019-02-20T09:15:34.009Z [WARNING]: - Initializing your environment: prod
2019-02-20T09:15:34.226Z [WARNING]: ✖ There was an error initializing your environment.
2019-02-20T09:15:34.226Z [INFO]: init failed
2019-02-20T09:15:34.228Z [INFO]: TypeError: Cannot read property 'addressAutocomplete' of undefined
    at Object.keys.forEach (/root/.nvm/versions/node/v8.12.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/lib/initialize-env.js:63:43)
    at Array.forEach (<anonymous>)
    at Object.keys.forEach (/root/.nvm/versions/node/v8.12.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/lib/initialize-env.js:62:44)
    at Array.forEach (<anonymous>)
    at S3.then.then.then.then.then (/root/.nvm/versions/node/v8.12.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/lib/initialize-env.js:61:32)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
2019-02-20T09:15:34.235Z [ERROR]: !!! Build failed
2019-02-20T09:15:34.235Z [ERROR]: !!! Non-Zero Exit Code detected
2019-02-20T09:15:34.235Z [INFO]: # Starting Environment Caching...
2019-02-20T09:15:34.235Z [INFO]: Uploading environment cache artifact...
2019-02-20T09:15:34.351Z [INFO]: # Environment Caching completed
Terminating logging...

@hammadj looks like this got fixed in https://github.com/aws-amplify/amplify-cli/pull/934. Re-open the issue if you can still reproduce this in the latest version of Amplify CLI


Meet some problem when training on MOT dataset

I want to train on MOT dataset , but I found the instance.txt only have 0002,0005,0009,0011

But the train directory has following  images, Need I change their directory   name to 0002,0005,0009,0011?

How to deal with other directories please? Thanks !

I use the command to train

/home/echo/anaconda3/envs/MOTS/bin/python /home/echo/a_project/TrackR-CNN/main.py configs/conv3d_sep2

get this error

can u tell me how to solve this problem ?

Hi,
please try replacing
"dataset": "MOTS_segtrack",
with
"dataset": "MOTS_challenge",

You can take either one of the DPM/FRCNN/SDP folders. So for example, rename
MOT17-02-DPM -> 0002
MOT17-05-DPM -> 0005
MOT17-09-DPM -> 0009
MOT17-11-DPM -> 0011
and delete the rest. Also note that currently, we only have sequences 2,5,9 and 11 annotated.

Thanks! I will try .

So far, instance segmentations only exist for these four sequences. The MOT datasets only provide bounding box annotations, so you cant train TrackR-CNN on that

oh I see . I am still working on that. Thanks for replying , Once I get results I will upload here.

Closing for now, please reopen if needed


Interceptor on tenant registration

Refers to: https://discuss.axoniq.io/t/multitenancy-datasource-and-hikari-properties/5662/5?u=kaef

@zistow, would you mind expanding the description to contain all the valuable information from the referred to discuss issue?
As it is, this ticket is unclear. Thanks for your help!


Can you add Rust Icon?

This is great sources. but i use rust-lang. Please, add rust-lang icon.
http://www.rust-lang.org

Rust is in Devicons:
http://vorillaz.github.io/devicons/#/singleicon/rust


Update brotli

Use new brotli decoder API
Add "can flush" flag and support "hard flush" in streaming encoder

Thanks for this :)
It looks like the buffer unit test fails with this (Travis reports a success, but if you look at the log it fails… I'll look into that right now).
The problem seems to be that BrotliDecompressBuffer now returns BROTLI_RESULT_ERROR if the destination buffer is too small instead of BROTLI_RESULT_NEEDS_MORE_OUTPUT.  Would it be possible to fix that?

Oh, currently I'm on my way home. I'll take a look at it this evening.

No rush.  If you rebase both Travis and AppVeyor should be working as expected now, sorry for the inconvenience.

Merged, thanks.  Sorry about the delay, GitHub doesn't notify automatically when PRs are updated and I forgot to check this.
I'm a bit surprised by the workaround for the buffer full issue…  I expected a patch in Brotli to bring back the old behavior of returning BROTLI_RESULT_NEEDS_MORE_OUTPUT.  Is there a reason you didn't want to do that?  It can actually be useful to know that decompression failed as a result of insufficient space in the buffer…
The reason I have a test to make sure plugins return SQUASH_BUFFER_FULL is that, for codecs which don't store the uncompressed length in the buffer, it can be hard to know how much space to allocate for decompression unless that information is stored out-of-band.  Returning an error code specific to that situation allows the user to allocate a larger buffer and try again, but doing that generic error code could cause an endless loop if the data is corrupted.

Hello.
In last brotli decode update we've changed BrotliDecompressBuffer to act more in "all-or-nothing" manner - i.e. return either success or failure, but not "to-be-continued" results.
Currently we have bunch of deprecated API, and outdated documentation. As soon as deprecated API is removed I'll carefully update documentation and clarify all possible outcomes and recommended scenarios of usage.


Fix the bad code with mixed use of variable scope

Bad code - coordinate_min is a global variable and it should not be used like this. Either pass coordinate_min to inflow (does not work here) or pass constant directly to initial_condition_shock.
The reviewer should not approve the bad code like this - it will cause big problems somewhere.

If you think it is ok, then request the change with your version - I have no idea.

Ah I know what you mean now - I don't want to wait either. Please review again @ranocha


feat: basic experiment for wrapping loading skeleton

🚨 VERY WIP 🚨

@gavmck
Do you have any current variables in mind I should use for my loading animation or am I free to add some in? Same for the animation duration & timing variables?


Hot Reloading Bug

Hot reloading does not seem to work correctly whilst using the setTimeout() function.
I noticed while working that when the time is adjusted and the server is not given a full restart the time adjustment would have no change.

I don't think it's the setTImeout() function on itself, it should be more of an issue with some React components.
Did you get any errors in console when the component couldn't be automatically reloaded?

No I did not get any errors, I didn't notice it until I gave everything a reboot when a time was set very high, and nothing happened. Thats when I put 2 and 2 together.

Maybe an issue with delay functions?

Not really sure what it could be honestly.


Vitables plugin does not work

The vitables plugin does not work right now, because all imports in the script are not working. Most likely the packages are searched in a wrong PYTHONPATH.

fix ViTables first

It is fixed now. Simpe 1d/2d plots are supported without unique label/plot ranges for different data.


[release/1.2] cherry-pick: Ignore modprobe failures in ExecStartPre (systemd unit)

Backport of https://github.com/containerd/containerd/pull/2776 for the 1.2 branch
fixes https://github.com/containerd/containerd/issues/2772 for the 1.2.x releases
git checkout -b 1.2_backport_ignore_modprobe_failures upstream/release/1.2
git cherry-pick -s -S -x 555ea3fb43505512bba51563183a80b2d4a1d028

cherry-pick was clean; no conflicts
When running containerd inside LXC, due to systemd being unable to execute
modprobe overlay inside the container (module is already loaded in host kernel).
This patch adds a - prefix to the ExecStartPre command, so that failures
are ignored, and the service can start as usual.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #2779   +/-   ##
=======================================
  Coverage   43.72%   43.72%
=======================================
  Files         100      100
  Lines       10734    10734
=======================================
  Hits         4693     4693
  Misses       5311     5311
  Partials      730      730

Flag
Coverage Δ

#linux
47.39% <ø> (ø)
:arrow_up:

#windows
40.89% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Is this just a GitHub UI problem that it isn’t listing the target as release/1.2 branch? Since I merged the master version of the PR, this should show merge conflicts if it was really targeting master; not sure how to investigate further.

Hm interesting. Could also be a slip-up on my side (looking from my phone right now)
OTOH, if this was targeting master, it would usually show as "merged" on github (once the other PR got merged)
Let me try editing the PR's target
(good catch btw, thanks!)

Changed to release/1.2
Let's blame erm... the weather... politics... solar flares...
(pick one)
😅🤗


[1.1.0-pre3][WindowsPackageType none] Application.Current.Exit()

Describe the bug
A non packaged win32 app can not be closed by Application.Current.Exit()
Steps to reproduce the bug
call Application.Current.Exit() somewhere in the code
nothing happens
Expected behavior
Application.Current.Exit()
the app closes
Screenshots

NuGet package version
No response
Packaging type
Unpackaged
Windows version
Windows 10 version 21H2 (19044, November 2021 Update)
IDE
Visual Studio 2022-preview
Additional context
No response

Application.Exit doesn't force the process to exit. It closes open Windows and quits the message pump that runs in Application.Start, causing that method to return.

OK, thank you for that info.
But is there a way to close a WinUI3 App in a similar way? The Application.Current.Exit() does nothing.

you can use
Process.GetCurrentProcess().Kill()
by the way, this is duplication of https://github.com/microsoft/microsoft-ui-xaml/issues/5952

Closing as this appears to have been answered in 2022.


KWs that take list varibles as arguments don't break when no arguments are passed

The following test suite won't break with error "Keyword 'Print List Items' expected 1 argument, got 0.", but moreover it will be passed. Is this a known issue?
*Using Robot Framework 2.8.4 (Python 2.7.3 on linux2)
*** Keywords ***
Print List Items
	[Arguments]  @{list}
	:FOR  ${item}  IN  @{list}
	\  Log  ${item}

*** Test Cases ***
TestListArguments
    Print List Items

I confirm the same behavior with Robot Framework 3.0 (Python 2.7.10 on linux2):
Starting test: Arg Bug.TestListArguments
20160531 10:33:02.167 : TRACE : Arguments: [ @{list}=[] ]
20160531 10:33:02.169 : TRACE : Return: None
Ending test:   Arg Bug.TestListArguments

This is the designed and documented behavior:
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#varargs-with-user-keywords


what is API_HASH?

i cannot find my telegram id api hash

i cannot find my telegram id api hash

Not a big deal
Just visit YouTube and search
How to get telegram API id and hash
Watch any video everyone is same and create your api and hash

SD_URL = xxxx, where xxxx is your sd api url.
How to get that?????

u should reg in sd site and get api


[Improvement] Is it possible to dynamically add backend service to ingress with Kubernetes?

Code of Conduct

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

Search before asking

[X] I have searched in the issues and found no similar issues.

What would you like to be improved?
spark on k8s runs multiple spark apps at the same time. proxy/[sparkappid] path, forwarding to different sparkapp ui console based on sparkappid. spark apps are dynamically added and decreased. ingress Dynamically adds spark svc.
sparkappid == spark svc name
https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-ingress-guide-nginx-example.html
@pan3793
How should we improve?
No response
Are you willing to submit PR?

[ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
[ ] No. I cannot submit a PR at this time.

It can be achieved by implementing a KubernetesDriverCustomFeatureConfigStep, with an additional change SPARK-40763.
Kyuubi also implemented the Spark Web UI proxy in another approach https://github.com/apache/kyuubi/pull/4795

My guess is that your requirement is to have an ingress as a proxy entry for all spark app ui, with each spark app configured with a subpath on ingress.
But for now we can't assume the spark service name, https://github.com/apache/spark/blob/36299f1b2bff8c892624bc5c0e4c00ea3f261532/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverServiceFeatureStep.scala#L42-L52.


Migration Refresh issue

Executing php artisan migrate:refresh causes following issue:
Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 1828 Cannot drop column 'plan_id': needed in a foreign key constraint 'charges_plan_id_foreign' (SQL: alter table chargesdropplan_id)

I have the bug fix for this. Please allow me access so that I can submit a pull request. @ohmybrew

Hi! Please open a pull request with the code change and I can merge it in.

Doing it right now.

I see that the travis throwing an error:
SQLite doesn't support dropping foreign keys (you would need to re-create the table).
Do you want me to look into that?

@ohmybrew Hey Tyler, pull request should be passing the tests now. Please let me know if you wanted me to change anything else.
Thanks
Daljeet


Compiler errors in version 1.18

I just upgraded my project to the latest version (1.18) of NewtonVR in the asset store (including an update to Unity 5.4.3f1) and got two compiler errors:
Assets/NewtonVR/NVRDrawer.cs(19,30): error CS0115: `NewtonVR.NVRDrawer.OnNewPosesApplied()' is marked as an override but no suitable method found to override
Assets/NewtonVR/NVRDrawer.cs(55,33): error CS0115: `NewtonVR.NVRDrawer.DropIfTooFar()' is marked as an override but no suitable method found to override
Please advice how to solve this.
Thank you.

Make sure to delete your newton directory when upgrading. This shouldn't be an issue in 1.91

To further specify - I don't believe NVRDrawer exists anymore. It wasn't used for a while, I just got around to deleting it recently.


Add Concept2Gene mapping information per concept

Currently, we only get the total Concept2Gene mapping %, but this isn't very informative. We should have a breakdown per concept.
I've already done this, just optimising and adding additional functionality.

Merged. Need to update showNetworkStats.js to either use less Nesting or use a JS table library instead, at some point.


Update mongodb-driver-core to 3.10.0

Updates org.mongodb:mongodb-driver-core from 3.9.1 to 3.10.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention @scala-steward in the comments below.
Have a nice day!

superseded by https://github.com/sphereio/sphere-scala-libs/pull/70


Unexpected connection close

Hello. First of all thank you for your work.
We faced a problem that happens when beanstalk close connection after daemon reboot for example. When connection is closed reserve promise does not received any answer and stuck.

I guess this is the problem fixed in https://github.com/amphp/beanstalk/pull/30?

Yes it is.

Can you create branch "0.2.x", please? I want to add this update to "0.2.x" version too.

I've created https://github.com/amphp/beanstalk/tree/0.2.x from https://github.com/amphp/beanstalk/tree/v0.2.5.

Nice! Please review #32


Pictures jump  jump

The space occupied by the thumbnail does not seem to always equal the size of the large image. I always find that the moment when the large image replaces the thumbnail, there is a sense of jumping, which occurs at the bottom of the big picture:

(I recorded a gif, the file is larger)
This situation is even more pronounced when the two figures are close together:

What is the cause of this, how can I solve it? thanks!
Related page http://t.cn/AipxH9T9

As mentioned in the README: both images must have the same aspect ratio.
If your main image is 800x600, your preview thumbnail could be 20x15, 40x30, 80x60 or any similar multiple.
This is important! It's currently the only way to determine the image dimensions (until we get an aspect-ratio HTML or CSS property). You could size the image using width and height attributes but that won't work if you have a responsive layout.
The layout will jump if you use images with different aspect ratios.


OADP-3821: Update restore order for cluster resources of ACM

/hold until open question about restore priority is resolved

/retest

/unhold

/cherry-pick oadp-1.3

/lgtm

/retest

/retest


Configuration Assistance

Please describe the purpose of this pull request.
This PR provides the options which will be required to be set configuration

Issue #456

Potential related bug reported on discord but I haven't had a chance to debug myself yet:

https://discord.com/channels/1161736243340640419/1162177332350558339/1178076181136932884

Done Changes

@PrashantDixit0 can you add a section to the top-level post with instructions on:

How to reproduce the error that this PR patches (eg starting with git checkout main and pip install -e ., do memgpt configure with ...)
A statement / copy-paste block / screenshot showing what the new expected output / result is

I'll use (1) and (2) to check the PR then merge in.

Here I have loaded documentation and it is working now

I'll work on it and raise another PR for resolving it


Make ROCm Install more explicit in README

Fix Docker link
Make command line style consistent with original TensorFlow README (use $ to mark prompt)
Make sections to make the ROCm installation instructions more visible

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?


Running the program doesn't work.

Describe the bug
When clicking on run it instantly stops and gives me this message after one second it goes back to normal.

Expected behavior
Should usually start and show me logs after reloading
System information:
Using RDP with Windows Server 2022
Additional context
Have account and connection added.
Also this is what it says in console:
"
The system cannot find the path specified.
The system cannot find the path specified.
'rm' is not recognized as an internal or external command,
operable program or batch file.
'tail' is not recognized as an internal or external command,
operable program or batch file.
'rm' is not recognized as an internal or external command,
operable program or batch file.
'tail' is not recognized as an internal or external command,
operable program or batch file."

I'm having the same problem here

@lSyrexl @Wandrius You should deploy tgcf in a Linux environment. or if you are on windows, please use WSL. watch the videos given in README


For query strings other than GET methods in the Admin REST API

Hi.
First off, let me tell you something. I use a translation app because I'm not very good at English. sorry.
I am currently using laravel-shopify.
Thanks!
Now, about this issue, the Admin REST API has an API that requires a query string in addition to the GET method.
https://shopify.dev/docs/admin-api/rest/reference/customers/customer-address#set-2020-07
https://shopify.dev/docs/admin-api/rest/reference/online-store/asset#destroy-2020-07
When using the above API, we expect many people to write the following.
$query = ['asset[key]' => 'snippets/sample.liquid'];
$res = $api->rest('DELETE', "/admin/api/2020-07/themes/1234567/assets.json", $query);

// or

$res = $api->rest('DELETE', "/admin/api/2020-07/themes/1234567/assets.json?" . http_build_query($query));

However, if you write as above, the response will be an error.
var_export($response['errors']); // true
var_export($response['body']); // Not Found

The reason for the error response is that the request method does not correspond to a query string.
// src/Osiset/BasicShopifyAPI/Clients/Rest.php
public function request(string $type, string $path, array $params = null, array $headers = [], bool $sync = true)
{
    // Build URI
    $uri = $this->getBaseUri()->withPath($path);

    // Build the request parameters for Guzzle
    $guzzleParams = [];
    if ($params !== null) {
        $guzzleParams[strtoupper($type) === 'GET' ? 'query' : 'json'] = $params; // <- This is the reason.
    }
...
}

This is how I am currently dealing with it.
$query = ['query' => ['asset[key]' => 'snippets/sample.liquid']];
$res = $api->rest('DELETE', "/admin/api/2020-07/themes/1234567/assets.json", $query);

// and

$query = ['json' => ['asset' => ['key' => 'snippets/sample.liquid', 'value' => 'test']]];
$res = $api->rest('PUT', "/admin/api/2020-07/themes/1234567/assets.json", $query);

// src/Osiset/BasicShopifyAPI/Clients/Rest.php
public function request(string $type, string $path, array $params = null, array $headers = [], bool $sync = true)
{
    // Build URI
    $uri = $this->getBaseUri()->withPath($path);

    // Build the request parameters for Guzzle
    // $guzzleParams = [];
    // if ($params !== null) {
    //     $guzzleParams[strtoupper($type) === 'GET' ? 'query' : 'json'] = $params;
    // }
    $guzzleParams = $params ?? [];
...
}

Context
Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

Package Version: v9.1.2
laravel-shopify Package Version: v12.1.0
Laravel Version: v6.18.34
PHP Version: v7.3.5
Using a toolset (Docker, Laradock, Vagrant, etc.): Vagrant

Let me know if you know of any other good ways to do this. Thank you for your help.

I'm using osiset/laravel-shopify.
I've faced the same issue and thank god it has been fixed just two days ago.
For anyone who has the same problem just use:
composer update osiset/basic-shopify-api


Using LazyRequestParams

Am I correct in my understanding that the LazyRequestParams are additional parameters sent in the Lazy Loading requests?
Given the following grid setup:
@addTagHelper *, Blazor.FlexGrid
@using Blazor.FlexGrid.DataAdapters
@using Blazor.FlexGrid.DataSet
@using Blazor.FlexGrid.DataSet.Options
@using Blazor.FlexGrid.Components.Configuration
@using Blazor.FlexGrid.Components
@using EmployeeDirectory.Shared
@page "/"
@inject HttpClient Http
@inject LazyLoadedTableDataAdapter<Employee> employeeAdapter

    <GridView DataAdapter="@employeeAdapter" LazyLoadingOptions="@(new LazyLoadingOptions() { DataUri = "/api/Employee/GetEmployeeRange" })" PageSize="10"></GridView>

@functions
{
    protected override void OnInit()
    {
        base.OnInit();
    }
}

How would I implement the LazyRequestParams? The employeeAdapter doesn't exist at the point on OnInit(). I'm still kind of new to Blazor, so I'm not sure what the entire lifecycle is of the various pieces.
What I'm trying to accomplish is to add a free-text search that will then be used to filter the results before populating the grid, So I'm thinking of something along the lines of:
        LazyRequestParams lrp = new LazyRequestParams();
        lrp.AddParam("Search", "SearchString");
        employeeAdapter.AddRequestParamsAction(lrp);

I'm just not sure at what point I should be doing this.
Thanks.

Thought I might have had it doing this:
@addTagHelper *, Blazor.FlexGrid
@using Blazor.FlexGrid.DataAdapters
@using Blazor.FlexGrid.DataSet
@using Blazor.FlexGrid.DataSet.Options
@using Blazor.FlexGrid.Components.Configuration
@using Blazor.FlexGrid.Components
@using EmployeeDirectory.Shared
@page "/"
@inject HttpClient Http

    <GridView DataAdapter="@employeeAdapter" LazyLoadingOptions="@lazyLoadingOptions" PageSize="10"></GridView>

@functions
{
    [Inject]
    LazyLoadedTableDataAdapter<Employee> employeeAdapter { get; set; }
    LazyLoadingOptions lazyLoadingOptions { get; set; }

    protected override void OnInit()
    {
        lazyLoadingOptions = new LazyLoadingOptions()  { DataUri = "/api/Employee/GetEmployeeRange" };
        lazyLoadingOptions.RequestParams.AddParam("Search", "SearchString");
        base.OnInit();
    }
}

But I'm not seeing the parameter in the request.
What am I missing?

Hello
you are correct, but I have little bug in GridViewInternal class so I have to fix it.
Originally LazyRequestParams are designed for internal purposes (Master/Detail filtration) and preparation for filtering feature which I am now focusing on.

What is the change that needs to be made so that I can make it in my local copy.
Thanks.

Here is the commit with fix
https://github.com/Mewriick/Blazor.FlexGrid/commit/201c52772f77bc1bb6ce353f5dae303a9af476ea

Thank you! That got it!
Very nice grid, by the way. I love the design. Still trying to more fully wrap my head around it, but it's very clean and very nicely laid out from what I can tell so far.
Do you have any plans to add editing?

Thanks I am glad that you like the grid. Yes of course i plan inline editing in grid, but now I am focusing on filtering part. I will try to add editing as soon as possible.

Very cool. I will try to get more acquainted with the architecture so that maybe I can pitch in and assist you.


suggest more variants of Inf/NaN

I suggest adding the following:
Whether "Infinity" is the stringification, and whether Infinity is the the numification,
depends on the C library.
INF
Win32 (Visual C, really) variants of the infinity and nan
(see http://blogs.msdn.com/b/oldnewthing/archive/2013/02/21/10395734.aspx)
Yes, the # really is part of the stringification.
The 1#IND is a type of quiet nan.
1#INF
-1#IND
1#QNAN
1#SNAN
1#IND

Added in https://github.com/minimaxir/big-list-of-naughty-strings/commit/99cb86c7f877104b8dec6387c7fe16a3f8b93eea


About the function that transforms your 6D Representation to Rotation Matrix

Hi again! May I ask you something more about your project code?
The function you are using to Transform your 6D output vector from the Last Linear layer to a Rotation Matrix that belongs in S0(3) assumes that the 6D output vector is consisted by 2 3D vectors that are orthogonal and doesn't use the Gramm-Schmidt-like process you are describing in your paper for the second column. Is it a bug or am I missing something and you have a reason to assume this orthogonality?
Thanks in advance :)

Hi, that function uses a different orthogonalization formula, but can still provide similar results as the formula in the paper. And it doesn't assume orthogonality in the two 3D vectors.

Yeah, you are right about the orthogonality, my bad.
Indeed, I tried them both out and the results are similar in my application as well.
I'm closing the issue, thanks:)

The equation in the paper and Yi's code are actually mathematically equivalent: they are two different ways of constructing the same orthogonal basis. We established this using properties of dot and cross products and also checked it numerically.

I had a similar question actually, when I tried the version in the code vs the code in the paper, the numbers are the same but one vector is negated, which turns the determinant negative (see below). Am I missing something here?
`
a1 = np.random.randn((3))

a2 = np.random.randn((3))
b1 = a1 / np.linalg.norm(a1)
b2 = a2 - np.dot(a2, b1) * b1
b2 = b2 / np.linalg.norm(b2)
b3 = np.cross(b1, b2)
R1 = np.stack((b1,b2,b3), axis=1)
det = np.linalg.det(R1)
print('R1', R1)
print('First det', det)
b3 = np.cross(b1, a2)
b3 = b3 / np.linalg.norm(b3)
b2 = np.cross(b1, b3)
R2 = np.stack((b1,b2,b3), axis=1)
det = np.linalg.det(R2)
print('R2', R2)
print('Second det', det)

`

I had a similar question actually, when I tried the version in the code vs the code in the paper, the numbers are the same but one vector is negated, which turns the determinant negative (see below). Am I missing something here?
`
a1 = np.random.randn((3))

a2 = np.random.randn((3))
b1 = a1 / np.linalg.norm(a1)
b2 = a2 - np.dot(a2, b1) * b1
b2 = b2 / np.linalg.norm(b2)
b3 = np.cross(b1, b2)
R1 = np.stack((b1,b2,b3), axis=1)
det = np.linalg.det(R1)
print('R1', R1)
print('First det', det)
b3 = np.cross(b1, a2)
b3 = b3 / np.linalg.norm(b3)
b2 = np.cross(b1, b3)
R2 = np.stack((b1,b2,b3), axis=1)
det = np.linalg.det(R2)
print('R2', R2)
print('Second det', det)

`

I think the outer product in 'Second' is

b2 = np.cross(b3, b1)
corresponding to the project code
y = cross_product(z,x)


Add aci provider to community packages list

It's more than a valid point. :-) I have added a section describing what Cisco ACI is and links.

Is there anything else I need to do to get it published? Do I need to publish a new release?

Ah, I think I see - the docs at v0.0.4 don't include your changes? To update your docs you should tag a new release and we'll pick that up.


JS file and packages suggestions do not show.

Pretty straight forward. It used to work before the update, now i dont get suggestions for either the NPM packages or my local files.

Indeed, modules suggestions are not working either for local modules or node_modules, at least for JS projects.

This sounds like a duplicate of #23962. You should still be able to manually trigger suggestions. To restore the previous behavior, see this comment for a possible workaround


Cannot read properties of undefined (reading '_c') while overriding the Details field

Hi,
I'm trying to overrider the Details Field but I get an error.
Here is what I did:

I copy-pasted the original NovaMultiselectDetailFieldValue.vue from the composer vendor. I didn't change anything for now.
I imported the component in my app.js. There was already a require('./bootstrap'); which came with Nova, so I added it after.
I ran npm install && npm run dev which compiled successfully, after having installed sass and sass-loader,
I registered the Javascript file in my  NovaServiceProvider.php.
I ran php artisan nova:publish and reloaded the page.
The component doesn't load and display this error in the console TypeError: Cannot read properties of undefined (reading '_c').

// app.js
require('./bootstrap');

import NovaMultiselectDetailFieldValue from './components/NovaMultiselectDetailFieldValue';

Nova.booting((Vue, router, store) => {
    Vue.component('nova-multiselect-detail-field-value', NovaMultiselectDetailFieldValue);
});

// NovaServiceProvider.php
public function boot()
{
    parent::boot();
    Nova::script('app', public_path('js/app.js'));
}

My Laravel starter-kit used an outdated version of Laravel Mix which compilted the component to Vue 2 syntax

please let me know where you placed NovaMultiselectDetailFieldValue.vue file. I placed it in project_name/resources/js/Components, but it not working

@DuyenNguyen66 it's written in the code block ./components/NovaMultiselectDetailFieldValue. You can put it anywhere as long as your import is correct for Webpack I suppose.


improved CONTRIBUTING.MD, README.MD, HACKTOBERFEST.MD

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Improved docs.

Why was this change needed? (You can also link to an open issue here)

There were many typos, styling and wording inconsistencies in the docs. I tried to fix the most that I could find. Open to edits.

@holopin-bot @byt3h3ad


fix-related-products

This PR also looks good, but it would be nice if you could change productDescription to description at the same time
(see my comment on the template)


Add Firefox 69 support for unhandledrejection

https://tests.caniuse.com/?feat=unhandledrejection passing on Firefox nightly (version 69.0a1 (2019-06-23)).
The bugzilla ticket says RESOLVED FIXED in Firefox 68, but it doesn't yet work in the beta version of 68.

Thanks!


Inconsistency of fields values when they are irrelevant

Noticed this detail on the wiki:

It is inconsistent that one is using 0 and the other is using -1 when not relevant. Can we make all such fields uses -1 when irrelevant?

yea

Closing as this was just an error in the old migration wiki. demolished_timeout was always -1 when a player isn't demolished. The new migration wiki already has the correction information:

is_demolished -> demolished_timeout - -1 if the player is not demolished, otherwise the time remaining until the player respawns


add DeleteParams to Api::delete_collection + use body params for it

This is to match client-go's delete and methods: https://github.com/kubernetes/client-go/blob/e7a1d9ada0d5ef8eee6e55f0a84ad6e3d08441f6/kubernetes/typed/apps/v1/deployment.go#L160-L183
DeleteParams should always go in body params, and Api::delete_collection needs both ListParams and DeleteParams.

I am tempted to pull everything related to apimachinery out of resource.rs so we know what part of kube is copying apimachinery/types.go.

Hm, still some issues with this. Giving a bit of a go to fix it.

Ok. Serialization seems to work properly now.

In addition to the original fix, also refactored all the params into a single file and referencing that this file is based entirely on apimachinery/types.go.
By doing this also found a couple of missing things:

ListParams::include_uninitialized deprecated since 1.14 so have removed it
We don't have a CreateOptional equivalent and it could take a field_manager in the Api::create, so added it.

There's also a crazy serializer quirk in dry_run when we use it as body parameters. It's documented therein, and there's a working --lib test + an integration test via job_api.rs


Make auto reloader work on Mac

The existing version relies on the /proc filesystem so it doesn't work on Mac. This adds a version that uses pkill.

Nice, thank you!


upload OTA rgb bulb firmeware to radio modul from a remote control

Hello,
I have taken the radio module from a Tradfri remote control. Is it possible to play the functions of the RGB bulb on this wireless module by means of the OTA firmware? Or someone has a full dump of the firmware of the RGB bulb?

I don't know what you consider 'full' dump of the firmware, but in the firmware dir there are some dumps/update files.

ah right, well a few levels up is a JTAG dump of the full firmware, that bas was able to read and restore. so there's that.

obtaining all firmwares from the devices is a different challange of course :)

I was able to dump a firmware, overwrite it with something else and load it again using the steps mentioned here. Like @oliv3r, you need to have a dump of the full firmware first ;-)

I have now put up for testing the firmware led1650r5-1.2.214.bin. The connected LED behaves as expected, but I can not find the chip through the gateway.
In the folder of the firmware I also found the file led1650r5-1.2.214.strings. Can it be that important configurations are included here? How can I first save the configurations of my chip and how can I then upload the led1650r5-1.2.214.strings to the chip?

The strings file is just a dump of all the strings that can be found (using strings <filename.bin>). It's of no use, apart from hacking the firmware.
You probably need the contents of the SPI chip as well. However, I never attempted to dump it.

I am also interested in a full dump of the flash and SPI-chip-dump. Same idea here: Turning the remote into a RGBW ZigBee Controller. I found an image of the PCB of the RGBW bulp: https://i.ibb.co/V3Gb5qT/3xtUrUX.png seems to use another kind of Zigbee-Module-Board. Maybe same CPU.

Update: I finally got the dimmable white bulp 1000lumen software flashed on the remote. For pairing i used this instruction:

I then reset the bulb by turning it on and off 6 times. Once that was done I initiated a search for a new light from the Hue app without success. I then initiated another search via the Hue app, and while that search was running, I turned the light off and then back on again, and the Hue app found it.

I also did some flash dumps and it seems that the app just uses the simulated eeprom for persisting data. Hopefully i made someone happy out there - you can turn a 5€ remote into a hue compatible controller.

Update: I finally got the dimmable white bulp 1000lumen software flashed on the remote. For pairing i used this instruction:

I then reset the bulb by turning it on and off 6 times. Once that was done I initiated a search for a new light from the Hue app without success. I then initiated another search via the Hue app, and while that search was running, I turned the light off and then back on again, and the Hue app found it.

I also did some flash dumps and it seems that the app just uses the simulated eeprom for persisting data. Hopefully i made someone happy out there - you can turn a 5€ remote into a hue compatible controller.

I'm trying the opposite, can you elaborate on how you succeeded in this? I've tried via STLink-v2 and openocd, but it gives me an "Unknown MCU Family"

You might find the infomation in the guide usefull, even if it in Danish:
https://drive.google.com/drive/folders/1SMhPC1echgKWlc-W4N89JKZ2KiJ_H_ZD
It tells how to use JTAG to dump or flash the ZigBee module.

Tak CaleCatDK, det var en kæmpe hjælp! Det er på dit pcb design jeg roder :)
Danish was not an issue ;)
And I managed to apply the changes to a normal pc with stlink-v2, and now I have a working remote with the zigbee module from a bulb....

And I managed to apply the changes to a normal pc with stlink-v2, and now I have a working remote with the zigbee module from a bulb....
Can you please describe how you got ST-Link v2 working. I just got one now, and I want to make a guide for windows users.

Normally for bulbs share the same firmware but different model / setting its stored in the userdata that not being erased with normal internal flash erase.
From GDB:
(gdb) info mem
Using memory regions provided by the target.
Num Enb Low Addr   High Addr  Attrs
0   y   0x00000000 0x00040000 flash blocksize 0x800 nocache
1   y   0x0fe00000 0x0fe00800 flash blocksize 0x800 nocache
2   y   0x0fe10000 0x0fe12800 flash blocksize 0x800 nocache
3   y   0x20000000 0x20008000 rw nocache
Reg 0 = Flash (256K)
Reg 1 = Userdata (2K)
Reg 2 = Lockbits (10K)
Reg 3 = Ram (32K)
More info with SWD flashing: Flashing the ICC-1 Module

Hi there,
did someone has a complete dump of the fyrtur blind? 😬

I think byes of them is not so "hacky" and they is little more expensive then the cheapest bulb.
You can trying "extracting" the firmware from the OTA file the is rapped with one signing and only need finding the start of the code part and cutting the heeding and ending signing part away then all the code is not encrypted.
I think (without knowing) that the user data is only changing the name of the device but i cant being sure (with the On/Off / Open/Close button its changing the device type and how the device is working with the same firmware).
I have seen scripts that is extracting the metadata from one OTA file and then can extracting the APP (the main flash part) from it but i cant finding it from the moment.

I have a JAZZDANS,but i don't know how to dump of the firmware, it's can't connect to BLINK with SWD.

If its the classic IKEA ICC-A-1 Zigbee module is shall working OK with one no original J-Link  probe like or Black Magic Probe or other SWD probes.
Then JAZZDANS is not sold in EU i cant saying if IKEA have updating the Zigbee module to the new one (Silabs original MGM210LA22JNF2) and if its you need one real J-Link for reading and writing the flash in the chip then its have higher security that is not working with other SWD probes.
Can you posting one photo of the PCB with the Zigbe module ?

https://drive.google.com/file/d/1KmIRXP6XX3yp3b8BulPCjg8f_wANTR3K/view?usp=drivesdk

Its one ICC-A-1 module (normal "old" one) so shall being easy dumping and flashing !!
06 | PF0 | SWCLK
07 | PF1 | SWDIO
11 | VDD |
12 | GND |
shall being enough.
Pin out from FCC https://github.com/MattWestb/IKEA-TRADFRI-ICC-A-1-Module/tree/master/teardowns/ICC-A-1
Always dumping the man flash (0) and user data (1) !!


Add night/multiple themes for UITabBarItem.

Add "DKAttribute.h", "DKAttribute.h", "UITabBarItem+Night.h" and "UITabBarItem+Night.m" for implementing UITabBarItem's night/multiple themes.
Invoke "dk_setTitleAttributePicker:forState:" by "viewController.tabBarItem" property.

最好改成 DKDictionaryPicker

是的,可以改成 DKDictionaryPicker, 后面我会把切换图片的扩展提交上去!


App crashes when switching provinces with bookmarks

Currently if a user saves a bookmark in one province, then switches to a different province, when they land on the Bookmarks page, it crashes. A design is needed for what is supposed to happen here
Acceptance Criteria

[x] The topics visible in the app are the topics belonging to the currently selected region. Switching region in the app causes the set of visible topics to update to the set appropriate for the newly selected region
[x]  A user who has one or more topics and/or services bookmarked in one region, switches region, they will see no bookmarks
[x]  A user who has one or more topics and/or services bookmarked in one region, switches region, and then switches back to the first region, they will see the bookmarks they had

Steps for QA:

All acceptance criteria has been met!


Google assistant patch

This change makes it possible to ask the google assistant to set the temperature for the toon.
issue: #31
tested in Home Assistant 0.83.3

This does not solve the problem in all circumstances. There are still conflicts because the states of the toon does not match the states for the google home app.
I am working on an fix just give it some time.
This PR does not need to be reverted because it does not break anything.


[FEATURE] [DISCUSSION] Community-maintained packages

Is your feature request related to a problem? If so, please describe.
Currently Nest.land lacks major package support. It is still in development, so that's perfectly fine, but in order to gain users, the project just needs to have the essential/most popular packages for Deno
Describe the solution you'd like
This is the point when Community-maintained packages come in. All Nest.land users will be able to upload packages they don't own, but want to see on Nest.land.
A field would be added to the config file, named communityPackage, defaulting to false. If a user wants to publish a package that they don't hold the copyright/license to, they will need to set this to true, and link the original source/location of the module in an another field called copyrightSource.
Once published, the package would be available from an irregular url, like this: https://x.nest.land/<EMAIL_ADDRESS>or https://x.nest.land/community<EMAIL_ADDRESS>(comment suggestions below, the point is to distinguish the package from regular packages in the url.)
The website would also indicate if a package is community-maintained in the package's information panel/card and also in an element at the top of the package preview, with links to the original source/location of the module.
A documentation section would be also created where users could read more about community-maintained packages (and original copyright holders would be granted with a link where they can request a removal).
Development branch for this issue is available here.

Screenshots:

That's a great idea.
We just need to think about how to limit abuse and especially prevent the publication of false versions with potentially viruses and malware.

For this, the best solution would probably be, that these type of packages would require manual review after the user requested a publish.

Perhaps there would be a way to scan the corresponding repository for this package and compare the files of a given branch? This way, if the files don't exactly match what is in source control, we know that they have tampered with the package.

But what if they publish an older version?

We could compare by release version?

Hmm...
We'll definitely have to write a clear documentation for this feature

@zorbyte I'd love to hear your opinion on this. The more that I think about it, the more appealing it seems. We'll just have to figure out an innovative and secure way to implement it.

What if the original owner wishes to upload their package? How can we verify beyond doubt that the user claims to be who they say they are?

That is partially why we have the repository field. It will be mandatory for community packages and will contain the original repo.

Closed due to ethical, legal and malware concerns.


[OPE-453] KTX package setup

https://magnopus.atlassian.net/browse/OPE-453
Initial publish of the thirdparty KTX package having implemented the changes required when publishing third party packages:
https://magnopus.atlassian.net/wiki/spaces/EKB/pages/edit/197198118?draftId=197198135&draftShareId=e5f321e0-e67e-4ff1-94d4-08dae1cd81d9&

@mag-danielwynnepowell Can you elaborate what this is supposed to bring to the table?
I cannot access any of those atlassian links. All I see is someone trying to re-brand my work as their own. Not cool!

@mag-danielwynnepowell Can you elaborate what this is supposed to bring to the table?
I cannot access any of those atlassian links. All I see is someone trying to re-brand my work as their own. Not cool!

Apologies, this was unintentional, please disregard the PR.


fix: panic when use Scheduler to execute plan

Which issue does this PR close?

Closes #4096 .
Rationale for this change

The query output partition number may not equal current pipeline's output partition number, so send error to the partition of the query output will cause panic.
What changes are included in this PR?

Because the query output has at least one partition，so we send error that thrown by non-output pipelines to the first partition of the query output.
Are there any user-facing changes?

Until the fix for https://github.com/apache/arrow-datafusion/issues/4100 is merged, clippy will likely fail on this PR as well

I took the liberty of fixing the clippy lints and making a minor change to the docs so that we can get this in quickly for you, thanks again :+1:

I took the liberty of fixing the clippy lints and making a minor change to the docs so that we can get this in quickly for you, thanks again 👍

Thank you, sorry, I didn't see your reply, I just resubmitted

No worries at all :+1:
FWIW it can help reviewers if you avoid rebasing reviewed PRs as reviewers can then easily see what has changed, everything then gets squashed on merge. It makes no difference on a PR this size, but thought I would mention it for future contributions :smile:

No worries at all 👍
FWIW it can help reviewers if you avoid rebasing reviewed PRs as reviewers can then easily see what has changed, everything then gets squashed on merge. It makes no difference on a PR this size, but thought I would mention it for future contributions 😄

Thanks for your pointing👍


Reuse the same handle

I was wondering.. Why not reusing the curl handle? As far as i know making many (synchronous) calls to the same server would use the same connection making the entire task faster.
More available here:
http://stackoverflow.com/questions/3787002/reusing-the-same-curl-handle-big-performance-increase

Here's an example for how to reuse using Curl instead of MultiCurl.
$curl = new Curl();
$curl->get('https://www.example.com/');
var_dump($curl->response);
$curl->get('https://www.example.com/');
var_dump($curl->response);


Typo fix

 You should sign our Contributor License Agreement in order to get your pull request merged.

Great catch, @bureken!
@arunk-s discovered the same typo about a week ago in PR #1520 which was merged half an hour ago.   (Sorry for my tardiness, I had been away.)
Nonetheless, thank you very much for your contribution!  Keep them coming!  :wink:
Cheers,
Anthony


Error for last steps in openlane flow

Description
Fail at the final steps.
Expected Behavior
Not to fail
Environment report
Kernel: Linux v5.15.0-58-generic
Distribution: ubuntu 22.04
Python: v3.10.6 (OK)
Container Engine: docker v23.0.0 (OK)
OpenLane Git Version: c60657c6637349cc7b0b64b36dcd3c0fb7962a10
pip: INSTALLED
python-venv: INSTALLED
---
PDK Version Verification Status: OK
---
Git Log (Last 3 Commits)

c60657c 2023-01-31T16:03:00+02:00 [BOT] Update PDK (#1644) - Openlane Bot -  (grafted, HEAD -> master, tag: 2023.02.01, origin/master, origin/HEAD)
---
Git Remotes

origin	https://github.com/The-OpenROAD-Project/OpenLane.git (fetch)
origin	https://github.com/The-OpenROAD-Project/OpenLane.git (push)

Reproduction material
I do not have a reproducible package.
But I can attache some log files.
openlane_logs.zip
Relevant log output
[ERROR]: during executing: "python3 /openlane/scripts/generate_reports.py -d /openlane/designs/vsdmemsoc --design_name vsdmemsoc --tag RUN_2023.02.07_15.41.57 --output_file /openlane/designs/vsdmemsoc/runs/RUN_2023.02.07_15.41.57/reports/metrics.csv --man_report /openlane/designs/vsdmemsoc/runs/RUN_2023.02.07_15.41.57/reports/manufacturability.rpt --run_path /openlane/designs/vsdmemsoc/runs/RUN_2023.02.07_15.41.57"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/openlane/scripts/generate_reports.py", line 50, in cli
    report = Report(design, tag, design_name, params, run_path).get_report()
  File "/openlane/scripts/report/report.py", line 775, in get_report
    *self.extract_all_values(),
  File "/openlane/scripts/report/report.py", line 514, in extract_all_values
    for line in klayout_violations.split("\n"):
AttributeError: 'int' object has no attribute 'split'

[ERROR]: during executing: "python3 /openlane/scripts/generate_reports.py -d /openlane/designs/vsdmemsoc --design_name vsdmemsoc --tag RUN_2023.02.07_15.41.57 --output_file /openlane/designs/vsdmemsoc/runs/RUN_2023.02.07_15.41.57/reports/metrics.csv --man_report /openlane/designs/vsdmemsoc/runs/RUN_2023.02.07_15.41.57/reports/manufacturability.rpt --run_path /openlane/designs/vsdmemsoc/runs/RUN_2023.02.07_15.41.57"
[ERROR]: Exit code: 1
[ERROR]: Last 10 lines:
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/openlane/scripts/generate_reports.py", line 50, in cli
    report = Report(design, tag, design_name, params, run_path).get_report()
  File "/openlane/scripts/report/report.py", line 775, in get_report
    *self.extract_all_values(),
  File "/openlane/scripts/report/report.py", line 514, in extract_all_values
    for line in klayout_violations.split("\n"):
AttributeError: 'int' object has no attribute 'split'

[ERROR]: Flow failed.

@MihaiHMO
Latest commit is https://github.com/The-OpenROAD-Project/OpenLane/releases/tag/2023.02.08.
Can you pull the latest commit and try again and confirm is same error repeating?

how I do this? I need to reinstall ?
additional... one day ago it work - here you have a log from that run
openlane.log
ed.

Run below steps to install latest commits: https://openlane.readthedocs.io/en/latest/getting_started/updating.html#updating-openlane
cd OpenLane
git checkout master
git pull
make

Run your design again and check the status

From your openlane.log
[ERROR]: There are hold violations in the design at the typical corner. Please refer to 'designs/vsdmemsoc/runs/RUN_FULL_10/reports/signoff/27-rcx_sta.min.rpt'.

Please fix the hold violation issue to complete the flow.

x the hold violation issue to complete the flow.
openlane_logs230208_2.zip

done... same errors

In that case we need your design folder(vsdmemsoc) to reproduce the issue. Attach only source files/config.json

@kareefardi fyi

Looking at the logs, there is a small bug in report.py which I think is simple enough to fix. I believe this was triggered by enabling RUN_KLAYOUT_DRC. Since klayout drc is not working at the moment, I suggest disabling it anyway

yes this is the issue. I got the info that magic does not work with SRAM macro and was recomended to do DRC in klayout. so I tested this . we can close the ticket. thank you.


Use aka.ms links

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/MicrosoftDocs/sandbox, working directory: W:\kysu-s, target branch: master, target branch commit: c5c1222186864a399dbf8bbde50ea280673c9a80, source branch: brpeek-akams, source branch commit: .

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


Added TortoiseGit

https://github.com/lukesampson/scoop-extras/issues/1435

You are missing the main feature, why is everyone installing Tortoise applications. Explorer addons need to be setupped manually using registry manipulation. Something like this

Hi @Ash258, thanks for commenting. I didn't realize you were already working on. Is the main feature the shell extensions? I was trying to practice my scoop packaging skills for fun so I didn't understand how essential the file associations are.
I'm not sure I fully understand the TortoiseSVN registry scripts. I can see what the reg is supposed to do but I don't understand how, it's uncommented it. Also when I run the reg after scoop install tortoisesvn, I do not have additional options in my context menu...
Is there any reason a .reg file was chosen instead of a powershell command to associate file types with binaries? and any reason for it to be external to the json?

Tortoise applications are used because they provide contex menus for folders, files, which are under specific source control, so you do not have to use command line. Without icon overlays you have only new command line tool for git.
All needed registry keys could be found here, but I don't have time and sanity to dump them into adequate reg file

could scoop be modified to allow for file associations to be configured directly

In this case definitely no. There are lots of keys, which need to be set correctly.
On general side of registering. Manifests should not change something like default associations on installing. Somebody don't want to change it. You can't just force user to change defaults and make him set it back (and over and over while updating). If you want some custom associations, make custom bucket / remote gist for it.
What would be acceptable if scoop could register some applications, into windows settings, so user could easily set it (lukesampson/scoop#2651)

Thanks for the screenshot... I see what you mean regarding the associations for this application. As for the tortoisesvn I can find the registry files and run them but when I run them it doesn't do what it intends to do for me on Windows 10 which is to add the associations. It seems broken for me.
That's why I was thinking maybe we can run a powershell script that would add the file associations similar to the link above. There's no reason it has to be a .reg file right?
$fileType = (cmd /c "assoc $extension")
$fileType = $fileType.Split("=")[-1]
cmd /c "ftype $fileType=""$OpenAppPath"" ""%1"""

I can see your doubts about adding the file association in the manifest itself. I imagine that feature could be optional so I added my thoughts to this thread.

It's reg file, because:

Everyone can run it by double clicking, without some terminal opening, copying commands.
It's easily editable using powershell ((Get-Content reg_template) -replace '%%someSpecificValueToReplace', "RealValueOfPathToTgit" | Set-Content 'full_easily_runnable.reg')

I haven't installed TortoiseSVN, because i dont want to mess my registry with junk values just for testing, but it's possible it's not working. It's pretty old file, maybe they changed something.

@Ash258 okay, I'll leave it to you then. You've made more progress than me on this anyway. 😄

Feel free to finish. I am not going to finish it in near future. I just made investigation and was pretty upset about their implemntation and maybe they finally release some portable version or some better way of doing these manipulations (https://gitlab.com/tortoisegit/tortoisegit/issues/726, https://stackoverflow.com/questions/53708161/how-to-manually-register-context-menus-using-command-line).
Everything excepts that registry files is ready. Feel free to reuse my implementation and write that registry templates.
You could just combine svn and git


How to open all child programatically

i've added new features which also included your request and Im going to release for new version few days.