feat(resource): upload pdf document (DSP-1776)

resolves DSP-1776

I am running DSP-APP locally using test server configuration. When I upload file, I do not see it once I save the changes. I have attached recording below. Also When I add resource label including -(e.g. file-test, it disables next button and gives me wrong error in red text below. If I remove -, it works fine.
Screen.Recording.2021-07-08.at.12.33.49.mov

Thanks @waychal for your comment. There are two things:
The resource instance form has a bug in the label: it does not allow to use special characters. For me it's not understandable, why the label is restricted this way. But it's another topic and has to be resolved in another task. This task is only the implementation of an upload form for documents and that leads me to the second point: The viewer for a document is not implemented yet and will be handled in a separate task.

I am running DSP-APP locally using test server configuration. When I upload file, I do not see it once I save the changes. I have attached recording below. Also When I add resource label including -(e.g. file-test, it disables next button and gives me wrong error in red text below. If I remove -, it works fine.
Screen.Recording.2021-07-08.at.12.33.49.mov

Thanks @waychal for your comment. There are two things:
The resource instance form has a bug in the label: it does not allow to use special characters. For me it's not understandable, why the label is restricted this way. But it's another topic and has to be resolved in another task. This task is only the implementation of an upload form for documents and that leads me to the second point: The viewer for a document is not implemented yet and will be handled in a separate task.

Ok. But then in this case, how can I test the functionality? How can I know that the file is actually uploaded? I would like to get at least some alert or console message saying that if it is successful or there is an error.

I am running DSP-APP locally using test server configuration. When I upload file, I do not see it once I save the changes. I have attached recording below. Also When I add resource label including -(e.g. file-test, it disables next button and gives me wrong error in red text below. If I remove -, it works fine.
Screen.Recording.2021-07-08.at.12.33.49.mov

Thanks @waychal for your comment. There are two things:
The resource instance form has a bug in the label: it does not allow to use special characters. For me it's not understandable, why the label is restricted this way. But it's another topic and has to be resolved in another task. This task is only the implementation of an upload form for documents and that leads me to the second point: The viewer for a document is not implemented yet and will be handled in a separate task.

Ok. But then in this case, how can I test the functionality? How can I know that the file is actually uploaded? I would like to get at least some alert or console message saying that if it is successful or there is an error.

I know this is a problem, but the upload is needed to start with the document viewer. You can have a look in the Network tab in browser's developer tools, if the API responses with the correct object and if this object has information about the file value. Additional it should be possible to open the pdf with sipi. But there, in some cases we have some permission problems. When you test it locally, you can check in finder if the file is in the sipi image folder dsp-api/sipi/images/[project-shortcode-folder]/. In this case the file upload was successful.

I am running DSP-APP locally using test server configuration. When I upload file, I do not see it once I save the changes. I have attached recording below. Also When I add resource label including -(e.g. file-test, it disables next button and gives me wrong error in red text below. If I remove -, it works fine.
Screen.Recording.2021-07-08.at.12.33.49.mov

Thanks @waychal for your comment. There are two things:
The resource instance form has a bug in the label: it does not allow to use special characters. For me it's not understandable, why the label is restricted this way. But it's another topic and has to be resolved in another task. This task is only the implementation of an upload form for documents and that leads me to the second point: The viewer for a document is not implemented yet and will be handled in a separate task.

Ok. But then in this case, how can I test the functionality? How can I know that the file is actually uploaded? I would like to get at least some alert or console message saying that if it is successful or there is an error.

I know this is a problem, but the upload is needed to start with the document viewer. You can have a look in the Network tab in browser's developer tools, if the API responses with the correct object and if this object has information about the file value. Additional it should be possible to open the pdf with sipi. But there, in some cases we have some permission problems. When you test it locally, you can check in finder if the file is in the sipi image folder dsp-api/sipi/images/[project-shortcode-folder]/. In this case the file upload was successful.

Ok. I do not have dsp-api running locally because of new MacBook processor. So I can not test it.
I can see the requests in network tab but I am not very sure about this.
For now I am approving this PR but it would be good if someone else also have a look at it.

I am running DSP-APP locally using test server configuration. When I upload file, I do not see it once I save the changes. I have attached recording below. Also When I add resource label including -(e.g. file-test, it disables next button and gives me wrong error in red text below. If I remove -, it works fine.
Screen.Recording.2021-07-08.at.12.33.49.mov

Thanks @waychal for your comment. There are two things:
The resource instance form has a bug in the label: it does not allow to use special characters. For me it's not understandable, why the label is restricted this way. But it's another topic and has to be resolved in another task. This task is only the implementation of an upload form for documents and that leads me to the second point: The viewer for a document is not implemented yet and will be handled in a separate task.

Ok. But then in this case, how can I test the functionality? How can I know that the file is actually uploaded? I would like to get at least some alert or console message saying that if it is successful or there is an error.

I know this is a problem, but the upload is needed to start with the document viewer. You can have a look in the Network tab in browser's developer tools, if the API responses with the correct object and if this object has information about the file value. Additional it should be possible to open the pdf with sipi. But there, in some cases we have some permission problems. When you test it locally, you can check in finder if the file is in the sipi image folder dsp-api/sipi/images/[project-shortcode-folder]/. In this case the file upload was successful.

Ok. I do not have dsp-api running locally because of new MacBook processor. So I can not test it.
I can see the requests in network tab but I am not very sure about this.
For now I am approving this PR but it would be good if someone else also have a look at it.

Sure. Thank you @waychal . I'm pretty sure that @mdelez will also have a look at it.


Footnotes & "--" feature

Hi,
I notice that ??? footnotes and "--" dynamic slides are not compatible. For now, I duplicate my slides.
Exemple
# title
- item 1
???
- footnotes 1
--

- item 2
???
- footnotes 2

Best regards.

Isn't this fixed already? It works for me.

@Vebryn Currently "footnotes 1" is displayed initially, and when the incremental slide is applied, showing "item 2", "footnotes 2" is also shown in the notes section. So both the contents and the notes are incrementally applied.
Live demo of your example: https://jsfiddle.net/5v4uf2ap/

I made a mistake with my explanation. It concerns only 2nd level of a list.
# title
- item 1

???
- footnotes 1

--

 - sub-item 1

???
- footnotes 2

WFM.

@Vebryn Can you close this issue if all is good?


Provide ORCID for editors in term request

We should make this a OBI policy for term editor, creator, etc. and out it on our web site documentation.
Being worked out in OMO. Waiting for this to be finalized. Still good to include in any case.

Discussed on 7/29 call
The decision in OMO group is that Dublin Core will be used -  terms should be used to represent contributor or creator via a full ORCID url.
OBI has used IAO convention so far.
This will be a hard shift for OBI. We'll wait to do this until it's more settled in the community so that we're sure of what the shift will be before we start doing anything.


Tags presented in cloud form?

It's not easy to scroll through all the tags.  Seeing what is available w/out scrolling would be nice.  A tag cloud?

Tags have been replaced by hashtags. Hence closing.


nixos/dotd: add option to emulate behavior of .d folders

Signed-off-by: lucasew<EMAIL_ADDRESS>Description of changes
Add module that implements the behavior of .d folders. It creates a named pipe on /etc/$name that when read gives the content of all files in /etc/name.d in sort order. It generates two services for each .d, one to do this kind of magic and another to restart the first one if any file in the .d folder changes. I am using rn with Nix to enable or disable groups of machines to be used as Nix remote builders. If the folder or the named pipe doesn't exist, it creates at runtime. If the module is disabled, the files and folders are maintained. Works out of the box. Just enable, apply and enjoy.

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Do we really need this? You nix example can be done via include or nix module system itself.

It does seems to me that this is a highly specific use case that makes more sense to be kept in a private config. I may be wrong here though.

This started as a need to enable or disable groups of machines as remote builders depending on where I am, without having to do a rebuild. It's for convenience and could be used for some other contexts. One can even create a service, like a cron job, that generates config files for software.

This started as a need to enable or disable groups of machines as remote builders depending on where I am, without having to do a rebuild. It's for convenience and could be used for some other contexts. One can even create a service, like a cron job, that generates config files for software.

Still, why this is specific for /etc/*.d directories? It is not like *.d directories has a special purpose. If the approach could be generalized maybe this could make this module more interesting, but also it is not that every program use FIFOs as a communication layer (there are different approaches to react to directory events, like inotify).
Also, couldn't you use systemd-tmpfiles instead to generate the directories? From what you remember you can trigger another service from it, so you don't need to create the directories by hand. But again, this still to be something highly specific for your config.

Now it works with any location of the system. It will only send data from files that are not hidden in sort order.
The only thing that I don't know how to solve reliably is to check if the key is an absolute path. Right now, tmpfiles gives a warning at activation time.
You can test there by adding the fetchurled nix module to imports, no need to build everything from that master based commit.

Seriously, I believe this is useless in many levels.

This PR seems very weird and un-Nix{OS,pkgs}-y to me too. I also have some code review gripes but that seems premature if we don't have a example usecase that makes sense, and (potentially) an RFC.

Moved to nixpkgs-brasil
https://github.com/nixosbrasil/nixpkgs-brasil/blob/master/nixos/dotd/default.nix


Mixins are not accounted when trying to hide Prelude

Problem
In one of the projects, we are trying to use mixins feature to hide the default Prelude module and provide our own, in overall this looks like
# package.yaml
depedencies:
  - name: base
    version: ">= 4.7 && < 5"
    mixin: [hiding (Prelude)]
  - morley-prelude

However, it looks like hiding Prelude does not work, because with ghcide I get the following error
Ambiguous module name ‘Prelude’:
  it was found in multiple packages:
  base-<IP_ADDRESS> morley-prelude-0.3.0

Reproduction
I can reproduce this in the Morley repository, commit e9a00b61bb.
It has morley-prelude package used as a custom prelude. When I open some of the depending packages, e.g. code/morley/src/Util/Text.hs file from morley package, I get the mentioned error for all modules.
There are other packages using morley-prelude where the problem reproduces, e.g. morley-ledgers has much less modules (in case that is helpful), but it appears in a different repository.
Side comments
Indeed, one of the options for us would be just not using mixins and instead use base-noprelude. We are going to apply this as a temporary workaround, though it would be nice if this feature is eventually supported.
I'm not sure how problematic this may be to fix, since it is a known issue that even stack ghci does not work with mixins properly, but would be nice to at least know your plans on this.

I'm not sure how problematic this may be to fix, since it is a known issue that even stack ghci does not work with mixins properly, but would be nice to at least know your plans on this.

This might be linked, since ghcide gets its flags by asking stack for them. Have you tried using a cabal cradle? Otherwise try hie-bios check SomeFile.hs, or running ghci with the flags returned by hie-bios dump.

I have some severe issues with making cabal work.
hie-bios check reports the same Ambiguous module name ‘Prelude’ ... error.
Tried hie-bios dump, though somehow it doesn't have such a command (using hie-bios version 0.5.1 compiled by GHC 8.8.3)

Sorry, I meant hie-bios flags.
However, hie-bios check not working means this is likely an upstream issue with the flags stack is telling us to use.

I think it could be hie-bios debug.
As @wz1000 commented stack repl does not work with mixin and hie-bios needs to call stack repl underneath to give build info to ghcide. stack issue is https://github.com/commercialhaskell/stack/issues/5077
So i am afraid that there is no much to do but use cabal ot not use mixins

hie-bios flags / debug mention -package-id=base-<IP_ADDRESS> among options without mentioning mixins, and if those flags are all the information provided by hie-bios for compilation, then apparently this is there the attempt to hide Prelude fails.
If there are other issues with hie-bios like the one you mentioned, that it needs stack repl, then things are even sadder.
I suppose I will report an issue in hie-bios then and close this issue until something changes upstream. Thanks for the quick reply!


Flamegraphs options not enabled despite default configure is set to true

Flame graphs seem to not be enabled, and when clicking flamegraphs on the simple dashboard view, no data is being shown.
Is there still a dependency for vector-pmda to enable this feature? I'm currently unable to find any official details/docs for enabling the flamegraphs feature
Tested on v2.0.0-beta.1

@itsdax yes, there is still a dependency for vector-pmda in order to enable this, and you'll also need to ensure you have the configuration flag enableFlamegraphs: true set in src/app/config.js at build time.
If the widget is not visible, it means you have not included it in the build. If the widget is visible but greyed out, it means that Vector did not detect the PMDA running on the target system.


1003 homepage redesing

What does this PR do?

Resolve #1003

Steps to test
Mobile:

Tablet:

Desktop:

Responsive:

LGTM


Respect CC variable in grpcio python build

if CC variable is set, this ends up testing cc binary, which may point
to gcc, but use $CC for compilation and still fail if CC=clang
Signed-off-by: Georgy Yakovlev<EMAIL_ADDRESS>
@nicolasnoble

ping, is there anything needed from me?
seems trivial.

friendly ping!

rebased for current master.


"chruby: unknown Ruby: ruby-3.1.2" was shown everytime launch terminal

While I'm following the steps of https://jekyllrb.com/docs/installation/macos/, I copied the comand (for several times)

echo "source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh" >> ~/.zshrc
echo "source $(brew --prefix)/opt/chruby/share/chruby/auto.sh" >> ~/.zshrc
echo "chruby ruby-3.1.2" >> ~/.zshrc
without noticing 3.1.2 should be 3.1.3 now.

Now my terminal starts with chruby: unknown Ruby: ruby-3.1.2(for several times) everytime I opens terminal, I have no idea how to get rid of it.
I'm using MacOS Monterey 12.5, chruby installed.
I'm new to coding, sorry if this sounds silly!

You will either need to make sure ruby-3.1.2 is installed with ruby-install ruby-3.1.2, or update your ~/.zshrc to use chruby ruby-3.1 which will switch to any 3.1 ruby version, or just use jekyll with system ruby. Most all Linux and macOS systems should have a relatively up-to-date version of ruby available, so installing/using a specific version of ruby and using chruby/rbenv/rvm is not really necessary.

Thanks for answering!
My terminal is using ruby-3.1.3 already, however, the terminal still pops up chruby: unknown Ruby: ruby-3.1.2 everytime I lauch terminal.
I have tried numerous way but couldn’t remove them, would you like to shed a light on this?
Thanks!

@toeverrise the error is probably caused by the directions telling you to add chruby ruby-3.1.2 to your ~/.zshrb file. Simply edit your ~/.zshrc file and change ruby-3.1.2 to either ruby-3.1.3 or ruby-3.1 so that chruby selects ruby-3.1.3 which should be installed.

I fixed it!!
Thanks so much for your patience ;))


Query Arc<RWLock<_>> without cloning

Hi all, thanks for the great library :)
Is there a way I can resolve a FieldResult to a reference when my state is contained in a Arc<RWLock<_>>? All the examples I could find either used immutable state or cloned the internal state.
A concrete example:
#[derive(Clone)]
pub struct Shared(pub Arc<RwLock<State>>);

#[derive(Clone)]
pub struct State {
    pub substate: HashMap<String, SubState>,
}

#[derive(Clone, GraphQLObject)]
pub struct SubState {
    a: String,
    b: String,
    // ...
}

#[derive(Clone)]
pub struct Context;

#[graphql_object(context = Context)]
impl State {
    fn substate(&self, k: String) -> FieldResult<&SubState> {
        Ok(self.substate.get(&k).ok_or("invalid key")?)
    }
}

I want to build a RootNode<'static, State, EmptyMutation<Context>, EmptySubscription<Context>>, but I can't get a State from a Arc<RwLock<State>>.
Conceptually, I'd like to do this by taking a read lock on every query.
Any suggestions would be much appreciated!

@omegablitz

Conceptually, I'd like to do this by taking a read lock on every query.

This requires a RwLockReadGuard<'_, T> to be passed out of the function scope and implement GraphQLValue/GraphQLType (and similar) traits. We unlikely will support all guard types out-of-the-box in juniper, so you should go with a newtype:
pub struct MyReadGuard<'e, T>(pub RwLockReadGuard<'e, T>);

impl<'e, S, T> GraphQLType<S> for MyReadGuard<'e, T>
where
    T: GraphQLType<S> + ?Sized,
    S: ScalarValue,
{
    fn name(info: &Self::TypeInfo) -> Option<&str> {
        T::name(info)
    }

    fn meta<'r>(info: &Self::TypeInfo, registry: &mut Registry<'r, S>) -> MetaType<'r, S>
    where
        S: 'r,
    {
        T::meta(info, registry)
    }
}

impl<'e, S, T> GraphQLValue<S> for MyReadGuard<'e, T>
where
    S: ScalarValue,
    T: GraphQLValue<S> + ?Sized,
{
    type Context = T::Context;
    type TypeInfo = T::TypeInfo;

    fn type_name<'i>(&self, info: &'i Self::TypeInfo) -> Option<&'i str> {
        (**self).type_name(info)
    }

    fn resolve_into_type(
        &self,
        info: &Self::TypeInfo,
        name: &str,
        selection_set: Option<&[Selection<S>]>,
        executor: &Executor<Self::Context, S>,
    ) -> ExecutionResult<S> {
        (**self).resolve_into_type(info, name, selection_set, executor)
    }

    fn resolve_field(
        &self,
        info: &Self::TypeInfo,
        field: &str,
        args: &Arguments<S>,
        executor: &Executor<Self::Context, S>,
    ) -> ExecutionResult<S> {
        (**self).resolve_field(info, field, args, executor)
    }

    fn resolve(
        &self,
        info: &Self::TypeInfo,
        selection_set: Option<&[Selection<S>]>,
        executor: &Executor<Self::Context, S>,
    ) -> ExecutionResult<S> {
        (**self).resolve(info, selection_set, executor)
    }
}

impl<'e, S, T> GraphQLValueAsync<S> for MyReadGuard<'e, T>
where
    T: GraphQLValueAsync<S> + ?Sized,
    T::TypeInfo: Sync,
    T::Context: Sync,
    S: ScalarValue + Send + Sync,
{
    fn resolve_field_async<'b>(
        &'b self,
        info: &'b Self::TypeInfo,
        field_name: &'b str,
        arguments: &'b Arguments<S>,
        executor: &'b Executor<Self::Context, S>,
    ) -> BoxFuture<'b, ExecutionResult<S>> {
        (**self).resolve_field_async(info, field_name, arguments, executor)
    }

    fn resolve_async<'a>(
        &'a self,
        info: &'a Self::TypeInfo,
        selection_set: Option<&'a [Selection<S>]>,
        executor: &'a Executor<Self::Context, S>,
    ) -> BoxFuture<'a, ExecutionResult<S>> {
        (**self).resolve_async(info, selection_set, executor)
    }
}

impl<'e, T, S> ToInputValue<S> for MyReadGuard<'e, T>
where
    S: fmt::Debug,
    T: ToInputValue<S>,
{
    fn to_input_value(&self) -> InputValue<S> {
        (**self).to_input_value()
    }
}

impl<'e, S, T> IsOutputType<S> for MyReadGuard<'e, T>
where
    T: IsOutputType<S> + ?Sized,
    S: ScalarValue,
{
    #[inline]
    fn mark() {
        T::mark()
    }
}

See details in pointers and markers implementations.
After that you will be able to do the following:
#[graphql_object(context = Context)]
impl State {
    fn substate(&self, k: String) -> FieldResult<MyReadGuard<'e, State>> {
        Ok(MyReadGuard(self.substate.get(&k).ok_or("invalid key")?.read()))
    }
}

Thanks for the quick response!
Will this still work given that std::sync::RwLockReadGuard is !Send? Both the pointers and markers implementations seem to work on Send types, unless I'm missing something.
I'm getting the following error:
error[E0277]: `std::sync::RwLockReadGuard<'_, State>` cannot be sent between threads safely
   --> src/main.rs:147:1
    |
147 | #[graphql_object]
    | ^^^^^^^^^^^^^^^^^ `std::sync::RwLockReadGuard<'_, State>` cannot be sent between threads safely
    |
   ::: /Users/aashish.welling/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/library/core/src/future/mod.rs:61:43
    |
61  | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
    |                                           ------------------------------- within this `impl warp::Future`
    |
    = help: within `impl warp::Future`, the trait `std::marker::Send` is not implemented for `std::sync::RwLockReadGuard<'_, State>`
note: required because it appears within the type `MyReadGuard<'_, State>`
   --> src/main.rs:1:12
    |
1   | pub struct MyReadGuard<'e, T: ?Sized>(pub RwLockReadGuard<'e, T>);
    |            ^^^^^^^^^^^
    = note: required because it appears within the type `(&(), MyReadGuard<'_, State>)`
    = note: required because it appears within the type `std::option::Option<(&(), MyReadGuard<'_, State>)>`
    = note: required because it appears within the type `Result<std::option::Option<(&(), MyReadGuard<'_, State>)>, FieldError<__S>>`
    = note: required because it appears within the type `[static generator@src/main.rs:147:1: 147:18 _]`
    = note: required because it appears within the type `from_generator::GenFuture<[static generator@src/main.rs:147:1: 147:18 _]>`
    = note: required because it appears within the type `impl warp::Future`
    = note: required by `juniper::futures::FutureExt::boxed`
    = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)

When I try to derive on:
#[graphql_object]
impl Shared {
    fn state(&self) -> FieldResult<MyReadGuard<State>> {
        Ok(MyReadGuard(self.0.read().unwrap()))
    }
}

@omegablitz whoops! Haven't even thought about that!
No, the Send requirement is hard and is not something that can be lifted at the moment due to Rust type system restrictions: trait objects are not transparent over Send/Sync, but we should use trait object for #[async_trait]s. This possibly can be lifted in future when GATs and real async traits (without boxing) will be landed into stable Rust.
However, if you DO use single-threaded runtime like actix-web. You may overcome this by additionally wraping your guard into SendWrapper:
pub struct MyReadGuard<'e, T>(pub SendWrapper<RwLockReadGuard<'e, T>>);

This will make your guard Send and due to the fact that it won't be passed to another thread in reality, this would work, without breaking invariants of std::sync::RwLockReadGuard (we only stisfy the type checker here).
However, if you're using multi-threaded tokio runtime (or async_std) with work stealing, this is impossible by design, because in .await points the current async task can really be passed to another thread, which totally breaks the invariant of std::sync::RwLockReadGuard.
Another way to try tokio::sync::RwLock, because its RwLockReadGuard is Send and it's much better in read/write fairness handling. Additionally, you won't accidentially block your async runtime as you may with std::sync::RwLock.

Thanks so much, I just went with a tokio::sync::RwLock and that worked beautifully :)


Fork List (with enhancements and PR)

Since this plugin's development is on hold, please post here what are the Fork you are using and reason.
-- fork:
-- reason?:

fork: https://github.com/MZachmann/flutter_blue
reason: It has updated to last PR, can control Bluetooth and can read RSSI from peripheral

please read this: https://github.com/pauldemarco/flutter_blue/issues/929#issuecomment-927268881

@peekpt can you please close this issue?

@boskokg I reopen the issue because I found  MZachmann's fork differences:

mtuRequest returns the MTU
turnOn and turnOff Bluetooth on Android

I will add them today. Please continue writing there, not here so others can catch the entire discussion in one place.

@boskokg  Ok thank you for your job. I will close this


[WIP] 0.18: Merge master and port multipart

This is a merge of master and an attempt at porting multipart to fs2-0.10.
It has the nasty workaround for AttributeKeys.
Currently, MultipartSpec doesn't terminate. I haven't been able to find out why. Specifically, unsafeRunSync on decoded in encodeAndDecodeMultipartWithBinaryFormData never returns.

It's basically only the last commit that's interesting.

The last two. I forgot to actually push the AttributeKey changes.
There are also some intermittent failures in AsyncHttpClientSpec that I haven't been able to figure out.

I think the unspeakable things done to AttributeKey are about the best we can do.
The intermittent failures in AsyncHttpClientSpec send a chill down my spine.  Do you have an example of how they fail?

Not on that computer now, but either "POST a normal body" times out, "POST a chunked body" fails with an empty body or both of them fails.

I suspect something in the transition from Strategy to ExecutionContext, but I'm not yet sure what.

MultipartSpec still hangs, and AHC still has intermittent issues.
It seems that these issues stem from the fs2-reactive-streams upstream, since I've seen something like that other places as well.

I was just sitting down to finish that.  Nice work!

MultipartSpec goes into an infinite loop in the decoder run on line 122.

It's not infinite.  It just takes 6-7 minutes, on either Travis or my laptop. 😖

Confirmed that async-http-client is flaky with or without that slow multipart test.

The failing tests are exactly the tests that use the ReactiveStreamsBodyGenerator, which is fine in 0.17.  So yeah: I suspect this is a problem with fs2-reactive-0.2.

It's getting stuck here.  I don't know why rap is winning the race just to tell us we don't have more requests queued up.

zainab-ali/fs2-reactive-streams#27 fixes the async-http-client.

For the sake of our build and the community build, we should consider a smaller multipart binary until we have time to optimize that.

I updated fs2-reactive-streams to the new version so the AHC stuff works now.
I updated some code that didn't work with the new version of jawn brought in by the update to jawn-fs2 and updated jawn-json4s.
However, circe still depends on the older version of jawn, so the circe module doesn't compile currently.
circe master is on both cats-1.0-MF and jawn-0.11, so a new release of that should fix those issues.
How do we feel about merging this in so I can start working on getting the newer updates from master merged in?

If we hold back 9da3db2, does the build pass?  This is already huge, but I'm reluctant to merge red over green.  I'd suggest we temporarily disable circe, but that has fallout on examples and tuts.

No, that commit only fixes stuff introduced by the bump in jawn from updating jawn-fs2 in https://github.com/http4s/http4s/pull/1306/commits/737cb69fae2528112a85cd03bb1135ad731d6c69.
New release of circe seems to be very close though.

We're going to break the community build again if we merge this in its current state.
Other than this PR getting even bigger, is there any reason we can't do the master merge to here while we wait on the circe release?

That's fine by me. I'll do the work in another branch and PR to the origin of this PR, if that is ok.
Might be a bit busy over the weekend though, so don't expect too much :)
Once 0.18 is up to speed with master, I'd like to start looking at getting scalafmt in.

:+1:

Non Termination Issue... Tests looked good, but no ouput afterwards meant something didn't end cleanly.


added libcpuid

Add<EMAIL_ADDRESS>

Hello @bazelbuild/bcr-maintainers, modules without existing maintainers (libcpuid) have been updated in this PR. Please review the changes.


[Map] DM-BULL_Tropico

Hash: 0e2f0ba6a30513857394d4ffb077422637764591
Current name: DM-BULL_Tropico
Need to add 	BullDozer - Armand Volckaert  to the Bulldozer alias file
Pity people couldn't be consistent in the names they used!

Indeed!
Added.


[Event Request] Report 499 "Delete Invoiced Purch. Orders" – New Event “OnAfterPurchLineDelete”

Could we please have a new publisher “OnAfterPurchLineDelete” in Function “OnAfterGetRecord”, Report 499 "Delete Invoiced Purch. Orders"?

            trigger OnAfterGetRecord()
            var
                ReservePurchLine: Codeunit "Purch. Line-Reserve";
                ApprovalsMgmt: Codeunit "Approvals Mgmt.";
                PostPurchDelete: Codeunit "PostPurch-Delete";
                IsHandled: Boolean;
            begin
                IsHandled := false;
                OnBeforePurchaseHeaderOnAfterGetRecord("Purchase Header", IsHandled);
…
                                            OnBeforePurchLineDelete(PurchLine);
                                            PurchLine.Delete();
*** start new code ***
                                            OnAfterPurchLineDelete(PurchLine);
*** stop new code ***
                                        end else
                                            AllLinesDeleted := false;
                                    until PurchLine.Next = 0;
…
*** start new code ***
    [IntegrationEvent(false, false)]
    local procedure OnAfterPurchLineDelete(var PurchLine: Record "Purchase Line")
    begin
    end;
*** stop new code ***

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


No SSR when bots when don't include Accept: text/html

We're seeing issues with facebooks bot not being able to scrape pages, it's receiving 404 Not Found for all pages. Tracked it down to fusion looking for text/html header to decide to render SSR. Based on the comments I know this is intended functionality.
https://github.com/fusionjs/fusion-core/blob/b5fd15316d075d690f9131d7225467708ac89f90/src/plugins/ssr.js#L16-L25
Any way we can override for certain requests?

Found solve in readme :)
https://github.com/fusionjs/fusion-core#ssrdeciderenhancer


0.10.4 patch release (mostly to fix nightly compatibility)

Fixed associated item ambiguity errors in nightly.
Preparing for 0.10.4 patch release.

Whatever, the CI errors in here are from trying to compile a previous patch release to test ABI compatibility.
I'll just publish this.


Handle lifecycle events ourselves

Currently we use uber's Autodispose to auto-detach the view model from the view in onPause/onStop.
We should do this ourselves to drop the extra dependency and make orbit more portable for the future.

Fixed in #40


config() returns undefined for some values

Using config('textSizes.2x1') returns undefined but config('textSizes.xs') works fine.
What I'm wrong?

Seems like a typo, the key should be 2xl as 2XL, not 2x1 ("two x one").


Use sane hosting

I can see this is on some random homebrew server instead of e.g. the free infrastructure provided by GitHub Pages, or the incredibly cost-effective static file hosting on something like Google Cloud / Azure / AWS with CloudFlare free tier caching in front.
Nginx 1.17.10 is a year old, and likely also uses old OpenSSL with known vulnerabilities. If your hosting was sane, this error would never be seen by anyone, and software version numbers would not be leaking, and there would be less cost and effort involved with hosting it.

If you were using the docker image from the Dockerfile we should see a different version number. Also it's still got a vulnerable OpenSSL (and other things): https://snyk.io/test/docker/nginx:1.19.2-alpine

This should definitely be fixed, however even though we are dealing with a static site web page, we are also using the hosting to compute data necessary for the charts, so the proposed solution is not suitable for our cause. We could however do computation on a different server, current solution is used mainly due to lack of time.
Currently website is on a VPS and does not use docker, we are considering moving to the docker though.

You can use Travis-CI, GitHub workflows, Google Cloud Build, etc. to run custom scripts to do the calculations during build and then deploy the new static content. Also just configuring CloudFlare free tier properly should probably allow the site to operate faster and more reliably.

Travis-CI is free for OSS projects and such, can build your things with your Dockerfiles, extract the built files, push to GitHub Pages or any other static file hosting, and supports cronjobs.

https://docs.travis-ci.com/user/cron-jobs/

Seems very similar but more granular control over the time it runs is possible on GitHub Actions https://dev.to/mercury/schedule-tasks-using-github-actions-3g52

I had a brief look at it before, i will invest some more time into it. However one of the issues is that the computation is pretty RAM heavy, due to large JSON files. In general i agree this is a preferred solution as it is simpler to maintain and needs less resources.
In general there are several things needed for this project right now, one of the things is a way of handling broken or unexpected data, which currently is the reason for the error.

The correct solution for that should be that the builds break and no updates get issued, instead of something breaking that gives an Nginx 500 error - and this is likely not caused by unexpected input data, or you've done some really funky Nginx configuration.

it is, the node build process includes building data step, which is not the best, this is something of a legacy here. It fails due to broken data.json. So this is due npm failing in the end.
Currently the build does not catch the warning that python is issuing, well this is not pretty, however so far the issue arised really rarely, currently TEHIK is upgrading their API and is really unstable sadly. so this is a time to upgrade the process for sure.

set -exu - makes your script terminate when any part of it triggers an error, including Python data update.

Solved via https://github.com/okestonia/koroonakaart/pull/245 - automatic GitHub pages deployment example exists, slapping a cloudflare cache on front, with maybe a worker or similar to add extra headers if you want, is going to result in a performant and stable hosting setup


Documentation: anymatch

Description
The document  for anymatch is basically useless. The Brunch docs point to their documentation repeatedly, but offer no real explanation about how the configuration objects relate to anymatch. Super duper frunstrating.
Brunch might have better uptake if they didn't link to anymatch repo for explanation.

Hi, thanks for reaching out! I'll be glad to help you.
Would you like to see a new section in docs? Or would it be better to write better docs for anymatch itself?

Hello there, @mryarbles. Thanks for the tip.
Fixed by https://github.com/brunch/brunch.github.io/pull/210.


“Open Microsoft Edge and verify that the strings defined for the locale appear as expected”

Hi there,
Is it me or there seems to be a bug that prevents the strings defined for the locale to appear as expected?
I add a language, set it as default, log out, log back in, the locale is applied across the system, including Edge.
However, the locale is not applied to the extension.
Tried disabling and enabling the extension, restarting the browser – it doesn't help.
However, uninstalling and installing extension fixes it.
The extension preserves the locale it was installed in.
Tried both, loading extension from a folder and sideloading the appx.
And even if I change the locale a few times, log out and log back each time, the original locale is still preserved.
Microsoft Edge 42.17134.1.0

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

ID: 38d01093-c84f-f986-774b-33fccccf4eb8
Version Independent ID: 2505d179-2f4b-92f6-2acf-d89f34ace911
Content: Extensions - Internationalization - Microsoft Edge Development
Content Source: microsoft-edge/extensions/guides/internationalization.md
Product: microsoft-edge
GitHub Login: @abbycar
Microsoft Alias: abigailc

Hmm... thanks @PoziWorld, did you check to ensure that there aren't any hardcoded URLs in the extension code?  I'm not sure of the answer to this... @balajikris can you help?

@mattwojo, there are no hardcoded URLs.
It works fine in Chrome, Firefox, Opera, and Yandex.Browser.

Update from @balajikris -- we were able to repro the issue and logged a bug to fix it. Closing the thread here, as this is a confirmed product (not documentation) bug.


fix: allow interception for all requests

When you mark it as ready for review I'll take another look

I expect CI to fail. Only 2 expectations were updated, it should have been 3.

I remember running ./tools/runWPTall.sh. Maybe there was some issue let me try again.

@thiagowfx I can't seem to run Mapper with ChromeDriver locally, can you check if you can on this PR?

Ran tools/runWptAll.sh and pushed.

I cannot easily see what has changed since the last commit but, assuming the tests pass, LGTM


-1 Packages in transit

In Transit shows -1 after deliveries are completed due to a new UPS subject line.

FEDEX is also using "Your package is on its way" when something headed to your house, but not being delivered on that day.  Seems like that would fall under in transit.  I couldn't tell in sensor.py where that should go.

Yes, this would be added to the class FEDEX_Delivering(Entity)


We are now on 0.26 operator and use 3.0 of Apache Kafka

Signed-off-by: Matthias Wessendorf<EMAIL_ADDRESS>As per title, and here are the PRs:

https://github.com/knative-sandbox/eventing-kafka/pull/1021
https://github.com/knative-sandbox/eventing-kafka/pull/1023

/assign @aliok


What to say to a user who successfully logs in, but is not assigned to any countries or programs

This is an extension of #1341 -- a scenario we overlooked.
Affects:
People who have Tola user accounts and can successfully log in, but who are not assigned to any programs, and who do not have access (direct via Accessible Countries or indirect via Programs) to any Country pages.
Acceptance criteria

[ ] 1. I am taken to the page similar to the one described in Scenario 2 of #1341. It says:

No available countries
You do not have permission to view any countries.
and/or
No available programs
You do not have permission to view any programs.
followed by (ideally a single time, not repeated twice on one page)
You can request permission from your TolaData administrator. You can also reach the TolaData team by using the feedback form.
The phrase "feedback form" should be linked to https://docs.google.com/forms/d/e/1FAIpQLSclm2PAT9TJ9q23TT6YWQg6hj3EndUAdyF5k6kvNJHu6njNtw/viewform

[ ] 2. I am taken to that page when I have no access to programs or countries, regardless of whether I am:

[ ] 2.1. A user logging in via Gmail.

[ ] 2.2. A user logging in with Django usernames and passwords.

[ ] 2.3. A user logging in via Mercy Corps emails (definitely an edge case, but possible)

Housekeeping

[ ]  Unit test/s written wherever applicable
[ ]  i18n tags included wherever applicable
[ ]  Functionality is accessible to people using screen readers

Because there are two separate conditions here (country access and program access), it might be easier to have a custom message in the case of either no active countries or no active programs. For example:
User with access to no countries or programs:

User with access to an inactive program has implicit access to a country but not to any programs:

@axoplasm I updated the original ticket with some suggested language, and added a link to the feedback form, which I'd left out.

This is more complex than I thought. The conditions we can (trivially) test for are (paraphrasing)
“User has an active country”
“Active” in this context means “is the country that I should show for the user’s homepage.” A user with access to no countries implicitly has no active country.
There is an extreme edge here where a user with access to some country nonetheless has no “active” country for the purposes of choosing a homepage. I doubt anyone will encounter this edge. So the most likely scenario is that the user has access to no programs
“Active country has active programs”
“Active” in this context means “programs in the given country that have status: active.”
This is a common case for countries with no active programs. So we can't put a “you don't have access” message on this condition, or imply that the user is in any way responsible for the fact that we can't draw a list of programs. Sticking with “no active programs” is probably the most accurate description of this state.

Here’s where we landed on this. We test the entire homepage on the condition of “User has an active country.” We’ll disregard the extreme edge mentioned above. If I don’t have an active country, I see:

You do not have permission to view any programs. You can request permission from your TolaData administrator.
You can also reach the TolaData team by using the feedback form.

QA - Verified

Confirmed, here is the page with no country/program access:


Watch_Dogs, Watch_Dogs 2, 3d gta trilogy and some other games

WD and WD2 do not have download buttons, although hacked versions of these games have long been on the Internet
3D GTA trilogy (original, not deffective edition) just does not appear in the search
not only these games has that issue. The Forest, Source engine games, and... I don't know how many other games have this issue

I'm going to assume you didn't read the README


First approach for bevy_graph

Objective
First approach for bevy_graph from https://github.com/bevyengine/bevy/discussions/6719.
Tasks

[x] Add all graphs from @maniwani in https://github.com/bevyengine/bevy/discussions/6719#discussioncomment-4199393

[x] Simple

[x] SimpleListGraph
[x] SimpleMapGraph
[ ] ~maniwani's SimpleLinkedListGraph~ (will do later)
[ ] ~SimpleMatrixGraph~ (will do later)

[x] Multi

[x] MultiListGraph
[x] MultiMapGraph
[ ] ~maniwani's MultiLinkedListGraph~ (will do later)
[ ] ~MultiMatrixGraph~ (will do later)

[x] Directed and Undirected Edges
[x] Algos

[x] BFS
[x] DFS

[x] Tests
[x] Documentation
[ ] Benches
[ ] Think and talk more about API with the contributors who need them
[ ] Try to use bevy_graph where possible already
[ ] Implement all other features requested from https://github.com/bevyengine/bevy/discussions/6719

I don't have much experience with graphs but i wanted to learn them so when you want to give feedback or help, I'll be happy 😅

@cart could we get a A-Pointers and A-Graph tag? Those areas are reliably missing area labels and it would be helpful for filtering.

The first part of the PR is done 🥳🪩🎉🪅
The basic graph implementation with tests and basic algorythms is working :) (and I'm pround of me).
But there are some things I want to be taken for this PR before it gets signed as S-Ready-For-Final-Review:

Removing nodes currently uses swap_remove for Vecs. everywhere this is used i added a note: // TODO: can we have a remove_edges function? and because I don't have much experience with performance etc. I would like the opinion of others which would be the preferred way.
There are all over the code some // TODO: comments where I just wasn't able to code the exact thing I wanted to have. That's why i left them there and hoping that others will help me "solving" those.
Documentation is sparse. I am not a book writer. If you think a documentation isn't well enough, mark it or just make a pull-request for it (goes for everything else on this list too ^^)
Currently, on directed graphs a node doesn't know if there is a node which is conntected to it. Should i add this opportunity? I saw petgraph has a similar API for this.
The people here at bevy who currently are using graphs: It would be great if you were already trying to implement this graph or just look at the currently existing API and contribute what is missing / what could be made better.
A review from performance "junkies" (i have @james7132 in mind, already self-requested him): would be cool if you would visit the code and tell me / contribute what is possible to get out for performance 😄
If there is any code which isn't writting perfect, just mark it as a Request Change and give me a hint. And i'll learn about it 😉

I hope that I have done some helping work for the bevy team with this and looking forward for feedback and more contributions 😁

Try to use bevy_graph where possible already

I definitely would like to do this on other small PRs to make sure that those changes get the review they need :) Biasing towards merging this relatively quickly given the complexity, and then revising the API as we see it in practice.

I was expecting them in smaller PRs but i just wanna know what API they were missing ^^. But that sound for me like a good idea 👍

@alice-i-cecile that should be all 😁

Nice job! It's very cool that you're taking this on even while learning graph theory as you go (and also much appreciated).
Here are my suggestions from a first pass:
* I would remove the `impl_graph` macro. It makes things harder to read.

You shouldn't need two impls for each method. Directedness doesn't change them much. I would just write one impl for each method and put an if DIRECTED { ... }, etc. inside it if necessary. The bool is a compile-time constant, so those branches will be optimized out.
* I would remove the BFS and DFS methods from the `Graph` trait.

Personally, I don't think we need trait methods for algorithms. IMO it's fine if all algorithms are constructed like Bfs::new(&graph). But if you disagree, I would write separate traits for them and blanket implement them for types that implement the appropriate graph trait.
* Inside `graphs`, I would flip things so the modules are `map`/`list`/`matrix` and their files are `simple`, `multi`, etc.

You're welcome to ignore this one. It's just my preference.
I'm probably going to be pretty nitpicky about the graph API since it's my biggest complaint about petgraph and main motivation for wanting bevy_graph, so I've written this gist to list the traits and methods I think bevy_graph should have.
I'm not gonna be too picky about the names, and it might be possible to use generic iterators instead of associated types (or we can improve it once TAIT stabilizes), but those should cover the needs of most algorithms and plugins.

ok that gist is pretty interesting. ill probably still leave my thing with edges_between because when you have a method where its not important if its a simple or multi graph it can just use edges_between which will return a iter::once over the edge if its a simple graph.

Welp.. looks like the 2nd attempt of bevy_graph is done know 💀
But i may have lots of bugs and thinking mistakes in there. I would appreciate if all of you genius bevy people would try to see all the mistakes 🙈. Also the rewrite helped me a lot with documenting from the first line and making everything easy and simple and having 0-alloc iterators :D I also got a nice interface that all of the nodes / edges iters normally yield for example EdgeRef but you can get the EdgeIdx iter by just calling .into_inner(). (i think thats quite nice).
Also when merging we may want A-Graph and A-Pointers from @cart as suggested by @alice-i-cecile .
Im really hyped to get this PR nice to fit for the bevy community and devs 😀

and i want sleep 😖

I've added A-Graph and A-Pointers!

YES! 😩😭😂 All things fixed and tests are running
Now review review review (but pleassssse don't let me change anything in the iterator section.. they are horrible but please let me not die in this PR 😖)

I'll probably leave the Iterators as they are for this PR. I have a good idea of how i could make the Iterators wayyyyy cleaner and simpler but I'll safe that for a follow up PR and also ill wait with the followup pr for reviews on this pr here. I dont want to start there while changing thousands of lines of code in parallel.

What about this PR now?

Sorry for the delay here. This is a very big chunk of code and it doesn't unlock any immediate new Bevy features, so it has been hard to prioritize (and I've been extremely focused on getting the bevy asset rework MVP out).
That being said, having a go-to graph library for bevy is an important investment in the future. I do want to get this reviewed and merged in the near future, but I'll personally need at least another week or two.

Sorry for the delay here. This is a very big chunk of code and it doesn't unlock any immediate new Bevy features, so it has been hard to prioritize (and I've been extremely focused on getting the bevy asset rework MVP out).
That being said, having a go-to graph library for bevy is an important investment in the future. I do want to get this reviewed and merged in the near future, but I'll personally need at least another week or two.

I understand. Bevy asset rework sounds interesting :o will it also have preconverting to other formats which are easier?

I understand. Bevy asset rework sounds interesting :o will it also have preconverting to other formats which are easier?

Yup it will enable writing asset loaders that do this!

Hey, I'm quite keen for this feature, is there anything I could do to help or should it wait until this PR has been accepted?

Hey, I'm quite keen for this feature, is there anything I could do to help or should it wait until this PR has been accepted?

The base PR is pretty much done now. It's a little older code, maybe there are some things that are now safe to do. Also I'm not 100% about some unsafe things. So reviewing the unsafe things and testing would be helpful 😄

So im quite happy now about this PR but since the from @cart mentioned aaset rework isn't done yet thus it didn't manage to get into 0.11 I think this will get delayed again, right?

@dmyyy, I'd be interested in your opinions on this proposed API :)

@dmyyy, I'd be interested in your opinions on this proposed API :)

I'm working on graph related stuff in Bevy using petgraph - I'll see if I can dogfood some of this work.

I'll be reviewing bits and pieces here and there as I integrate this with my project (so it might take me a while to get through everything)

I'm curious about the rational for using SlotMap over HashMap/IndexMap (like in petgraph). I found an interesting github issue here from a polygonal mesh processing crate.
The TLDR is that they assumed SlotMapwould be faster than HashMap for their graph implementation but after benchmarking found AHash HashMap to be ~25% faster than SlotMap. We can allow using different hashes if we need cryptographically secure hashes. They go on to list several reasons why HashMaps are more flexible and might be easier to work with.

I'm curious about the rational for using SlotMap over HashMap/IndexMap (like in the petgraph GraphMap implementation). I found an interesting github issue here from a polygonal mesh processing crate.
The TLDR is that they assumed SlotMap would be faster than HashMap for their graph storage but after benchmarking found AHash HashMap to be ~25% faster than SlotMap. We can allow using different hashes if we need cryptographically secure hashes. They go on to list several reasons why HashMaps are more flexible and might be easier to work with. I'm partial to what IndexMap promises (fast iteration, high density/low space overhead) - seems like a good fit for a game engine.

@dmyyy the question is how this will be implemented. I need something for nodes and edges which works as a key, is persistent, fast, and is unique. I don't think HashMap/IndexMap works here, because that would be indexed by either the hash of e.g. the node (but what if i want 2 nodes with the value '42'?) or the index, which could move when adding / removing. (gotta say i never worked with IndexMap, thats just what i got after reading the main doc page).

I need something for nodes and edges which works as a key, is persistent, fast, and is unique.

The solution petgraph uses is forcing the node weight N to be the key (implement Hash + Eq) and having it be Copy. This is what it looks like. nodes stores all the neighbors of the current Node.
#[derive(Clone)]
pub struct GraphMap<N, E, Ty> {
    nodes: IndexMap<N, Vec<(N, CompactDirection)>>,
    edges: IndexMap<(N, N), E>,
    ty: PhantomData<Ty>,
}

The downside is node weights have to be primitive which isn't always the case. We can do something like this (looks like what you have today but with HashMap instead of SlotMap).
#[derive(Clone)]
pub struct GraphMap<N, E, Ty> {
    nodes: IndexMap<NodeIdx, N>
    edges: IndexMap<(NodeIdx, NodeIdx), E>,
    neighbors: IndexMap<NodeIdx, Vec<(NodeIdx, Direction)>>,
}

I need something for nodes and edges which works as a key, is persistent, fast, and is unique.

The solution petgraph uses is forcing the node weight N to be the key (implement Hash + Eq) and having it be Copy. This is what it looks like. nodes stores all the neighbors of the current Node.
#[derive(Clone)]
pub struct GraphMap<N, E, Ty> {
    nodes: IndexMap<N, Vec<(N, CompactDirection)>>,
    edges: IndexMap<(N, N), E>,
    ty: PhantomData<Ty>,
}

The downside is node weights have to be primitive which isn't always the case. We can do something like this (looks like what you have today but with HashMap instead of SlotMap).
#[derive(Clone)]
pub struct GraphMap<N, E, Ty> {
    nodes: IndexMap<NodeIdx, N>
    edges: IndexMap<(NodeIdx, NodeIdx), E>,
    neighbors: IndexMap<NodeIdx, Vec<(NodeIdx, Direction)>>,
}

I've looked through quite a bit of this pr - the code quality looks good but I have a couple concerns about the direction of this feature.
I'm a little bit worried about the scope of this pr - I've read through the issue and found a lot of discussion about different graph data structures that exist (list, map, matrix, multi, hyper etc.). I feel like the focus shouldn't be on implementing everything under the sun that's tangentially related to graph theory (there's a lot).
The problem is there isn't an immediate need tied to this work right now. I definitely want something that's nicer to use than petgraph but I'm not sure if it's the right move to merge things that we "might" need in the future (referring to multi graphs) without a clear use case they will be used for (where work for that feature has at the very least started design/development).
Reading through other comments in the issue I wonder if we even want a generic graph library. I would love something like this for game dev, but looking at the requirements for Audio for example make it seem like we might be better off with graph implementations tailored to specific use cases in the engine.
Implementation should ideally be driven by a need in the engine (otherwise why is this here vs. being in a third party crate?). I think most use cases in game engines/games are well served by a SimpleGraphMap - we should identify upcoming work (Animation? @james7132) and see if we can get an MVP bevy_graph with a SimpleGraphMap and required algorithms (DFS, BFS, etc.) using that as a forcing function.
I feel like there should be more discussion around this in general - would be happy to hear other opinions @alice-i-cecile @maniwani

I generally agree with that analysis: I'd like to ship something small and functional in this PR and evolve from there based on our needs and those of external users.

I also agree with the general assessment. Thats the main reason I've continually put off reviewing this. It might be what we want eventually, but we have no current need driving it, so how will we know? This is also a ton of code to review and maintain without a use case.
I think we should close this, with the general plan being to try using it partially (or fully) whenever the need arises in a specific Bevy feature. The developer(s) building a feature that need a generic graph can depend on the code from this branch and see what works. From there we can determine what is needed, what is not, and what needs changing. We can then create a new PR with whatever comes from that.
@alice-i-cecile it will be on us to remember to direct people to this code to avoid re-inventing the wheel. And we need to make sure @DasLixou gets attribution if we build on this (both on github and when the feature is released).

I agree that we currently don't have a pressing need for a bevy_graph and that's probably a fair reason to close this PR. But it's definitely wrong to think there's no motivation for one at all.
(Also, sorry you were kept waiting for so long, @DasLixou.)

The original reason I got behind "a bevy_graph should exist" was system scheduling. I "made do" with petgraph when I implemented schedule V3, but since then there's been generic graph code living in bevy_ecs.
It's undeniable that various engine crates involve (or are likely to involve) graphs. And they don't (or won't) do anything to earn reinventing the wheel. They should use a shared library, but there are none besides petgraph (whose API is really bad). This PR was the start to a "proper" one.

I'm a little bit worried about the scope of this pr - I've read through the issue and found a lot of discussion about different graph data structures that exist (list, map, matrix, multi, hyper etc.). I feel like the focus shouldn't be on implementing everything under the sun that's tangentially related to graph theory (there's a lot).

The scope of what this PR had implemented—a few basic graph data structures and DFS/BFS—was fine in my opinion. It's a complete mischaracterization to suggest it was attempting "everything tangentially related to graph theory".
The "simple/multi" and "directed/undirected" are just two mathematical properties of graphs. The "list/map/matrix" are ways to represent one. I do agree that the "map" representation could serve most of our uses (I did say so early on).

Reading through other comments in the issue I wonder if we even want a generic graph library. I would love something like this for game dev, but looking at the requirements for audio for example make it seem like we might be better off with graph implementations tailored and optimized to their specific use cases in the engine.

"Tailored" and "optimized" in what way? Does audio (or any other application) do something with graphs that no other relevant application does? In a way that no other application does it? I doubt it. None of the potential users of bevy_graph are special. A graph of audio modifiers looks the same as a graph of shaders. They're just interpreted differently.
When you look beyond the superficial differences, they're the same. Graphs and their algorithms are primitives. (This is similar to how "volume control", "animation", "pathing", and many other things boil down to interpolating curves/splines.)

Implementation should ideally be driven by a need in the engine (otherwise why is this here vs. being in a third party crate?).

I don't think the shared graph library would need the bevy_ moniker. But it wouldn't be strange if the bevy organization releases and maintains one as no one else is writing a library that will serve our needs.

It's a complete mischaracterization to suggest it was attempting "everything tangentially related to graph theory".

I was more so referring to the linked issue with regards to listing graph types that can be useful. The scope is referring to the amount of code we would be merging without a clear client/consumer lined up.

"Tailored" and "optimized" in what way?

This was an off the cuff comment after reading through the issue - a lot of the domain-specific asks like

Preferably a way to do change detection on parts of the graph, tracable back up to the root nodes. This can help optimize the traversals.

for Animation made me question the overall generalizability and wonder if different areas might be better suited with their own implementations.

They should use a shared library, but there are none besides petgraph (whose API is really bad). This PR was the start to a "proper" one.

Totally agree - I'm not a fan of petgraph's api either. I am interested in helping drive some of this work which is why I proposed identifying future work that needs graphs and packaging this with that work.

I was more so referring to the linked issue with regards to listing graph types that can be useful.

Ah, I gotcha.

Animation made me question the overall generalizability and wonder if different areas might be better suited with their own implementations.

I'm not an animation expert, so I'll try to keep an open-mind, but I'm very skeptical.
Just to go with that example, change detection seems like something you can store on a node or edge type (maybe with some kind of custom "visitor"). I can't see it "shaking up" the storage itself or traversal in a fundamental way.
In an earlier version of schedule V3, I made dependency graph updates "incremental" (parts that didn't change could be skipped when solving the graph again) and it was still "on top of" petgraph. IIRC all I did was add a "dirtied" field to my node type and use BFS to propagate it (up the system set hierarchy).
System scheduling is a "power user" as far as graphs and their algorithms go, and there's probably still room for improvement, but I don't think petgraph's data structures and algorithms could get any better (performance-wise) for it.
So yeah, graphs seem like curves/splines to me. Context doesn't change what a spline is or what an efficient implementation of "spline math" looks like, only what a spline can represent.

Side note: I think ECS relationships will replace standalone graph structures in many use cases. Scheduling is one of them. That said, I still see use for "standalone" graphs, and one such use would even be part of internal relationship logic.

I haven't use petgraph much, so I won't judge this PR API compared to it. But if this PR is complete enough, it could be released as an independent crate, and people can start experimenting with it in Bevy without it being in tree. And it could benefit other people too.

@mockersf do you mean like i should "host" it or how?

you could publish it on crates.io, with a different name than bevy_graph though

I think publishing as a separate crate (with a different name) so we can experiment with adoption + upstreaming is a great middle ground solution.


Wayland WSI is deadlocking in FIFO mode

I have a problem where vkAcquireNextImageKHR can indefinitely hang on Wayland.
This happens spuriously, and there is no obvious pattern to it.
When it happens, it's hanging on a semaphore wait indefinitely, waiting for an image to be fetched from the present thread.
There is a way to unblock the thread, which is to move the mouse, or any kind of windowing event seems to unblock it. This of course will never happen when you're playing with a joypad ... My theory is that the present thread is not polling for present complete events from Wayland or similar, and it only gets flushed handling on a mouse event or something like that.
Another, probably related issue is that there are stutters once in while. It might just be a late vkAcquireNextImageKHR waiting for an unrelated event to come in, but I haven't investigated that.
I cannot seem to reproduce this with MAILBOX, so the logic might be a bit different.
To reproduce:

Compile and run RetroArch with Wayland and Vulkan enabled.
Play something using a gamepad.
Make sure vsync is enabled.
Find spurious hang in the game.
Move the mouse and see that it unblocks the game.

To get a GDB backtrace of it, you'll need to keep the GDB terminal window in focus while playing, and when it hangs, ctrl+c it right away. Losing focus on the game window also unblocks the game apparently.
FWIW, this works just fine on RADV and ANV.
I'm sometimes getting some assertions right before this happens, which are probably related:
AMD-PAL: Error: Assertion failed: result == Result::ErrorFenceNeverSubmitted | Reason: Unknown (/home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxSwapChain.cpp:171:WaitForImageIdle)
AMD-PAL: Error: Assertion failed: result == Result::ErrorFenceNeverSubmitted | Reason: Unknown (/home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxSwapChain.cpp:171:WaitForImageIdle)
AMD-PAL: Error: Assertion failed: result == Result::ErrorFenceNeverSubmitted | Reason: Unknown (/home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxSwapChain.cpp:171:WaitForImageIdle)

Main thread:
#2  0x00007fffc06e9a94 in Util::Semaphore::Wait (this=0x55555e315348, milliseconds=4294967295) at /home/maister/git/amdvlk-git/src/pal/src/util/lnx/lnxSemaphore.cpp:79
#3  0x00007fffc05d3031 in Pal::SwapChain::AcquireNextImage (this=0x55555e315178, acquireInfo=..., pImageIndex=0x5555584ee2b8)
    at /home/maister/git/amdvlk-git/src/pal/src/core/swapChain.cpp:174
#4  0x00007fffbf28f033 in vk::SwapChain::AcquireNextImage (this=0x55555e3150d0, pAcquireInfo=0x7fffffffda80, pImageIndex=0x5555584ee2b8)
    at /home/maister/git/amdvlk-git/src/xgl/icd/api/vk_swapchain.cpp:528
#5  0x00007fffbf290e58 in vk::entry::vkAcquireNextImageKHR (device=0x55555d131f20, swapchain=0x55555e3150d0, timeout=18446744073709551615, semaphore=0x0, fence=0x55555ed22350,
    pImageIndex=0x5555584ee2b8) at /home/maister/git/amdvlk-git/src/xgl/icd/api/vk_swapchain.cpp:1315

Present thread hangs in:
#0  0x00007fffef760ea9 in poll () from /usr/lib/libc.so.6
#1  0x00007ffff4fa136b in ?? () from /usr/lib/libwayland-client.so.0
#2  0x00007ffff4fa2e3e in wl_display_dispatch_queue () from /usr/lib/libwayland-client.so.0
#3  0x00007fffd4eab351 in WaylandWaitForLastImagePresented (hWsa=3) at /home/maister/git/amdvlk-git/src/wsa/wayland/src/wsa_wayland.c:433
#4  0x00007fffc060043d in Pal::Linux::WaylandWindowSystem::WaitForLastImagePresented (this=0x55555e3153f0)
    at /home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/wayland/waylandWindowSystem.cpp:321
#5  0x00007fffc06f416c in Pal::Linux::PresentScheduler::ProcessPresent (this=0x55555e315428, presentInfo=..., pQueue=0x55555e3359a8, isInline=false)
    at /home/maister/git/amdvlk-git/src/pal/src/core/os/lnx/lnxPresentScheduler.cpp:202
#6  0x00007fffc06f295b in Pal::PresentScheduler::RunWorkerThread (this=0x55555e315428) at /home/maister/git/amdvlk-git/src/pal/src/core/presentScheduler.cpp:396
#7  0x00007fffc06f232c in Pal::WorkerThreadCallback (pParameter=0x55555e315428) at /home/maister/git/amdvlk-git/src/pal/src/core/presentScheduler.cpp:222
#8  0x00007fffc05a3f5d in Util::Thread::StartThread (pThreadObject=0x55555e315518) at /home/maister/git/amdvlk-git/src/pal/src/util/lnx/lnxThread.cpp:169

Hi
What is the OS did you run RetroArch  ?

Arch Linux 64-bit, running Gnome 3.

The issue should be fixed in latest wsa and pal, Please have a try.

Cool! I'll check it out when I can.

Using the latest drivers on Wayland (amdvlk + wsa) seems to take the entire system down. The entire screen freezes, and I need to hard reboot.

Did you see any error information from dmesg when your screen freezes ?

[  118.606893] amdgpu 0000:26:00.0: GPU fault detected: 147 0x03488401
[  118.606898] amdgpu 0000:26:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x070B0C69
[  118.606901] amdgpu 0000:26:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x04084001
[  118.606904] amdgpu 0000:26:00.0: VM fault (0x01, vmid 2, pasid 32788) at page 118164585, read from 'TC7' (0x54433700) (132)

It is GPU hang. It is different with the hang you got in vkAcquireNextImageKHR . How long did you run the RetroArch when you get this hang ? I will try to reproduce it by running RetroArch.

I forgot to ask you which GPU did you use  ?

I can reproduce the issue. I will fix it soon.

hi,
The new GPU hang issue may have the root cause as issue 43 which is fixed in latest AMDVLK.
Without the fix, I can see random GPU hang and random segfault when start RetroArch.
Please help to verify it.

Seems to work now.


fix: Allow Node Feature Discovery garbage collector to run on control-plane nodes

What problem does this PR solve?:
With this change, all NFD components can run on a single node cluster.
Which issue(s) this PR fixes:
Fixes #https://jira.nutanix.com/browse/NCN-100706
How Has This Been Tested?:

Special notes for your reviewer:

From https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pull/723#issuecomment-2174406269:

I wonder if NFD should also tolerate the CriticalAddonsOnly taint, as many other Addons do?

From what I can see, NFD is deployed with an empty priorityClassName so this wouldn't have any effect right now as the CriticalAddonsOnly taint is only applied temporarily when pre-empting lower priority pods.
So I guess the next question is should we set the priorityClassName on the NFD addon deployments and then tolerate CriticalAddonsOnly? 😅 I don't see any harm in it, but is it really critical?

But we should also see if we need to add priorityClassName: system-cluster-critical to the NFD pods?

I created a separate JIRA to review this for all Addons.


Update mkdocs.yaml

fix paths for techdocs

Codecov Report

Merging #159 (3a16117) into master (9def057) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #159   +/-   ##
=======================================
  Coverage   59.80%   59.80%
=======================================
  Files          35       35
  Lines        2458     2458
=======================================
  Hits         1470     1470
  Misses        883      883
  Partials      105      105

Continue to review full report at Codecov.

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


Certificate issues on Microsoft Edge when running the project for the first time

URL
https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/run
Operating system
windows
More information about your system
No response
Description

When running the project for the first time on Microsoft Edge, it shows the error above.
This is after installing the default certificates from following the tutorial and running it for the first time.
This issue doesnt happen with Firefox.
dotnet --info
No response

At the bottom of the page there are some instructions:
If you receive an error message saying "Your connection is not private" with error code NET::ERR_CERT_INVALID, try to restart all browser windows so the new certificate can be picked up by the browser and run the application again.
Have you tried this?

Works now. Thanks!


Moved Pipelines.Testing APIs to Piplelines.Extensions dll

cc: @davidfowl, @joshfree, @ahsonkhan

I think this might break Kestrel.

@davidfowl, how  does it break Kestrel. Kestrel has a dependency on Piplelines.Extensions dll.

Kestrel doesn't use extensions though I guess it could in tests

@KrzysztofCwalina, what are we doing with this PR?

Closing this PR. Please feel free to re-open if necessary.


Doesn't look like GitHub

Actual:

This theme:

Hey @verhovsky 👋🏼
Yep, this repo is from 13 years ago 👴🏼 and I didn't used it since then.
Fell free to create a PR adjusting it or create your own fork based on it.
Best.


Note that not all MOP.RR.7 or MOP.R.28 encodings are used for Zicfiss

@kasanovic updated as suggested.


Added 404 ignore

Added 404 ignore to handle workspace not found errors
Description
Mars is seeing errors as Azure returns 'Workspace not found'
Issues Resolved
POL-386
Contribution Check List

[ ] All tests pass.
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] New functionality has been documented in CHANGELOG.MD

          1 Warning

:warning:
Should this include readme changes

  Generated by :no_entry_sign: Danger


Deploy Istio and Gateway API

Description
Add config and script steps to:

Install the Gateway API in the control cluster and the workload clusters
Install Istio in the workload clusters

The local-setup script now deploys these components by default. In order to verify this:

Run the local-setup with at least 1 workload clusterMCTC_WORKLOAD_CLUSTERS_COUNT=1 make local-setup

Once the setup finishes, verify that the control cluster has the Gateway API CRDs:kubectl get crds | grep gateway.networking
gatewayclasses.gateway.networking.k8s.io   2023-02-01T14:47:46Z
gateways.gateway.networking.k8s.io         2023-02-01T14:47:46Z
httproutes.gateway.networking.k8s.io       2023-02-01T14:47:46Z

Perform the previous check on the workload clusterkubectl --context kind-mctc-workload-1 get crds | grep gateway.networking

verfied setup worked, CRDS are present and Istio is running


HMS-2593 feat: add VerifyRegistry component

This change add an initial component to the wizard, which check verify
when the registration happened. This change add new callbacks to the
application context to make available the information into the whole
application.
Please review and merge this PR after: https://github.com/podengo-project/idmsvc-frontend/pull/3

Merged via https://github.com/podengo-project/idmsvc-frontend/pull/8.  Closing.


Executable does not execute from /Applications

Is there a panel within xcode to determine an applications permissions?
My compiled application works great, but does not start when it is inside /Applications.
It starts fine from documents,downloads, and user/Applications.
Thanks

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/29552902-executable-does-not-execute-from-applications?utm_campaign=plugin&utm_content=tracker%2F899498&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F899498&utm_medium=issues&utm_source=github).

For “does not start”, can you elaborate? Are there any error messages?

If you double-click on the application, nothing happens. No popups, no errors, nothing.
The app runs fine from within user space.
Thanks for your great platform and continued support xhacker.

It works fine on my computer. Can you try right click the app, and select “Open”?
No problem :) It’s my pleasure if the framework really helps.

Are you sure it was it /Applications and not /Users/USER/Applications ?
I have tested context>"open". It did not work unfortunately.
I even dragged the working version from my desktop into /Applications and it didn't work from there.
I will be uploading the entire project to github in half an hour, will notify you then. Thanks!

Hi again, here's my dev setup https://github.com/basiclaser/brain
The problem seems to be related to renaming the ${EXECUTABLE_NAME} to 'brain'. If i leave the name, the application runs fine from /Applications

@basiclaser: Does it work after renaming to brain, or before renaming?


Change Scope OnPrem to Cloud for procedures  in Table 5 "Finance Charge Terms"

Could you please change Scope('OnPrem') to Scope('Cloud') for procedures

CalcFinChargesAmt
GetTotalFinChargesAmt
GetTotalRejExpensesAmt

in table  5 "Finance Charge Terms"?
Thanks

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 51596.


Statistics Chart. Animation Effect doesn't work properly

Browser: Mozilla FireFox

I believe if able to turn off those effect may solve the problem.

This happens because of the large amount of data

Merged into Main


Clarification on Licensing

Hi Leopoldo,
First, I want to thank you for sharing your work on this project. I've found it incredibly useful and would like to explore using it in my project.
I noticed that the repository currently does not have an explicit license attached. Since GitHub repositories without licenses default to "all rights reserved," this means I don't have the legal rights to use, modify, or distribute the code.
Could you please clarify the licensing terms you're intending to apply to this project? If you're open to suggestions, licenses like the MIT License or Apache 2.0 are popular choices that encourage collaboration while maintaining some level of protection.
Thank you for your time, and I look forward to your response.
Best regards,
Sergej

Hello @millerserhii
Thank you!
I have already added the MIT license to this project.


Can we run approval based on specific conditions, such as if certain model attributes match specific criteria?

Can we run approval based on specific conditions, such as if certain model attributes match specific criteria? If they do, run approval; otherwise, do not.
@ringunger

Should be able to do that by just overriding the boot method in the Approvable trait.
What I did was create a new trait, extend the ringlesoft approvable trait in my trait then I override the boot method.  Something like below
`
protected static function boot(): void
{
parent::boot();
    if (!Auth::user()->isAdmin()) {
        static::created(static function ($model) {
            if ($model->transaction_type && !in_array($model->transaction_type, TransactionType::approvable())) {
                return;
            }

            if (method_exists($model, 'gaurantors') && $model->gaurantors()->where('status', 'pending')->exists()) {
                return;
            }

            $model->approvalStatus()->create([
                'steps' => $model->approvalFlowSteps()->map(function ($item) {
                    return $item->toApprovalStatusArray();
                }),
                'status' => ApprovalStatusEnum::CREATED->value,
                'creator_id' => Auth::id(),
            ]);

            if (property_exists($model, 'autoSubmit') && $model->autoSubmit) {
                $model->submit(Auth::user());
            }
        });
    }
}

`

Should be able to do that by just overriding the boot method in the Approvable trait. What I did was create a new trait, extend the ringlesoft approvable trait in my trait then I override the boot method. Something like below ` protected static function boot(): void { parent::boot();
    if (!Auth::user()->isAdmin()) {
        static::created(static function ($model) {
            if ($model->transaction_type && !in_array($model->transaction_type, TransactionType::approvable())) {
                return;
            }

            if (method_exists($model, 'gaurantors') && $model->gaurantors()->where('status', 'pending')->exists()) {
                return;
            }

            $model->approvalStatus()->create([
                'steps' => $model->approvalFlowSteps()->map(function ($item) {
                    return $item->toApprovalStatusArray();
                }),
                'status' => ApprovalStatusEnum::CREATED->value,
                'creator_id' => Auth::id(),
            ]);

            if (property_exists($model, 'autoSubmit') && $model->autoSubmit) {
                $model->submit(Auth::user());
            }
        });
    }
}

`

Okay, thanks! I will definitely give it a try. Is there anything from you on this, @ringunger ?


False positive fusions and missed fusions

Hi!
When running Pizzly on this RNA-seq data set (using Ensembl annotation release 81) , which contains only and only the following biologically real 17 fusion genes:

FGFR3-TACC3,
FIP1L1-PDGFRA,
GOPC-ROS1,
EWS-ATF1,
TMPRSS2-ETV1,
EWS-FLI1,
NTRK3-ETV6,
CD74-ROS1,
HOOK3-RET,
EML4-ALK,
AKAP9-BRAF,
BRD4-NUT,
MALT1-IGH,
IGH-CRLF2,
DUX4-IGH,
NPM1-ALK, and
CIC-DUX4.

Pizzly finds the following fusion genes (see: test.json.gz):

AKAP9-BRAF
AKAP9-RPL13
ALK-NPM1
ATF1-EWSR1
ATRX-ALK
BRD4-NUTM1
CD74-ROS1
CD74-RPS3
CIC-DUX4
EML4-ACSL1
EML4-ALK
ETV1-SERPINE2
ETV1-TMPRSS2
ETV6-NTRK3
EWSR1-MAGEA3
EWSR1-MAGEA6
FLI1-ASAP1
FLI1-EWSR1
GNS-NUTM1
KTN1-NUTM1
NUTF2-EML4
RET-HOOK3
RPL3-AKAP9
RPS16-ETV6
RPS7-EWSR1
TACC3-FGFR3

Therefore one has that the following false fusions genes are found by pizzly, even that they do not exist in the original RNA-seq dataset from above:

AKAP9-RPL13,
CD74-RPS3
ETV1-SERPINE2
EWSR1-MAGEA3
EWSR1-MAGEA6
RPS7-EWSR1
RPS16-ETV6
FLI1-ASAP1
EML4-ACSL1
RPL3-AKAP9
NUTF2-EML4
RPS16-ETV6
RPS7-EWSR1

Pizzly, is missing the following fusion genes in the above RNA-seq data set:

IGH-CRLF2
DUX4-IGH,
FIP1L1-PDGFRA,
GOPC-ROS1,
MALT1-IGH.

Is this correct?

Thanks for pointing this out. I'll take a look at this soon

I have run Pizzly on other several RNA-seq data sets and it finds a lot of false positives. What is the expected sensitivity and specificity rates for Pizzly?

Those are not false positives. We are reporting an unfiltered set of
fusions for users who want to filter by their own criteria. We have our own
set of basic filters and will be providing filtered predictions as well;
along with those will be the manuscript of the paper that will report our
accuracy on simulations and biological datasets. I expect that the
manuscript will be posted in a week or two; we have already run many
benchmarks and are just double-checking our results.
On Tue, Mar 28, 2017 at 10:35 AM, Daniel Nicorici<EMAIL_ADDRESS>wrote:

I have run Pizzly on other several RNA-seq data sets and it finds a lot of
false positives. What is the expected sensitivity and specificity rates for
Pizzly?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pmelsted/pizzly/issues/2#issuecomment-289846266, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AC042GKebK_I4SaziT6XFx6BtXcIbrL6ks5rqUThgaJpZM4MlGn1
.

Ok. I am confused regarding calling unfiltered fusion as not being false positives. Is there any already published article which supports this hypothesis?
What about the missed fusions?

Here is some idea to check pizzly's sensitivity and specificity on real biological fusion genes (and not on fake/junk chimeric RNAs), which are validated in the wetlab:
Pick a fusion sequence of your choice from NCBI database:

http://www.ncbi.nlm.nih.gov/nuccore/?term=(fusion+transcript[Title])+AND+homo+sapiens[Organism]
http://www.ncbi.nlm.nih.gov/nuccore/?term=(fusion+protein+mrna[Title])+AND+homo+sapiens[Organism]

and simulate reads out of it (using for example: https://github.com/lh3/wgsim ).

I am not sure what you mean by "hypothesis".
The goal of (RNA-Seq based) fusion finding programs is to produce for users
a set of fusion genes that are supported by the data. With kallisto
pseudoalignment followed by pizzly we have a very fast procedure for
producing candidate fusions, but these candidate fusions have not yet been
filtered with respect to a variety of standard ad-hoc criteria, e.g.
coverage requirements (requiring at least a certain number of reads to
support the fusion). We can impose such filters ourselves (and have) but we
believe the list of candidate fusions are useful in their own right, as
some users may wish to not only apply coverage filters as we are (that is
easy enough to allow via a parameter) but also to filter by criteria that
are unique to their application. The lists you've looked at are our
candidate fusions not yet filtered by us for the standard end-users. As
I've said, you'll be able to look at those lists together with our
sensitivity/specificity results shortly. Regarding your question about
false negatives, if a fusion is not on our candidate list then it will be
missing also from our filtered list. We believe that at this point we have
a pretty good idea of why and when we may have false negatives. Thanks for
your patience.
On Tue, Mar 28, 2017 at 11:33 AM, Daniel Nicorici<EMAIL_ADDRESS>wrote:

Ok. I am confused regarding calling unfiltered fusion as not being false
positives. Is there any already published article which supports this
hypothesis?
What about the missed fusions?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pmelsted/pizzly/issues/2#issuecomment-289863377, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AC042NGmoG3xx6qL6ZXA7A5TpAwvHEVSks5rqVKMgaJpZM4MlGn1
.

Fusion genes are very rare events in tumors, except TMPRSS2-ERG fusion in prostate tumors. Finding fusion genes in 3% of some type of cancers can be seen as very high number. That means that in real life one finds quite rarely fusions in samples from real tumor patients. My point here is that fusion genes are not SNPs, which one finds tens of thousands of them in a sample such that one needs to post-filter them. This is why I think that finding fusion genes is very very easy but the difficult part is to be specific.

Exactly.
On Tue, Mar 28, 2017 at 11:58 AM, Daniel Nicorici<EMAIL_ADDRESS>wrote:

Fusion genes are very rare events in tumors, except TMPRSS2-ERG fusion in
prostate tumors. Finding fusion genes in 3% of some type of cancers can be
seen as very high number. That means that in real life one finds quite
rarely fusions in samples from real tumor patients. My point here is that
fusion genes are not SNPs, which one finds tens of thousands of them in a
sample such that one needs to post-filter them. This is why I think that
finding fusion genes is very very easy but the difficult part is to be
specific.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pmelsted/pizzly/issues/2#issuecomment-289870584, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AC042L5H-DU8SSUa3kHAsdhXfZTy8DP5ks5rqVhvgaJpZM4MlGn1
.

Just to make sure that I understood. Those post-filters are not yet part of Pizzly (as it is on github today).  Will those post-filters be part of Pizzly or they will be a separate/independent thing (e.g. Zizzly)?

The post filters will be integrated into pizzly directly (coming soon) and pizzly will output a filtered and an unfiltered call set.

Here is a very good article about definition of fusion genes which has just been published:
# It Is Imperative to Establish a Pellucid Definition of Chimeric RNA and to Clear Up a Lot of Confusion in the Relevant Research
http://www.mdpi.com/1422-0067/18/4/714/htm
There have been tens of thousands of RNAs deposited in different databases that contain sequences of two genes and are coined chimeric RNAs, or chimeras. However, “chimeric RNA” has never been lucidly defined, partly because “gene” itself is still ill-defined and because the means of production for many RNAs is unclear. Since the number of putative chimeras is soaring, it is imperative to establish a pellucid definition for it, in order to differentiate chimeras from regular RNAs. Otherwise, not only will chimeric RNA studies be misled but also characterization of fusion genes and unannotated genes will be hindered. We propose that only those RNAs that are formed by joining two RNA transcripts together without a fusion gene as a genomic basis should be regarded as authentic chimeras, whereas those RNAs transcribed as, and cis-spliced from, single transcripts should not be deemed as chimeras. Many RNAs containing sequences of two neighboring genes may be transcribed via a readthrough mechanism, and thus are actually RNAs of unannotated genes or RNA variants of known genes, but not chimeras. In today’s chimeric RNA research, there are still several key flaws, technical constraints and understudied tasks, which are also described in this perspective essay.


⚠ Bofrost.de has degraded performance

In 4c47747, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1150 ms

Resolved: Bofrost.de performance has improved in a975c30 after 6 minutes.


Modularization of the CMake-files; Use CMake to help find curses.

Hello,
I have a few suggestions for the the library to make it more seamless to use.
[ ] The headers in the include-folder should be placed in their own folder, such that the include-folder can be appended to the compiler's search path. That way, I can write #include "progressbar/progressbar.h" to include the library (Note that boost does it that way, too: https://github.com/boostorg/smart_ptr )
[ ] CMake can help find libraries; I used this capability to find curses cleanly.
[ ] So far, one monolithic CMakeLists.txt was used to build the library itself and the demo program. I made three of them, with one responsible for building the library, the other one for building the demo and the third one including the others. That way, I can use the CMakeLists.txt in lib only for my own projects such that I don't have to build the demo program, too.

Looks good to me! Moving the headers will break the Makefile that progressbar also ships with, but I'll fix that up now.
Love the separate CMakeLists.txt for library/demo -- that's a great improvement.

Sweet, thanks for merging :)
I just noticed that I forgot to change the version in cmake_minimum_required(VERSION 3.7). I think, something like 2.8 or 3.0 should be fine here too, we are not using any advanced cmake features.


When installing extensions cause Xorg process CPU to use soaring

VSCode Version: 1.2.0
OS Version: Ubuntu 16.04

Steps to Reproduce:

Open Visual Studio Code
Install Extension, such as C/C++

@fcharlie We recently changed the UI concerning this. It is already available in our insiders release: https://code.visualstudio.com/insiders
Can you check whether you still have this issue there?

@joaomoreno When install c/c++ ext, This problem still exists。

I think This problem is most likely caused by Xorg and Nodejs

Is this the UI you saw when installing the extension?

@joaomoreno  Yes。

@fcharlie Is this still an issue?

@joaomoreno fixed tks.


Removed one question, added 3 new.

My suggestion is to remove one of the questions, because the only correct answer to it is 'There are only two classes named ResponseListener in the whole of Symfony and they implement EventSubscriberInterface' is, in the fact, not about Symfony security.
That's true that one of the Response listeners corresponds to "remember me" functionality, however, it is in lesser degree about security than about forms.
IMHO, the question is too abstract with totally incoherent answers.
Instead of this one I proposed three other questions.

Fixed.

Thank you !


Remove COVID emergency response section

Repos are still referenced from the open source code section using tag COVID-19

@smellems looks like there is a conflict with the submodule if you can rebase


Generic data-carrying enums in FFI

At the moment the followring code doesn't compile because T doesn't have correct boundaries
/// Data-carrying enum
#[derive(Debug, Clone, PartialEq, Eq, FfiType)]
#[allow(variant_size_differences)]
pub enum DataCarryingEnum {
    A(OpaqueStruct),
    B(u32),
    C(T),    // Complains about T boundaries
    D,
}

When implementing it might come in handy to take a look at how the serde implemented the visitor pattern here

I can work on this issue please do assign me this one

@Nagapadmini7 any progress?


Injection between storyboard view controllers

Any tips on how can I do injection between storyboard view controllers.
ie. I have 3 steps (3 UIViewControllers) for creating a user and create the new user object in the first UIViewController.
UINavigationController
-> UIViewController 1 - create new user object here
-> UIViewController 2 - inject new user object here
-> UIViewController 3 - inject new user object here
Thanks,

If my understanding of your question is correct, making a user collection class might be good. Every view controller has a property of the collection type, and inject it to the view controllers by SwinjectStoryboard.
If you think my answer is not helpful, would you describe more about your case?

Thanks, is there also a way to make the user collection type object release when the UIViewController 1 is close?

For now, Swinject does not support Weak Container Scope (Issue #13), there is no direct way to release the instance of the collection stored in the container.
As a workaround, you can clear the collection to release the user instance when the view controller 1 is closed.

Thanks a lot


Add AWS Glue/Athena Column Name Formatter

Added ConvertToGlueColumnFormat to cloud/awsprovider.go which will convert any arbitrary string into a Glue/Athena compatible format by following the guidelines outlined here: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/run-athena-sql.html.
This change was prompted by invalid column headings being sent to Athena for aggregator "label" as part of the out of cluster cost data being pulled. For users who have labels in the Kubernetes fqdn format, such as app.kubernetes.io/name, these are not valid for Athena column headings. When AWS provides billing data to Athena, it modifies column names based on the guidelines outlined in the AWS docs link above, so that the actual column name would appear as resource_tags_user_kubernetes_label_app_kubernetes_io_name.
Previous Query:
SELECT
	CAST(line_item_usage_start_date AS DATE) as start_date,
	resource_tags_user_kubernetes_label_app.kubernetes.io/name,
	line_item_product_code,
	SUM(line_item_blended_cost) as blended_cost
FROM cost_usage_report_new_tags as cost_data
WHERE line_item_usage_start_date BETWEEN date '2019-5-18' AND date '2019-5-19'
GROUP BY 1,2,3

Modified Query:
SELECT
	CAST(line_item_usage_start_date AS DATE) as start_date,
	resource_tags_user_kubernetes_label_app_kubernetes_io_name,
	line_item_product_code,
	SUM(line_item_blended_cost) as blended_cost
FROM cost_usage_report_new_tags as cost_data
WHERE line_item_usage_start_date BETWEEN date '2019-5-18' AND date '2019-5-19'
GROUP BY 1,2,3

Tested in v1.23.0 running on AWS cluster and validated correct queries are being sent to Athena - queries above are taken from test executions before and after change.

This LGTM, merging and will make it into the next release


Latin Hypercube Sampling with multi-dimensional uniformity (lhsmdu)

how to install Latin Hypercube Sampling with multi-dimensional uniformity (lhsmdu) packages in python & anaconda?

Not sure about anaconda (since I don't use that), but normal installation method would be to download the latest master from the lhsmdu github repo, unzip it, then navigate to the unzipped folder on the command line and run python setup.py install.

I have found this error:
Collecting setup.py
Could not find a version that satisfies the requirement setup.py (from versions: )
No matching distribution found for setup.py

Is that the entire output when you tried to install it? If you wouldn't mind being a bit more verbose in what you've done so far, that would help me understand why you're getting the error.

I have got this while i tried to install this.
At first, I download the zip file then unzip it and placed unzip folder in my python folder. After that I run my command shell and went to python directory and put this command python setup.py install .
Then I got that error. Is there anyway to install via pip command?

Don't worry about placing the unzipped folder in the python folder. The installer takes care of that. Place the unzipped folder wherever you can find it (like your desktop folder). Now, open a command line and navigate to the unzipped folder using the command line. Now, simply type what I said before: python setup.py install and that should place any files you need into your Python packages folder.
It doesn't look like the lhsmdu author has published the package to the Python Package Index (PYPI), so pip or the likes will not work. You might contact the author about it though since installation would be much simpler. In fact, it's probably better to send any further questions to the lhsmdu author rather than here since I don't have anything to do with it. Just open an issue on their github repository. Thanks and good luck!