Support other element type than 8-bit integers

I would like to use it to resample DEM data which can be 16 bit integers or 32 bit floats but it is otherwise identical to image data.

Alas, the method used (which includes bit shifting) is not extendable to floating point numbers

Hi @mmomtchev! I think that'd be within scope for the project, and I'd be glad to review a PR if anyone would like to give it a try. It isn't something I'm planning to add to the library myself at this point, though.


Implement PyCairoRunner::insert()

The test cairo_run::test::cairo_run_array_sum seems to fail after updating the cairo-rs version with Address offsets cant be negative at src/types/relocatable.rs:138:9.
I'm not sure why.

 Expose in cairo-rs-py

unwrap_or_else("plain") is the right behavior. There seems to be a bug where  the program doesn't fail early enough/with the correct error when it requests builtin runners that aren't enabled in the given layout. For tests it's OK to use all.


brainglobeintegration branch - define colors used in "color_by_metadata" and "colors"

Would it be possible to manually set the colors when using color_by_metadata in scene.add_cells  and colors in scene.add_brain_regions, so you can give it a list of 'x' number of colors and assign it to each of the metadata values?
Something similar to the mouselight.py examples where color_by_metadata = dict(metadata_value_1="blackboard", metadata_value_2="olivedrab", metadata_value_3="lightgreen") or colors = dict(MOs="blackboard", DRN="olivedrab", IC="lightgreen", LP="red"), use_original_color = False).
Thanks!

Done!
If you update from the branch, you will find that when using the color_by_metadata option, if you also pass a dictionary to color this dictionary will be used to map metadata values to colors.
Obviously you need to make sure that your dictionary has an entry for each value that the metadata column you've specified takes in your dataset.
Let me know if you have any problem with it :)

Awesome! I just gave it a try and scene.add_cells(coords, color_by_metadata = "metadata_field", color = dict(metadata_value1 = "red", metadata_value2 = "blue") works perfectly. Thanks!


Question

How many GPUs do I need to reproduce the project？

How many GPUs do I need to reproduce the project？

One 2080Ti should be enough


3.0: Keep suite reporter in map until the SuiteCompleted message is dealt with

When running Async tests, scalatest buffers the output for all but the earliest test that's still running, outputting the remaining tests when the first test completes.
However there is a bug in that when all the tests in the suite are completed, and we fire the completed event, the reporter removes the  underlying reporter for the test.
This means when the SuiteCompleted event comes in later, there is no reporter to receive it and the test goes unreported (although the pass/fail status is still retained)  We found this was confusing when looking at our test results.
It looks like the removal from the map was a measure to save memory.
This PR moves the call to when the suite has really finished rather than just the tests inside the suite.  This seems to have fixed the bug in local testing.

@cla-bot[bot] check


add declarative component definition

Hi I added a simple declarative component implementation. It's basically a proof of concept, but I think it could be quite useful.
this is how you could define an mzi:
@gf.declarative_component
class declarative_mzi:
    mmi_in = gf.components.mmi1x2()
    mmi_out = gf.components.mmi2x2()
    straight_top1 = gf.components.straight(length=10.0)
    straight_top2 = gf.components.straight(length=10.0)
    bend_top1 = gf.components.bend_euler()
    bend_top2 = gf.components.bend_euler().mirror()
    bend_top3 = gf.components.bend_euler().mirror()
    bend_top4 = gf.components.bend_euler()
    bend_btm1 = gf.components.bend_euler().mirror()
    bend_btm2 = gf.components.bend_euler()
    bend_btm3 = gf.components.bend_euler()
    bend_btm4 = gf.components.bend_euler().mirror()

    def connections(self):
        return [
            (self.bend_top1.ports['o1'], self.mmi_in.ports['o2']),
            (self.straight_top1.ports['o1'], self.bend_top1.ports['o2']),
            (self.bend_top2.ports['o1'], self.straight_top1.ports['o2']),
            (self.bend_top3.ports['o1'], self.bend_top2.ports['o2']),
            (self.straight_top2.ports['o1'], self.bend_top3.ports['o2']),
            (self.bend_top4.ports['o1'], self.straight_top2.ports['o2']),
            (self.bend_btm1.ports['o1'], self.mmi_in.ports['o3']),
            (self.bend_btm2.ports['o1'], self.bend_btm1.ports['o2']),
            (self.bend_btm3.ports['o1'], self.bend_btm2.ports['o2']),
            (self.bend_btm4.ports['o1'], self.bend_btm3.ports['o2']),
            (self.mmi_out.ports["o1"], self.bend_btm4.ports['o2']),
        ]

    def ports(self):
        return {
            'o1': self.mmi_in.ports['o1'],
            'o2': self.mmi_out.ports['o3'],
            'o3': self.mmi_out.ports['o4'],
        }

As you can see in the PR, it's only a few lines of code to make this work. Let me know what you think. It's just a proof of concept, but if you like it, I think we can extend it to support the full netlist spec.
I also added a notebook which you can try to run to get more information.

Forgot to add the notebook :) Just pushed it.

interesting idea... I like the concise declarative definition, but I get a bit concerned whenever anything is too "magical" or new of a concept to follow... I think it will be hard to follow for a new user i.e. why what they defined as a class got transformed into an object (magically via the decorator)... for example, as an alternative, why not just inherit from a base class which defines a to_component() function, or something like that, which is more explicit about what is happening?
overall maybe it would be good to be clear on the objectives of what problem you want to solve here and why this is better than the alternatives

Yeah, like I said, just a proof of concept. A to_component() method might indeed be a bit more explicit.
I just quickly coded this up after the developers meeting this morning, where there was a discussion if we should support something more declarative within the python ecosystem. We currently already have the yaml definition, but sometimes staying in python-land gives you a bit more flexibility and of course linting and completion.

haha, you merged it already, @joamatab ? I don't think it was fully ready or agreed upon, but I guess we can change/update it later.

sure, I understand the high-level motivation. but to me, a class definition that magically turns into an object violates the Principle of Least Astonishment 😄 . i don't think it will be straightforward for most users, especially when layered with being defined inside a function for a pcell, then wrapped with a cell decorator, as in your notebook example.. it gets very convoluted very quickly. i think we could still improve it

Yeah, I agree. Like I said it was something I coded up in less than half an hour. I'm pretty sure there are plenty of changes that would make it better and less magical. I was pretty happy to see it was very easy to implement something like this though (although the code I submitted is admittedly pretty hacky)

To reduce the astonishment factor, you could also use it as follows:
@gf.cell
def my_component():
    class ComponentDeclaration:
        ...
        def connections(self):
            ...
        def ports(self):
           ...
    return gf.declarative_component(ComponentDeclaration)

Although, I admit... Defining a class inside the body of a function still has some weirdness to it 😅

Here is an alternative implementation (subclass DeclarativeCell in stead of the usual gf.cell decorator on a function to get a PCell):
class mzi(DeclarativeCell):
    delta_length: float = 10.0

    def instances(self):
        self.mmi_in = gf.components.mmi1x2()
        self.mmi_out = gf.components.mmi2x2()
        self.straight_top1 = gf.components.straight(length=self.delta_length/2)
        self.straight_top2 = gf.components.straight(length=self.delta_length/2)
        self.bend_top1 = gf.components.bend_euler()
        self.bend_top2 = gf.components.bend_euler().mirror()
        self.bend_top3 = gf.components.bend_euler().mirror()
        self.bend_top4 = gf.components.bend_euler()
        self.bend_btm1 = gf.components.bend_euler().mirror()
        self.bend_btm2 = gf.components.bend_euler()
        self.bend_btm3 = gf.components.bend_euler()
        self.bend_btm4 = gf.components.bend_euler().mirror()

    def connections(self):
        return [
            (self.bend_top1.ports['o1'], self.mmi_in.ports['o2']),
            (self.straight_top1.ports['o1'], self.bend_top1.ports['o2']),
            (self.bend_top2.ports['o1'], self.straight_top1.ports['o2']),
            (self.bend_top3.ports['o1'], self.bend_top2.ports['o2']),
            (self.straight_top2.ports['o1'], self.bend_top3.ports['o2']),
            (self.bend_top4.ports['o1'], self.straight_top2.ports['o2']),
            (self.bend_btm1.ports['o1'], self.mmi_in.ports['o3']),
            (self.bend_btm2.ports['o1'], self.bend_btm1.ports['o2']),
            (self.bend_btm3.ports['o1'], self.bend_btm2.ports['o2']),
            (self.bend_btm4.ports['o1'], self.bend_btm3.ports['o2']),
            (self.mmi_out.ports["o1"], self.bend_btm4.ports['o2']),
        ]

    def ports(self):
        return {
            'o1': self.mmi_in.ports['o1'],
            'o2': self.mmi_out.ports['o3'],
            'o3': self.mmi_out.ports['o4'],
        }

Here's the scary 18 lines of code that make this work (I know... terribly hacky for now xD)
from pydantic import BaseModel
class DeclarativeCell(gf.Component, BaseModel):
    def __init__(self, *args, **kwargs):
        BaseModel.__init__(self)
        ports_func = self.ports
        gf.Component.__init__(self)
        self.instances()
        for k, v in self.__dict__.items():
            if not isinstance(v, gf.Component):
                continue
            ref = (self << v)
            setattr(self, k, ref)
        for p1, p2 in self.connections():
            p1.reference.connect(p1.name, p2.reference.ports[p2.name])
        for name, p in ports_func().items():
            self.add_port(name, port=p.reference.ports[p.name])
    class Config:
        extra = "allow"

This is my favorite version, as opposed to the previous two versions, because:

compared to 1: you get a PCell function by default in stead of a gf.Component, which is at least less weird.
compared to 2: calling the resulting PCell function gets you a normal gf.Component (in stead of a weird subclass combination of a gf.Component and a pydantic.BaseModel).

Here's the implementation:
import gdsfactory as gf
from dataclasses import dataclass
from functools import wraps
def declarative_cell(cls):
    cls = dataclass(cls)
    @wraps(cls)
    def cell(*args, **kwargs):
        decl = cls(*args, **kwargs)
        decl.instances()
        comp = gf.Component()
        for k, c in vars(decl).items():
            if not isinstance(c, gf.Component):
                continue
            ref = (comp << c)
            setattr(comp, k, ref)
            setattr(decl, k, ref)
        for p1, p2 in decl.connections():
            p1.reference.connect(p1.name, p2.reference.ports[p2.name])
        for name, p in decl.ports().items():
            comp.add_port(name, port=p.reference.ports[p.name])
        return comp
    return cell

Here is an example usage:
@declarative_cell
class mzi:
    delta_length: float = 3.0

    def instances(self):
        self.mmi_in = gf.components.mmi1x2()
        self.mmi_out = gf.components.mmi2x2()
        self.straight_top1 = gf.components.straight(length=self.delta_length/2)
        self.straight_top2 = gf.components.straight(length=self.delta_length/2)
        self.bend_top1 = gf.components.bend_euler()
        self.bend_top2 = gf.components.bend_euler().mirror()
        self.bend_top3 = gf.components.bend_euler().mirror()
        self.bend_top4 = gf.components.bend_euler()
        self.bend_btm1 = gf.components.bend_euler().mirror()
        self.bend_btm2 = gf.components.bend_euler()
        self.bend_btm3 = gf.components.bend_euler()
        self.bend_btm4 = gf.components.bend_euler().mirror()

    def connections(self):
        return [
            (self.bend_top1.ports['o1'], self.mmi_in.ports['o2']),
            (self.straight_top1.ports['o1'], self.bend_top1.ports['o2']),
            (self.bend_top2.ports['o1'], self.straight_top1.ports['o2']),
            (self.bend_top3.ports['o1'], self.bend_top2.ports['o2']),
            (self.straight_top2.ports['o1'], self.bend_top3.ports['o2']),
            (self.bend_top4.ports['o1'], self.straight_top2.ports['o2']),
            (self.bend_btm1.ports['o1'], self.mmi_in.ports['o3']),
            (self.bend_btm2.ports['o1'], self.bend_btm1.ports['o2']),
            (self.bend_btm3.ports['o1'], self.bend_btm2.ports['o2']),
            (self.bend_btm4.ports['o1'], self.bend_btm3.ports['o2']),
            (self.mmi_out.ports["o1"], self.bend_btm4.ports['o2']),
        ]

    def ports(self):
        return {
            'o1': self.mmi_in.ports['o1'],
            'o2': self.mmi_out.ports['o3'],
            'o3': self.mmi_out.ports['o4'],
        }

Note that the example looks a lot like the first example, but you get a PCell function rather than an object. I know... you still get a function rather than a class which might still annoy Troy a bit, but the concept is cleaner: when you call a class you expect an object. When you call the result of this definition you also get an object: less weird for sure.

Loooks great, thank you Floris, shall we add the notebook you made to the docs?

sure... Feel free to add. I added it to the docs folder, but I'm a bit unsure how to do the rest :)

ok, if you insist @flaport , I'll continue to pick on this... 😋
it seems inconsistent and eventually troublesome to me that both connections() and ports() are methods that return the respective values, but instances() does not... (it instead adds instances directly as attributes to the object)
so here are my issues with this...

It's confusing... by name/style, it has exactly the same form as the other two methods, but it has different behavior.
It sets the instances directly to the main object, which I assume is meant for convenience accessing those instances later, but could cause real confusion and significant limitations... For example, the way you have it coded now, you cannot have a parameter which is a component, because it will be interpreted as an instance... This is a real scenario, i.e. if you want to set the taper to be used in an MMI as a parameter (then instance it n times at each input/output).

I would suggest either returning instances() as a dictionary of instances, or as a sub-object, if you want to keep it strongly typed. That way the behavior will be more consistent with the other methods, and you can simplify the logic in declarative_cell, as it will be very clear now how to get instances (it won't be confusable with parameters to the class)

yes, i think instances should return references
I also had a hard time understanding the magic of some of the code :)


Works on emulator - Fails on IOS 9

Not sure but it might have something to do with AJAX calls.

Remove platforms/ and plugins/ folders and recreate all the cordova files from scratch, also make sure the cordova-plugin-wkwebview-engine points to this repo.
Also, can you copy-paste all the logs? not only the crash.

Thanks @manucorporat got it to work!
The weird think is I was not able to use https://github.com/driftyco/ionic-cli#ionic-state-reset and had to do the following:

Had to do this one by one - just removing the plugins with rm -rf ./plugins gave out an error (something like: Cordov*/**.m already installed.)

ionic platform update ios
ionic plugin save           # creates backup of existing plugins
rm -rf ./plugins            # delete plugins directory
ionic prepare

install mu previous plugins one by one.
What does ionic plugin save do?

Cordova CLI always fails silently (it is so bad sometimes). Removing everything and start from scratch the best solution most of the times.

What does ionic plugin save do?

haha I am not sure... I never used it 😞 maybe @jthoms1 knows better, he develops the ionic CLI!
I use to do this:
rm -rf plugins
rm -rf platforms
cordova platform add<EMAIL_ADDRESS>// ^this line also install all the saved plugins
ionic build

then I open the Xcode manually

closing issue! 🎉


With network policy set to allow within linked services / allow within service , sidekick containers are not reachable.

Rancher Versions: Build from master
Network policy manager version - rancher/network-policy-manager:v0.2.0
With network policy set to allow within linked services / allow within service , sidekick containers are not reachable.
Steps to reproduce the problem:
Scenario1:
Create a stack.
Create a service - S1 with side kick - SK1.
Set Network policy to {"within": "service", "action": "allow"}  and defaultPolicyAction set to deny.
From instances of S1 , try to ping (/access) instances of SK1.
Not able to ping instances of SK1.
From instances of SK1 , try to ping (/access) instances of SK.
Not able to ping instances of SK.
Expected Behavior:
Instances of SK1 should be reachable from instances of S1.
Instances of S1 should be reachable from instances of SK1.
Scenario 2:
Create a stack -T1.
Create a service - S1 with side kick - SK1.
Set Network policy to {"within": "linked", "action": "allow"}  and defaultPolicyAction set to deny.
Create a service - S2 which is linked to S1.
From instances of S2 , try to ping (/access) instances of SK1.
Not able to ping instances of SK1.
Expected Behavior:
Instances of SK1 should be reachable from instances of S2.

Fixed this issue with rancher/network-policy-manager:v0.2.1

Tested with latest build from master and rancher/network-policy-manager:v0.2.1
Steps to reproduce the problem:
Scenario1:
Create a stack.
Create a service - S1 with side kick - SK1.
Set Network policy to  {"within": "service", "action": "allow"}  and defaultPolicyAction set to deny.
From instances of S1 , try to ping (/access) instances of SK1.
Able to ping instances of SK1.
From instances of SK1 , try to ping (/access) instances of SK.
Able to ping instances of SK.
Scenario 2:
Create a stack -T1.
Create a service - S1 with side kick - SK1.
Set Network policy to {"within": "linked", "action": "allow"} and defaultPolicyAction set to deny.
Create a service - S2 which is linked to S1.
From instances of S2 , try to ping (/access) instances of SK1.
Able to ping instances of SK1 and S1.


[MOD] deleting useless dependencies to make it compile on newer go ve…

Hey,
The commit message is pretty explicit.
Regard,

yes, definitely!


onchange 'src/**/*.{js,jsx}' -v -w -- babel-node src/index.jsx > dist/index.html

How do you get the output of the command you want to run in a file?
onchange 'src/**/*.{js,jsx}' -v -w -- babel-node src/index.jsx > dist/index.html
The above will get the output from onchange instead of babel-node src/index.jsx
Tried onchange 'src/**/*.{js,jsx}' -v -w -- (babel-node src/index.jsx > dist/index.html) but gave me a error

> is part of the shell and probably onchange doesn't use that to run commands. watchify uses outpipe for this functionality:
watchify main.js -dv -o 'uglifyjs -cm | gzip > bundle.js.gz'

I'm not sure that we'd need outpipe here, it serves the purpose of re-running the same CLI flow but onchange has always been about running just the command. Perhaps this needs to be a new option, but I'd need to understand the current issue a little better.
The pipe works for me, but the pipe won't be closing each time since it's being piped from onchange (which is receiving it's stdout and stderr from the specified command). For instance, running the example on the README and piping it into a file works exactly as expected, onchange '**/*.js' -- echo '{{event}} to {{changed}}' > test.out triggered:
change to cli.js
change to cli.js

However, you can see it'd just keep appending with each execution (which I believe is a feature currently, not a bug). If you want to re-run a certain flow each step, perhaps we can add a -o option. Any chance you can respond with what exactly you're trying to achieve?

That's the point, onchange could change to run not just one but more commands. For example I was trying to run xo && ava but that wasn't possible. Outpipe would allow that and any other commands that work with >

I understand that, but I was asking @gertcuykens what his use-case was and what exactly wasn't working. It wasn't clear from the original post whether literally nothing worked, or it just didn't work as expected. For example, the output of onchange should be identical to babel-node, which is why I asked for more info.
On the -o feature, I love it and would love to add it. I definitely don't have a problem with it and understand the use-case.

Basicly what I wanted was if a file changes just render me a server html page. Inside index.jsx is a console.log(HTML) line that prints my server page html babel-node src/index.jsx > dist/index.html But index.html did contain the stdout from onchange not the console.log(HTML) from babel script. The workaround for me was create a build.sh script that had babel-node src/index.jsx > dist/index.html inside and then do onchange 'src/**/*.{js,jsx}' -v -w -- build.sh instead.

@gertcuykens if it's a node app you can also use npm scripts instead of creating a separate file

@gertcuykens When you say it contained the stdout from onchange and not from the script, can you give an example? Is it the verbose mode output or something else?

It's an issue with bash operation priority. The > symbol won't even get to onchange because bash will already have decided to do something else with it. The only way to do more complicated things like that is to do it indirectly through a bash file or an npm script, as already discovered.

It's not the only way, I posted a solution used by browserify in the first comment

That's not real bash. That's also indirect.

Sure, but it's better than having to create a file, especially when the command is written on the fly in the cli or if you want Windows compatibility.

With npm scripts, you don't need to create a new file. Not speaking against the outpipe idea, just clarifying my statements. 😉

Just implemented https://github.com/Qard/onchange/pull/44. If command is specified, it'll pipe the output from command into -o. If not, it just runs it directly using exec.


fix(pkg-normalize): if bugs, homepage, repository has object

Care to add a test for this?

yep, i forgot.

yep, i forgot.

Coverage decreased (-0.2%) to 79.088% when pulling 04a98cb25b4c3fa7df14f28a448b977910a3f14f on GitScrum:fix-condition into 3778eba84859fca25182a89ec383bce0de44e96c on SamVerschueren:master.

@SamVerschueren ping

Thanks @GitScrum, I believe if you address my comment, it's good to go :)!

Coverage increased (+0.006%) to 79.245% when pulling f786d16bb7729be310fabef7d851973c46838346 on GitScrum:fix-condition into 3778eba84859fca25182a89ec383bce0de44e96c on SamVerschueren:master.

Thanks for the effort @GitScrum ! 🍻

@SamVerschueren Always ready if something else needs to be done it develops.
Thank you for this package, he's cool.

Thanks for the offer. Always happy to receive PR's for issues in the issue tracker. Feel free to suggest new rules or improvements as well!

@SamVerschueren when can we expect updates npm ?

Wanted to solve #45 first but if you really need the changes I can do a release right now. Just let me know.

I forgot the project I needed it )) is not in a hurry, thank you.


immune epitope biological activity assays

This PR:

imports NCBITaxon_33208 (Metazoa)
uses the 'target context' column to make 'in live organism assay' and 'in live cell assay' defined classes.
makes remodeling changes to biological activity assays in the 'B cell epitope assay' branch and 'T cell epitope assay' branch.

Discussed in OBI 2022-07-11: Hector will remove changes made to ‘In live cell assay’ and ‘in live organism assay’. These assays will remain the same. Other changes to  immune epitope biological activity assays are fine. PR can be merged after reverting changes  made to ‘In live cell assay’ and ‘in live organism assay’ and final review with James.

As discussed on 2022-07-11, the last commit return 'in live cell assay' and 'in live organism assay' to previous state. All other changes made to the immune epitope assay branch remain the same. This PR is ready to merge.


photon-xavier-nx/photon-orin-nano/photon-orin-nx support

According to following release notes it should be feasible to support both photon-orin-nano & photon-orin-nx devices with the photon carrier.
These release notes suggest support for the photon-xavier-nx.

@dremsol for the Orin NX and Orin Nano, if you have the carrier board can you check if switching the dtb from the dashboard makes them usable with the standard Devkit images? The location for placing the dtb is the same, /mnt/sysroot/active/current/boot/

Currently we only have the Jetson Orin Nano Devkit (NVME) available.

Closing this ticket for now, feel free to re-open if the kernel device-tree is the only change necessary for the Orin Nano or Orin NX to work with the Devkit images


Adding Contour to Current CNCF Network-centric Projects

Hi team,
I'm the Community Manager for Contour and was browsing and looks like Project Contour is not added to the project list.
https://github.com/projectcontour
https://landscape.cncf.io/card-mode?selected=contour
Hope that's the right place to discuss it :)
Orlix

@leecalcote not sure if that's the right way to address that so please can you advice ? thanks!

@leecalcote  https://github.com/cncf/tag-network/pull/20
Thank you !!


feat: new signature help renderer, updated markdown service, improved typings and code documentation

:tada: This PR is included in version 0.6.0 :tada:
The release is available on:

GitHub release
Atom package

Your semantic-release bot :package::rocket:


Hide Balances

Is your feature request related to a problem? Please describe.
Two purposes:

Checking transactions without having someone view your total balances over your shoulder
Bitvavo now requests screen recordings of you accessing your account, to verify you own the account. I would rather not share the exact balances of my accounts to their record.

Describe the solution you'd like
A simple toggle button, to replace any nano or fiat values with a set number of asterisks. Or something similar
Additional context
Ideally this would including the individual account pages and their transaction lists too. Not just the total balance in the corner

There are balances in many places in the wallet such as the account detail page, account history, the main menu balance widget, send screen, receive screen etc. Should they all be hidden from an app setting or just add a toggle button to the main widget? I guess all because there is nowhere to navigate without showing balances somewhere. But maybe the main widget toggle button could also trigger a global hide. I'm not sure what's the most user friendly here.

I think a global hide would cover the majority of use cases, and would be a simpler implementation. The location of the toggle, main widget or settings page, is largely up to you. I suppose there is a chance of it getting frequent use, if someone wishes to only briefly view their balance for example, then hide it again.

Is anyone working on this?
I have implemented a solution using configure-app.
I did a transfer out while balances were hidden and saw that the balance of the account is visible there too. Will track that one down and fix it.
I guess the amount being transferred should not be hidden. Easier to make sure you are sending the correct amount.
Thoughts?

I guess the amount being transferred should not be hidden. Easier to make sure you are sending the correct amount.

agreed. As far as I can tell, there are 4 places where the balance should/could be hidden:

the wallet card widget
account details page
list of accounts
sending confirmation page

@andrew-m-higgs any progress on this? I could eventually work on it if not.

@geommr There is a pull request in for this (https://github.com/Nault/Nault/pull/476).
Regards


Prerendering server components with parameters is not supported

I'm trying to use the component in my CSHTML view (existing MVC app):
@(await Html.RenderComponentAsync<NewJobComponent>(RenderMode.ServerPrerendered,  new { Job = Model }))
I understand why, but what's the alternative in order to pass anything to the component? Since I cannot do the following in my CSHTML file:
<NewJobComponent Job="Model" />

Thanks for contacting us.
We currently have no support for this. We will park this issue in the backlog to collect more feedback from community.

The only way I've found for now is parsing URL like http://sitename/myparam=123
@inject NavigationManager navMan;
..
 protected override void OnParametersSet()     {                 var uri = new Uri(navMan.Uri);         string test = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query).TryGetValue("myparam", out var type) ? type.First() : "";     }

This is a weird decision to me. We have a scenario where we plan to progressively transition our CMS application from MVC to use mostly Razor components. One of our use cases is a FormComponent that our CMS admins can configure with their own questions. When we call the RenderComponentAsync, I expect to have a way to tell my component which FormId I want to render. The majority of our use cases require the functionality of telling the component whatto render.
Html.RenderComponentAsync<FromComponent>(RenderMode.ServerPrerendered, new { FormGuid = content.ContentGuid })

We have a similar situation to @leMicin:
We're swapping parts of an existing MVC app to Blazor components.   In many cases we have code on an a Razor Page or MVC page that looks like this:
@(await Html.RenderComponentAsync<SOAllocationOverview>(RenderMode.Server, new {SaleId = Model.SaleId}))
Where the SaleId was a parameter in the URL of the page.  I'm really grateful to @Dimexoid for the idea for retrieving that value in the component itself, but that limits the re-usability of the components as it is now reliant on existing in a page that has a URL with parameters with certain names.  The original approach seems cleaner to me.
Also, if we were creating components inside a loop on a Razor page we'd want to be able to pass the ID of the list item into the Blazor component.
What's the logic behind removing the option of passing in the model?

@tomRedox  They explained it on this issue : #12245 . There was a performance problem with the solution as it was. I can understand why the solution was not working.
I wonder why the parameters can't be sent to the client with the Document, and when the client connects to the server, it passes the parameters to the server. This will make so the server does not use expensive CPU / Memory until the client successfully connects.
Removing it without offering an alternative will make it pretty much impossible for us to transition projects, which is sad because I was excited for Blazor.

@leMicin ahhh.. thank you, I hadn't seen that.
For our use case where we have a low number of users with a system running on an intranet, I think we're pretty unlikely to encounter the issues mentioned in #12245.
I remember when React started getting traction in the enterprise, a lot of that was due to being able to introduce it into existing codebases.  It seems a real shame to limit that here, it seems like there must be some way to pass the values of the parameters without incurring the pre-rendering issues.

Ah, losing the option to pass parameters to components is a real shame. As others, we were using Blazor to progressively convert our existing Razor Pages application into a more dynamic experience.

I'm trying not to build an SPA, as blazor seems to force me to do.
This feature would have been great for that purpose.

I'll throw my hat in with everyone else in the thread.  I was trying to use Blazor to create a more dynamic experience for my MVC application rather then investing in Angular/React.  That's severely hindered by removing the ability to pass in parameters.  I may be able to over come it with some additional coding on the Blazor component, but it lessens the separation of concerns of MVC and I thought one of the goals of Blazor was to work with existing Microsoft technologies, not forcing them into a new one.  Like @leMicin I was using this for a low usage internal intranet app, and I don't forsee the issues in #12245.

Thinking about it a bit more, one potential answer here is to create an 'mvc wrapper' component for the component you're building.  The wrapper would then be responsible for either extracting values from the page's URL, or could use Blazor's JS Interop to retrieve data from the page and could then pass those values on to the actual Blazor component that does the work.  That would at least keep a reasonable separation of concerns and make testing easier.

actually this + the fact that OnInitializedAsync is called twice, makes blazor not that useful for many scenarios. I wanted to enhance one of our products with blazor but it's hard to do so, when we either can't support PreRendering or we need to have a performance offset by calling everything twice.

@mkArtakMSFT now this has a milestone set, does that mean this feature will return on 5.0.0-preview1, or just that it's up for consideration at that time?  I'm wondering whether to design components on the assumption that we will ultimately be able to pass values to them via parameters in future?

This makes transition from MVC to Blazor very difficult.
And I think it should be considered at least for 3.1 instead of 5.0!

@tomRedox assuming we will find a good solution here, yes, this will be part of 5.0.

I'd like to chime in and say I was very surprised to see this error... What is the point of a component that you can't pass a parameter to? If even just an Id value...
 @(await Html.RenderComponentAsync<PplComponent>(RenderMode.ServerPrerendered, new { Id = 1 }))
I was very excited to use server side blazor to render complex forms and "wizards" in my MVC app, rather than using signalR and typescript. But this kinda stops that idea...

@DrDave-M as I understand it the parameter feature hasn't been removed because it's thought to be unnecessary, it got pulled as part or removing the facility for stateful pre-rendering.
That change was made close to the final release date for Core 3, so I guess there wasn't time to give this further attention at that point.
I've tagged @rynowak into this conversation back on #12245 too.

It seems there has been a lot of activity on this thread. We're going to try (not a promise) to bring this in 3.1 as part of https://github.com/aspnet/AspNetCore/issues/14433

I was hoping to use Blazor in my applications. Sadly, I would use tutorial examples that use parameters, only to fail. The lack of ability to pass parameters from MVC views or razor pages is a deal killer for my organization.

The code for passing parameters to prerendered server components has now been restored and will reappear in 3.1.  See #14433.

Should this work with 3.1.100-preview1-014459?

Yes, works like a charm with preview1. But you can only phase non complex
objects.
ccit-spence<EMAIL_ADDRESS>schrieb am So. 20. Okt. 2019 um
10:53:

Should this work with 3.1.100-preview1-014459?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/aspnet/AspNetCore/issues/13721?email_source=notifications&email_token=AA6H4LFADCBVDCQS6TSYRKLQPQL7XA5CNFSM4IUAENK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBYFPJA#issuecomment-544233380,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6H4LBZVHOQTT25BAPEQG3QPQL7XANCNFSM4IUAENKQ
.

I am still getting this using the CLI on a Mac.
@(await Html.RenderComponentAsync<CommentInput>(RenderMode.ServerPrerendered, new { RelatedId = Model.Data.Id}))
InvalidOperationException: Prerendering server components with parameters is not supported.

@ccit-spence what's the SDK you're using? Most probably you've got something wrong in your setup.
If, however, you think you're running into an issue caused by the framework, please file a new issue and provide as much details as possible, so we can try to reproduce it.


Make TestServer instances reusable for whole suites

Integration tests are flaking on Windows with timeouts.  In an effort to reduce the possible surface area for timeouts, and to gather more information, I'm overhauling the TestServer and its integrations.  Instead of spinning up a new instance for every test method, we'll use one per test class instead - the handler that it runs is stateless, so there should be no issue.
Because JUnit BeforeAll and AfterAll methods and extensions must be static, we can't rely on inheritance to pass parameters, so now those params will live in a new @ServerConfig annotation that must be present on test classes.
We'll also plug in some logging around test-server startup (and errors, if any).

Codecov Report

Merging #513 (5e8a208) into master (564909f) will decrease coverage by 0.04%.
The diff coverage is 44.44%.

@@             Coverage Diff              @@
##             master     #513      +/-   ##
============================================
- Coverage     59.84%   59.80%   -0.05%
- Complexity      880      883       +3
============================================
  Files            70       70
  Lines          7025     7035      +10
  Branches       1031     1034       +3
============================================
+ Hits           4204     4207       +3
- Misses         2520     2524       +4
- Partials        301      304       +3

Impacted Files
Coverage Δ

...java/com/microsoft/thrifty/testing/TestServer.java
74.71% <44.44%> (-5.81%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


以jar（java -jar i18n-0.0.1.jar）包形式运行的话，会报错

class path resource [i18n] cannot be resolved to absolute file path because it does not reside in the file system:

谢谢指出，已修复


Build failing on IOS after adding Push plugin (with one other plugin)

Expected Behaviour
It should be possible to add the Push plugin in combination with the OpenWith Share on IOS plugin (https://github.com/j3k0/cordova-plugin-openwith)
Actual Behaviour
Building with both plugins installed fails.
Reproduce Scenario (including but not limited to)
First add the OpenWith plugin (it introduces a second build target for the ios Share extension).
'ionic cordova build ios' works. Then add the push plugin, and build again, and it fails with what looks like a cocoapods-related error. (The app builds fine if I add just Push, I do have Cocoapods set up correctly I believe). Steps to reproduce below.
(Note this is unrelated to the mistake of opening the .proj file instead of the .workspace file - I opened in the workspace file, and in any case this is a command line error.
I don't know definitively that Push is at fault, but as the error seems related to CocoaPods I think it may have to do with the build setup in the situation of multiple targets....
Am I doing something wrong?
Steps to Reproduce
Prior to the steps below, one must set up an App Group in the Apple Developer portal and ensure the app id, the developer cert and app groups all line up. You will get signing errors during compilation if that is not done correctly.
ionic start intentTest7 blank --type ionic1
cd intentTest7
ionic cordova platform add ios
cordova plugin add cc.fovea.cordova.openwith --variable ANDROID_MIME_TYPE="text/*"  --variable IOS_URL_SCHEME=ccfoveaopenwithdemo  --variable IOS_UNIFORM_TYPE_IDENTIFIER=public.text
(open workspace file and assign developer signing certs to both build targets, the app and the Share Extension)
ionic cordova build ios

-> works
then
ionic cordova plugin add<EMAIL_ADDRESS>ionic cordova build ios

-> fails
(note: before building one must of course open Xcode and set developer Signing certs correctly)
The trouble seems to start with these messages: (the warnings are I think OK - I get them even in projects that build OK)
ld: warning: directory not found for option '-L/Users/markwatkins/Library/Developer/Xcode/DerivedData/intentTest8-cpqwhiyuvrwcipabuudqqtutnakb/Build/Intermediates.noindex/ArchiveIntermediates/intentTest8/BuildProductsPath/Debug-iphoneos/GoogleToolboxForMac'
ld: warning: directory not found for option '-L/Users/markwatkins/Library/Developer/Xcode/DerivedData/intentTest8-cpqwhiyuvrwcipabuudqqtutnakb/Build/Intermediates.noindex/ArchiveIntermediates/intentTest8/BuildProductsPath/Debug-iphoneos/Protobuf'
ld: warning: directory not found for option '-L/Users/markwatkins/Library/Developer/Xcode/DerivedData/intentTest8-cpqwhiyuvrwcipabuudqqtutnakb/Build/Intermediates.noindex/ArchiveIntermediates/intentTest8/BuildProductsPath/Debug-iphoneos/nanopb'
ld: library not found for -lnanopb
clang: error: linker command failed with exit code 1 (use -v to see invocation)

A complete dump of the output/logs is attached.
buildfail.txt
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Cordova CLI version and cordova platform version
cordova --version                                    # e.g. 6.0.0

8.0
cordova platform version android                     # e.g. 4.1.1

Installed platforms:
ios 4.5.4
Available platforms:
android ~7.0.0
browser ~5.0.1
osx ~4.0.1
windows ~5.0.0
www ^3.12.0
Plugin version
cordova plugin version | grep phonegap-plugin-push   # e.g. 1.5.3

phonegap-plugin-push 2.2.2 "PushPlugin"
Sample Push Data Payload
Sample Code that illustrates the problem
Logs taken while reproducing problem

@viking2917 my best guess would be the hooks that the cordova-plugin-openwith executes mess up stuff but I haven't tried to reproduce it yet.

Thanks @macdonst. I will take a look tomorrow and chase that angle, see what's up.
Weirdly, this scenario (I've done it many times with slight variations), will often build in Xcode, but not via CLI. Don't have a specific path to repro that but its what seems to happen....

OK @macdonst I think this is a case of operator error. When I take the above steps, only after
cd intentTest7
I run
sudo gem install cocoapods
It seems to work fine. I had thought my installation of cocoapods was global, but apparently it was not somehow. I'm fine to close this, sorry for the confusion.

So, the problem occurred for me again and I think I found the source of the issue. The OpenWith setup either mangles, or doesn't update, the linker flags in the Share Ext target. So it was missing the linker flags to the pods library.
I fixed this by selecting the Share Ext build target, going to 'Build Phases', then hitting + and 'Add Link Binary with Libraries', and added 'libPods-.a ' to the list of libraries (it was the only one, there were none before in the Share Ext).
I know little enough about Xcode to really know whether the Plugin should have added that library to the build phases because the other target was using it, or whether that's on the end developer (e.g. me) to do that. But it might warrant a note in the install guide, if one is using other plugins that require cocoapods.
Hat tip to this SO question for pointing me in the right direction. https://stackoverflow.com/questions/24050012/error-library-not-found-for

plugin_not_installed error but i already install phonegap push plugin.


Filter users to be sent to Userlist

I only want to send users with a certain role to Userlist. Is there a place where I can add a query that is used in the userlist:import:users command?
Example:
function filterUserlistUser($query) {
    return $query->hasRole('admin');
}

The reason for this is that I want to send campaigns and broadcasts to the admin users (generally the business owners), not their employees. I might exclude them from the front-end in Userlist, but then my account's user limit will be reached soon, and the data will be cluttered.
Shall I write a PR for this?

Hey @marnickmenting. This is already supported. Just change your transforms to return null instead of an array.

Ah, thanks!


feat(extraction): Docling

Use Docling to perform document extraction.

Take the Unstructed PoC and replace Unstructured with Docling.
Store DoclingDocument in it's raw form, markdown form and chunked form in S3.
Update extraction utilities to use these representations.
Update Dockerfile, make sure the bootstrap data (loaded by the Docling on the first used) are stored in the image.

Note that I will further modify the Unstructed PoC to support polymorphism over extraction outputs.

@pilartomas As discussed, we will add docling by updating

src/files/entities/helpers.ts
workers/python/python/extraction

When trying out Docling, I noticed that it downloaded several resources on the first run after installation. If that is really the case please make sure this is done while building the docker image.

yes, we will do that. It is the same we do with other customers.


PLACEHOLDER:  Have HCA sending data to staging or prod on a regular basis

**may be easier for HCA to send to prod.

Hey team! Please add your planning poker estimate with ZenHub @carlosfelix2 @jh765 @jimduff-usds @oslynn @smythe5 @whytheplatypus

Straight to product review - this is already done as part of other work. The final step of switching HCA to the full-elr topic was done in staging today by devops.


Add Lotus Notes links

Hello,
I am trying to setup linkding to use it with Lotus Notes.
I want to add Lotus Notes Document links as bookmarks.
Unfortunately its not possible.
A notes url/link looks like this:
notes://NOTESSERVER.SUBDMAIN.DOMAIN.COM/C12H9BF2F0261BDA/7B18866DH/THGUJZC1257D330032D158/0807E72E8A1D1B52C12585G/HFZ&RUZG
If you open this link, it redirects you to the document in Lotus Notes.
Would that be possible to add?

@timohzbs So the issue is that the form's URL validation fails when you try to add a bookmark with that URL?
It should be possible to implement a custom URL field with a custom validator. Maybe I'll take a look at this at some point, but unless there are more users having issues like this I see this as low priority.

As part of #36 I added an option to completely disable URL validation. I consider this solved as well.


Cannot connect with mstsc

When I install xrdp-init on a clean Ubuntu 18.04 LTS or Xubuntu 18.04 and connect with the Hyper-V client, everything works fine (resolution, clipboard) except for some error dialogs shortly after gnome (or xfce) starts. But I'm not able to connect using MSTSC - there is nothing listening on port 3389. Is this supposed to work or is RDP server on port 3389 a different problem?
Error dialog after XFCE starts:
light-locker crashed with signal 5 in g_type_create_instance()

From xrdp.log:
[20180506-16:27:26] [DEBUG] Testing if xrdp can listen on <IP_ADDRESS> port 3389.
[20180506-16:27:26] [DEBUG] Closed socket 7 (AF_INET6 :: port 3389)
[20180506-16:27:28] [INFO ] starting xrdp with pid 764
[20180506-16:27:28] [INFO ] listening to port 3389 on <IP_ADDRESS>
[20180506-16:29:28] [INFO ] Socket 12: AF_VSOCK connection received from cid: -1 port: -2147483648
[20180506-16:29:28] [DEBUG] Closed socket 12 (AF_VSOCK cid -1 port 3389)
[20180506-16:29:28] [DEBUG] Closed socket 11 (AF_VSOCK cid -1 port 3389)
[20180506-16:29:28] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20180506-16:29:28] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20180506-16:29:28] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
[20180506-16:29:28] [DEBUG] TLSv1.2 enabled
[20180506-16:29:28] [DEBUG] TLSv1.1 enabled
[20180506-16:29:28] [DEBUG] TLSv1 enabled
[20180506-16:29:28] [DEBUG] Security layer: requested 11, selected 0
[20180506-16:29:28] [DEBUG] Closed socket 12 (AF_VSOCK cid -1 port 3389)
[20180506-16:29:28] [INFO ] Socket 12: AF_VSOCK connection received from cid: -1 port: -2147483647
[20180506-16:29:28] [DEBUG] Closed socket 12 (AF_VSOCK cid -1 port 3389)
[20180506-16:29:28] [DEBUG] Closed socket 11 (AF_VSOCK cid -1 port 3389)

I can fix the [ERROR] by adding user xrdp to group ssl-cert but it doesn't seem to matter.
Open ports:
$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 <IP_ADDRESS>:53           <IP_ADDRESS>:*               LISTEN      517/systemd-resolve
tcp        0      0 <IP_ADDRESS>:631           <IP_ADDRESS>:*               LISTEN      664/cupsd
tcp6       0      0 ::1:3350                :::*                    LISTEN      739/xrdp-sesman
tcp6       0      0 ::1:631                 :::*                    LISTEN      664/cupsd
udp    48384      0 <IP_ADDRESS>:53           <IP_ADDRESS>:*                           517/systemd-resolve
udp     1024      0 <IP_ADDRESS>:68              <IP_ADDRESS>:*                           757/dhclient
udp        0      0 <IP_ADDRESS>:43467           <IP_ADDRESS>:*                           633/avahi-daemon: r
udp        0      0 <IP_ADDRESS>:631             <IP_ADDRESS>:*                           672/cups-browsed
udp    42752      0 <IP_ADDRESS>:5353            <IP_ADDRESS>:*                           633/avahi-daemon: r
udp6       0      0 :::49530                :::*                                633/avahi-daemon: r
udp6   19200      0 :::5353                 :::*                                633/avahi-daemon: r

Unfortunately, xrdp does not bind to multiple endpoints at the same time like TermSrv. So when the script changes the config to use hv_socket for the transport you can no longer make a tcp connection to this guest. I will open an issue on xrdp and ask about adding support for multiple endpoints.

xrdp Ref: 1124

@jterry75 If you disable vsock again0, will you still be able use enhanced mode or Remote FX through a plain RDP client? (See also https://c-nergy.be/blog/?p=12429 as referenced by https://github.com/neutrinolabs/xrdp/issues/1260#issuecomment-463363815 )


Landscape model classes should be sub project  of landscape-service

The current landscape model classes are in included in the shared-project files. In the style of the user-service, we should refactor the landscape model classes as sub project of the landscape-service.

Closed with https://github.com/ExplorViz/explorviz-backend/pull/96


Can you change the location of the settings?

  I am wondering if I can change the location of the settings?  I would try to change them to a place on onedrive (re-directed folder such as documents) so that my settings are the same on both computers.
Can you?

This would be possible yes. However in the past several people feared that their login data either gets copied to unsave locations or is somehow compromised. Therefore LB limited the paths to local machine space only.
But there might be a workaround:
https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/


Fix several oddities in Project Converter

Fix #65482
This is not a complete list. Nor are all of the changes exhaustive.

Measure final execution time in seconds instead of milliseconds.
Use vformat() instead of unreadable string concatenation whenever necessary.
Replaces every & used with booleans with && because Visual Studio was really complaining about it.
Adds punctuation to some comments, in accordance to codebase guidelines.
Fixes some typos around the file (such as "parenthesis" being called "parenthess"), as well as attempting to change some sentences to be more English-correct.
Reworded some comments and error messages outright.

Begins most errors with "ERROR: " for consistency.

Errors printed by error macros already print a red and bold ERROR: prefix so it's redundant to include it again in the message. It will print as ERROR: ERROR: Failed....

That's funny, so the "ERROR: " were the actual inconsistency.

Updated the PR just in time before I went mad.


README Fixes

[ ] Demo
[ ] TODOs

@shobrook Can you replace the formulas with explanations of why they're important? I have a todo for it

@alichtman But they aren't important

So let's remove them.

They've been removed for around a month now :^)

They've been removed for around a month now :^)

Oh yeah, I knew that...
Narrator: He did not know that.

But I think we should at least mention the indicators we use when we do the "How it Works" section.

Agreed


feat(#major); coinbase-wrapped-staked-eth; add subgraph

Adds subgraph for Coinbase Wrapped Staked ETH on

network: ethereum
schema: generic (uses generic SDK)
test deployment: https://okgraph.xyz/?q=Qmdek5dAb1AacAPZ3QynGvFN3g19gEJtdVYvChwkLXed3a

QA (#todo)

TVL:

Note: Defillama uses cbETH's circulating supply to calculate protocol's TVL. Since we can not deterministically find exact circulating supply, we rely on total supply of cbETH to calculate TVL. Hence the difference.
https://api.exchange.coinbase.com/wrapped-assets/CBETH

Usage:

formatting: https://app.warp.dev/block/5eJ2vCxGYZhSE4Q7w0AECv


Fix: link error in introduction.md

Noticed the link to /docs/styling in the Intro page was pointed at /styling which gave me a 404

@huntabyte lmk if you want me to generate a changeset for this tiny change!

Thank you! @stordahl - no need for changesets for docs updates, only when the package itself changes!


Benchmark elbo

This PR restores the old benchmark_elbo.jl script, that tests DeterministicVI.elbo on 100 light sources. It used to take 24 seconds. When I first restored it, it took 32 seconds. Then I found a couple of commands in SensitiveFloats that were taking too long, and changed them. Now it's back to 24 seconds. So I think this  PR effectively closes #125.
I'd leave #251 open because I think we still need more benchmarks. Probably a benchmark with a setup something like test_infer.jl would do it.

That's a good question.  I seem to recall there being something since we
were forced to sort the eigenvalues in the trust region code.  (By which: I
mean I recall trying to use a symmetric matrix type and not being able to
and having to sort the eigenvalues instead, but I don't remember what the
problem was.)  But I don't think I tried very hard, and it's probably worth
revisiting.
On Mon, Oct 3, 2016 at 12:15 AM, Jeffrey Regier<EMAIL_ADDRESS>wrote:

@jeff-regier commented on this pull request.
In src/SensitiveFloats.jl
https://github.com/jeff-regier/Celeste.jl/pull/328:

@@ -161,22 +161,15 @@ function combine_sfs!{ParamType <: ParamSet,
sf_result::SensitiveFloat{ParamType, T1},
v::T1, g_d::Vector{T2}, g_h::Matrix{T3};
calculate_hessian::Bool=true)

TODO: time consuming **************

TODO: this line is allocating a lot of memory and I don't know why.

Commenting this line out attributes the same allocation to the next line.

Is memory being allocated lazily or misattributed?

@assert g_h[1, 2] == g_h[2, 1]

OK I'll put the assertion back. Did we ever consider the Hermitian matrix
type? Does it not support some operations that we need or something?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/jeff-regier/Celeste.jl/pull/328, or mute the thread
https://github.com/notifications/unsubscribe-auth/AESWPmVYh5Txhk0gfL7LfIwkl50JSRRuks5qwKudgaJpZM4KML2J
.


Do not reset hard my default branch

All my forks have things in the master branch, and cannot be reset hard with the upstream otherwise I lose my stuff. I just need for this package to create the pull request, and may be merge them automatically, if not conflicts are found. Otherwise I manually merge locally.
If I understand correctly, for me to use this package I would be required to edit all my forks and create the configuration file disabling the reset hard setting like this:
version: "1"
rules:
  - base: master
    upstream: wei:master        # change wei to the owner of upstream repo
    autoMerge: true
    autoMergeHardReset: false

@evandrocoan You shouldn't develop in the default branch (most of the time master). you should create a feature-branch or fix-branch. Otherwise, it's hard to do a pull request if you're working on an open source project. Master should always be up to date with the forked repo.
See git workflow explained

https://nvie.com/posts/a-successful-git-branching-model/
https://guides.github.com/introduction/flow/
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
https://en.wikipedia.org/wiki/Fork_and_pull_model

I was a bit surprised to see the bot merge a pull request with a force push.

@kytwb Again, it's considered bad practice if you develop in the master branch (or any other than your own branch for that matter) especially if it's a forked repo (an open source project with more than several developers) and you want to do a pull request later on to the upstream repo.
If you want to participate, project maintainers usually expect from contributors / developers that they have created a separate branch for their feature or bug fix. Otherwise it's hard to review, rollback or refer to a change. (branch or pull request)
That's why developers usually want their forks to align with the upstream, so that they can create a branch easily from master or any other branch which are kept up to date. If the repo is not up to date merge conflicts could arise and they or the project maintainers need to update said branch or resolve merge conflicts. (this is something frustrating as most merge configs could be avoided with keeping everything up to date and creating branches from up to date forks)
Of course it's different if you are the only maintainer of a project and it's a small project.
The fork and pull model is very simpel.
Let's say you want to help or contribute to a project. Than the first thing you do is forking said project, create a feature or fix branch (change or add you code in that specif branch) and after that you do a pull request.
See some explanation about the fork and pull model:

https://opensource.guide/how-to-contribute/#opening-a-pull-request
https://help.github.com/en/articles/syncing-a-fork
https://www.firsttimersonly.com
https://en.wikipedia.org/wiki/Fork_and_pull_model

I hope that you all understand why the default is set up in this way, as a developer who sometimes participates in usually large open source projects, I want my forks to perfectly align with the upstream repo to create a separate branch (from the latest version of the upstream master/branch/code) and do a pull request afterwards. In this way merge conflicts will be less likely.
Kind regards,
Remzi

It's not about what is considered good or bad practice in your opinion; it's about a GitHub app force pushing on my repository.

@kytwb You could change this if you're a project maintainer of a repo.
And yes, it's about good practice and what most people / developers expect. Especially if you want to work together with other people and/or with large projects. (open source or proprietary)
You cannot work together or participate if you live inside your own bubble, it doesn't matter if this is open source or proprietary. You always have compromise and agree to work in a certain way, otherwise it's difficult to organize or work together. After all you expect everybody to change, but don't want to change or learn how to do things differently.
In your daily life their are (unwritten) rules and/or good practices. Your company have rules and your team/department have rules, how to do certain things or how to code / code style and/or how to even comment your code. All in all to organize and to work efficiently.
If you want to do something totally different, than you're on your own and that's perfectly fine, but nobody wants to work together with someone who couldn't compromise or agree to work in a certain way. It's all about everybody involves agreeing to work in a certain way.
If everybody involves agrees than there's no problem, but if you're the only want who wants to work in a different way, you're deliberately frustrating others with your stubbornness.
@kytwb This is not a personal attack, but just to explain to you why sometimes you will need to compromise, learn new things and/or abide with the project guidelines/rules/good practices. GitHub and even Git i n general have them "good practices" and most project maintainers expect contributors to understand them and to abide most of them.

I really would not want to work with you.

@kytwb You take this personally, you don't have to. Life is about compromises and/or to reach a agreement all parties involved. Let's agree to disagree and part our ways.

Look up condescending.
👋

@kytwb it's my app 🤓.
This is really the most common use-case and forcing users to add a configuration file for this most common use-case also had quite a lot more resistance mainly because the master branch will not be exactly synced with upstream with the config in it. An ideal solution would be having a separate website and database to keep track of the configurations but that doesn't add too much value to pull app at this time because the most common use-case really shouldn't require jumping through hoops.
I opt for putting up warning emojis and bolding the word hard reset in the 2 lines of instructions under basic setup. If you are using the master branch to develop, please follow the advanced setup to customize the behavior. Another option is to run your own instance after updating the default behavior to not auto merge by (1st way) adding reviewers: ['kytwb'] and setup branch protection rules to require a review, or (2nd way) changing mergeMethod: 'hardreset' to mergeMethod: 'none': https://github.com/wei/pull/blob/016ce3260720ab4efbe2e507fc41ced57de76755/lib/get-config.js#L57-L66
Thanks for your interest, please let me know if you have any questions!

@kytwb

I really would not want to work with you.

I really would not want to work with people not reading the readme of an app they install, ignoring good documented standards and getting angry if they're falling on their noses afterwards.
Pain is a good incubator to learn avoiding made mistakes.

@wei thanks for the cordial follow-up! 🙏
@MartinX3 you have the same problem as @Remzi1993, no need to argue with you guys.

@kytwb @wei is essentially saying the same thing adding only some examples / solutions / ideas how to modify your install.

This is really the most common use-case and forcing users to add a configuration file for this most common use-case also had quite a lot more resistance mainly because the master branch will not be exactly synced with upstream with the config in it. An ideal solution would be having a separate website and database to keep track of the configurations but that doesn't add too much value to pull app at this time because the most common use-case really shouldn't require jumping through hoops.

I have looked you up, you're a Senior Software Engineer / Lead Engineer and I expect a lot from people with such experience / high position. (Please, don't embarrass yourself in public. I still hold you in high esteem. You need to stop trying to defend yourself and instead look at what you could have done differently or better). There's no need for a battle of egos.
Also, stop with the name calling either positive or negative, stay with the facts and facts only. It's the same with "positive discrimination" it's still discrimination and not equality. Same as pointing how good one person is and the other(s) are not. This is somewhat subjective, as you can see you only seem the be the one who is saying like: everybody else is wrong and has a communication problem, don't try to do that. It's called victimship associated with the victimhood mentality everybody seems to like these days. It's not taking responsibility for your own actions or problems you have caused.


JBPM-5272: WorkDefinitions.wid installed also into not empty locations

@jomarko
very sorry but -1  -- we do not want to install the default wid in this case because it may overwrite workitems already defined by user (as later all wids entries are merged to be displayed on the shape menu). This works as intended.


ios: notification event not firing after app is closed when user opens app directly - works on android

Expected Behaviour

App is closed by user
Notification is received and appears in the notification center
App is directly opened by user by clicking on the app, NOT by clicking on notification in center
notification event fires, thus allowing for notification to be processed

Actual Behaviour

App is closed by user
Notification is received and appears in the notification center
App is directly opened by user by clicking on the app, NOT by clicking on notification in center
notification event DOES NOT fire, notification is not able to be processed

Reproduce Scenario (including but not limited to)
Steps to Reproduce

Open app.
Close app (NOT send to background).
Send notification.
Open app directly, NOT by clicking on notification from center.
notification event does NOT fire

Platform and Version (eg. Android 5.0 or iOS 9.2.1)
iOS 13.3.1
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Works as expected on Android
Cordova CLI version and cordova platform version
cli 9.0.0
Plugin version
2.3

Sample Push Data Payload
{
    "aps": {
        "alert": "r",
        "sound": "default",
        "content-available": "1"
    },
    "notId": 871
}

This seems to work as expected on Android.

try this repository https://github.com/zetekyinc/phonegap-plugin-push


Out of memory setting exact alarms

Library version 1.2.6
Hi, since a few days our app has been experiencing an increase in OOM exceptions. We did have a few in the past, but nothing compared to the number we are receiving recently. It could be related to the way we schedule the alarms to be triggered, but I would like to know if I am the only one having this kind of issues, or if there is better way to schedule exact alarms.
The log trace of the exception is:
java.lang.OutOfMemoryError:
  at java.lang.Thread.nativeCreate (Thread.java)
  at java.lang.Thread.start (Thread.java:1063)
  at java.util.concurrent.ThreadPoolExecutor.addWorker (ThreadPoolExecutor.java:921)
  at java.util.concurrent.ThreadPoolExecutor.execute (ThreadPoolExecutor.java:1339)
  at com.evernote.android.job.v14.PlatformAlarmServiceExact.onStartCommand (PlatformAlarmServiceExact.java:66)
  at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3209)
  at android.app.ActivityThread.-wrap17 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1586)
  at android.os.Handler.dispatchMessage (Handler.java:111)
  at android.os.Looper.loop (Looper.java:207)
  at android.app.ActivityThread.main (ActivityThread.java:5728)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:888)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:749)

It happens in various API levels, but mostly on Android 7.1 and 7.0 (never on Android 8.x).
We schedule the job with the following code
JobRequest.Builder(unique tag)
                    .setExact(startTime)
                    .setUpdateCurrent(true)
                    .addExtras(a persistable bundle holding a string)
                    .build()
                    .scheduleAsync()

In onRunJob() we check a few conditions, and if some of them fail, we reschedule the job, could this be the reason?
Is there any possible workaround that we could implement? Or something we could do to know the reason behind the OOM exceptions?
Thanks in advance

Hm, I don't know why the creating a thread should cause an OOM. Usually there's an issue somewhere else in the app and it's crashing here because the system is so low on memory. Without a reproducible sample I won't be able to do anything. You also should take a look at your heap what's consuming all the memory.

We are being more strict now canceling pending jobs, so this should hopefully reduce the number of crashes. Closing the issue.


Error while fetching list of available targets

Version:
1.3.1
OS:
Microsoft Windows
Stack :
No available targets to attach.
*Additional Info
Attempting to launch Angular app using debugger. The project builds and launches Edge window as expected. However, it throws the above error each time.
{
      "name": "ng serve",
      "type": "edge",
      "request": "launch",
      "preLaunchTask": "npm: start",
      "targetTypes": [
        "page"
      ],
      "url": "http://localhost:4200",
      "webRoot": "${workspaceFolder}",
      "sourceMapPathOverrides": {
        "webpack:/*": "${webRoot}/*",
        "/./*": "${webRoot}/*",
        "/src/*": "${webRoot}/*",
        "/*": "*",
        "/./~/*": "${webRoot}/node_modules/*"
      }
    }

Hi, thank you for reporting the issue. From what you described, it sounds like the instance of edge you are launching is not initializing with remote debugging enabled, and the extension is unable to find the active target.
Can you try updating your launch.json config to either:
1.
     "name": "ng serve",
      "type": "vscode-edge-devtools.debug", // this will launch edge and attempt to auto attach the DevTools
      "request": "launch",
      "preLaunchTask": "npm: start",
      "targetTypes": [
        "page"
      ],
      "url": "http://localhost:4200",
      "webRoot": "${workspaceFolder}",
      "sourceMapPathOverrides": {
        "webpack:/*": "${webRoot}/*",
        "/./*": "${webRoot}/*",
        "/src/*": "${webRoot}/*",
        "/*": "*",
        "/./~/*": "${webRoot}/node_modules/*"
      }
    }

OR
     "name": "ng serve",
      "type": "pwa-msedge", // this will launch edge and attempt to auto attach VSCode's JS Debugger, then you can use the inspect icon to attach devtools
      "request": "launch",
      "preLaunchTask": "npm: start",
      "targetTypes": [
        "page"
      ],
      "url": "http://localhost:4200",
      "webRoot": "${workspaceFolder}",
      "sourceMapPathOverrides": {
        "webpack:/*": "${webRoot}/*",
        "/./*": "${webRoot}/*",
        "/src/*": "${webRoot}/*",
        "/*": "*",
        "/./~/*": "${webRoot}/node_modules/*"
      }
    }

@lbicknese - To follow up, did Brandon's solution work for you?