Custom DateTimePicker component

Question
Hello,
I am trying to create a custom DateTimePicker component. Although dmc has one, it is available in v0.15 of dmc which is not available (yet?) in vizro. Can I first ask if anyone is aware of an open source version of such a vizro component? Seems like it should be pretty commonly used but could not find anything.
My idea was to take a DatePicker and a TimeInput both from dmc and put them next to each other in a group. However, I am running into the following issue:

One of the parameter of the component would be value, which is a datetime.datetime. At build time, I pass value.date() to DatePicker and value.time() to TimeInput. However, when it is modified, I would like to recompute value from the date_picker.value and the time_input.value. Is it possible?

Thank you for your help!
Code/Examples
This is what I came up with so far on PyCafe.
Which package?
vizro
Code of Conduct

[X] I agree to follow the Code of Conduct.

Hi @maxschulz-COL and nice to meet you too!
vizro's DatePicker only allows to pick date and not time. I need to pick both of them.
dash-maintine-components has a DateTimePicker but only in its most recent version (>= 0.15.0) which are incompatible with vizro (see here). That lead me to create my own by putting together two existing components of dash-mantine-components, DatePicker (on which vizro's DatePicker relies) and TimeInput.

Hi @maxschulz-COL and nice to meet you too!
vizro's DatePicker only allows to pick date and not time. I need to pick both of them.
dash-maintine-components has a DateTimePicker but only in its most recent version (>= 0.15.0) which is incompatible with vizro (requires <0.13.0 see here). That lead me to create my own by putting together two existing components of dash-mantine-components, DatePicker (on which vizro's DatePicker relies) and TimeInput.

Ah I see, in that case I think @antonymilne has a potential solution for you :)

Hello @gtauzin and thanks for raising the issue. This is all very interesting. And thanks for the pycafe example that really helps understand what's going on.
For a start, the dmc date picker components have caused us various problems and workarounds (as you can see by the comments), and about 6 months after fixing it well enough we pinned to dmc<0.13.0 because we knew that future breaking changes were likely in dmc. I didn't know that 0.15 had now come out, which is good to know. I see that 0.12 still seems quite popular (more so than 0.14 in fact):

In general, much as I love dmc, we are reducing our dependence on it (in favour of dbc) and I suspect the datepicker will be the only dmc component we have left soon.
All this to say: we should try and bump our dmc dependency, but it's not a high priority I'm afraid. Possibly it would help with some of the date picker issues though @petar-qb? Which would offer some more incentives to make the change.
When we do bump our dependency it remains to be seen if and how we would be able to build DatePickerTime into Vizro. It's not something we've thought about before and you're the first person who's asked for any kind of time (rather than just date) selector but let me add it to https://github.com/mckinsey/vizro/issues/318.
So I think for now the best approach is indeed to try and make your own custom component with DatePicker and TimeInput, just like you've done here.
Now onto your question: if I understand correctly, you'd like the default value shown by the date and time picker to correspond to today's date and the current time, is that right? I think something like this should be possible, although I suspect it might be a bit buggy or you might need to sacrifice something like persistence of value when you change pages. Are you using dynamic data?

Ahhh ok, this makes sense I think.
Having two selectors in one like you were trying was a good idea but I think might be harder to get working than having two separate selectors: one for a date and one for a time.
Take a look at the below example on pycafe. It uses a custom figure just as a proof of concept to show how it works.
There's a few gotchas with this:

since they're separate components, whenever you change either date or time, the targeted components will update. This might be good or bad depending on your application.
dmc.TimeInput seems to not be able to render the initial value correctly, not sure why - maybe a bug on the dmc side, which is hopefully fixed in later versions. It works fine when you manually enter numbers though.
since dmc handles date and time to be in certain string formats, most of the complexity here is to do with parsing different formats to and from Python datetime
the on screen rendering isn't as nice as your version since the date and time are directly underneath each other rather than next to each other. This will be much easier to achieve with CSS once #903 has been merged (use a control group like in #82)

class TimePicker(VizroBaseModel):
    """Temporal single option selector `TimePicker`.

    Can be provided to [`Filter`][vizro.models.Filter] or [`Parameter`][vizro.models.Parameter].
    Based on [`dmc.TimeInput`](https://www.dash-mantine-components.com/components/timeinput).

    Args:
        type (Literal["time_picker"]): Defaults to `"time_picker"`.
        with_seconds (bool): Whether to show seconds in the time picker. Defaults to `False`.
        value (Optional[date]): Default time for time picker. Defaults to `None`.
        title (str): Title to be displayed. Defaults to `""`.
        actions (list[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.

    """

    type: Literal["time_picker"] = "time_picker"
    with_seconds: bool = Field(False, description="Whether to show seconds in the time picker.")
    value: Optional[time] = Field(None, description="Default date for datetime picker")
    title: str = Field("", description="Title to be displayed.")
    actions: list[Action] = []

    _input_property: str = PrivateAttr("value")
    _set_actions = _action_validator_factory("value")

    def build(self):
        time_picker = dmc.TimeInput(
            id=self.id,
            value=self.value.strftime("%H:%M:%S"),
            persistence=True,
            persistence_type="session",
            withSeconds=self.with_seconds,
            className="timeinput",
        )

        return html.Div(
            children=[
                dbc.Label(children=self.title, html_for=self.id) if self.title else None,
                time_picker,
            ],
        )

vm.Parameter.add_type("selector", TimePicker)

@capture("figure")
def give_date_time(data_frame, date=None, time=None):
    # date and time come in as strings from frontend, so need to convert them back into
    # datetime types before using them.
    processed_time = parser.parse(time).time() if time is not None else None
    processed_date = parser.parse(date) if date is not None else None
    combined = datetime.combine(processed_date, processed_time) if date is not None and time is not None else None

    return dcc.Markdown(f"""
    **Raw date**: {date}

    **Processed date**: {processed_date}

    **Raw time**: {time}

    **Processed time**: {processed_time}

    **Combined**: {combined}
    """)

page = vm.Page(
    title="Vizro on PyCafe",
    components=[
        vm.Figure(id="figure", figure=give_date_time(pd.DataFrame())),
    ],
    controls=[
        vm.Parameter(
            targets=["figure.date"],
            selector=vm.DatePicker(
                title="Date",
                value=date.today(),
                min=date.today() - timedelta(days=30),
                max=date.today() + timedelta(days=30),
                range=False,
            ),
        ),
        vm.Parameter(
            targets=["figure.time"],
            selector=TimePicker(
                title="Time",
                value=datetime.now().time(),
                with_seconds=True,
            ),
        ),
    ],
)

Thank you so much for your help @antonymilne !

There's a few gotchas with this:

since they're separate components, whenever you change either date or time, the targeted components will update. This might be good or bad depending on your application.
dmc.TimeInput seems to not be able to render the initial value correctly, not sure why - maybe a bug on the dmc side, which is hopefully fixed in later versions. It works fine when you manually enter numbers though.
since dmc handles date and time to be in certain string formats, most of the complexity here is to do with parsing different formats to and from Python datetime
the on screen rendering isn't as nice as your version since the date and time are directly underneath each other rather than next to each other. This will be much easier to achieve with CSS once [Feat] Recognise controls outside page.controls #903 has been merged (use a control group like in Ability to create control headers with horizontal rulers #82)

Indeed, points 1 and 4 (along with the additional complexity) were the reason why I tried to combine DatePicker and TimeInput into a single vizro component. I'll go with your solution and try an improve the rendering once the PRs you mentioned are merged. But I guess once dmc is bumped, then I should be able to easily create a custom vizro component, right?
Thank you again :)

The PR has merged and we've just done a release, so an improved rendering is now possible with vizro>=0.1.29 🎉  It's a non-breaking release so you should be able to do pip install -U vizro without any problems.
With this release it's now possible to nest controls inside another model inside Page.controls. So a very easy way to get a datepicker next to a timepicker is to wrap them inside a vm.Container and use layout grid to stack them next to each other with grid = [[0, 1]] (full credit to @maxschulz-COL for this idea!). Here's the relevant code and pycafe link:
vm.Parameter.add_type("selector", TimePicker)
vm.Page.add_type("controls", vm.Container)
vm.Container.add_type("components", vm.Parameter)

page = vm.Page(
    title="Vizro on PyCafe",
    components=[
        vm.Figure(id="figure", figure=give_date_time(pd.DataFrame())),
    ],
    controls=[
        vm.Container(
            id="date-time-picker",
            title="Date time picker",  # Need to give a title in the Container model but I hid it with CSS
            layout=vm.Layout(grid=[[0, 1]]),
            components=[
                vm.Parameter(
                    targets=["figure.date"],
                    selector=vm.DatePicker(
                        title="Date",
                        value=date.today(),
                        min=date.today() - timedelta(days=30),
                        max=date.today() + timedelta(days=30),
                        range=False,
                    ),
                ),
                vm.Parameter(
                    targets=["figure.time"],
                    selector=TimePicker(
                        title="Time",
                        value=datetime.now().time(),
                        with_seconds=True,
                    ),
                ),
            ]
        )
    ],
)

Alternatively you might like to just make a whole new model for this which nests the parameters:
class DateTimeParameters(VizroBaseModel):
    type: Literal["date_time_picker"] = "date_time_picker"
    # expose whatever fields you like - could have `min_date`, `max_date`. Or pass in whole date_picker object

    def build(self):
        # wrap two parameters in a group with html.Div or dmc.Group or whatever you like
        return html.Div(id=self.id, children=[vm.Parameter(vm.DatePicker(...)).build(), vm.Parameter(TimePicker(...)).build()])

The Container approach is easiest if a grid already gives you the control you need; the DateTimeParameters is more flexible and customisable but would take more playing around with CSS.

Indeed, points 1 and 4 (along with the additional complexity) were the reason why I tried to combine DatePicker and TimeInput into a single vizro component. I'll go with your solution and try an improve the rendering once the PRs you mentioned are merged. But I guess once dmc is bumped, then I should be able to easily create a custom vizro component, right?

On point 1 ("since they're separate components, whenever you change either date or time, the targeted components will update. This might be good or bad depending on your application"), I am curious actually, since after thinking about it some more I would guess that the behaviour of separate components here was actually what most people wanted. Just to understand, why is this instant update not the right behaviour for your app?
Indeed once we bump dmc it should be easy to make a custom DateTimePicker (or maybe we'll even build one in eventually). We have a ticket #905 to investigate how feasible this is, but given that datepicker is the only dmc component we use at the moment it is not top priority tbh.

The PR has merged and we've just done a release, so an improved rendering is now possible with vizro>=0.1.29 🎉 It's a non-breaking release so you should be able to do pip install -U vizro without any problems.
With this release it's now possible to nest controls inside another model inside Page.controls. So a very easy way to get a datepicker next to a timepicker is to wrap them inside a vm.Container and use layout grid to stack them next to each other with grid = [[0, 1]] (full credit to @maxschulz-COL for this idea!). Here's the relevant code and pycafe link:

Congratulations on the release 🎉, it seems to be a really neat improvement! I really like the fact that vizro enables this kind of structured compositions. I'll try it out :)

Alternatively you might like to just make a whole new model for this which nests the parameters:
class DateTimeParameters(VizroBaseModel):
    type: Literal["date_time_picker"] = "date_time_picker"
    # expose whatever fields you like - could have `min_date`, `max_date`. Or pass in whole date_picker object

    def build(self):
        # wrap two parameters in a group with html.Div or dmc.Group or whatever you like
        return html.Div(id=self.id, children=[vm.Parameter(vm.DatePicker(...)).build(), vm.Parameter(TimePicker(...)).build()])

The Container approach is easiest if a grid already gives you the control you need; the DateTimeParameters is more flexible and customisable but would take more playing around with CSS.

Interesting. It is very similar to the composite DateTimePicker I had written in my first post (see PyCafe) and I indeed had to play a bit with CSS. I am curious: is there any difference with mine in terms of usability?

Interesting. It is very similar to the composite DateTimePicker I had written in my first post (see PyCafe) and I indeed had to play a bit with CSS. I am curious: is there any difference with mine in terms of usability?

Yeah, I was actually very impressed with your CSS because these dmc components in particular are not so easy to handle in vizro, so you did a great job of it! There are basically two key differences compared to your version:

composing DatePicker and TimePicker is probably better than copying and pasting the code from the DatePicker model, since when we update DatePicker in future you will get those updates consistently rather than needing to rewrite your code
my above example uses two vm.Parameters rather than putting the DateTimePicker directly in controls. This is what enables it to function as a parameter without needing to manually assign actions to the selector you've provided. It basically means you can use the same vm.Parameter(targets=...) syntax and it will work right out of the box.

At the moment, my app fetches data from the cloud based on date and time picked. Updating them separately means that if only one is properly set you fetch the wrong data.
Note that in practice, my situation is worse as I have a start date/time and an end date/time.
There is a simple workaround which is to add a button "Fetch data" and have the user click it once both date and time are set, but I initially thought this could be avoided.

Thanks for explaining, this makes sense! Actually I'm not sure that the combined DateTimePicker in dmc 0.15 would be able to achieve this for you - if you look at the first example in their docs then after clicking the tick initially, it seems to update instantly even when you change just the date or time without clicking the tick again. Not sure whether that's intentional or not, but I don't see any options to change it to "wait until tick is clicked to apply change".
So yes, for now you will indeed have to have a "Fetch data" button that's manually pressed I'm afraid. Possibly in future we could add some kind of functionality that allows you to have an "apply" button attached to a control group, and none of the controls in that group will trigger until manually applied. But that will not happen for a long time I think.

So being able to make a custom DateTimePicker is easy but integrating a DateTimePicker into vizro is hard. I naively thought this would be the same.
Thank you so much for your help. I love what you guys are doing with vizro, this really helps me having much cleaner app code.

Thanks for your comments, that's much appreciated! 🙏

Yeah, I was actually very impressed with your CSS because these dmc components in particular are not so easy to handle in vizro, so you did a great job of it! There are basically two key differences compared to your version:

composing DatePicker and TimePicker is probably better than copying and pasting the code from the DatePicker model, since when we update DatePicker in future you will get those updates consistently rather than needing to rewrite your code
my above example uses two vm.Parameters rather than putting the DateTimePicker directly in controls. This is what enables it to function as a parameter without needing to manually assign actions to the selector you've provided. It basically means you can use the same vm.Parameter(targets=...) syntax and it will work right out of the box.

Thank you, this is very clear and makes a lot of sense!

Thanks for explaining, this makes sense! Actually I'm not sure that the combined DateTimePicker in dmc 0.15 would be able to achieve this for you - if you look at the first example in their docs then after clicking the tick initially, it seems to update instantly even when you change just the date or time without clicking the tick again. Not sure whether that's intentional or not, but I don't see any options to change it to "wait until tick is clicked to apply change".

One more thought I just had on "wait until applying changes": you might be able to use debounce to help a bit here. It looks like it's available in dmc 0.12 although I'm not sure if it offers exactly the same functionality as in 0.15.

Ah! That's a very good point. That was some wishful thinking on my side as I did not know about debounce. I will look into it once dmc is bumped. In the meantime, I will use your solution along with a button!

So yes, for now you will indeed have to have a "Fetch data" button that's manually pressed I'm afraid. Possibly in future we could add some kind of functionality that allows you to have an "apply" button attached to a control group, and none of the controls in that group will trigger until manually applied. But that will not happen for a long time I think.

This is clear, thank you so much for your help on this.

FYI @gtauzin, we plan to bump the dmc to >=0.15 early next year 😃.
Here's the PR.


Set grad to False in VGG19 correctly

Hi,
I have just corrected the way to set false the grad of vgg19 parameters like:
param.required_grad= False
Cheers,
Bruno

Hello @BrunoEduardoCSantos,
There's no problem with param.requires_grad_(True), it works perfectly!
Your suggested solution, however, doesn't work. If you really want to explicitly assign a value for the gradient tracking, you should use param.requires_grad = False, instead of param.required_grad = False. Notice the difference between requireS and requireD.
Nonetheless, I believe that this change in the approach of turning off gradient tracking, is not needed for the notebook. :)

Thanks for your feedback. :) It makes sense.


Remove user factory hack due to removal of password_digest callback.

@kbrock Please review.

I didn't see this one at all.
The failed spec is confusing, I'm kicking it off again and hope that will fix this.

Seems like this wasn't so simple after all :smiley:

I went into users, roles and regions trying to fix our factories. Especially the ones that have hard coded attributes that have a unique constraint.
I wasn't able to untangle. That is when I asked if we just wanted to seed all things up front.

Closing...I'll come back to it later when I have time to delve deeper.

Sad you closed this but I agree.
Our factories around users have a bunch of hardcoded things in them including the actual name.
Now that we have cleaned up the login_as user stuff in specs, I'm hoping the next pass into here will be better.


[Bug] CLI, changes to  templates/docker, should run all the tests affected

The current behavior
Currently, if we do changes inside templates/docker, it doesn't affect the solutions that use these Dockerfile.
The expected behavior
Editing for example, templates/docker/javascript/Dockerfile, should run all the tests for the solutions that uses javascript.

Fixed by https://github.com/Divlo/programming-challenges/commit/17efe8a1134bb4c5358a131af8624e0c3bab8802


Testing fails without Pango, create folder if doesn't exist

Fixing issue #67 and #72
Regarding #72
This was suppose to be a separate pull request, sorry I messed up my branches
Regarding #67
I tried to detect if the user had imagemagick and pango installed in test_helper but it was getting too messy, instead I created a module inside the test/support folder
If you prefer another approach please let me know.

This looks great! Thank you very much!


Update to use ADOT collector v0.29.0

Description: Update to use ADOT collector v0.29.0

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Are you planning to update the helm chart version in a different PR?

Are you planning to update the helm chart version in a different PR?

I missed that.


Deixando o site responsivo

Hey @evertonl1ma I just saw your work, and it's really great!
Thank you very much for this, it totally solved our problem, I'll be merging it by now!
:tada:
Closes #16


Fix pronouns in Portuguese for Katie Sylor-Miller

What kind of changes does this PR include?

Minor content fixes (broken links, typos, etc.)

Description

What does this PR change?

As you can see by her twitter account https://twitter.com/ksylor, she identifies as she/her. In Portuguese we have different names for male and female job descriptions, in this case arquitetO (male) and arquitetA (female).

Good catch @viniciusflv, welcome to the Docs Team! :partying_face:


ci: report coverage to codecov

Summary
Coverage reporting got lost during the CircleCI migration.
Checklist

[ ] Documentation (if necessary)
[ ] Tests (if necessary)
[ ] Ready to be merged

it's broken :colbert:


Auth KV Migration

Based on branch https://github.com/treeverse/lakeFS/tree/3344/kv-auth-implementation
Export function for each relevant table in dv_service.go
There is possible refactoring option of the export functions, at least to 2 common functions, but as each function has its nuances, it is not quite trivial. In addition, as this will make it harder to debug (IMO) I decided to leave it as is, at least for KV2 milestone
Relevant migration test not included yet

LGTM. Thanks for applying all the fixes! Please open a ticket to add an esti migration test for the auth package (although the other tests sort of cover it by design, but still there is probably some areas to cover with a dedicated auth system test)

Thank you @itaiad200
Opend #3517 to follow up on Esti migration test


Updated embeddings inspection CLI to support weight tying

Example output (from a model trained up to 1 checkpoint):
> echo "this is a test UUUU" | python3 -m sockeye.embeddings -m model_012 -s source
[INFO:__main__] Arguments: Namespace(checkpoint=None, gamma=1.0, k=5, model='model_012', norm=False, side='source')
[INFO:sockeye.model] ModelConfig loaded from "model_012/config"
[INFO:sockeye.vocab] Vocabulary (18104 words) loaded from "model_012/vocab.src.0.json"
[INFO:__main__] Loading source_target_embed_weight
[INFO:__main__] Embedding size: 32
Input: this is a test UUUU
this id=35
  sind id=68 sim=0.8498
  schön id=1759 sim=0.1441
  Art id=295 sim=0.0049
  nur id=126 sim=0.0003
  Fehler id=819 sim=0.0002
is id=21
  kriege id=14396 sim=0.7560
  stoßen id=9224 sim=0.0854
  sind id=68 sim=0.0702
  verlieren id=2681 sim=0.0355
  wirklich id=205 sim=0.0219
a id=13
  verlieren id=2681 sim=0.7941
  kriege id=14396 sim=0.1312
  hatten id=361 sim=0.0590
  Gelegenheit id=2628 sim=0.0120
  sind id=68 sim=0.0019
test id=1053
  Wer id=1321 sim=0.4578
  verlieren id=2681 sim=0.3054
  sind id=68 sim=0.0807
  kriege id=14396 sim=0.0253
  lernen id=706 sim=0.0231
UUUU id=1
  Grund id=798 sim=0.7463
  gut@@ id=4874 sim=0.0921
  heraus id=954 sim=0.0732
  stellt id=1225 sim=0.0454
  schwierig id=1627 sim=0.0123

Pull Request Checklist

[x] Changes are complete (if posting work-in-progress code, prefix your pull request title with '[WIP]'
until you can check this box.
[x] Unit tests pass (pytest)
[ ] Were system tests modified? If so did you run these at least 5 times to account for the variation across runs?
[ ] System tests pass (pytest test/system)
[x] Passed code style checking (./style-check.sh)
[x] You have considered writing a test
[ ] Updated major/minor version in sockeye/__init__.py. Major version bump if this is a backwards incompatible change.
[ ] Updated CHANGELOG.md

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

What about putting the example usage somewhere more accessible? We could add it to the top-level README, or say to tutorials/embeddings (and linked to from tutorials/README.md).

@mjpost This is from a model that was trained for 500 updates on toy data. Don't expect any sensible output on this. It was just mean to illustrate the output format.

We can add a description how to use this tool to the tutorials but that could also be done in a separate PR. There is immanent need for this I think.


cleaning up result.text() since we always parsing to json

Description:

using .json() instead of using JSON.parse

hey @A-Tokyo let me know if there's anything I can add to this PR


Segfault in SamplerPoisson::sample

I made a laz file from an xyzrgb text file with txt2las:
txt2las -parse xyzRGB -i "${file}" -set_scale 1 1 1 -o "${file}.laz"
lasinfo -repair_bb "${file}.laz"

lasinfo mentioned no problems. The data is a cuboid with different x, y, and z dimensions and one colored point at each full integer.
I built PotreeConverter from PotreeConverter-2.1.tar.gz on Linux. It runs fine with some point clouds I tried (laz and las). I tried the same with PotreeConverter_2.1_x64_windows.zip in wine and got the same crash below (I think, didn't try a backtrace).
Ryzen 3600X with 64 GB RAM.
Trying it with my laz file I get a segfault at 67%:

$ gdb --args /tmp/PotreeConverter-2.1/build/PotreeConverter /path/images.xyzrgb.csv_01_01_02.laz -o /path/potree/pointclouds/foo/
GNU gdb (GDB) 11.1
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /tmp/PotreeConverter-2.1/build/PotreeConverter...
(No debugging symbols found in /tmp/PotreeConverter-2.1/build/PotreeConverter)
(gdb) run
Starting program: /tmp/PotreeConverter-2.1/build/PotreeConverter /path/images.xyzrgb.csv_01_01_02.laz -o /path/potree/pointclouds/foo/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

[Switching to Thread 0x7ffff4ae8640 (LWP 460792)]
0x00005555555ce800 in SamplerPoisson::sample(std::shared_ptr<Node>, Attributes, double, std::function<void (Node*)>)::{lambda(Node*)#2}::operator()(Node*) const [clone .isra.0] ()
(gdb) bt
#0  0x00005555555ce800 in SamplerPoisson::sample(std::shared_ptr<Node>, Attributes, double, std::function<void (Node*)>)::{lambda(Node*)#2}::operator()(Node*) const [clone .isra.0] ()
#1  0x00005555555c8c05 in std::_Function_handler<void (Node*, std::function<void (Node*)>), SamplerPoisson::sample(std::shared_ptr<Node>, Attributes, double, std::function<void (Node*)>)::{lambda(Node*, std::function<void (Node*)>)#1}>::_M_invoke(std::_Any_data const&, Node*&&, std::function<void (Node*)>&&) ()
#2  0x00005555555c7fb4 in SamplerPoisson::sample(std::shared_ptr<Node>, Attributes, double, std::function<void (Node*)>) ()
#3  0x000055555559f333 in auto indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::{lambda(auto:1)#2}::operator()<std::shared_ptr<indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::Task> >(std::shared_ptr<indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::Task>) const ()
#4  0x000055555559f8bf in std::_Function_handler<void (std::shared_ptr<indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::Task>), indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::{lambda(auto:1)#2}>::_M_invoke(std::_Any_data const&, std::shared_ptr<indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::Task>&&) ()
#5  0x000055555558d277 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<TaskPool<indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::Task>::TaskPool(unsigned long, std::function<void (std::shared_ptr<indexer::doIndexing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, State&, Options&, Sampler&)::Task>)>)::{lambda()#1}> > >::_M_run() ()
#6  0x00007ffff7d5c3c4 in std::execute_native_thread_routine (__p=0x5555556cee40)
    at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82
#7  0x00007ffff7ea8259 in start_thread () from /usr/lib/libpthread.so.0
#8  0x00007ffff7a5a5e3 in clone () from /usr/lib/libc.so.6
(gdb)

I thought it might be some bad data from my input but the crash seems to depend on the data size. I bisected the data and tried again. I get the segfault when trying my whole dataset, both halfs of it, all thirds of it but not for any quarters of it.
I can upload the data if someone wants to take a look. Is there anything else I can provide to help fix this bug?

Ah, let me try 1.7!

1.7 via wine gets into a slow-as-a-molasse state where writing 1 million points during the indexing stage took 4000 seconds. I canceled that. I tried this both with one quarter of the main file as well as with one third of that and gave up.

Unfortunately, this isn't a simple problem to diagnose. I've tried to figure out what's breaking a couple times in the past without much luck. There's always a ton of points when it happens, and the amount of iterations makes debugging a delight.
On what systems (hardware & OS) does the fault occur? Specifically for the original issue, are you using a wine abstraction layer to run the Windows version of 2.1? Is it a fresh compile of the latest commits or the precompiled release of 2.1? Not sure it would matter much, but have you tried a different sampler option like random?
If you can upload the cloud, it would increase the odds of someone having a breakthrough, but it's no guarantee.
For now, a workaround would be to just use the bisected results on one potree viewer. You can load multiple point clouds just fine in the viewer. It may lead to some annoyances when changing the attribute properties of the clouds, but it works.

Thanks! I can imagine how hard this is to debug :)
Btw: I tried processing the whole file with entwine and that ran out of memory, some comments online suggested the point structure might be heavy for some subdivision processes, so maybe this is also an issue here.
System is a Ryzen 5 3600X with 64 GB RAM. Archlinux. Wine was used for the Windows executables. The Linux executable was compiled fresh from main.
Using "-m random" did not crash indeed!
I uploaded one of the small crashing parts (https://transfer.sh/KI6Hxd/images.xyzrgb.csv_01_01_03.laz will be available for 14 days. It is sourced from a musicvideo but I consider it fair-use as an art project.
Using the small working parts as separate pointclouds is a nice idea and will work for my use case I think, thank you!

@kannes please see this issue:
https://github.com/potree/PotreeConverter/issues/427
Your pointcloud is volumetric and PotreeConverter2.1 just doesn't support that right now.
I've had to do it all in 1.7/1.6
Depending on your use case it might be worthwhile to create a separate pointcloud for each frame and then just offset them from eachother to get the same effect. it is slower to load a ton of pointclouds though than just one.

Interesting! I will compile a 1.7 and see if that works.

I could not get 1.7 to compile and gave up on that.
Making several smaller pointclouds with -m random worked for my use case.


Table Border Issue with RowSpan

Issue
Using rowspan with tables, causes an issue with borders:

        Spanned First Column
        Normal Second Column

        Normal first TD but Second Column

Semantic default CSS:
.ui.celled.table tr td:first-child, .ui.celled.table tr th:first-child {
    border-left: none;
}

Steps to reproduce
Look at this fiddle

Hi @peyman-mohamadpour, thank you, but we’re already tracking it here: #3571.

Same issue.


harbor database init problem

I see the harbor  repo table  init  base on  registry catalog api 。
but if registry backend  storage err， catalog return part of  registry repo，it lead to  harbor  delete repo。it's dangerous。

Would it be helpful if the sync is disabled by default or can be switched off by some configuration?


Unable generate schemas when import is used

When I try to generate schema from this:

import {User} from "users/user";

export interface Post {
    id?: string;
    name: string;
    createdAt: Date;
    updatedAt: Date;
    user: User;
}

I get errors like this:
error TS1008: Unexpected token; 'module, class, interface, enum, import or statement' expected.

+1
this library is amazing, but without import support I can't use it :(

+1 same here

+1

+1

Still having this issue even though the error message says:
src/controller/index.ts(1,1): error TS1008: Unexpected token; 'module, class, interface, enum, import or statement' expected.
My first line is an import..


MNIST() error: objects of type Module are not callable

julia> include("examples/train_images.jl")
ERROR: LoadError: MethodError: objects of type Module are not callable
Stacktrace:
 [1] top-level scope
   @ ~/codes/julia/DenoisingDiffusion.jl/examples/train_images.jl:30
 [2] include(fname::String)
   @ Base.MainInclude ./client.jl:476
 [3] top-level scope
   @ REPL[3]:1
in expression starting at /home/zhangyong/codes/julia/DenoisingDiffusion.jl/examples/train_images.jl:29

(DenoisingDiffusion) pkg> st
Project DenoisingDiffusion v0.1.0
Status `~/codes/julia/DenoisingDiffusion.jl/Project.toml`
  [fbb218c0] BSON v0.3.5
  [587475ba] Flux v0.13.7
  [eb30cadb] MLDatasets v0.5.16
  [872c559c] NNlib v0.8.10
  [92933f4c] ProgressMeter v1.7.2
  [295af30f] Revise v3.4.0
  [2913bbd2] StatsBase v0.33.21
  [de0858da] Printf
  [9a3f8284] Random
  [8dfed614] Test

update MLDatasets to v0.7.5, is work well.


Frontail is very difficult to install on arm

In particular - npm is difficult to install.
I installed your wonderful program on about 10 mashines with arm architecture (raspberry pi, banana pi).
There is always a big problem with installing npm and nodejs.
Can you make the installation easier?
root@BPIm64_HDL:~# apt install npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 npm : Depends: nodejs (>= 6.11~) but 4.8.2~dfsg-1 is to be installed
       Depends: node-abbrev (>= 1.1.1~) but 1.0.9-1 is to be installed
       Depends: node-ansi-regex (>= 3.0~) but 2.0.0-1 is to be installed
       Depends: node-cacache (>= 10.0.4~) but it is not going to be installed
       Depends: node-config-chain (>= 1.1.11~) but it is not going to be installed
       Depends: node-glob (>= 7.1.2~) but 7.1.1-1 is to be installed
       Depends: node-hosted-git-info (>= 2.6~) but 2.1.5-1 is to be installed
       Depends: node-ini (>= 1.3.5~) but 1.1.0-1 is to be installed
       Depends: node-npm-package-arg but it is not going to be installed
       Depends: node-jsonstream (>= 1.3.2~) but 1.0.3-4 is to be installed
       Depends: node-libnpx (>= 10.0.1~) but it is not going to be installed
       Depends: node-lockfile (>= 1.0.3~) but 0.4.1-1 is to be installed
       Depends: node-lru-cache (>= 4.1.1~) but 4.0.2-1 is to be installed
       Depends: node-move-concurrently (>= 1.0.1~) but it is not going to be installed
       Depends: node-normalize-package-data (>= 2.4~) but 2.3.5-2 is to be installed
       Depends: node-gyp (>= 3.6.2~) but it is not going to be installed
       Depends: node-resolve-from (>= 4.0~) but 2.0.0-1 is to be installed
       Depends: node-npmlog (>= 4.1.2~) but 0.0.4-1 is to be installed
       Depends: node-osenv (>= 0.1.5~) but 0.1.0-1 is to be installed
       Depends: node-read-package-json (>= 2.0.13~) but 1.2.4-1 is to be installed
       Depends: node-request (>= 2.83~) but 2.26.1-1 is to be installed
       Depends: node-retry (>= 0.10.1~) but 0.6.0-1 is to be installed
       Depends: node-rimraf (>= 2.6.2~) but 2.5.4-2 is to be installed
       Depends: node-semver (>= 5.5~) but 5.3.0-1 is to be installed
       Depends: node-sha (>= 2.0.1~) but 1.2.3-1 is to be installed
       Depends: node-slide (>= 1.1.6~) but 1.1.4-1 is to be installed
       Depends: node-strip-ansi (>= 4.0~) but 3.0.1-1 is to be installed
       Depends: node-tar (>= 4.4~) but 2.2.1-1 is to be installed
       Depends: node-boxen (>= 1.2.1~) but it is not going to be installed
       Depends: node-latest-version (>= 3.0~) but it is not going to be installed
       Depends: node-which (>= 1.3~) but 1.2.11-1 is to be installed
E: Unable to correct problems, you have held broken packages.

In general, it's a bit tricky. Theoretically, I could compile frontail to a single executable file (as I do for linux, windows and macos). The thing is that it's impossible to cross compile on OSX (https://github.com/zeit/pkg/issues/605).

ARM - it's small computer with small RAM, ROM, CPU.
And we need to install very big packages... :(
And a lot of problems.
Some packeges are difficult to install

I followed the quick start guide in a Pi3 and was up and running in less than a minute.  This is a great tool and seems perfect so far, I don't see any need for improvement on ARM.

Duplicate: https://github.com/mthenw/frontail/issues/168


serverless issue on lambda with api gateway on nodejs

Describe the bug
please check iam facing error  on serverless with lambda

Please provide detailed description of the issue. There is nothing in the attached screen shot

closing due to inactivity


Updates Gateway API Support Doc

Updates the Gateway API support doc.
Signed-off-by: danehans<EMAIL_ADDRESS>

Marking as "draft" to wait for the v0.3 docs to be published so the content can be added to the versioned docs.

Codecov Report

Merging #1026 (7e57857) into main (9991359) will increase coverage by 0.07%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main    #1026      +/-   ##
==========================================
+ Coverage   62.00%   62.08%   +0.07%
==========================================
  Files          55       55
  Lines        8801     8801
==========================================
+ Hits         5457     5464       +7
+ Misses       2972     2965       -7
  Partials      372      372

Impacted Files
Coverage Δ

internal/provider/kubernetes/routes.go
33.02% <0.00%> (-0.92%)
:arrow_down:

internal/provider/kubernetes/controller.go
51.01% <0.00%> (+0.90%)
:arrow_up:

internal/provider/kubernetes/helpers.go
81.08% <0.00%> (+1.35%)
:arrow_up:

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


Use campaign current_run id to determine user's current activity

Placeholder issue for when the Great Sync has been completed.
We'll need to use a Campaign's new campaign_runs property in order to determine whether or not the User is signed up for the Campaign's Current Run.
The campaign_runs.current object will contain different id's per each language_code. Because Northstar does not currently store a User's language, we will hardcode the language_code to en for now.
cc @jonuy

Including a language code hasn't seemed necessary so far in my testing. Closing for now - refs
https://github.com/DoSomething/phoenix/issues/6153

Oops, re-opening because we still need to change call to API (or potentially the response object, if we just include something like live 'current' live boolean property.. which brings to mind including the campaign's end date too.. )

Unblocked by https://github.com/DoSomething/phoenix/pull/6165


Aave Polygon -> Mainnet ERC20 Bridge

Changelog
Add bridge to withdraw tokens from Polygon to Mainnet.
Add tests.
Add README.
Once approved, need to deploy on both chains and add address to the README and also to aave-address-book.

@sendra updated!

@brotherlymite @sendra
i made it ownable, updated tests. now that it's ownable, should we make bridge() onlyOwner? probably, right?

i made it ownable, updated tests. now that it's ownable, should we make bridge() onlyOwner? probably, right?

Yes i think it would make sense. Also don't forget to add on the script the transfer of ownership


Make a list of Mongo queries people find difficult to write

There are some NMDC information retrieval tasks that do not seem intuitive.
Let's collect some use cases that call out

what the task is

list the input knowledge and the output knowledge, like getting the identifiers for all Biosamples that are part_of a given Study

who the intended audience is

NMDC team members
workflows
external users

Possible solutions:

fancy pure-MongoDB queries over the existing collections
ad-hoc Python scripts that integrate results form multiple queries
MongoDB views
SPARQL
existing API endpoints
new API endpoints

I added some people who might have some thoughts on this to the issue assignees, but please add or remove others if necessary.

@turbomam here is a mongo query I wrote for one of the notebooks to go from biosample to a data object: https://github.com/microbiomedata/notebook_hackathons/blob/soil-contig-tax/taxonomic_dist_by_soil_layer/python/mongodb_query.txt.js

@turbomam  see https://github.com/microbiomedata/nmdc-runtime/issues/355
My preference would be consolidate tickets, no preference which repo we work out of.

@dwinston and I have been collecting examples of difficult queries in https://github.com/microbiomedata/nmdc-runtime/issues/355

I'm going to close this issue. @brynnz22 @turbomam please copy your comments to the existing issue in runtime.


Fix version check in io.py

This is in reference to Gensim PR #1067.
On Python 2.6, (Travis Job) the version check in line 18 of morfessor/io.py fails with the following error.
Traceback (most recent call last):
  File "/home/travis/build/RaRe-Technologies/gensim/gensim/test/test_varembed_wrapper.py", line 49, in testEnsembleMorphemeEmbeddings
    morfessor_model=varembed_model_morfessor_file, use_morphemes=True)
  File "/home/travis/build/RaRe-Technologies/gensim/gensim/models/wrappers/varembed.py", line 70, in load_varembed_format
    import morfessor
  File "/home/travis/miniconda2/envs/gensim-test/lib/python2.6/site-packages/morfessor/__init__.py", line 29, in <module>
    from .cmd import main, get_default_argparser, main_evaluation, \
  File "/home/travis/miniconda2/envs/gensim-test/lib/python2.6/site-packages/morfessor/cmd.py", line 12, in <module>
    from .io import MorfessorIO
  File "/home/travis/miniconda2/envs/gensim-test/lib/python2.6/site-packages/morfessor/io.py", line 18, in <module>
    PY3 = sys.version_info.major == 3
AttributeError: 'tuple' object has no attribute 'major'

There seems a really simple fix for this issue to get it working for Python 2.6 of using sys.version_info[0] instead of sys.version_info.major.
If it's fine, I'll go ahead and submit a PR with this fix as we are to integrate that PR into Gensim as well.

If I recall correctly, we use more python 2.7 features in our code besides this one. Do you have a particular reason you want to use/support python 2.6? Even if our current code base would work on python2.6 we can't commit to checking each new commit to 2.6, also because that is a python version that simply doesn't exist anymore on our current work stations.

Oh, Yes I understand. Actually we were to add a new feature into Gensim (Link of PR which has a dependency on the morfessor package (for loading an already trained morfessor model). And, as we provide support for python 2.6 users as well, as we still have some user base for python 2.6. Also, the fact that I feel, there shouldn't be any more changes/commits apart from this PR for morfessor to work for Python 2.6. So, it would be great if this issue could be resolved. WDYT?

I merge the patch and made a new release. If you do:
pip install Morfessor==2.0.2a4
it should work.
If you are providing models to your users, best is to use the 'text' format at this time. We are at this moment reworking the saving of models and the pickles will probably disappear by the next release.

Thanks a lot @psmit.
Sounds good. We'll make sure of that. Thanks.


:bug: update go dependency

Summary
Fix the issues in https://github.com/stolostron/multicluster-global-hub/security/dependabot
Related issue(s)
Fixes #

/retest


fix: call insertBefore with null only if nextSibling is an empty textnode

218563a285dd81b853ac62c86fe850ae9355f12a fixed #40's unnecessary mount/unmount but introduce a new issue, see demo
Notice how the two divs got position replaced. This is because this condition is not correct, so when div re-mounts, it got appended to the end of its parent.
This PR fixes this issue by checking if sibling is an empty textnode, and add more detailed testcase.

Thank you. ❤


gulp serve:dist leads to Cannot read property 'config' of undefined error

running gulp serve:dist leads to
TypeError: Cannot read property 'config' of undefined
    at y (app-6bb7eaeb.js:10)
    at Object.fn (app-6bb7eaeb.js:10)
    at d.$digest (vendor-dfad8142.js:33)
    at d.$apply (vendor-dfad8142.js:33)
    at vendor-dfad8142.js:31
    at Object.r [as invoke] (vendor-dfad8142.js:31)
    at Q.s (vendor-dfad8142.js:31)
    at Q (vendor-dfad8142.js:31)
    at J (vendor-dfad8142.js:31)
    at HTMLDocument.<anonymous> (vendor-dfad8142.js:35)

running gulp serve doesn't have the same error.

fixed as of https://github.com/uwdata/polestar/commit/6d071b4f849d7ab011368135af24bd27ca4c4307


defaultAndValidateMachineSpec() only validates, doesn't default

Unless I'm very confused right now, this code in defaultAndValidateMachineSpec() (part the of the mutating webhooks)
https://github.com/kubermatic/machine-controller/blob/94e2005cbd847a05e72d04ce97dc2d3bab59fa1c/pkg/admission/machines.go#L185
...only updates the passed-in pointer to the to-be-defaulted MachineSpec, but doesn't update the MachineSpec it points to. So the updated object will be garbage collected and the caller's MachineSpec will not be updated (i.e. defaulted).
Changing the line to something like *spec = defaultedSpec should fix it (or changing some function signatures so we pass pointers rather than values). I'm not sure about the implications because it seems like this bug has been in there since 2018. So maybe nobody really needed the provider-specific defaulting functionality?

Hey @multi-io, that analysis feels correct to me. I think it would make at least sense to try out what happens if we fix it, given that people usually implemented defaulting for a reason when they implemented providers.

/remove-lifecycle stale

@multi-io are you still interested in fixing this bug?

/remove-lifecycle stale


Added Baseline and travis config

Added baseline that loads the bindings and dependencies (XMLParser#stable, Magritte3#stable).
Added travis config
skipped MXXmlPersonTargetTest>>testContainerElementCustom (it was already broken, and I wanted a green build)

Also consider adding "Metadata" : "false" to .filetree to get rid of all that metadata stuff.

@peteruhnak I vote to remove the metadata.


[Error] Compiling on Windows produces TypeError

While I won't disregard the possibility of user error on my part; I believe there might be an issue with the latest godot build.
Following the guide in the wiki (here), I have installed python 2.7 and latest version of scones.
I have cloned the repository and attempted to compile using scons. I get an error;
(screenshot here)
Administrator: Developer Command Prompt for VS2015:
C:\godot>scons platform=windows
scons: Reading SConscript files ...
TypeError: cannot concatenate 'str' and 'NoneType' objects:
File "C:\godot\SConstruct", line 230:
detect.configure(env)
File "./platform/windows\detect.py", line 221:
env.Append(CCFLAGS=['/I'+os.getenv("WindowsSdkDir")+"/Include"])
Is this a common problem? I have tried searching for it, but could not find a solution.
Could it possibly be a version problem with VS? I am using Visual Studio Community 2015.

The guide you cited does say it doesn't work with VS2015. It seems that VS2012 is also problematic. You can download VS2013 (even the Community version) which is known to work, or help fix the issue, if you can.

Ah, I must have missed it. Thank you.

In case someone else runs into this: "WindowsSdkDir" env variable has not been set. I followed instructions in this github comment (you have to create a new C++ project in VS2015 to install for the first time): https://github.com/nodejs/node-gyp/issues/694#issuecomment-145230097
I am godot 2.0, python 2.7, VS2015 on Windows 10

I tried compiling godot only with thw
E microsoft c++ build tools.
I have the same problem.
env.Append(CCFLAGS=['/I'+os.getenv("WindowsSdkDir")+"/Include"])
I installed the build tools with the windows 10 sdk. Should i have used the windows 8.1 ones?

@toger5 The problem is that WindowsSdkDir env var is not defined. I never used the build tools, so I'm not sure what environment it provides. This should be fixed by setting the WindowsSdkDir yourself, or finding if there's another one to replace it.

Ty @vnen
Tmfor anyone else runninginto that issue,there is a file called vsvars32.bat in the common7 folder.
It swts up the path and env vars correctly

You really need to fix your spellcheck @toger5 :)


SetLocalPosition undefined

SetLocalPosition is not defined?
this function is defined by user?

That's your game's function. I assume your game has its own node tree, so you would first copy the positions/rotations from your game's tree to the library's tree, solve, then copy the data back to your game.


Add JdbcJoinOperator and PostgresJoinOperator

References #384
The proposed solution utilises a somewhat "hacky" solution to the problem of providing a generic interface for JoinOperators. This is taken from previous examples of ProjectionDescriptor that allow to give a "hardcoded" sqlImplementation that specifies how the Keys are to be retrieved.
As you can see in the provided test, this results in JoinOperators taking two string identifiers that specify the tables name and key to join on:
       try (Connection jdbcConnection = hsqldbPlatform.createDatabaseDescriptor(configuration).createJdbcConnection()) {
            final Statement statement = jdbcConnection.createStatement();
            statement.execute("CREATE TABLE testA (a INT, b VARCHAR(6));");
            statement.execute("INSERT INTO testA VALUES (0, 'zero');");
            statement.execute("CREATE TABLE testB (a INT, b INT);");
            statement.execute("INSERT INTO testB VALUES (0, 100);");
        }

        final ExecutionOperator joinOperator = new HsqldbJoinOperator<Integer>(
            new TransformationDescriptor<Record, Integer>(
                (record) -> (Integer) record.getField(0),
                Record.class,
                Integer.class
            ).withSqlImplementation("testA", "a"),
            new TransformationDescriptor<Record, Integer>(
                (record) -> (Integer) record.getField(0),
                Record.class,
                Integer.class
            ).withSqlImplementation("testB", "a")
        );

Thus, the JoinMapping specifies the need of presence for these values in the mapping itself:
    private SubplanPattern createSubplanPattern() {
        OperatorPattern<JoinOperator<Record, Record, Object>> operatorPattern = new OperatorPattern<>(
                "join",
                new JoinOperator<Record, Record, Object>(
                        null,
                        null,
                        DataSetType.createDefault(Record.class),
                        DataSetType.createDefault(Record.class)
                ),
                false
        )
            .withAdditionalTest(op -> op.getKeyDescriptor0() instanceof TransformationDescriptor)
            .withAdditionalTest(op -> op.getKeyDescriptor1() instanceof TransformationDescriptor)
            .withAdditionalTest(op -> op.getKeyDescriptor0().getSqlImplementation() != null)
            .withAdditionalTest(op -> op.getKeyDescriptor1().getSqlImplementation() != null);
        return SubplanPattern.createSingleton(operatorPattern);
    }

@juripetersen Thanks for the contributions. Could you please check couple of comments I left?

@juripetersen Thanks for the contributions. Could you please check couple of comments I left?

Sure, however I can't seem to find your comments yet.

I can see the problem of having a cyclic reference and will remove that.

That makes sense. However, I suggest checking if we can follow the same approach as for filters.
https://github.com/apache/incubator-wayang/blob/5e6a07edaae3e7ebac9ac73814f95bafe741845d/wayang-platforms/wayang-postgres/src/main/java/org/apache/wayang/postgres/operators/PostgresFilterOperator.java#L30
i.e., the postgresJoin's constructor takes in two arguments of type TransformationDescriptor<Record, Key>

@kbeedkar the PostgresFilterOperator uses the sqlImplementation and the executor only compiles this "hardcoded" information into the desired SQL query string. This can be seen in the JDBC FunctionCompiler:
public class FunctionCompiler {

    /**
     * Compile a predicate to a SQL {@code WHERE} clause.
     *
     * @param descriptor describes the predicate
     * @return a compiled SQL {@code WHERE} clause
     */
    public String compile(PredicateDescriptor descriptor) {
        final String sqlImplementation = descriptor.getSqlImplementation();
        assert sqlImplementation != null;
        return sqlImplementation;
    }
}

This is also where the currently proposed solution of this PR was inspired from. @zkaoudi  and I were discussing an approach to avoid this and actually use a generic interface in Joins. However, this seems to be non-trivial and is likely to break backwards compatibility.

I can imagine using something like this when defining the Join:
        final ExecutionOperator joinOperator = new HsqldbJoinOperator<Integer>(
            new JoinDescriptor<Record, Record, Integer>(
                "tableName1",
                "tableName2",
                "keyName1",
                "keyName2",
                Record.class,
                Record.class,
                Integer.class
            )
        );

Where JoinDescriptor extends TransformationDescriptor and JdbcJoinOperator can only be derived from JoinOperators that are defined with JoinDescriptor.

@juripetersen can you please check? There are some compilation errors that make the build fail.

Yes, extending the TransformationDescriptor sounds good.

@zkaoudi @kbeedkar compilation works fine locally now.


Render is  failling with latest  Pweave

Render is failing with: signal only works in main thread after this pweave  change: https://github.com/mpastell/Pweave/commit/3765b0ceebfc17be8e86b8a66d8e1eac1240096b

Maybe this is related:
https://github.com/scrapy/scrapy/commit/8d77005047cc701970c8c4114a65423c0dc7c2ee
I think that WorkerManager is doing something with the workers that cause it the thread to change, or maybe is because it's use QThread

I've finally found the bug, It's caused because the workermanager change the worker thread in _start() method https://github.com/spyder-ide/spyder/blob/master/spyder/utils/workers.py#L264
Using instead the logic for ProcessWorker, fix the bug (although that doesn't seem as the best solution)
cc: @goanpeca

I think that the only solution is to move to use ProcessWorker, I'll further investigate if there is other solution before doing that.

@rlaverde moving forward with spyder handling envs, and other python versions, we will most likely rely on the LSP or the process worker since, the python worker only really makes sense for things that will be executed in the same environment that spyder lives. I know this is a different issue, but it is probably more reliable to do it using the process worker, although it might take a little more time (while a new python process is started). You can also have a helper script that runs PWeave and execute that script in a process if that makes things easier.


fix(flex-grid): tweak column width values for IE/Edge

Description
Tweak column width values by -0.5px for IE/Edge. IE/Edge optimistically rounds fractional pixels, which breaks FlexGrid every so often if the widths round up to more than 100%. By subtracting 0.5px from the width and letting flexbox handle growing to fill available space, we avoid possible overflows. Also went ahead and moved some of the math to JS to shrink the resulting CSS.
Before:

After:

Scope

[x] Patch: Bug Fix
[ ] Minor: New Feature
[ ] Major: Breaking Change

Ah shoot don’t merge. The math is not quite right for the gaps..

@chasestarr how do I get an account with screener? I don’t have access..
In general, this is the result of how IE/Edge rounds fractional pixels. If you were to just set three inline-blocks to width: calc(100% / 3), it would overflow half of the time due to rounding. Not sure if there’s a good way to test for that..

@chasestarr how do I get an account with screener? I don’t have access..
In general, this is the result of how IE/Edge rounds fractional pixels. If you were to just set three inline-blocks to width: calc(100% / 3), it would overflow half of the time due to rounding. Not sure if there’s a good way to test for that..

@leyanlo just invited you

it would overflow half of the time due to rounding. Not sure if there’s a good way to test for that..

could we set the width of a container element to trigger this effect?

@chasestarr added test for 800px container, which should fail for the previous version in IE/Edge.
Demo:
https://codesandbox.io/s/flexgrid-basic-usage-tbr95


error when installation

There was an error when I use pip install flask-ponywhoosh to install the extension, the error as follows:
Could not find a version that satisfies the requirement flask-ponywhoosh (from versions: )
No matching distribution found for flask-ponywhoosh

My Python version is 3.4.

The problem is Flask-PonyWhoosh is only available for Python 2.7.X. But supporting Python 3.4 shouldn't be a problem because Flask now support that version, and we can work with it.

I've tried again in Python virtual envrionment that use Python 2.7, and I got the same error. Why?

It was a bug with pypy and other stuffs related with the name of the repository. I solved the problem in ed675b1762a69f0b787924dbade3be3a004ff5ce. Please try it again.
$ pip install flask-ponywhoosh

It can be installed properly, thanks.


Change System::User from class to struct

This is broken out of the original pr #12595 and references https://github.com/crystal-lang/crystal/issues/7738
The System::User class doesn't need to be a class, no modifications ever happen, so it is wasteful to have this add GC pressure by allocating on the heap for no benefit.

The only potential issue I see is if someone has reopened this class somewhere...
Other than that, I think this is a pretty innocuous change

This was previously proposed in https://github.com/crystal-lang/crystal/pull/8226 and rejected due to concerns about performance impact.
The instance size of System::User is quite big, so passing it around by value requires a considerable amount of memcpy. If this happens a lot, the gain from leaving out the GC is easily nullified.
A case for changing this would need a thorough analysis of performance implications. I don't think that's worth it at this point.

I didn't consider the total size as a reason. Makes sense to me. I'll close this out then just to keep the backlog a tiny bit smaller.

IMO the performance should not be the main preoccupation.
Back in the day of my PR I made several tests, and haven't found any major difference.
I'd be interested of someone providing a benchmark to prove the opposite (which will likely be an extreme case).

IMO the performance should not be the main preoccupation.

What other reason for this change then?

I made several tests, and haven't found any major difference.

That's exactly the point. When there's not much of a noticeable difference, why bother with changing the type? Changes cause friction and come with a risk of breaking something, which maybe wasn't even considered during the discussion.

What other reason for this change then?
A struct has the advantage to show to the users that it is immutable, and also enforce it in the code for everyone.

What other reason for this change then?

A struct has the advantage to show to the users that it is immutable, and also enforce it in the code for everyone.

@j8r Saying that structs are immutible is simply a misinformation - they can be used to create an immutable structures, yes - but they're not inherintly immutible.

True, but here the fields are strings, which are also designed to be immutable (even so they are not at the low level).
It is said in the docs:

Therefore structs are mostly useful for immutable data types and/or stateless wrappers of other types, usually for performance reasons to avoid lots of small memory allocations when passing small copies might be more efficient (for more details, see the performance guide).

Mutable structs are still allowed, but you should be careful when writing code involving mutability if you want to avoid surprises that are described below.

Here we want an immutable data type.

At the end I don't think it matters much being a class or struct, so whatever 🤷 .
I was just leaning more towards a struct because usually we use it more for immutable data types.

I think you're making a wrong conclusion: "structs are mostly useful for immutable data types" does not mean "immutable data types are mostly structs".


Remove reliance on Phoenix for registration.

Since #406, we have configured Northstar to automatically create a linked Phoenix account whenever a user registers. This is necessary because campaign signups and reportbacks rely on a drupal_id existing on a user's profile.
The downside is that many of Northstar's endpoints now have a hard reliance on Phoenix, which means Phoenix is still a single point of failure in our infrastructure. No good. 🙅♂
Original comment from #406:

A better long-term fix is still to have other APIs create local user accounts on demand and have the single canonical source of user data be Northstar (as described above), but that will probably end up happening in the Rogue/new front-end world rather than the ol' Droops.

A good example of this problem was a Redis issue in Phoenix causing Northstar's "create user" endpoints to return an error for ~8 minutes yesterday. Ideally a failure in one of our services shouldn't cascade to others.


Unclosed comment crashes JSHint

JSHint version: 2.9.2 (I tested it on http://jshint.com/)
Environment: Chrome v51
When there is a open comment block above the property in object, JSHint crashes with error:
Uncaught TypeError: Cannot read property 'id' of null
e.nud @ jshint.js:6
C @ jshint.js:5
(anonymous function) @ jshint.js:6
C @ jshint.js:5
fe @ jshint.js:6
pe @ jshint.js:6
gt @ jshint.js:7
self.onmessage @ worker.js:7

I tested in on http://jshint.com/ so the message is a bit cryptic, but you can reproduce the bug with the following snippet

({
  /*
  prop: 0
})

JSHint should give "Unrecoverable syntax error" error instead of crashing.

Thanks for the report! I just submitted a patch for this at gh-2937. Hopefully we'll have the fix out to you soon.

Just so it's a little easier searching for this for anyone in the future, here is the full stack trace from running into this on the CLI:
C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:5309
        throw err;
        ^

TypeError: Cannot read property 'id' of null
    at Object.x.nud (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:3228:26)
    at expression (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:884:34)
    at Object.fud (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:3666:17)
    at expression (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:881:32)
    at statement (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:1632:9)
    at statements (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:1677:16)
    at itself (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\jshint.js:5288:9)
    at lint (C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\cli.js:495:8)
    at C:\Temp\github\linter-jshint_GH292\node_modules\jshint\src\cli.js:656:7
    at Array.forEach (native)

Resolved via gh-2937. You can expect the fix in the release that follows 2.9.2.


Legacy Protocol statement is removed from version 7.6 and above, sinc…

…e the code for SSH-1 is removed from OpenSSH.
See #184 The same change was made for sshd_config. This one is for ssh_config.
Signed-off-by: Farid Joubbi<EMAIL_ADDRESS>

Seems good to me.


use of attributes dateOfConstruction, dateOfRenovation and dateOfDemolition for AbstractConstruction: allow for time interval

The feature type AbstractConstruction has the attributes   dateOfConstruction, dateOfRenovation and dateOfDemolition, that are also used   in INSPIRE theme Buildings.       INSPIRE offers the possibility to document these dates, either as a date   or as an interval.   The interval may be useful for the construction date of old buildings   where information has uncertainties (e.g. between 1900 and 1950) or for new   buildings [buildind permit, end of construction].
=> Consider offering the possibility to provide building events as dates or as date intervals.

Will be further discussed as part of #53. One idea there is to use codes for adding additional information about the renovation of objects. These codes could also be used to model time intervals.


Scope validation recommendation mixes up Singleton and Scoped

I was just reading through some of the suggestions in here, and I noticed this bullet, which I think is the wrong way around:

Enable scope validation to make sure the app doesn't have scoped services that capture singletons. For more information, see Scope validation.

Should it be?:

Enable scope validation to make sure the app doesn't have singletons that capture scoped services. For more information, see Scope validation.

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

ID: 0d78f540-81fd-1ba9-cb90-591e4ec27d9b
Version Independent ID: 2251f557-dd3a-ec35-2558-6243337db009
Content: Dependency injection in ASP.NET Core
Content Source: aspnetcore/fundamentals/dependency-injection.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@serpent5  please fix. Arg, I missed that one.

I think this was more my fault, really.
This is what it was:

Enable scope validation to make sure the app doesn't have scoped services capturing singletons.

I changed it like so:

Enable scope validation to make sure the app doesn't have scoped services that capture singletons.

I wonder if the original version was somehow describing the singleton as being "scoped service capturing"...
Anyhoo, I'll fix it up.


Can not list geo-redundant backup for Azure PostgreSQL server?

Hi,
We meet some issue with geo-redundant backup, more details as follows:
When we create the Postgresql server, for Backup Redundancy Options, we choose geo-redundant backup.
After two days, we tried to create a new Postgresql server using backup, but the backups list does not include any geo-redundant backup, like this:

As the document said full backups occur weekly, differential backups occur twice a day, so why we can not get the geo-redundant backup? Should we wait for it longer?
Do you have any idea about it?

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

ID: 9664ac97-ad76-df45-3833-c927b098ab95
Version Independent ID: 5f7c02b5-5454-509c-5681-8a4c1cdbb62b
Content: Backup and restore - Azure Database for PostgreSQL - Single Server
Content Source: articles/postgresql/concepts-backup.md
Service: postgresql
GitHub Login: @rachel-msft
Microsoft Alias: raagyema

@yqxiaxia Thanks for your question. We are checking on this and will respond to you soon.

@yqxiaxia I am looking for a bit of clarification regarding your request. Are you looking to create a PostgreSQL Server instance from a backup taken from a separate server? The backup available can only be used for the PostgreSQL instance it originated from. If you are looking to restore to a second PostgreSQL Server instance, please use the pg_dump and pg_restore commands to export and restore the database to a second server instance.

These backup files cannot be exported. The backups can only be used for restore operations in Azure Database for PostgreSQL. You can use pg_dump to copy a database.

Please let me know if you have additional questions.

@Mike-Ubezzi-MSFT
Thanks for your reply, base on the document https://docs.microsoft.com/en-us/azure/postgresql/howto-restore-server-portal#geo-restore, it says:

If you configured your server for geographically redundant backups, a new server can be created from the backup of that existing server. This new server can be created in any region that Azure Database for PostgreSQL is available.

It means we can create a new PostgreSQL server instance with the geo backup, is my understand correct? But as your information:

The backup available can only be used for the PostgreSQL instance it originated from.

It makes me confused. Need your help to clarify it. Thanks

@yqxiaxia And the initial PostgreSQL instance was configured for Geo-Redundant in the Backup Retention Period section? Is the region for which you are wanting to deploy the second server a paired region with the first server region? I think this is why you are not seeing the backup. And yes, if geo-redundant was selected when the first instance was initially setup, you should be able to restore to a compatible region.
You are either not seeing the backup when attempting to create the second server because the region you are currently deployed is not compatible or the backup is not available yet.
How much time has elapsed since the first server was created and which region was it created? What region are you attempting to create the second instance?

When a server is first created it may not be immediately available for geo restore. It may take a few hours for the necessary metadata to be populated.

Please let me know if you are having issues deploying the second instance.

@Mike-Ubezzi-MSFT
Thanks for your reply, The first server created before three days, we have already selected Geo-redundant in the backup retention period, the settings like below:

And also the first server region is East US, and new server region we choose West US which is the paired region. Still not see the backup.
First server:

Try to create second server, choose West US:

It shows no available items like below:

@yqxiaxia This appears to be a bug or product issue. Are you able to create a support request for this issue?

Sure, Thanks

We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


Envoy gateway AWS LB can't be clean up by EKS

Description:
When I use the envoy gateway in AWS and delete the load balancer type service, EKS LB controller(no matter it's intree from EKS directly or https://github.com/kubernetes-sigs/aws-load-balancer-controller ). they just can't clean up the load balancer generate from envoy gateway.
I will use CLB as the example for reproduce but it's the same based on my test and I opened the issue here(https://github.com/kubernetes-sigs/aws-load-balancer-controller/issues/3592)
Repro steps:
eksctl create cluster --region ca-central-1

kubectl create deployment nginx --image=nginx

aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName' --output text
-----
No ELB in this region
-----

kubectl expose deployment nginx --port=80 --type=LoadBalancer

(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName' --output text

ac53833b7872d40eda2c4ba33c505096
-----
only one nginx LB
-----

helm install eg oci://docker.io/envoyproxy/gateway-helm --version v1.0.0 -n envoy-gateway-system --create-namespace

(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ k get svc -A
NAMESPACE              NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP                                                                  PORT(S)               AGE
default                backend                         ClusterIP      <IP_ADDRESS>   <none>                                                                       3000/TCP              56s
default                kubernetes                      ClusterIP      <IP_ADDRESS>       <none>                                                                       443/TCP               20m
default                nginx                           LoadBalancer   <IP_ADDRESS>    ac53833b7872d40eda2c4ba33c505096-2064217360.ca-central-1.elb.amazonaws.com   80:32391/TCP          6m40s
envoy-gateway-system   envoy-default-eg-e41e7b31       LoadBalancer   <IP_ADDRESS>    ae8b77ce648ea46d2b968ae23cf69ed6-2060289306.ca-central-1.elb.amazonaws.com   80:31945/TCP          10s
envoy-gateway-system   envoy-gateway                   ClusterIP      <IP_ADDRESS>       <none>                                                                       18000/TCP,18001/TCP   33s
envoy-gateway-system   envoy-gateway-metrics-service   ClusterIP      <IP_ADDRESS>   <none>                                                                       19001/TCP             33s
kube-system            kube-dns                        ClusterIP      <IP_ADDRESS>      <none>                                                                       53/UDP,53/TCP         20m
-------

you can see there are 2 LBs in service and I forgot to run aws command this step
-------

(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/v1.0.0/quickstart.yaml -n default

Warning: deleting cluster-scoped resources, not scoped to the provided namespace
gatewayclass.gateway.networking.k8s.io "eg" deleted
gateway.gateway.networking.k8s.io "eg" deleted
serviceaccount "backend" deleted
service "backend" deleted
deployment.apps "backend" deleted
httproute.gateway.networking.k8s.io "backend" deleted
(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName' --output text
ac53833b7872d40eda2c4ba33c505096        ae8b77ce648ea46d2b968ae23cf69ed6
(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName' --output text
ac53833b7872d40eda2c4ba33c505096        ae8b77ce648ea46d2b968ae23cf69ed6

--------
still 2 LB when I check aws directly
-------

(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ k get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP                                                                  PORT(S)        AGE
kubernetes   ClusterIP      <IP_ADDRESS>      <none>                                                                       443/TCP        22m
nginx        LoadBalancer   <IP_ADDRESS>   ac53833b7872d40eda2c4ba33c505096-2064217360.ca-central-1.elb.amazonaws.com   80:32391/TCP   8m13s

(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ k delete svc nginx
service "nginx" deleted
(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ k get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   <IP_ADDRESS>   <none>        443/TCP   23m
(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName' --output text
ae8b77ce648ea46d2b968ae23cf69ed6

-----
LB from envoy gateway is still there
-----

I did check the cloudtrail from AWS, it clearly shows that there is no API call from AWS perspective trying to delete the LB.
I know it sounds like an AWS issue but I suspect because of the naming from envoy gateway causing AWS LB controller not deleting the LB from AWS.
Environment:

Include the environment like gateway version, envoy version and so on.

(⎈|liyi.huang@isovalent.com@beautiful-party-1710511746.ca-central-1.eksctl.io:N/A)~ k version
Client Version: v1.29.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.25.16-eks-508b6b3
WARNING: version difference between client (1.29) and server (1.25) exceeds the supported minor version skew of +/-1

Logs:

Include the access logs and the Envoy logs.

👋  @liyihuang good to see you here :)
can you share the metadata snippet from the generated svc like envoy-default-eg-e41e7b31 . Lets make sure EG is respecting the finalizers added by the AWS controller

@arkodg lol. I didn't expect you pick this up.
I deleted this environment after I created the issue but I do have another screenshot that I took from last night having the same issue where I checked the finalizers where I think it's ok.
Please let me know if you want me to deploy a new environment.

For this particular screenshot, it's the NLB from AWS, so I have the LB controller installed and manage the AWS LB(https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/service/annotations/#legacy-cloud-provider) this annotation tells it's AWS external LB controller managing it than the in tree one.
The symptoms is the same but I'm able to see more logs from LB controller where I attached to AWS issue(https://github.com/kubernetes-sigs/aws-load-balancer-controller/issues/3592)
you can see LB controller deleted the targets but not the LB itself from the following logs
(log is from 3 weeks ago so it's not the NLB from the photo that I attached here)
{"level":"info","ts":"2024-02-24T14:09:56Z","logger":"controllers.service","msg":"created targetGroup","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"envoy-gateway-system/envoy-default-eg-e41e7b31:80","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:targetgroup/k8s-envoygat-envoydef-662a714b08/af0a72cf569098e8"}
{"level":"info","ts":"2024-02-24T14:09:56Z","logger":"controllers.service","msg":"creating loadBalancer","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"LoadBalancer"}
{"level":"info","ts":"2024-02-24T14:09:57Z","logger":"controllers.service","msg":"created loadBalancer","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"LoadBalancer","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:loadbalancer/net/k8s-envoygat-envoydef-d844852579/3f34d754ad6b8335"}
{"level":"info","ts":"2024-02-24T14:09:57Z","logger":"controllers.service","msg":"creating listener","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"80"}
{"level":"info","ts":"2024-02-24T14:09:57Z","logger":"controllers.service","msg":"created listener","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"80","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:listener/net/k8s-envoygat-envoydef-d844852579/3f34d754ad6b8335/46f8b73b1cf97a8e"}
{"level":"info","ts":"2024-02-24T14:09:57Z","logger":"controllers.service","msg":"creating targetGroupBinding","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"envoy-gateway-system/envoy-default-eg-e41e7b31:80"}
{"level":"info","ts":"2024-02-24T14:09:57Z","logger":"controllers.service","msg":"created targetGroupBinding","stackID":"envoy-gateway-system/envoy-default-eg-e41e7b31","resourceID":"envoy-gateway-system/envoy-default-eg-e41e7b31:80","targetGroupBinding":{"namespace":"envoy-gateway-system","name":"k8s-envoygat-envoydef-662a714b08"}}
{"level":"info","ts":"2024-02-24T14:09:57Z","logger":"controllers.service","msg":"successfully deployed model","service":{"namespace":"envoy-gateway-system","name":"envoy-default-eg-e41e7b31"}}
{"level":"info","ts":"2024-02-24T14:09:59Z","msg":"authorizing securityGroup ingress","securityGroupID":"sg-0eeb8e99fb1fa92e7","permission":[{"FromPort":10080,"IpProtocol":"tcp","IpRanges":null,"Ipv6Ranges":null,"PrefixListIds":null,"ToPort":10080,"UserIdGroupPairs":[{"Description":"elbv2.k8s.aws/targetGroupBinding=shared","GroupId":"sg-036e2ab103adf694a","GroupName":null,"PeeringStatus":null,"UserId":null,"VpcId":null,"VpcPeeringConnectionId":null}]}]}
{"level":"info","ts":"2024-02-24T14:09:59Z","msg":"authorized securityGroup ingress","securityGroupID":"sg-0eeb8e99fb1fa92e7"}
{"level":"info","ts":"2024-02-24T14:09:59Z","msg":"registering targets","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:targetgroup/k8s-envoygat-envoydef-662a714b08/af0a72cf569098e8","targets":[{"AvailabilityZone":null,"Id":"<IP_ADDRESS>","Port":10080}]}
{"level":"info","ts":"2024-02-24T14:10:00Z","msg":"registered targets","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:targetgroup/k8s-envoygat-envoydef-662a714b08/af0a72cf569098e8"}
{"level":"info","ts":"2024-02-24T14:25:37Z","msg":"deRegistering targets","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:targetgroup/k8s-envoygat-envoydef-662a714b08/af0a72cf569098e8","targets":[{"AvailabilityZone":"ca-central-1d","Id":"<IP_ADDRESS>","Port":10080}]}
{"level":"info","ts":"2024-02-24T14:25:37Z","msg":"deRegistered targets","arn":"arn:aws:elasticloadbalancing:ca-central-1:679388779924:targetgroup/k8s-envoygat-envoydef-662a714b08/af0a72cf569098e8"}
{"level":"info","ts":"2024-02-24T14:25:37Z","msg":"revoking securityGroup ingress","securityGroupID":"sg-0eeb8e99fb1fa92e7","permission":[{"FromPort":10080,"IpProtocol":"tcp","IpRanges":null,"Ipv6Ranges":null,"PrefixListIds":null,"ToPort":10080,"UserIdGroupPairs":[{"Description":"elbv2.k8s.aws/targetGroupBinding=shared","GroupId":"sg-036e2ab103adf694a","GroupName":null,"PeeringStatus":null,"UserId":"679388779924","VpcId":null,"VpcPeeringConnectionId":null}]}]}
{"level":"info","ts":"2024-02-24T14:25:37Z","msg":"revoked securityGroup ingress","securityGroupID":"sg-0eeb8e99fb1fa92e7"}

hey @liyihuang I'm suspecting for your case the finalizers may have been overwritten by EG
https://github.com/envoyproxy/gateway/pull/3034 fixed this recently
can you try again with the latest image
helm install eg oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --create-namespace

@arkodg thanks. I will look into next week. Isn't today a public holiday in the US and you are in the PST timezone?

@arkodg thanks. I will look into next week. Isn't today a public holiday in the US and you are in the PST timezone?

it is, but im traveling this week, and in another tz :)

@arkodg I just got the time to look into this and can confirm the issue is resolved.


Pauline sgn patch 1 (try to update version of emlassemblyline)

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

I even have another suggestion. I don't think "version-dev" is really accepted as a conda version. So, maybe you could leave the version to 3.5.5 and write the line like this https://github.com/yvanlebras/EMLassemblyline/archive/refs/heads/{{ version }}-dev.zip
And bump the build number to 2 maybe.

Thank you @Marie59, I take this into account and will make the changes.

Okay from my side I think it's good. Tell me if you want me to merge this PR.

Sorry if we made a mistake, but this is a particular case.. We created a fork of EAL 3.5.5 where we can notably add functions to EAL as using netcdf, spatial vector and spatial raster data files. We prefer for now have such dev release so it can be used by Galaxy tools waiting the upstream / offical repository taking into acount these addition and officially create a new EAL version. Please don't hesitate to say if we have to make differently... Thank you for your comments!


Not all the tests run on Linux

Test cases that do not run on Linux:

testMixedReadByte
testMixedReadBytes
testReadBytesThrowsBeforeReading
testReadBitsThrowsBeforeReading
testBool

Hi @wacumov!
it looks like, i forgot to add those tests to the allTests array.
Wouldn't this help to fix the issue?
I took a look into your PR but was not sure what's going on Linux 😅
Thanks!

Hi @Cosmo! Yes, some test cases are missing on Linux. I've fixed it in the PR and have added LinuxVerificationTests to prevent such a situation in the future.
Here you can see that 20 test cases runs on Linux and 21 on Mac OS (20 from allTests + 1 from LinuxVerificationTests)

Oh, I see -- smart! :D
Thanks a lot!


1.21 Update

Hey, could you update the mod to the new Minecraft versions? Don't mean to bother you, would be really nice though:)
Did a bit of testing by changing the version dependencies and the only thing that seemed broken to me is the "setChunkLoaderNameFromInventory"  function.
The minecart is being made a chunkloader when empty but when carrying an item it crashes the server.
That being said I don't know much about modding!
Thank you for this great mod :)

Same goes for Minecraft 1.21 I guess:)

If you need an update right away and don't want to wait for the official release, you can take the updated version from my fork - there were only two little fixes needed so everything should work like before but I guarantee nothing :D

Hey! I totally missed this, sorry!
@Smalldero would you be willing to open a PR from your fork to this repo so we can get this out to everyone? 😊

@scriptcoded Sure, I created a PR!

Thanks to @Smalldero 1.21 is now released on Modrinth! 🎉


AccountLinking preselectedCountry issue

Hi, first of all thanks for this great flutter package update.
Just started testing it and found a small issue that preselectedCountry gets ignored on Android (iOS not tested yet).
Also probably found a reason for that:
Those 2 lines are incorrect where you assign bank to country value and preselectedCountry as preselectedBank... Sould be a quick fix :)
..
preselectedBank: model.preselectedCountry?.iso
..
preselectedCountry: model.preselectedBank

@KestasVenslauskas thank you for your bug report, the issue has been fixed and update has been published to pub.dev!


Race Condition in OutboundRabbitMqTransport

OutboundRabbitMqTransport.AddProducerBinding() was not synchronized at all, so if one thread sets the variable _producer, the next thread will read it assuming it is completely initialized. But the code line _connectionHandler.AddBinding(_producer) is probably not yet executed.
In RequestImpl.NotifyComplete() the bug happens as follows: Thread A runs in the method Wait() to line 103, obtaining the lock. It sees _completed as false, and releases the lock thereafter. Thread B reached the lock in NotifyComplete(), line 219, while Thread A had this lock obtained. It will now run into the locked section, sets _completed to true, and will find that _complete is null, because Thread A was not fast enough to to reach the statement CompleteEvent.WaitOne(...) in line 105. Thus, Thread B will not call _complete.Set(), and thus Thread A will wait forever.
We found these two bugs while stress-testing our new application which uses MassTransit. It would be nice if the fixes could find their way into the product.

I can pull in this change for the 2.x codebase.


Bug: test --watch runs all tests when developing one rule

The current approach for loading the rules (the registry) somehow makes all rules depend on each other.
Steps to reproduce
Change a line in any rule and run npm test -- --watch
Current behavior
npm test -- --watch runs all test cases
Expected behavior
npm test -- --watch runs only the tests cases for the rule I'm changing (and its dependencies)

That's because:

all rules tests depends on registry (to do loadBaseConfig() for example)
registry depends on all rules
[rule a test ] ----> [registry] ---->  [rule a] <--- [rule a test] ---> [rule a]
[rule b test ] ---/                    ----> [rule b] <--- [rule b test] ---> [rule b]

It's not easy to decouple these because those "loadConfig" "loadModules" functions uses all other rules registrations to validate the configuration itself...
Not the best way, but maybe using jest file patterns for the specific test you are working on is a workaround for now.

@sergioflores-j  I was wondering, and with current data structure we can't avoid this circular dependencies because:

a rule receives an array of "modules" in their interface, and each module of the array have a reference to all enabled modules for that specific module
so it means that if one rule changes, it might affect N modules, which have references to N rules, thus, leading to the circular dependency

One way of getting rid of that is to change the data structure of a module not to depend on "enabledRules", because actually one rule doesn't need to receive reference to other rules for a specific module to run. It was created just for the framework itself to use, not the rule, so we could have a representation of the "Module" for internal usage, and another for exposing to the Rules, which might fix our issue. Makes sense?

In these situations what we can do is to instead of having a direct reference do the object, make it have a reference only to the id, then who needs it can get the actual object. In this case instead of having reference to the rule instances, we could have only the rule id…Sent from my iPhoneOn 23 Nov 2022, at 21:33, Sergio Eduardo Flores Jr. @.***> wrote:
structure we can't avoid this circular dependencies because:
a rule receives an array of "modules" in their interface, and each module of the array have a reference to all enabled modules for that specific module
It makes sense indeed.
I was wondering a way to fix that and even sketched a rule "lazy-loader". So we could keep the same structure as now (enabledRules) but make it only load the rules that are really enabled.
But it didn't fix the issue, because we have "default" recommended rules enabled as well. So even setting a config like the following for the tests, it was still loading more rules to the list.
// .monolint...
{
"rule-a": true
}
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>


Refactor CHNG params

Description
Refactors chng params files in accordance with #795.
Changelog
Itemize code/test/documentation changes and files added/removed.

Refactor cdc covidnet params files to new structure
Rename  cache_dir to input_cache_dir to disambiguate with the forthcoming cache_dir parameter in the archive module.

Fixes

Partially addresses #795

It appears that the AWS S3 parameters are all only read in the test files. Can you please just remove them entirely from the codebase here?

Good catch, removed.


pump.io: AndStatus creates unintuitive "followed" activities

As can be seen in a capture of my pump stream, AndStatus creates activities like "Claes Wallin (韋嘉誠) followed an unknown object type: 170202".
The expected activity is e.g. "Claes Wallin (韋嘉誠) followed Person's name, link to profile page".

Or might this be related to https://github.com/pump-io/pump.io/issues/1216 ?

@clacke Thank you for noticing. Following your report I took time to find out, whose messages in Pump.io and why I get in my timeline.
This looks like there was some bug/data failure in Pump.io, but currently I was able to follow/unfollow Pump.io users via AndStatus. And as you noted, in order to fix my follows I had to:

"Follow" via Web Pump.io interface a person, whose messages I received constantly (without following...).
Unfollow then follow again people, who were marked as Followed by me, but whose messages I didn't receive for a long time.

I see via Web interface<EMAIL_ADDRESS>followed EVAnaRkISTO"
After this I saw him as "following by<EMAIL_ADDRESS>in AndStatus and could "Unfollow".
I see via Web interface<EMAIL_ADDRESS>stopped following EVAnaRkISTO"
Then I successfully Followed another user via AndStatus:
I see via Web interface<EMAIL_ADDRESS>followed JanKusanagi"
Then I went to a list of people, whom I follow: https://identi.ca/andstatus/following - I fould out that I didn't receive their messages for a long time. I unfollowed/followed them again via web interface...

There is definitely something wrong with Pump.io: At identi.ca I see that now I follow<EMAIL_ADDRESS>but when I go to his site: https://pump.saz.im/sazius and Log in there, I still see "Follow" button, as if I don't follow him. Pressing that button gives some "Internal error"...

I'd like to point out that I've never seen this type of "broken activities" created by any other client.
The closest thing would be a "JaneDoe followed a person", which happens when trying to follow a wrong ID, such as<EMAIL_ADDRESS>That's easy to reproduce.
@clacke, could we know who you were trying to follow when those activities were created?
@yvolk, is there a way he could get the JSON sent by AndStatus when those activities happen?

@jankusanagi I couldn't reproduce such erroneous activities that @clacke noticed: as I wrote above, all Follow/Unfollow activities, sent by AndStatus, looked normally via web UI at identi.ca

As the activities only say "Followed unknown xyz" I actually don't know whom I was trying to follow. And my .../following is broken as seen in pump-io/pump.io#1216, so I can't check. :-/
I will try and see if maybe I was following some recent followers back.


Simplified Travis CI testing [travis-dev]

This PR brings up a simplified Travis CI testing based heavily on Aaron's work in the old-travis-dev
branch (previously known as develop and travis-dev).
I am not a Travis expert, but wanted to get us started with something... suggestions for improvements are definitely welcomed :)
Some of the changes are:

I removed the unit testing and (for simplicity) the codecov coverage.
Debug builds run only make check. Non-debug builds run make test.
Testing gcc on Linux and clang on Mac with all DEBUG=YES/NO and MPI=YES/NO combinations (a total of 8 builds).

Jobs now take between 2 and 10 minutes, e.g. in my last test the total run time for all 8 jobs was 47 minutes, but due to overlapping the test completed in 13 minutes.
I tried caching some of the build, but had some issues and decided against it at the end.

Results from the Travis runs are here: https://travis-ci.org/mfem/mfem

Next up: (Appveyor](https://www.appveyor.com). See e.g. https://github.com/LLNL/conduit/blob/master/appveyor.yml

@aaroncblack and @acfisher, do you mind giving this PR a priority? We'd like to merge this in the next branch, so it serves its testing purposes and checks show on all the new PRs :)

Yes, I like having something in right now.  I would be happy to get code coverage working ( I have something in CMAKE already I could adapt for MFEM, but will look at if it can be done with simple makefile also ).

Merged in the next branch for testing.


Fix PowerShell core crash

In PowerShell Core (6.0+) '-Encoding byte' is replaced by '-AsByteStream', fixed and tested on my Windows 10 Home with PowerShell Core 6.04 stable.
This is my first attempt to contribute back into your amazing project that I highly appreciate, so if something is missing like obligatory tests, waiver, issues etc - feel free to pinpoint and I will try to conform!

Thank you 👍