The postFlushjob queue will be stuck if the job throws an error which executed in flushPostFlushCbs function

Version
3.1.0-beta.3
Reproduction link
https://codepen.io/cqiufan/pen/jOBqBqq?editors=1010
Steps to reproduce
just view page results.
What is expected?
The page displays the following results:
sync job execution status: executed
post job execution status: executed
What is actually happening?
The page displays the following results:
sync job execution status: executed
post job execution status: not execute

The above reproduction result occurs only in the development environment. However, because the runtime-core package exposes queuePostFlushCb function to users, the postFlushjob queue may also get stuck in the production environment.
In runtime-core/src/scheduler.js file ,I found that the queueJob function call jobs with try finally statement to ensure that the state can be cleared even if this jobs throw an error. can we perform the same operation in flushPostFlushCbs function and flushPreFlushCbs function?

You should use the app.config.errorHandler to register an error handling function for the first App:
try {
  const app = createApp({
    setup() {
      watchEffect(() => {
        throw ""
      }, { flush: 'post' })
    },
    render() {
      return 'asdf'
    }
  })

  // here
  app.config.errorHandler = (err) => { console.log(err) }
  app.mount("#app")

} catch {}

You should use the app.config.errorHandler to register an error handling function for the first App:
try {
  const app = createApp({
    setup() {
      watchEffect(() => {
        throw ""
      }, { flush: 'post' })
    },
    render() {
      return 'asdf'
    }
  })

  // here
  app.config.errorHandler = (err) => { console.log(err) }
  app.mount("#app")

} catch {}

This solution aim to avoid throw an error. It brought more problem when I want to crash the first App's flushPostFlushCbs actually.
try {
  const app = createApp({
    setup() {
      watchEffect(() => {
        throw ""
      }, { flush: 'post' })

     // here
     watchEffect(() => {
        console.log("flushPostFlushCbs should be crashed. It shouldn't be executed")
      }, { flush: 'post' })
    },
    render() {
      return 'asdf'
    }
  })
  app.config.errorHandler = (err) => { console.log(err) }
  app.mount("#app")
} catch {}


⚠ Bofrost.com has degraded performance

In d8957ec, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 907 ms

Resolved: Bofrost.com performance has improved in 83d298c.


No embedding tab in tensorboard display

Hi I followed the instructions in README. Tensorboard comes up on the browser. When it tries to pull up the projector tab, it hits and error
"/home/me/Autoencoder-TensorBoard-t-SNE/logs/projector/./logs/projector/metadata.tsv" not found, or is not a file
Apparently, it's trying to navigate into logs/projector twice. Any one seen this before?

I had to modify projector_config.pbtxt to
embeddings {
tensor_name: "embedding:0"
metadata_path: "./metadata.tsv"
sprite {
image_path: "../../mnist_data/mnist_10k_sprite.png"
single_image_dim: 28
single_image_dim: 28
}
}
Apparently, tensorboard uses the location of this file (in logs/projector) as the root for navigation.

Same problem here.
Plus, even after i copied the metadata.tsv into the 'Autoencoder-TensorBoard-t-SNE/logs/projector/logs/projector', it doesn't run

Above way solved the directory issue, but 'Fetching sprite image...' is running forever without going further.
Try this line it did solve my problem with Fetching
image_path: "../../mnist_data/mnist_10k_sprite.png"

".../logs/projector/./logs/projector/metadata.tsv" not found, or is not a file. I have the same problem and I cannot see the peojector in tensorboard. I tried this line but I failed: image_path: "../../mnist_data/mnist_10k_sprite.png"
I do not know what is the problem and I wonder is there any other ways to solve my problem.


Make Swift work on Linux/armv7

This change completes the work started by William Dillon in order to support ARM (and Thumb) on Linux and make it work. The change also enables support for other architectures that do not support direct references between distinct sections, actually I have a working Swift on Linux/PowerPC as well in order to verify the indirection works as good as on ARM, but that requires some more changes being a big endian target. I'll eventually provide a patch for that if there's interest.

That's really cool.  It seems like this forces linux arm to use thumb.  Is that true? What would be the advantage (other than presumably smaller code size) to using thumb?  Does it integrate seamlessly with Glibc, and does the swiftc compiler complain about architecture triples?

There aren't many drawbacks to using thumb-2 on armv7, since it can automatically fall back to full-width instructions for things that don't have a 2-byte encoding.

@hpux735 Yes, in my personal experience, all Linux/armv7 userland code I saw was always compiled Thumb-2, so it was nice to have Swift generate Thumb-2 code instead of full width ARM.

Out of curiosity, why aren't the relative references across sections not supported? Does ld.so load relocate ELF sections independently?

I ask because part of the goal of the relative references is to reduce the initial dynamic linking cost by minimizing relocations. If ELF .sos end up with tons of relocations anyway that would be counterproductive.

@gribozavr Targeting armv7-unknown-linux-gnueabihf produces full-width ARM, LLVM wants thumbv7-*, at least on Linux, and not having that, Swift complains to not know anything about it. This was the only  clean solution I could come up, the other involved adding feature flags during the creation of the target machine, but that would break support for other classes of ARM processors, and honestly it didn't look right.

@jckarter Cross-section relocations work, but not in shared objects, the linker will emit R_ARM_REL32, but that kind of relocation is forbidden in shared objects.

@tienex I understand.  I was pointing at the Swift-level name of the build configuration, any reason we can't just use arm for that?

@tienex If the sections are always mapped at the same relative offset to each other, though, then there shouldn't need to be a relocation in the .so at all, should there?

@jckarter You're right, but both BFD and Gold produce the same R_ARM_REL32 relocation in the cross-section case, I tried all possible switches to no avail, the net result is that you will receive an error message from ld.so stating: : unexpected reloc type 0x03.

@tienex Interesting, I wonder if that's a bug. I don't want to hold up your progress on the port, but it'd be worth further investigation to see whether those relocations are really necessary.

I was able to get around the R_ARM_REL32 problem using -Wl,-Bsymbolic
https://github.com/hpux735/swift/commit/4b56718ff433163431b86b62323a39cac24afbf1#diff-72a829713c96d210e727174a26ea85beR161

@hpux735 Ah I thought to have tried that, good to know! I will try again. My bad, I must be more careful in my testings, if that works I will happily revert the AlwaysIndirect code.
@gribozavr Sorry for the delay, my ARM board isn't blazing fast at building Swift, I will tell you if removing "thumb" causes any issue, as far as I remember it did, but I am double checking.

@gribozavr I can remove "thumb" safely, I remember it complained but probably was related to some other changes I did while experimenting, so that can go away.

While waiting for the build and tests to complete, I should have specified in my commit log (I will amend with the changes), that the following change is needed for Thumb on Linux for swift-clang: https://github.com/apple/swift-clang/commit/b071a9aa840da6a03370bed8725a686aed2be1e5, I don't know if it has been already merged, it was the only missing bits in clang to support thumb targets on Linux, everything else was already in place but for include paths, I kindly asked Saleem Abdulrasool (@compnerd) to add the missing bits.

Thanks everyone for the feedback, I updated the change, it is much more slim and has no workarounds. Thanks especially to @hpux735, you are indeed correct, my mistake was not using the symbolic switch for shared objects produced by the build process.

Very glad I could help!  I spent many days chasing that one down.  I certainly learned a lot.  Incidentally, I also learned from your alternate method of addressing it.

Does this (compiling for thumb) add a new dependency on multilib?

@hpux735 No, it does not

@tienex We discussed this with Tim Northover, and we think that the right thing to do is have the Swift compiler canonicalize triples, armv7(l?)-unknown-linux-gnueabihf into thumbv7-unknown-linux-gnueabihf.
The directory name for the runtime libraries should be armv7-gnueabihf.
Would you mind making these changes in this PR or would you like to have this accepted (since it is an incremental improvement), and start a new one?

@gribozavr I can do either, in the case of canonicalization what's the best place to do that? I think making it armv7 is the right choice, I wrote that foreach() in the cmake file as a bandaid to solve issues running the test suite.

@tienex I think canonicalization should be done in computeTargetTriple() in lib/Driver/Driver.cpp.

@gribozavr About the idea of using armv7-gnueabihf as the ld script directory, what if we just use the triple passed to configure_sdk_unix() ? Do you see any issue with that?

@gribozavr Sorry, I meant the libraries directory, the alternative is to rename the architecture to include the environment.

@tienex There would be some duplication, because the OS is already mangled into the directory one level above, .../lib/swift/linux/armv7-unknown-linux-gnueabihf , but probably that's OK.  A triple is a more widespread concept than this ad-hoc concatenation of triple pieces.  An alternative would be to use the pattern like .../lib/swift/<triple> for platforms that don't support fat binaries.  Either is fine with me.

So finally I finished all the tests with -Bsymbolic and the results are not that good. I got 33 tests failing with -Bsymbolic vs 25 with the AlwaysIndirect, and some of them are very basic tests. The -Bsymbolic has hideous side effects, which Intel has well described at this link: https://software.intel.com/en-us/articles/performance-tools-for-software-developers-bsymbolic-can-cause-dangerous-side-effects
At the cost of breaking the ABI on ARM/ELF, it may be preferable to emit always indirect references.

I think -Bsymbolic is appropriate for Swift. The catches listed in that article are all C++-specific, and any attempt to hijack symbols in a Swift so is not going to go well given Swift's aggressive whole-module optimization.

@jckarter OK, but the descriptors are ignored, for example, in the ArrayCore case the first test result is <Tracked.something Tracked.something ... (i don't have the test at hand right now, but I distinctly remember the output was something like that), while using indirection the results are what expected. The same happens in the others which are not common to the set of failures.

Do the offsets in the conformance table look correct, if you step through swift_conformsToProtocol?

I can check that, but the addresses of symbols are different in the -Bsymbolic case (that's why runtime/SwiftRuntimeTests/MetadataTest.getExistentialMetadata fail). They're the same for libraries but not for the final executable (even if linked with -Bsymbolic). It will require a couple of hours to rebuild, I will report my findings.

-Bsymbolic shouldn't change the address of anything IIUC, it only statically resolves references to the symbol within the .so, which should be fine since we either export and link to unique symbols where we can or have the Swift runtime handle uniquing when we can't. Those failures might be due to other problems, or binutils bugs. I tried building with -Bsymbolic on x86_64 just now and didn't see any problems.

@jckarter I hope it's not a binutils bug, that would be extremely annoying. :-)

You might double-check that you backed out your IRGen and runtime changes in sync. If the runtime expects RelativeDirectPointers but IRGen's still emitting tagged indirect pointers that would cause problems.

Yes, that was done :-)

OK, just making sure.

Going back to the discussion between @jckarter and @gribozavr regarding the canonicalization of arm architectures in the triple.  I've been working in Foundation while this work has been ongoing.  Foundation's build system is independent from most of the swift compiler, and therefore canonicalization during the build process needs to be implemented separately.  What was the final determination here? Are we using thumbv7-unknown-linux-gnueabihf?  Is that triple comprehensible by the swift compiler when provided in the -target option?

@tienex Howdy.  I've been following along as well and was working with @hpux735 to help bring to bear a BeagleBoard X15 I have to build everything.  I am currently building your linux-arm branch along with stable/master of other projects.
For those working on the ARM port, I can generally get through a ground-up build in a few hours, and would be more than happy to lend some CPU power to test things.

I reduced the test case, and this is what I found with -Bsymbolic, the failure happens during the pointer comparison, as you can see the ProtocolDescriptor pointers are different but both point at the same thing:
2706	        if (protocol != P)
(gdb) p P
$12 = (const swift::ProtocolDescriptor *) 0x24110 <_TMps23CustomStringConvertible>
(gdb) p protocol
$13 = (const swift::ProtocolDescriptor *) 0xb6fc1660 <_TMps23CustomStringConvertible>
(gdb) p *P
$14 = {
_ObjC_Isa = 0x0,
Name = 0xb6f82ab0 "TtPs23CustomStringConvertible",
InheritedProtocols = 0x0,
_ObjC_InstanceMethods = 0x0,
_ObjC_ClassMethods = 0x0,
_ObjC_OptionalInstanceMethods = 0x0,
_ObjC_OptionalClassMethods = 0x0,
_ObjC_InstanceProperties = 0x0,
DescriptorSize = 40,
Flags = {
Data = 7
}
}
(gdb) p *protocol
$15 = {
_ObjC_Isa = 0x0,
Name = 0xb6f82ab0 "TtPs23CustomStringConvertible",
InheritedProtocols = 0x0,
_ObjC_InstanceMethods = 0x0,
_ObjC_ClassMethods = 0x0,
_ObjC_OptionalInstanceMethods = 0x0,
_ObjC_OptionalClassMethods = 0x0,
_ObjC_InstanceProperties = 0x0,
DescriptorSize = 40,
Flags = {
Data = 7
}
}

In the case of indirection they are the same thing.

So, I investigated further. The BFD linker is generating R_ARM_COPY relocations in the executable for the symbols, that's why the pointers differ, while using Gold (with the approach suggested by Nick Clifton at https://bugzilla.redhat.com/show_bug.cgi?id=927573) works, the linker is generating R_ARM_ABS32 for those symbols, thus pointer comparison works.

I completed the tests using -Bsymbolic + gold and the results look quite good, even better than using indirection. At this point the only issue is that gold can't grok the linker script.

Testing Time: 1220.47s

Failing Tests (16):
Swift :: 1_stdlib/VarArgs.swift
Swift :: ClangModules/autolinking.swift
Swift :: DebugInfo/ASTSection_ObjC.swift
Swift :: DebugInfo/variables.swift
Swift :: Driver/Dependencies/one-way-external.swift
Swift :: Driver/sdk.swift
Swift :: Driver/subcommands.swift
Swift :: IRGen/autorelease_optimized.sil
Swift :: IRGen/bridge_object.sil
Swift :: IRGen/builtin_word.sil
Swift :: IRGen/c_layout.sil
Swift :: IRGen/ordering.sil
Swift :: Misc/expression_too_complex.swift
Swift :: Parse/BOM.swift
Swift :: SIL/Serialization/deserialize_stdlib.sil
Swift :: Serialization/autolinking.swift
Expected Passes    : 1615
Expected Failures  : 77
Unsupported Tests  : 648
Unexpected Failures: 16

That's great @tienex !

@tienex Could you check is there anything in this pull request not already on master?

@gribozavr I am working with @hpux735, we were waiting for his PR to get in before continuing this one. Now they're in, real soon I'll update this.

Yep, I've got @tienex's latest changes almost ready to go.  Expect a new PR from me soon.

Hi @tienex and @gribozavr .  There's a new PR that superseeds this one.  Pleas see https://github.com/apple/swift/pull/1157

OK, let's close this one then.


[Keyboard navigation-Help-JavaScript-call a function]: Visual focus indicator is not visible on ‘Side documentation’ button on call a function pane.

User Experience:
Users who depends on Keyboard will feel difficulty to access any controls if Focus indicator is not visible on that.
Test Environment
OS: RS2 Version 1703(OS Build 15063.483)
Platform: Edge.
Repro Steps
1-Navigate to https://makecode.microbit.org/acc
2-Navigate to the Micro bit section element and select Code control given on it.
3-Navigate to the Help control lying in the header section on the page and select it.
4-Navigate to 'JavaScript' control and select it.
5-Navigate to various controls lying on the pane opened.
6-Navigate to the pane opened and select any link listed under it.
7-Verify visual focus indicator is visible on ‘Side documentation’ button or not.
Actual Result
Visual focus indicator is not visible on ‘Side documentation’ button on call a function pane. After zoom out button focus moving to side documentation button and side documentation button is collapsing and expanding but visual focus indicator is not visible on side documentation button.
Expected Result
Visual focus indicator should be visible on ‘Side documentation’ button on call a function pane.
MAS Reference
https://microsoft.sharepoint.com/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={3b98b04f-4fab-4d3e-81af-a0906a34849c}
Suggested fix:
1.Using user interface components that are highlighted by the user agent when they receive focus
2.Using CSS to change the presentation of a user interface component when it receives focus
3.Using the default focus indicator for the platform so that high visibility default focus indicators will carry over
4.Using an author-supplied, highly visible focus indicator
5.Using script to change the background color or border of the element with focus
#div a:hover, #div a:active, #div a:focus {
background-color: #DCFFFF;
color:#000066;
}
To provide an outline around the element we can use the below
a { outline: none; }
Please Refer attachment for more details
MAS2.4.7_Call a function_Visual focus indicator is not visible on siade a documentation button.zip

review done

Verified on URL: and issue is not fixed. Keyboard dotted line focus indicator is not visible on side documentation button. Hence reactivating the bug.

The dotted line focus indicator is proper to Edge. Let's discuss in our next UI meeting whether a background color change is not enough and if a outline is necessary.

Verified on URL: https://makecode.microbit.org/acc and issue is fixed now. Hence closing the bug.


Recognition of RTTI information fails

Describe the bug
I have an example here, It contains RTTI data. But both the automatic analysis and the classes recovery script do not recognize anything in this example.
There are some RTTI structures which also have a name for classes. But this is not recognized by the whole system. Could you please check what is wrong with this, or if it is not possible to at least create class structures from the existing RTTI data? Furthermore, there are apparently still unknown structures included here which are also not recognized by Ghidra. They are located in the areas before, during or after the RTTI structures. Possibly there is still further information to the structure of the concrete classes in it.
Originally posted by @0xBEEEF in https://github.com/NationalSecurityAgency/ghidra/discussions/3213#discussioncomment-1717193
To Reproduce
Steps to reproduce the behavior:
Reconstruction is relatively simple. Just import the attached example file with default settings, and then call the RTTI class recovery script.
Expected behavior
At least the class names should be recognized, if possible it would be still good, whether the data before, during or after the RTTI structures could be examined more exactly. My guess is that there are more additional structures hidden here that contain even more metadata for the containing classes.
Screenshots
If applicable, add screenshots to help explain your problem.
Attachments
Test.zip.txt
Environment (please complete the following information):

OS: Windows 10
Java Version: 11.0
Ghidra Version: [e.g. 10.1 Beta
Ghidra Origin: official ghidra-sre.org distro

Additional context
@ghidra007  and @emteere , For your info

Related to #1790

@ghidra1 @emteere
Looks like the behavior described here also applies to the file linked above.
From your point of view, does it make sense to continue the issue here, or should it all just be continued in #1790 if possible?
Can someone of you give me a short feedback on this, if this makes sense, or the issue should be closed directly, after it has been untouched for almost half a year now.


[Question]: How to fix flowgen test after flow update

What do you want to know?
I'm updating a couple of things in flowgen (since Flow now supports most of the missing utils)
After updating flow-bin to 0.217, this test started to fail:
it("should use spread when performing union of object types", () => {
  const ts = `
type Foo = { foo: number };
type Bar = { bar: string };
const combination: Foo & Bar;
`;
 // ...

The jest snapshot is now invalid:
exports[`should use spread when performing union of object types 1`] = `
"declare type Foo = {
  foo: number,
  ...
};
declare type Bar = {
  bar: string,
  ...
};
declare var combination: { ...Foo, ...Bar };
"
`;

Playground
I understand the principle that Bar has a spread and so could contain foo of the wrong type, but what is the correct way to do this in flow so I can fix the logic? Thanks
Edit: Looking at intersections/#toc-intersections-of-object-types it seems like the correct output should be declare var combination: Foo & Bar?
Edit edit: Assume that's correct, raised a PR: https://github.com/joarwilk/flowgen/pull/201

I think the change is due to Flow changing the default of exact_by_default=true around 0.200.
declare var combination: Foo & Bar looks reasonable to me. Although you can also choose to interpreting all TS object types as exact, so that the spread can continue to work.
Does this answer your question?

There is a blog post about the exact by default change: https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69

Thanks for the info makes sense!


remaining stella vaults

NB still not sure what to do about two WBTCs. specifically, how to deal with aliasing in the tokens.ts file?

https://moonscan.io/address/0x922d641a426dcffaef11680e5358f34d97d112e1
https://moonscan.io/address/0x1DC78Acda13a8BC4408B207c9E48CDBc096D95e0

(1) is used by stella, (2) is already included in tokens.ts

NB still not sure what to do about two WBTCs. specifically, how to deal with aliasing in the tokens.ts file?

https://moonscan.io/address/0x922d641a426dcffaef11680e5358f34d97d112e1
https://moonscan.io/address/0x1DC78Acda13a8BC4408B207c9E48CDBc096D95e0

(1) is used by stella, (2) is already included in addressbook tokens.ts

opened issue #694 to deal with above. will double check my edits here and mark ready for review.


[WIP][ISSUE-102] Add support SUM on CPU and Memory

Resolves #102
Changes made in this PR:

Implement logic for adding support SUM on CPU and Memory resources
Implement helper functions such as convertToMilliCPU(), convertMilliCPUToStandard, convertMemoryToBytes, convertBytesToMemory for handling string and int manipulation for summing.
[ TODO ] add tests

Notes:

Currently WIP
Manually tested with cyphernetes shell -A, trying these commands:

MATCH (p:Pod) RETURN SUM{p.spec.containers[0].resources.limits.cpu};
MATCH (p:Pod) RETURN SUM{p.spec.containers[0].resources.requests.cpu};
MATCH (p:Pod) RETURN SUM{p.spec.containers[0].resources.limits.memory};
MATCH (p:Pod) RETURN SUM{p.spec.containers[0].resources.requests.memory};

and compare the summed values with kube-capacity --pods ( https://github.com/robscott/kube-capacity )
3.

Hi @AvitalTamir, this PR took longer than I expected due to time spent learning about lex and yacc, the grammar structure, and the existing codebase to think through about the implementation. Currently, I think I have the general logic down for using SUM for cpu and memory resources. I was able to verify the summed values on my local minikube cluster. Let me know how it looks so far and what can be changed / improved!
As a follow up, I had a question about writing tests for this implementation. Since this implementation is applied on resources that have cpu and mem requests and/or limits, would it be good to create something like dummy resources with cpu and memory values and execute the SUM query on those? Any pointers or guidance would be much appreciated!

Hey @jameskim0987 first of all this is brilliant!
Just did this and I'm blown away, this is going to be very useful:
MATCH (d:deployment {name:"auth-service"})->(s:svc)->(p:pod) RETURN SUM { p.spec.containers[0].resources.requests.cpu } AS totalCPUReq, SUM {p.spec.containers[0].resources.requests.memory } AS totalMemReq;

{
  "aggregate": {
    "totalCPUReq": "75m",
    "totalMemReq": "3.0Mi"
  },
  "p": [
    {
      "name": "auth-service-5d96db584d-2d5l7"
    },
    {
      "name": "auth-service-5d96db584d-ctvrj"
    },
    {
      "name": "auth-service-5d96db584d-x4bn9"
    }
  ]
}

Query executed in 17.813125ms

There's an issue I spot the fact we assume the value of cpu or memory is always a string, but if I do this (notice the [*] in containers instead of [0]):
MATCH (d:deployment {name:"auth-service"})->(s:svc)->(p:pod) RETURN SUM { p.spec.containers[*].resources.requests.cpu } AS totalCPUReq

then we get:
Error >> error executing query >> unsupported type for SUM: slice

If we ask to return some value under a [*] path, then the return value will be a slice ([ "25m", "50m", "25m"... ]).
I think we should definitely support that because a common use case will be "I want the total cpu req/lim for all the containers of this deployment".
Otherwise, this is looking good! I'm looking forward to having this merged 😁

Re. tests:
I think I would start with unit testing the actual summing functionality across all different variations (cpu, memory, strings/slices). We could add integration tests with envtest latest but I think most of this is already covered by different integration and e2e tests along the chain - So would take care first of simple unit tests to cover the new sum functions.

Hi @AvitalTamir,  thank you for your feedback! This is valuable input. I have been working on getting that logic down and will push the changes shortly. I will also add unit tests for the functions created.

Sounds good, let me know anything you need!

@AvitalTamir I added the logic for slices of results, did some minor clean ups, and added unit tests for the helper functions. PR is ready for review!

@AvitalTamir I'm always happy contribute!


Support multiple search paths

Enable JDKMon to search in multiple folders for installed JDK's

Implemented since 3.7


[SPARK-37080][INFRA] Add benchmark tool guide in pull request template

What changes were proposed in this pull request?

Add benchmark tool guide in pull request template
Why are the changes needed?

Add benchmark tool guide in pull request template to help developers find it.
Does this PR introduce any user-facing change?

yes, pr template changed
How was this patch tested?

not needed

Test build #144482 has started for PR 34349 at commit c2c5646.

thank you @HyukjinKwon

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48954/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48954/

Test build #144482 has finished for PR 34349 at commit c2c5646.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.


Code fails when Author information isn't present in the clippings file

Noticed that some Kindle titles don't have Author information. I faced this issue with "The Intelligent Investor" that I bought from the Kindle Store.
While it doesn't seem possible to fetch the Author info, it can be made so the code gracefully fails and uses an empty string for Author Name. I used a fix locally to get around the issue. Will make a PR later today if this issue is accepted.
Attaching images of clippings file and error message below.

Hi @rahulakrishna ! Thanks for raising this issue! Wasn't aware of this particular case with Kindle books. Will merge your changes with the main repo.


After upgrading to Angular v12, hashes (#) were added to the RGB color format

After upgrading to Angular v12, hashes (#) were added to the RGB color format
It was:

Become:

My angular.json:
              "optimization": {
                "scripts": true,
                "styles": {
                  "inlineCritical": true,
                  "minify": true
                },
                "fonts": {
                  "inline": true
                }
              }

If you set false for the minify property, there is no problem
package.json:
{
  "name": "front-end",
  "version": "0.0.0",
  "scripts": {
  ...
  },
  "lint-staged": {
    "*.{ts,html}": "eslint --fix",
    "*.scss": "stylelint --fix --syntax scss"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged --relative"
    }
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~12.0.0",
    "@angular/cdk": "^12.0.0",
    "@angular/common": "~12.0.0",
    "@angular/compiler": "~12.0.0",
    "@angular/core": "~12.0.0",
    "@angular/forms": "~12.0.0",
    "@angular/platform-browser": "~12.0.0",
    "@angular/platform-browser-dynamic": "~12.0.0",
    "@angular/platform-server": "~12.0.0",
    "@angular/router": "~12.0.0",
    "@angular/service-worker": "~12.0.0",
    "@nguniversal/express-engine": "^12.0.0",
    "@sentry/angular": "^6.3.6",
    "@sentry/tracing": "^6.3.6",
    "angular-google-tag-manager": "^1.3.2",
    "atms": "file:atms-0.0.1.tgz",
    "classlist.js": "^1.1.20150312",
    "css-vars-ponyfill": "^2.4.5",
    "express": "^4.15.2",
    "guid-typescript": "^1.0.9",
    "intl": "^1.2.5",
    "jwt-decode": "^3.1.2",
    "localstorage-polyfill": "^1.0.1",
    "lottie-web": "^5.7.8",
    "ngx-cookie-service": "^11.0.2",
    "ngx-device-detector": "^2.0.10",
    "ngx-infinite-scroll": "^10.0.1",
    "ngx-mask": "^11.1.5",
    "plural-ru": "^2.0.2",
    "preboot": "^8.0.0",
    "primeflex": "^2.0.0",
    "primeicons": "^4.1.0",
    "primeng": "^11.4.1",
    "registration": "file:registration-0.0.1.tgz",
    "rxjs": "~6.6.6",
    "shared": "file:shared-0.0.1.tgz",
    "svg4everybody": "^2.1.9",
    "tslib": "^2.1.0",
    "tslint": "^6.1.3",
    "web-animations-js": "^2.3.2",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^12.0.0",
    "@angular-eslint/builder": "12.0.0",
    "@angular-eslint/eslint-plugin": "12.0.0",
    "@angular-eslint/eslint-plugin-template": "12.0.0",
    "@angular-eslint/schematics": "^12.0.0",
    "@angular-eslint/template-parser": "12.0.0",
    "@angular/cli": "^12.0.0",
    "@angular/compiler-cli": "~12.0.0",
    "@babel/core": "^7.14.2",
    "@compodoc/compodoc": "^1.1.11",
    "@nguniversal/builders": "^12.0.0",
    "@storybook/addon-a11y": "^6.1.21",
    "@storybook/addon-actions": "^6.1.21",
    "@storybook/addon-contexts": "^5.3.21",
    "@storybook/addon-essentials": "^6.1.21",
    "@storybook/addon-links": "^6.1.21",
    "@storybook/addon-storysource": "^6.1.21",
    "@storybook/angular": "^6.1.21",
    "@storybook/storybook-deployer": "^2.8.7",
    "@types/express": "^4.17.0",
    "@types/jasmine": "~3.7.4",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "@typescript-eslint/eslint-plugin": "4.23.0",
    "@typescript-eslint/parser": "4.23.0",
    "babel-loader": "^8.2.2",
    "codelyzer": "^6.0.2",
    "copy-webpack-plugin": "^8.1.1",
    "eslint": "^7.26.0",
    "eslint-plugin-import": "2.22.1",
    "eslint-plugin-jsdoc": "34.2.1",
    "eslint-plugin-prefer-arrow": "1.2.3",
    "globby": "^11.0.3",
    "husky": "^4.3.0",
    "imagemin-keep-folder": "^5.3.2",
    "imagemin-mozjpeg": "^9.0.0",
    "imagemin-pngquant": "^9.0.2",
    "imagemin-svgo": "^8.0.0",
    "imagemin-webp": "^6.0.0",
    "jasmine-core": "~3.7.1",
    "jasmine-spec-reporter": "~7.0.0",
    "karma": "~6.3.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "lint-staged": "^11.0.0",
    "ng-packagr": "^12.0.0",
    "protractor": "~7.0.0",
    "stylelint": "^13.13.1",
    "stylelint-order": "^4.1.0",
    "stylelint-scss": "^3.18.0",
    "svg-sprite": "^1.5.0",
    "svgo": "^1.3.2",
    "ts-node": "~9.1.1",
    "typescript": "~4.2.3",
    "webpack-cli": "^4.7.0"
  }
}

Moving to the CLI as this is probably done by a css minifier.
Is this really valid CSS? I'd have expected the syntax to be rgb(R,G,B) instead of just comma-separated values.

Moving to the CLI as this is probably done by a css minifier.
Is this really valid CSS? I'd have expected the syntax to be rgb(R,G,B) instead of just comma-separated values.

it's just a string here. then there are separate variables, where rgb is added, etc.

@yumadilovtimur, can you please provide the exact values you are setting?

@yumadilovtimur, can you please provide the exact values you are setting?

@alan-agius4 I set the values as in the first screenshot and expect to get them in the output.
We need such values so that we can further process them, for example, add transparency, like this: rgba(var(--gray-10), 0.3);
If it is just a variable with rgb(), then it will not work.
P.S. we also found a problem in cssnano

I can confirm that the below yields the incorrect output.
Input
:root {
    --white: 255,255,255
}

* {
    color: rgba(var(--white), 0.3)
}

Ouput
:root{--white:#255,#255,#255}*{color:rgba(var(--white),.3)}

There is no much we can do for this case but redirect you to file an issue with CSS Nano as this is not caused by the Angular CLI.


Is it a traditional Vim or a tweaked one?

I;m going to learn vim (using the Swaroop CH book on vim if you know that guy) and i want to have pretty much traditional experience (with Lite XL of course). Does it provide such, or there are differences?

A lot of differences.


[stable/kibana] allow to disable test

What this PR does / why we need it:
not everyone might want the test
the hardcoded image dwdraju/alpine-curl-jq in templates/tests/test.yaml might pose a problem
as well as writing to the local filesystem
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @monotek


envoy: update cilium/proxy to latest version

This commit updates the Cilium Proxy (go.mod, Cilium Agent Dockerfile & Helm Chart) to the latest version.
This includes cilium/proxy#352 that fixes duplicated NetworkPolicies in the Envoy Config Dump.

/test

Removing additional review-requests as @sayboras already covered all relevant SIGs.
-> Manually marking as ready-to-merge


Better interface for handling pregroup words

Currently when creating pregroup presentations one has to awkwardly give pregroup words as lists of elements:
pg := SmallPregroup(4,2);
<pregroup with 4 elements in table rep>
gap> pgp := NewPregroupPresentation(pg, [[pg[2],pg[3]],[pg[3],pg[2],pg[2]]]);
<pregroup presentation with 3 generators and 2 relators>
gap> IsHyperbolic(pgp, 1/6);
[ fail, [ [ 2, 0, 0, 0 ], [ 5, 1, 1, 1/3 ], [ 4, 1, 1, 1/3 ], [ 3, 2, 2, 2/3 ], [ 1, 2, 2, 2/3 ], [ 2, 2, 2, 2/3 ] ], [ 5, 1, 1, 1/3 ] ]

Probably pregroup words should be implemented as objects.

Currently when creating pregroup presentations one has to awkwardly give pregroup words as lists of elements:
pg := SmallPregroup(4,2);
<pregroup with 4 elements in table rep>
gap> pgp := NewPregroupPresentation(pg, [[pg[2],pg[3]],[pg[3],pg[2],pg[2]]]);
<pregroup presentation with 3 generators and 2 relators>
gap> IsHyperbolic(pgp, 1/6);
[ fail, [ [ 2, 0, 0, 0 ], [ 5, 1, 1, 1/3 ], [ 4, 1, 1, 1/3 ], [ 3, 2, 2, 2/3 ], [ 1, 2, 2, 2/3 ], [ 2, 2, 2, 2/3 ] ], [ 5, 1, 1, 1/3 ] ]
Probably pregroup words should be implemented as objects.

I’m not quite sure what implementing them as objects would do, but I agree that the current words are awkward

Colva Roney-Dougal
Professor of Pure Mathematics
Director of the Centre for Interdisciplinary Research in Computational Algebra
Editor of London Mathematical Society Lecture Notes Series
Editor of Proceedings A of the Royal Society of Edinburgh
Director of Undergraduate Mathematics Admissions
The University of St Andrews is a charity registered in Scotland : No SC013532

I basically want to implement "words over pregroups", hence enabling behaviour similar to handling free groups (following for illustration)
gap> pg := SmallPregroup(4,2);;
gap> x := pg[2];; y := pg[3];;
gap> w := x^5 * y *  x^-1;
<pregroup word>

It's not hard to do, I just don't want to get distracted from writing documentation and doing the first go at submitting the package before I go on with word problem solver or polish.


workgroup-manager

Workgroup Manager is a computer program bundled as part of OS X Server for directory-based management of users, groups and computers across a network

After making all changes to the cask:

[ ] brew cask audit --download {{cask_file}} is error-free.
[ ] brew cask style --fix {{cask_file}} reports no offenses.
[ ] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[ ] brew cask install {{cask_file}} worked successfully.
[ ] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked the cask was not already refused in closed issues.
[ ] Checked the cask is submitted to the correct repo.

Going to pass on this because it is four years old and discontinued for newer OS versions.

Rejected Casks
The Cask is for an app that is unmaintained (no releases in the last year, or explicitly discontinued).

I'd suggest creating your own tap.

That is a useful tool to manage OD users account, I and other companies still using this tool for it.


update for spdlog changes since 7/24/2018

Thanks for making spdlog_setup available! It make spdlog VERY easy to use and to transition to from other logging APIs.
This PR addresses compilation errors introduced by spdlog changes first introduced on 7/24/2018.

Thanks for trying to rectify the issue!
I will take a look soon, haven't been touching this for a while and need to take a look at what was changed in spdlog.

Hi sorry but this PR seems to be only fixing a particular commit, and doesn't seem to be fixing the breaking changes from spdlog update from v0.17 to v1.y.z in general, which I won't be able to accept. In general, this repo only targets tagged releases from spdlog to support. But still thanks very much for the effort!
Meanwhile, I have taken a look at the breaking changes to spdlog in https://github.com/gabime/spdlog/releases/tag/v1.0.0, and have implemented the fix in #28. I will merge that in if once it passes the unit tests, and would give a tag for it.
Do note that after the fix, the tag will only support for spdlog v1.y.z and will not be compatible to the older v0.y.z, which I do recommend you to upgrade to any one of the v1.y.z tagged release from spdlog for the new features and stability.

Closing this in favor of #28


React agent msg_execution fix

name: Pull Request
about: Create a pull request
Description
self.service_toolkit.parse_and_call_func(             formatted_function_call,         )
returns a string, which cannot be directly added to self.memory (https://github.com/modelscope/agentscope/blob/bfaf9ed578e8eb34255163dabc9096aa122c5112/src/agentscope/agents/react_agent.py#L225). The fix wraps msg_execution to make it a Msg object.
Checklist
Please check the following items before code is ready to be reviewed.

[x]  Code has passed all tests
[ ]  Docstrings have been added/updated in Google Style
[ ]  Documentation has been updated
[x]  Code is ready for review

The latest version already fixed this issue.


What is the best way to handle foreign keys?

Currently im looking into using the pre_save hook on create:
def set_job_type_and_status(request, instance) -> None:
    job_type_id = getattr(instance, 'job_type_id', None)
    job_status_id = getattr(instance, 'job_status_id', None)

    if job_type_id:
        instance.job_type = JobType.objects.get(id=job_type_id)
    if job_status_id:
        instance.job_status = JobStatus.objects.get(id=job_status_id)

Is this the best approach or do you have any other reccomendation?

Hi again, i created a pre_save hook to fix it all automatically. Maybe you could get inspired to implement this feature in your code?
model_utils.py
from typing import List, Optional
from django.core.exceptions import FieldError
from django.shortcuts import get_object_or_404
from django.db import models
from django.db.models import Model

def set_created_updated_by(request, instance: 'Model', action: str) -> None:
    """
    Set 'created_by' and 'updated_by' fields based on the action.
    """
    user = request.user
    if action == 'update':
        instance.updated_by = user
    else:
        instance.created_by = user

def set_foreign_keys(instance: Model, field_names: List[str]) -> None:
    """
    Dynamically set foreign keys on the instance based on provided field names.
    """
    for field_name in field_names:
        # Ensure the field is a ForeignKey
        field = instance._meta.get_field(field_name)
        if not isinstance(field, models.ForeignKey):
            raise FieldError(f"'{field_name}' is not a ForeignKey on {instance.__class__.__name__}")

        # Fetch the related model instance and set it
        related_model_id = getattr(instance, f"{field_name}_id", None)
        if related_model_id:
            related_model_class = field.related_model
            related_instance = get_object_or_404(related_model_class, id=related_model_id)
            setattr(instance, field_name, related_instance)

def pre_save_hook(field_names: Optional[List[str]] = None):
    """
    Return a pre-save function to set 'created_by', 'updated_by', and foreign keys.
    """
    def pre_save(request, create_instance, update_instance=None) -> None:
        instance = update_instance or create_instance
        action = 'update' if update_instance else 'create'
        set_created_updated_by(request, instance, action)
        if field_names:
            set_foreign_keys(instance, field_names)
    return pre_save

then it can simply be imported and applied like this:
job_view.py
class JobViewSet(ModelViewSet):
    model_class = Job

    # AbstractModelView subclasses can be used as-is
    list = ListModelView(output_schema=JobOut)
    create = CreateModelView(
        input_schema=JobIn,
        output_schema=JobOut,
        pre_save=pre_save_hook(['job_type', 'job_status']),
    )
    retrieve = RetrieveModelView(output_schema=JobOut)
    update = UpdateModelView(
        input_schema=JobIn,
        output_schema=JobOut,
        pre_save=pre_save_hook(['job_type', 'job_status']),
    )
    delete = SoftDeleteModelView()

Hi @Yacobolo, thank you for diving deep into django-ninja-crud!
Upon reviewing the set_job_type_and_status hook, you're spot on. The function, in its current form, doesn't provide any additional value. By design, Django automatically manages the relationship between {field_name} and {field_name}_id. Assigning a value to {field_name}_id implicitly sets up the relationship without any further intervention. So, the hook you provided essentially reassigns the ID values that are already set.
You can safely remove this hook and only keep the created_by and updated_by logics, and Django will handle the foreign key relationships smoothly ! 🙌

Thank you, Hicham! This makes sense. It seems I had done a bit of overengineering.
Explanation for Others:
To explain simply to others who might be interested:

In my Job model:
I defined job_status as follows:
job_status = models.ForeignKey(JobStatus, on_delete=models.DO_NOTHING)

In my JobIn schema:
I added:
job_status_id: int

Final Step:
Ensure that a job status exists with the specified ID. After this, everything worked seamlessly using the ModelViewSet.

Your welcome Jacob! You don't even have to check the existence of the ForeignKey field thanks to the full_clean() method that is called just before the save() in both the Update (cf. views/update.py) and Create (cf. views/create.py) operations 🙌
When specifying an inexistent object, a ValidationError is going to be raised and catch by the exception handler you defined here and then a 400 Bad Request is sent with a clear message and description. ✨

Fancy!


programsService should support updating of ParticipantActivities completion status

Expected behaviour
There should be service functions that marks a target activity as completed once a user click the complete button on an Activity Dialog. And also having the corresponding test to make sure the function works correctly.
Actual behaviour
It currently doesn't exist.
Details and resources
This ticket associated with the other backend router ticket #455 is to provide functions for the frontend ticket (#...) to produce a feature that user can mark any activity as completed.

A getParticipantActivityCompletion function returns the completed (a boolean value, true or false)
A getParticipantActivityId checks if there is an activity that matches the given program_id, activity_id , principal_id from table participant_activities.  If yes, returns participantActivityId. If not, respectively insert rows of program_id, activity_id , principal_id with corresponding value and returns participantActivityId.
A setParticipantActivityCompletion function toggles(updates) the completed field based on the given participant_activities ID, program_id, activity_id , principal_id, completed.

- If the row does not exist in the table, return false.
- If the row does exist in the table, return the value of the 'completed' attribute

tests/programsService.ts should also be updated to test these new service functions.
Checklist

[x] This issue is linked to the appropriate project.
[x] This issue has appropriate labels.

Nov. 30 status update:

Should modify codes to reflect the logic :

If the row does not exist in the table, return false.
If the row does exist in the table, return the value of the 'completed' attribute

Pending to discuss: Decide either programRouter or programService does check and error handling

[Quote from Spencer's proposals]

Handle things like I said with these three functions you have, and to return only if there's a definite result and to throw an error when the service function is called with bad parameters, knowing that both the test file and router file will appropriately handle the error.
Create helper functions that Ruthie can call before calling your main functions that help do the consistency checks, and only have her error handling being our only defense against inconsistent data.
Skip consistency checks altogether and allow people to write any data to the database without throwing an error, no matter how inconsistent the data being retrieved/inserted.

Dec. 1 status updates:

Linked to the programRouter.ts and made getter function works.
Wrote JSDoc function headers
Questions:

Ways to test post api without being called by the webapp

Dec. 2 status updates:

Service functions works properly when sending get / post API request from webapp. (using post method for now to align with the current router.
Test functions:

Working on 'mock functions' to tackle the test error

referenece
https://github.com/OpenTree-Education/rhizone-lms/blob/372-Questionnaire-Service-File-Handles-Categories/api/src/services/__tests__/questionnairesService.ts  ( all function on the test files failed when mock function applied)
https://jestjs.io/docs/mock-functions#mock-return-values
https://jestjs.io/docs/mock-functions#using-a-mock-function

I made a testbutton which you add on a page to test the api. I use PATCH here but should we use POST instead?
import React, { FormEventHandler } from 'react';
import { Button, FormGroup } from '@mui/material';

export const TestButton = () => {
  let programId: number = 1;
  let activityId: number = 1;

  const onSubmit: FormEventHandler = event => {
    event.preventDefault();

    fetch(
      `${process.env.REACT_APP_API_ORIGIN}/activityStatus/${programId}/${activityId}`,
      {
        method: 'PATCH',
        credentials: 'include',
        headers: { 'Content-Type': 'application/json' },
      }
    )
      .then(res => res.json())
      .then(({ data, error }) => {
        if (error) {
          console.log(Error);
        }
        if (data) {
          console.log(data);
        }
      })
      .catch(error => {
        console.log(error);
      });
  };

  return (
    <FormGroup
      onSubmit={onSubmit}
    >
      <Button type="submit" variant="contained">
        Mark Completed
      </Button>
    </FormGroup>
  );
};

thanks again!
The api route will be ${process.env.REACT_APP_API_ORIGIN}/programs/activityStatus/${programId}/${activityId}
As for the request method, I remember at the beginning of this week, we talked about using post instead of put as we would create the table. I'am not sure if it's still in the case. I think we can disccuss it at the next stand up :)

This is how I think about POST vs PUT vs PATCH:
POST is typically used when creating a new resource, one that is known not to already exist in a database. This should be used for actions that are non-idempotent; that is to say, if you re-submit the same exact request, it should create an additional item in the database, to start executing a process again, or whatever you have chained to the POST request will happen an additional time.
When executed and everything is successful, the typical response is HTTP 201 with a Location: header to the newly-created resource (if applicable).
For example:
POST /customer with body {"first_name": "Spencer"} would result in HTTP 201 with Location: /customer/839475938
POST /customer with the same body message would result in HTTP 201 with Location: /customer/839475939
PUT is defined in the HTTP specification as an idempotent action. So, if I submit the same request to the server, it should have the same action every single time. It's typically used to update a whole record, but sometimes it's used to upsert a record (update if exists, otherwise insert) as long as you can upsert idempotently (inserting/updating twice will not result in duplicate records).
It's usually executed on a unique URL that points to the resource being updated, such as
PUT /customer/839475938
However, in its upsert form, it's executed on a non-unique URL (such as /customers).
When executed and everything is successful for an update, either HTTP 200 "OK" or HTTP 204 "No Content" are acceptable responses. For upsert requests where an insert was performed, an HTTP 201 response would be used.
For example:
PUT /customer/839475938 with body {"first_name": "Davey"} would result in HTTP 204.
PUT /customer/839475938 again with body {"first_name": "Davey"} would result in HTTP 204.
GET /customer/839475938 would return HTTP 200 with body {"first_name": "Davey"}
PUT /customer with body {"id": 839475939, "first_name": "Davey"} would result in HTTP 204.
PUT /customer with body {"id": 839475940, "first_name": "Davey"} would result in HTTP 201.
PATCH is like PUT, but it's typically only used to update part of a resource, such as if I was going to update a customer's first name, nickname, or anything else but to leave the rest of the record in place. Again, it's typically executed on a unique URL that points to the resource being updated; however, unlike PUT, it's not used for upsert actions, only updates.
tl;dr:

GET: read a resource
POST: create a new resource non-idempotently
PUT: update/replace an existing resource or create idempotently if doesn't exist
PATCH: update/merge an existing resource
DELETE: delete a resource

Links:

https://stackoverflow.com/questions/31089221/what-is-the-difference-between-put-post-and-patch
https://en.wikipedia.org/wiki/Idempotence
https://www.restapitutorial.com/lessons/httpmethods.html
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

Hello! I've brought the branch up to date with the latest from main. I've also added in stubs in the testing file for the additional service file functions that will need to be tested.
I've added a new stub function in the service file to support the proposed feature where we get a list of assignments and their completion status. This will be the trickiest to write, since the list of program activities and the list of assignment completion statuses in the table won't be the same, and you'll have to construct a union of the two sets of values. I have no doubt that you'll be able to figure it out though given how far you've gotten on this so far!
Also, please remember that code comments—like any other documentation that we generate as programmers—should be held to writing standards. Please try to double-check your code comments for misspellings, typos, and any other common errors before committing your changes!
Thank you.

As per our discussion this morning, I've removed the stubs I added before to restrict scope for the backend tickets. Valuable feedback, thanks!

Dec. 5 status updates:

[x] service functions
[x] test function
[ ] Need to fix some test functions

An update on what should be returned. For getParticipantActivityCompletion and  setParticipantActivityCompletion we should be returning objects. We don't want to return a Boolean as they are harder for the router to handle. And we would want to send the updated completed status after updating so the front end can confirm the update and render the change in realtime.
Both functions should return:
{activityId:1, participantActivityId: 1, completed: true}
In the future for our extended feature we would not need to send activityId.
We can review this during Wed 7th StandUp for all of us to gain alignment.

An update on what should be returned. For getParticipantActivityCompletion and setParticipantActivityCompletion we should be returning objects. We don't want to return a Boolean as they are harder for the router to handle. And we would want to send the updated completed status after updating so the front end can confirm the update and render the change in realtime.
Both functions should return:
{activityId:1, participantActivityId: 1, completed: true}
In the future for our extended feature we would not need to send activityId.
We can review this during Wed 7th StandUp for all of us to gain alignment.

Dec 6th status updates:

Fixed test functions
Updated the getParticipantActivityCompletion and setParticipantActivityCompletion and the corresponding test to return an object as per the comments above.
Questions:
Is there any insights/concern that the getParticipantActivityCompletion and setParticipantActivityCompletion  should return an object which is 'destructed'?
Referring to other service functions, they return objects without destructing.


Issue with bazel example

command to be used in windows is they need to give output directory without any space, like this..
bazel --output_user_root=c:/temp/bazel build //bazelapp:BazelApp
and also change root WORKSPACE file these two keys values as
RULES_JVM_EXTERNAL_TAG = "4.2"
RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca"

error with default JVM tags is
\DWork\eugenp\tutorials\bazel>e:bazel --output_user_root=c:/temp/bazel build //bazelapp:BazelApp
INFO: Repository maven instantiated at:
G:/dwork/eugenp/tutorials/bazel/WORKSPACE:18:14: in
C:/temp/bazel/4jr45744/external/rules_jvm_external/defs.bzl:35:19: in maven_install
Repository rule coursier_fetch defined at:
C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl:559:33: in
INFO: Repository 'maven' used the following cache hits instead of downloading the corresponding file.

Hash '8e7333506bb0db2a262d747873a434a476570dd09b30b61bcbac95aff18a8a9b' for https://jcenter.bintray.com/io/get-coursier/coursier-cli_2.12/1.1.0-M9/coursier-cli_2.12-1.1.0-M9-standalone.jar
If the definition of 'maven' was updated, verify that the hashes were also updated.
ERROR: An error occurred during the fetch of repository 'maven':
Traceback (most recent call last):
File "C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl", line 509, column 36, in _coursier_fetch_impl
dep_tree = json_parse(_cat_file(repository_ctx, "dep-tree.json"))
File "C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl", line 427, column 13, in _cat_file
fail("Error while trying to read %s: %s" % (filepath, exec_result.stderr))
Error in fail: Error while trying to read dep-tree.json: cat: 'C:/temp/bazel/4jr45744/external/maven/dep-tree.json': No such file or directory
ERROR: G:/dwork/eugenp/tutorials/bazel/WORKSPACE:18:14: fetching coursier_fetch rule //external:maven: Traceback (most recent call last):
File "C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl", line 509, column 36, in _coursier_fetch_impl
dep_tree = json_parse(_cat_file(repository_ctx, "dep-tree.json"))
File "C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl", line 427, column 13, in _cat_file
fail("Error while trying to read %s: %s" % (filepath, exec_result.stderr))
Error in fail: Error while trying to read dep-tree.json: cat: 'C:/temp/bazel/4jr45744/external/maven/dep-tree.json': No such file or directory
ERROR: G:/dwork/eugenp/tutorials/bazel/bazelapp/BUILD:2:13: //bazelapp:BazelApp depends on @maven//:org_apache_commons_commons_lang3 in repository @maven which failed to fetch. no such package '@maven//': Error while trying to read dep-tree.json: cat: 'C:/temp/bazel/4jr45744/external/maven/dep-tree.json': No such file or directory
ERROR: Analysis of target '//bazelapp:BazelApp' failed; build aborted: Analysis failed
INFO: Elapsed time: 11.654s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (22 packages loaded, 80 targets co
nfigured)

error with out output option is
DWork\eugenp\tutorials\bazel>e:bazel build //bazelapp:BazelApp
WARNING: Output user root "C:/Users/Raja Nagendra Kumar/_bazel_Raja Nagendra Kumar" contains a space. This will probably break the build. You should set a different --output_user_root.
INFO: Repository maven instantiated at:
G:/dwork/eugenp/tutorials/bazel/WORKSPACE:17:14: in
C:/users/raja nagendra kumar/_bazel_raja nagendra kumar/4jr45744/external/rules_jvm_external/defs.bzl:121:19: in maven_install
Repository rule coursier_fetch defined at:
C:/users/raja nagendra kumar/_bazel_raja nagendra kumar/4jr45744/external/rules_jvm_external/coursier.bzl:1173:33: in
ERROR: An error occurred during the fetch of repository 'maven':
Traceback (most recent call last):
File "C:/users/raja nagendra kumar/_bazel_raja nagendra kumar/4jr45744/external/rules_jvm_external/coursier.bzl", line 846, column 38, in _coursier_fetch_impl
dep_tree = make_coursier_dep_tree(
File "C:/users/raja nagendra kumar/_bazel_raja nagendra kumar/4jr45744/external/rules_jvm_external/coursier.bzl", line 777, column 13, in make_coursier_dep_tree
fail("Error while fetching artifact with coursier: " + exec_result.stderr)
Error in fail: Error while fetching artifact with coursier: Error: Unable to access jarfile C:/users/raja
ERROR: G:/dwork/eugenp/tutorials/bazel/WORKSPACE:17:14: fetching coursier_fetch rule //external:maven: Traceback (most recent call last):
File "C:/users/raja nagendra kumar/_bazel_raja nagendra kumar/4jr45744/external/rules_jvm_external/coursier.bzl", line 846, column 38, in _coursier_fetch_impl
dep_tree = make_coursier_dep_tree(
File "C:/users/raja nagendra kumar/_bazel_raja nagendra kumar/4jr45744/external/rules_jvm_external/coursier.bzl", line 777, column 13, in make_coursier_dep_tree
fail("Error while fetching artifact with coursier: " + exec_result.stderr)
Error in fail: Error while fetching artifact with coursier: Error: Unable to access jarfile C:/users/raja
ERROR: G:/dwork/eugenp/tutorials/bazel/bazelapp/BUILD:2:13: //bazelapp:BazelApp depends on @maven//:org_apache_commons_commons_lang3 in repository @maven which failed to fetch. no such package '@maven//': Error while fetching artifact with coursier: Error: Unable to access jarfile C:/users/raja
ERROR: Analysis of target '//bazelapp:BazelApp' failed; build aborted: Analysis failed
INFO: Elapsed time: 11.499s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets conf
igured)

if the error is
`G:\DWork\eugenp\tutorials\bazel>g:bazel --output_user_root=c:/temp/bazel build //bazelapp:BazelApp
'g:bazel' is not recognized as an internal or external command,
operable program or batch file.
G:\DWork\eugenp\tutorials\bazel>e:bazel --output_user_root=c:/temp/bazel build //bazelapp:BazelApp
INFO: Repository maven instantiated at:
G:/dwork/eugenp/tutorials/bazel/WORKSPACE:16:14: in
C:/temp/bazel/4jr45744/external/rules_jvm_external/defs.bzl:121:19: in maven_install
Repository rule coursier_fetch defined at:
C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl:1173:33: in
INFO: Repository 'maven' used the following cache hits instead of downloading the corresponding file.

Hash 'a51d36968dcbdeabb3142c6f5cf9b401a65dc3a095f3144bd0c118d5bb192753' for https://github.com/stedolan/jq/releases/download/jq-1.6/jq-win64.exe
Hash 'af986793a515d500ab2d35f8d2aecd656e764504b789b66d7e1a0b727a124c44' for https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
Hash '076de041cbebc0a1272b84f1e69f6da5df4961847850b95cb3dfa3f776145225' for https://github.com/coursier/coursier/releases/download/v2.0.16/coursier.jar
Hash '5c0a0a3ea600f302ee458b30317425dd9632d1ad8882259fcaf4e9b868b2b1ef' for https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64
If the definition of 'maven' was updated, verify that the hashes were also updated.
ERROR: An error occurred during the fetch of repository 'maven':
Traceback (most recent call last):
File "C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl", line 821, column 13, in _coursier_fetch_impl
fail("Unable to run coursier: " + exec_result.stderr)
Error in fail: Unable to run coursier: java.io.IOException: ERROR: src/main/native/windows/process.cc(202): CreateProcessW("C:\temp\bazel\4jr45744\external\maven\coursier" --help): %1 is not a valid Win32 application.
(error: 193)
ERROR: G:/dwork/eugenp/tutorials/bazel/WORKSPACE:16:14: fetching coursier_fetch rule //external:maven: Traceback (most recent call last):
File "C:/temp/bazel/4jr45744/external/rules_jvm_external/coursier.bzl", line 821, column 13, in _coursier_fetch_impl
fail("Unable to run coursier: " + exec_result.stderr)
Error in fail: Unable to run coursier: java.io.IOException: ERROR: src/main/native/windows/process.cc(202): CreateProcessW("C:\temp\bazel\4jr45744\external\maven\coursier" --help): %1 is not a valid Win32 application.
(error: 193)
ERROR: G:/dwork/eugenp/tutorials/bazel/bazelapp/BUILD:2:13: //bazelapp:BazelApp depends on @maven//:org_apache_commons_commons_lang3 in repository @maven which failed to fetch. no such package '@maven//': Unable to run coursier: java.io.IOException: ERROR: src/main/native/windows/process.cc(202): CreateProcessW("C:\temp\bazel\4jr45744\external\maven\coursier" --help): %1 is not a valid Win32 application.
(error: 193)
ERROR: Analysis of target '//bazelapp:BazelApp' failed; build aborted: Analysis failed
INFO: Elapsed time: 1.382s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets conf
igured)`

then make sure jdk home is correct..

readme.md should contain these commands for ready reference
bazel --output_user_root=c:/temp/bazeel build //bazelapp:BazelApp
bazel --output_user_root=c:/temp/bazeel build //bazelapp:BazelApp_deploy.jar
bazel --output_user_root=c:/temp/bazeel run //bazelapp:BazelApp
bazel-bin\bazelapp\BazelApp.exe

Thanks @nagkumar These commands might be helpful for Windows users, but are too specific to include in our code/article. I think it's best to check the official documentation on using Windows: https://bazel.build/docs/windows


ModuleNotFoundError: No module named 'pixelengine' in python while converting the phiips isyntax format file into OME-TIFF.

ModuleNotFoundError: No module named 'pixelengine' in python while converting the phiips isyntax format file into OME-TIFF or TIFF.
By following this documentation https://www.glencoesoftware.com/blog/2019/12/09/converting-whole-slide-images-to-OME-TIFF.html#footnotes
I used python 3.6 in ubuntu 18.04.
First I download and install the philips sdk as per given instruction in documentation.
After that I downloaded isyntax2raw and install it.
After executing the following  command in terminal
$ isyntax2raw write_tiles 20200207_140740.isyntax  /home/dilip/new_image.tiff
The error comes
Traceback (most recent call last): File "/home/dilip/anaconda3/envs/myenv/bin/isyntax2raw", line 11, in load_entry_point('isyntax2raw==0.0.0', 'console_scripts', 'isyntax2raw')() File "/home/dilip/anaconda3/envs/myenv/lib/python3.6/site-packages/pkg_resources/init.py", line 490, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/dilip/anaconda3/envs/myenv/lib/python3.6/site-packages/pkg_resources/init.py", line 2859, in load_entry_point return ep.load() File "/home/dilip/anaconda3/envs/myenv/lib/python3.6/site-packages/pkg_resources/init.py", line 2450, in load return self.resolve() File "/home/dilip/anaconda3/envs/myenv/lib/python3.6/site-packages/pkg_resources/init.py", line 2456, in resolve module = import(self.module_name, fromlist=['name'], level=0) File "/home/dilip/anaconda3/envs/myenv/lib/python3.6/site-packages/isyntax2raw-0.0.0-py3.6.egg/isyntax2raw/init.py", line 15, in ModuleNotFoundError: No module named 'pixelengine'

That error indicates that the Philips SDK (pixelengine) was not installed correctly.  It looks like you are using Anaconda, in which case the conda list pixelengine command should tell you which version of the SDK (if any) is installed.

That error indicates that the Philips SDK (pixelengine) was not installed correctly. It looks like you are using Anaconda, in which case the conda list pixelengine command should tell you which version of the SDK (if any) is installed.

Thanks it worked.

@Yadav420dilip could you please explain or share any resources on how to install the SDK in anaconda?

I installed into my ubuntu 20.04.
Install anaconda after the create new conda environment and activate the environment and follow the following steps
At the Open Pathology portal, select Pathology SDK.
► Download the required Ubuntu installer package to your system.
► In the Ubuntu command prompt, enter chmod 777 InstallPathologySDK.sh to go to the
package directory and change the permission for InstallPathologySDK.sh.
► Go the package directory and enter ./InstallPathologySDK.sh py3.
⇨ After successful installation, a confirmation message is shown.

It worked. Thanks!

I installed into my ubuntu 20.04. Install anaconda after the create new conda environment and activate the environment and follow the following steps
At the Open Pathology portal, select Pathology SDK ► Download the required Ubuntu installer package to your system [https://www.openpathology.philips.com/pathologysdk/] ► In the Ubuntu command prompt, enter chmod 777 InstallPathologySDK.sh to go to the package directory and change the permission for InstallPathologySDK.sh. ► Go the package directory and enter ./InstallPathologySDK.sh py3. ⇨ After successful installation, a confirmation message is shown.

I did all the above and I have the SDK-2.0 installed. But the No module found import pixelengine error still appears.

Might be sdk is not installed properly. installed sdk correctly

I installed into my ubuntu 20.04. Install anaconda after the create new conda environment and activate the environment and follow the following steps
At the Open Pathology portal, select Pathology SDK ► Download the required Ubuntu installer package to your system [https://www.openpathology.philips.com/pathologysdk/] ► In the Ubuntu command prompt, enter chmod 777 InstallPathologySDK.sh to go to the package directory and change the permission for InstallPathologySDK.sh. ► Go the package directory and enter ./InstallPathologySDK.sh py3. ⇨ After successful installation, a confirmation message is shown.

I did all the above and I have the SDK-2.0 installed. But the No module found import pixelengine error still appears.

try ubuntu 18.04?


invalid generated fonts.conf

Describe the bug
49d33d4a6b15330b492a194edc4b67fb20a15fa1
this sed command is not escaped properly
sed "5i <include ignore_missing="yes">/etc/fonts/conf.d</include>" -i $dst/../fonts.conf

which generates a line like this:
<include ignore_missing=yes>/etc/fonts/conf.d</include>

which is missing double quotes around yes
Notify maintainers
@K900
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
output here

Add a :+1: reaction to issues you find important.

error reported by fontconfig:
Fontconfig error: "/etc/fonts/fonts.conf", line 5: not well-formed (invalid token)
Fontconfig error: Cannot load config file from /etc/fonts/fonts.conf

Can confirm, getting the same issue.

also broke my fonts in most of my applications

fixed in b5574c71bec95159d5342c19f6d5221b68c2aaee (#338815)

even with this problem fixed my fonts are still messed up...

@eclairevoyant might be #338933


When will we have answers?

This is really awesome! It really helps to prepare for the Android developer interview. When will we have answers? Some questions are hard or too general to me, it's difficult to find the answer.
Thanks

Listed topics are well described enough to get through interview. But i don't think we Will be having answers for those topics rather you as a Developer need to go through them, understand and solve the problem.
Just go through below links for better understanding of concepts
https://blog.mindorks.com/tagged/android
https://guides.codepath.com/android
http://www.vogella.com/tutorials/android.html

@kitgary We will try to add all the answers very soon.

Hi @amitshekhariitbhu, as @dharan1011 said, by showing curiosity and may be searching for answers on our own will help us in gaining more understanding of the concepts. May be.

@ashtrisk :+1: But still it will be better contributing useful resources link (answers in this context) to repo will help for better understanding.

Surely there's a more efficient way than making every android developer google the answer to all these questions. Definitely, we should individually learn on our own and discover these things in the process of making apps but I feel like this repo would offer far more value if it had answers to these questions right here. Even as an experienced developer, I'd still love to have a resource where I can find definitive, well structured and easily conveyed answers to these questions.
Links become dead. The things in those links becomes outdated and those things were in the first place, probably written by a single person. Having these questions answered in a github repo would offer us a chance to collaborate and curate the answers to actually help the reader not only for a technical interview but to become a better developer.
Just my two cents :)

@AdityaAnand1 Yes, sure we will add all the answers at a place where everyone can edit and suggest better answers.

@AdityaAnand1 I do agree with you :). And if the answers are with code examples they will be better.

Cam we have any updates on this ?

Answered and categorised by difficulty on www.fullstack.cafe/Android

We have added many answers. We will keep adding more.


Copy and Combine output relative to public path

Hello @JeffreyWay
Hope you are doing well.
I was wondering if it's possible when setPublicPath() is set, to make also the output for copy() or combine() to be relative to the public path?
At the moment, even I set the public path to web, for copy and combine functions I have to prefix the output with web/.
mix
.setPublicPath('web')
.js('assets/js/app.js', 'js')
.sass('assets/sass/app.scss', 'css')
.copy('assets/css/test.css', 'web/css/test.css')
.combine([
        'assets/css/bootstrap.css',
        'assets/css/style.css'
    ], 'web/css/all.css')
.version();

This results in the following content of mix-manifest.json
{
  "js/app.js": "js/app.63c3e765d0e19272856c.js",
  "css/app.css": "css/app.246bed245832d17dc7cf.css",
  "/css/all.css": "/css/all.css"
}

It would be nice if there was a consistency in both the output and the manifest content.
Kind regards,

You should be explicit with your output paths, and always assume the project root as your starting point.


Some Class files not included while shading

CommandAPI version
8.5.1
Minecraft version
1.19
Are you shading the CommandAPI?
Yes
What I did

In my Pom.xml I added the shade plugin and the commandapi-shade as stated in the documentation for CommandAPI8.5.1
I refreshed and Invalidated caches in maven and Intellij
I used mvn clean package to build the jar

What actually happened

Everything worked as intended but when I decompiled the Jar I noticed that PlayerArgument.class and SafeOverrideableArgument.class was missing among others.

What should have happened

All the files from CommandAPI should have been shaded into my final jar

Server logs and CommandAPI config

N/A

Other
It was working up untill a point when it started to just not include those classes
They are the same classes each time not random

Without your pom.xml file, there's basically nothing I can do.
Are you using Jar minimisation?

Here is the pom, and yes
https://github.com/matrixidot/TwistAPI/blob/master/pom.xml

Closing issue because I solved it. Issue was Jar minimization.


User can join a game lobby using the shared game code

https://github.com/sopra-fs23-group-20/client/commit/88d60be0c7b381c8e6b39a1d139addb52b432252


[LIVY-745] Ensure that a single RSCClientFactory gets loaded.

What changes were proposed in this pull request?
In LivyClientBuilder, a ServiceLoader is used to load configured LivyClientFactory providers (HttpClientFactory and RSCClientFactory). Correct behavior of RSCClientFactory implicitly depends on there being a single instance of it in the Livy server.
Instead of instantiating a new ServiceLoader every time the build method is called on a LivyClientBuilder, keep a single ServiceLoader in a static field. Have the ServiceLoader load the LivyClientFactory implementations into a static CopyOnWriteArrayList, which has a thread-safe iterator. (ServiceLoader instances are not safe for use by multiple concurrent threads.).
Then LivyClientBuilder#build will use the single instance of either HttpClientFactory or RSCClientFactory to create a LivyClient.
How was this patch tested?
Tested by having 20 clients connect to the Livy Thrift server simultaneously. Before the change, the behavior described in https://issues.apache.org/jira/browse/LIVY-745 was encountered. With the change, the problem is not encountered.
Also added a unit test that fails before this change to LivyClientBuilder, and passes with the change.

I am unfamiliar with how the integration tests are set up. I had deployed the change to a real cluster, and did not find any issues with creating sessions. In the integration tests, creating sessions is failing with
JobApiIT:
- create a new session and upload test jar *** FAILED *** (2 milliseconds)
  java.lang.IllegalArgumentException: URI 'http://localhost:8998' is not supported by any registered client factories.
  at org.apache.livy.LivyClientBuilder.build(LivyClientBuilder.java:162)
  at org.apache.livy.test.JobApiIT.org$apache$livy$test$JobApiIT$$createClient(JobApiIT.scala:312)

Any insight would be appreciated.

@mgaido91 I have updated the PR with a new implementaion and updated the PR description accordingly.

Is this PR #268 related to this issue, do they fix the same issue?
CC @runzhiwang .

@jerryshao They do not fix the same issue. This pr fix the problem of create client concurrently,  and #268 fix the problem of multi client connect to one driver.

@mgaido91 I hope this can be merged now.

Thanks, merging to master.

I built Livy from master to try and include this fix, but I still get the same problem of exhausted ports.


Building with modules breaks for Spack develop

Commit https://github.com/spack/spack/commit/5b8917188a4d84713c1037fd9464bf77503edd27 breaks building Spack stacks that use modules when pulling Spack from develop:
==> Error: Cannot use invalid module set default.    Valid module set names are []

Do you get the error message because your recipe does not provide modules.yaml?
What changes if you set modules: False in `config.yaml?

I am using modules.yaml. Now I need to explicitly add
enable:
- tcl

to make it work.

This change has already been reverted https://github.com/spack/spack/commit/cb4c60c70928c034f8c3cd77d66331b0cb906276


Speedup build

This is a follow-up PR for https://github.com/apache/flink-table-store/pull/447.
The original PR was reverted because it broke builds with maven 3.2.5. Build failures were due to directory-maven-plugin upgrade to version 1.0.
This PR reverts the directory-maven-plugin version change, but still upgrades rat and pins json-smart. As a result, we still get the build speedup from 20 minutes to ca. ~2 minutes without the multithreaded build.

@JingsongLi Can you please review?


Python files executable, ruamel.yaml required

The PyPI installation of maya fails because it doesn't require ruamel.yaml unless you happen to have it installed.  Made test_python, maya and setup modules executable as well.

✨🍰✨


feat: private-ip flag for v2

This creates a private-ip address flag for the work in progress.

This still needs an integration test.


Reset to passed in value on blur

Is your feature request related to a problem? Please describe.
When inputing a date via the keyboard which can not be parsed, it hides the actual value. There is as far as I can tell no way to change this behaviour
Describe the solution you'd like
It should reset the value displayed by the text field to the value which is passed in via the value property when the text field loses focus
Describe alternatives you've considered
If this is not a desired default behaviour and adding a toggle is not an option, the value displayed in the input could be made controllable. So a new prop inputValue: string | null if it is null, display the default value, otherwise display its text.
Additional context
If there is a way to achieve this behaviour, then I have missed it and would be happy for a pointer in the right direction.
Thx for the great work!

@rkinsman I suspect your particular issue is being caused by the bug outlined here: https://github.com/dmtrKovalenko/material-ui-pickers/issues/613 and that under the hood you're getting the date set to something earlier, but that's being masked the error message.
To test if this is actually the problem, you can do 2 things:

Set your error message to be an empty string. E.g.  HTH.

@Jtango18, I'm not convinced that is the issue I am having. I am using a custom format function that overrides the MomentUtils format function.

We can control the value of input if you want to with inputProps or onKeyboardChange.
Related to returning to previous value - that should be done on your side, when you change the value keyboard input will be updated as well


index.js error

Hello,
I am getting these errors when running server:
express-session deprecated undefined resave option; provide resave option index.js:38:9
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option index.js:38:9

I had found same errors when running server, and I have solved as follows:
you have to correct the line 38 in the index.js file, since it has some error with brackets in the object sintax, please use the following :
app.use(session({   secret: "fingerpint",   resave: true,   saveUninitialized: true }));
This line of code is for setting up session management in an Express.js application using the express-session middleware.


Backward connection

Is it possible to draw backward connections, for loops, or logic with triggers? I.e. https://en.wikipedia.org/wiki/Flip-flop_(electronics)#/media/File:SR_(Clocked)_Flip-flop_Diagram.svg

@DmitryAGusev this is the next big step for the project. Currently, only the forest of tree-like structures is supported. You can visually trace connectivity by signal name, but it isn't visually appealing, agree.
One of the problems, I think, is to express your intent in the input language, and being able to control the layout and routing of the rendering process.
I am working on the AST format that would be capable expressing nested connectivity here: https://github.com/drom/logidrom/blob/master/ref/ast.md
Any help, suggestions, ideas, comments are welcome!

I'm looking for some visualization help in critical path analysis. I think I'll be able to write simple script to analyse reports and convert description of a single path into input text structure for your tool. But more interesting thing is to combine several paths into one scheme, especially when some logic is present in many paths. This will help to highlight hot spots. For these language extensions to support multiple outputs is required.
For single path visualization the following things will be useful:

Have ability to indicate length (in time units) of the wires and units
Use different colors to highlight wires and units

@DmitryAGusev ahh, yes, critical path reports. Simple version sounds possible with current format.
Probably with minor fixes, like mux, dff, box.
If you need to show only single critical path per diagram, with all units / wires involved, then you may not need highlighting.
We have to think how to add / render extra attributes, like extra text on wires and units.

See #10 fore Multiplexer related discussion.

@DmitryAGusev I was thinking about critical path analysis tool. Here is my first sketch: https://github.com/drom/sta


Update README.md

Added uiOS to the main table.

Hi thanks for your submission, I really like the minimal windows-like design and the cool domain name :)
But I noticed most of the apps and features in your web desktop don't seem to work properly, I get a lot of blank pages and:
Not Found - Request ID: 01GBT91TJBVFJBTQ7DRQT39B7V

It looks like it's still at a very early stage, do you mind if I merge this PR when your project is a bit more solid?
Good luck with the development in the meantime!

Hello thanks. I appreciate the reply. As long as I've made you aware of this repository, I am very much satisfied. The webtop is also hosted on https://uios.github.io
The goal is to make the source compatible with hosts of all sorts like Netlify, GitHub Pages, Heroku and eventually the file protocol. The framework is homebrew and each application is a project in a portfolio.
There are seven main apps on the desktop and ten extra apps in the start menu. Shall I resubmit a pull request once the main applications are done? When the main web apps are complete, I'll place the extras in a coming soon mode.

Hi, that's really cool, I really dig the idea of each app as a portfolio project, thank you for letting me know you're working on this webdesktop!
Don't worry no need to create a new PR we can keep this one open, give me a shout when the main apps are ready and I'll merge this PR 😉


Replace user token in GitHub workflow

Currently @KeXu444 's user token is used. This should probably be replaced with a more generic team token or else we all have access to npm through @KeXu444 's account.

This has been completed a little while ago by @xuke444. Closing accordingly!


can you use pixel streaming 5.1 branch with unreal engine 5.2?

i've seen now that pixel streaming has developed further since ue 5.0. now i'm asking me if you can use use pixel streaming 5.1 branch with unreal engine 5.2? is pixel streaming 5.2 a dev branch?
also when looking into the code on branch 5.1 there is the "app.js" available (https://github.com/EpicGames/PixelStreamingInfrastructure/tree/UE5.1/SignallingWebServer/scripts - like in the 5.0 version) whereas in 5.2 branch i can't see any app.js or scripts folder. do you have to compile the javascript files by yourself or how to get app.js in 5.2 branch?
so what version of pixel streaming you should use for a production case in combination with unreal engine 5.2 projects?

whereas in 5.2 branch i can't see any app.js or scripts folder. do you have to compile the javascript files by yourself or how to get app.js in 5.2 branch?

In 5.2 we have completely changed from a monolothic javascript files to using a library. In short app.js does not exist anymore and is replaced with a library that we use to build the so-called "reference frontend", which looks and feels a lot like the old app.js.
Your options:

Compile the typescript library yourself and build the reference frontend ( https://github.com/EpicGames/PixelStreamingInfrastructure/tree/eea7839f513056ebbd0f98930eb8b8ca895d6bf1/Frontend/implementations/EpicGames )
Download our releases ( https://github.com/EpicGames/PixelStreamingInfrastructure/releases ) which contain the built reference frontend for your convenience  ( specifically player.html and player.js ).

so what version of pixel streaming you should use for a production case in combination with unreal engine 5.2 projects?

Use the UE5.2 branch of this repo or the associated releases marked with UE5.2. Additionally, when you build projects using Unreal Engine 5.2 and have Pixel Streaming enabled you will see in your packaged output you end up with a Samples/PixelStreaming folder, that directory has a script in it called get_ps_servers.bat you can run and it will download and extract the latest relevant release from this repository for you.

can you use pixel streaming 5.1 branch with unreal engine 5.2?

In short, no. Use the 5.2 branch for 5.2 projects.


Add Reconcile::Key to Uuid

Sets the Key associated type in the impl of Reconcile for Uuid.

This works and is great but it bothers me that we have to copy the bytes for the key out of the document. I'm having a play around with various lifetimes as I think we can rejig things so that we don't need to do this. If you urgently need this merged I can merge it now, otherwise give me a day or two to play.

I actually intentionally didn't try to borrow, because a UUID is just 16 bytes, i.e. the same as, say, a slice.  I feel like the cost of indirection would be bigger or equivalent to the cost of shaving off 8 bytes by having a reference?

That is a good point. Definitely something which shouldn't be optimised without an actual motivating workload. On that basis I'm going to merge this PR and roll a release. Thanks for the challenge 🙂.
I think the infrastructure for borrowing a key from the doc would be useful though so I'll continue to work on that for when a motivating workload does appear.

Thanks for merging!

Just a note that releasing this is held up on the build breaking, which is due to syn 2.0 I think.

This is published in 0.6.0


Documentation at readthedocs outdated

The documentation at http://django-helpdesk.readthedocs.org/ points to the 0.5.0 version (and complains about it).
Please update it to the most recent version.

Default version has been updated and an automation rule added to update it when a new version is released.


upgrade version of Go in GitHub checks

I want to use errors.Join in the following PR:

License checker feature #501

It is a method added in go 1.20.

Codecov Report

Merging #637 (e8aa96a) into main (f08125b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #637   +/-   ##
=======================================
  Coverage   78.82%   78.82%
=======================================
  Files          78       78
  Lines        5511     5511
=======================================
  Hits         4344     4344
  Misses        990      990
  Partials      177      177

Can you also change the go version in the go.mod?

Isn't this a breaking change though for the library?

I was thinking about that, but it looks like go 1.19 is out of support anyway? https://endoflife.date/go
I'm actually not sure how libraries are suppose to bump versions if we have to do a major version change every go release.

I thought it that libraries don't need to worry EOL because that only matters for the version of Go that is doing the compiling - i.e. osv-scanner (the cli) should be being built with an in-life version of Go, but osv-scanner (the library) can remain compatible with EOL version of Go

I opt for upgrading the version of Go. And that this shouldn't require a major version bump.

 Upgrading should be a good thing and easy to do. I don't think it makes sense for osv-scanner to support people stuck at Go 1.19.
I don't think osv-scanner should only use old features of Go until a major version bump. This is much more like a minor change.

However, we might like to make a policy that osv-scanner will user versions of Go at least two release behind or something.
https://github.com/google/osv-scanner/issues/638


Add IP address to user object so geoip and user targeting works without needing MaxMind

Summary
Would it be possible to add IP address to the user object so geoip and user targeting works correctly when retrieving variants for a new user? We'd like to avoid running MaxMind and adding logic to determine the user's location properties - City, Country , Region, DMA - before making a call to fetch variants for a new user.
Motivations
This would be a huge benefit and not force every customer to run an up to date MaxMind.

Hey @joshunger thanks for submitting this ticket!
Just to clarify, you'd like to be able to pass the user's IP address directly?

👋 @bgiori yes please! We'd like the ability to pass the user's IP and also have Amplitude perform the geoip resolution and save City, Country, Region, DMA to the user properties so user targeting works. Would it be possible for you to elaborate on how other customers are using location based user targeting?

Assuming you're using remote evaluation, we sync the user properties stored in Amplitude for the user prior to evaluation which usually includes the location properties if the user is already known.
I admit though, if the evaluation request is for a user without existing location info, we will actually resolve the request's remote IP, which is unfortunately coming from the server rather than the actual user.

Hi @joshunger, many thanks for your patience on this! In v1.2.5, you will be able to pass in ip_address as a user property such that it can be used for remote evaluation. Please let us know if there continue to be issues with targeting.

@tyiuhc thank you! Does this work in https://github.com/amplitude/experiment-node-server as well? If not, can we get it fixed? 🙏

Hi @joshunger, ip_address can now be passed as a user property in v1.8.1 of Experiment's Node Server SDK.


Upgrade issues from 1.0.0-next.208 to 1.0.0-next.303

Describe the bug
When I upgraded my app to use version 1.0.0-next.303 (from next.208) I see the following error.
✘ [ERROR] No matching export in "browser-external:stream" for import "Readable"
Reproduction
My app is working fine on version 208. The upgrade to version 303 causes the issue mentioned.
Logs
> svelte-kit dev

  SvelteKit v1.0.0-next.303

  local:   http://localhost:3000
  network: not exposed

  Use --host to expose server to other devices on this network

✘ [ERROR] No matching export in "browser-external:stream" for import "Readable"

    node_modules/@sveltejs/kit/dist/node.js:1:9:
      1 │ import { Readable } from 'stream';
        ╵          ~~~~~~~~

6:00:59 PM [vite] error while updating dependencies:
Error: Build failed with 1 error:
node_modules/@sveltejs/kit/dist/node.js:1:9: ERROR: No matching export in "browser-external:stream" for import "Readable"

System Info
System:
    OS: macOS 12.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 122.95 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 17.4.0 - /opt/homebrew/bin/node
    npm: 8.3.1 - /opt/homebrew/bin/npm
  Browsers:
    Chrome: 99.0.4844.84
    Safari: 15.2
  npmPackages:
    @sveltejs/adapter-static: ^1.0.0-next.28 => 1.0.0-next.29
    @sveltejs/kit: 1.0.0-next.303 => 1.0.0-next.303
    @sveltejs/svelte-virtual-list: ^3.0.1 => 3.0.1
    svelte: ^3.46.4 => 3.46.5

Severity
blocking an upgrade
Additional Information
No response

We need a reproduction to investigate this.

The issue can be replicated in this repo here
https://github.com/krr9/tempapp
The issue is not seen when the sveltekit version is changed to next.208

This is also still reproducible with the currently latest kit version, e.g. 1.0.0-next.338
It seems to happen because stream is a node built-in library that is attempted to be used in browser context, similar issue:  https://github.com/aws-amplify/amplify-js/issues/9639

@krr9 the code related to streaming has changed a lot recently. Could you let us know if you're still seeing this? If so, could you push an update to your reproduction to update it to the latest version of SvelteKit?

I just had a quick look at the repo. After upgrading to the latest version and adding a vite.config.js and adjusting app.html I don't see the mentioned error anymore. But there are other errors coming from libraries but they seem unrelated. Therefore closing this issue. If this error persists in some other form, please post a minimum reproducible here or in a new issue.


Which dropout type is used for flash attention?

I'm wondering which dropout type is utilised by the kernel version of flash attention. From the non flash implementation it looks like dropout is applied after softmax, so I assume this is the version used by the flash kernel?
However I just want to double check because other attention dropout implementations work by applying -inf to the dropped locations prior to softmax with some implementations also disabling dropout along the diagonal and/or reweighting the drop rate per row when operating in casual mode.
I'm asking because I want to ensure parity for the non flash version of my training code, and right now I'm throwing an error when dropout is enabled because I'm not sure which dropout implementation is used by the flash kernel.

The reference implementation is here: https://github.com/Dao-AILab/flash-attention/blob/320fb59487658f033f56711efd3d61b7c7a6f8f3/tests/test_flash_attn.py#L208
We apply dropout to the output of softmax.

Excellent, thank you for the response!


Enhanced Latin.findVowelSegment()

I noticed it had been centering over the wrong "u" in syllables such as "quus" in "antiquus", so I changed it to check whenever it finds a u, and to use the following letter instead, if that is also a vowel.
Also, I corrected some typos: diphthong was misspelled in just a few places, and exception was (consistently) misspelled in one variable name.

Looks good...would you just mind changing this.vowels[i] == 'u'  to this.vowels[i] === 'u'  before I merge?

No problem.  I have made the change.


Is it sensible to sum overlapping thread scopes?

Is your feature request related to a problem? Please describe.
While visualizing delays from an identical starting point - effectively overlapping each other - through scopes manually added to puffin::Stream, the resulting scopes get summed and show a prolonged track. This is an example registering the same 500ms child workload - starting at 0 - three times:

Likewise we have GPU workloads where the next command buffer starts running ahead of the previous one completing. Here too - albeit with different names - their entire track gets prolonged to fit every item on the line, even when it exceeds the parent Context `frame 0` Command buffer `2` parent scope despite setting explicit start and end timings for a scope.

(I take no responsibility for three different pipelines in the same frame having both a space, hyphen, and underscore :rofl:)
That's done by:
https://github.com/EmbarkStudios/puffin/blob/17d0429bcca5f8b398378918b38d109a4c1caf9d/puffin/src/merge.rs#L128-L133
This is somewhat related to GPU profiling in #59.
Describe the solution you'd like
I expected either a panic/Err() because of submitting invalid data through the puffin::global_reporter, and not initially knowing that - presumably - profiling submitted for "threads" (a CPU thread in the literal sense) is assumed to run serially. Ie. if the start of the next sibling scope lies before the end of the current, that should be an error?
Describe alternatives you've considered
It'd be great if puffin could somehow visualize these overlapping scopes, maybe a color or pattern to display overdraw? Displaying on multiple tracks is bound to be tricky, hard to see, and pretty much breaks the "flamegraph" concept. Perhaps a different waterfall view like Radeon Graphics Profiler could be considered? This may need a different kind of "profiling mode" to allow such kind of overlaps though.

I agree that returning an error here makes sense. I don't think puffin should return early though but instead let the user know the data is invalid after the fact.
A radeon like view makes sense as well. Definitely open for contributions for that even if its just for egui and not puffin_viewer!