[Feature Request] Use context managers to toggle the recurrent mode of RNN modules?

Motivation
In TorchRL users must manually set the mode of RNN modules using the set_recurrent_mode method. This toggles between processing steps individually or processing entire sequences of steps.
We believe that this approach has some issues:

Requires keeping track and maintaining two versions of the policy (yes, they have the same weights, but are still two objects).
Is cumbersome when dealing with large policies with multiple sub-modules (as you have to re-implement the set_recurrent_mode for the policy).
Seems to be easy to get wrong for people new to the code.

Proposed Alternative
Can we leverage context managers for this? Similar to how tensordict does with set_interaction_type.
For instance:
input = TensorDict(...)
lstm = LSTMModule(...)
mlp = MLP(...)
policy = TensorDictSequential(lstm, mlp)

# By default, the lstm would not be in recurrent mode.
policy(input)

# Recurrent mode can be activated with a context manager.
with set_recurrent_mode(True):
    policy(input)

Have you considered this approach in the past?
Potential Implementation
The set_recurrent_mode could be implemented in a similar fashion to the set_interaction_type:
_RECURRENT_MODE: bool = False

class set_recurrent_mode(_DecoratorContextManager):
    def __init__(self, mode: bool = False) -> None:
        super().__init__()
        self.mode = mode

    def __enter__(self) -> None:
        global _RECURRENT_MODE
        self.prev = _RECURRENT_MODE
        _RECURRENT_MODE = self.mode

    def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:
        global _RECURRENT_MODE
        _RECURRENT_MODE = self.prev

Potential Issues

Unsure of the implications of this in distributed systems (is this thread or process safe?).
Users could still forget to set this mode.

Checklist

[x] I have checked that there is no similar issue in the repo (required)

If there's interest in building something like this, I'd be wiling to invest time into it.

Yep we could perfectly do this, I don't think anyone would wish to run the RNN in both modes in the same function.
I like CMs but I know some people don't. The main issue is usually how to make distributed ops know what the context is, but I don't think it's a problem here.
Wanna work on this, or should I?
What's you opinion on these use cases:
policy = make_policy()

policy(input)  # what's the default?
policy.set_recurrent_mode(False)  # should raise a deprec warning?
with set_recurrent_mode(True):
    policy(input) # does the decorator overrides the mode set in the line above?

with set_recurrent_mode(False):
    policy.set_recurrent_mode(True) # does this work?
    policy(input)

If the old API is to be deprecated, it's fine if the CM overrides the internal mode, but if we want both APIs to coexist it can be tricky to decide who should prevail

I like CMs but I know some people don't.

The only thing I don't particularly like is the setting of a global variable. Not sure if it would make sense to have a lock for it.

The main issue is usually how to make distributed ops know what the context is, but I don't think it's a problem here.

Yes, this would def not work in this setting. This is only really applicable for local operations and, tbf ideally the context where this is active should be short.
The use-case I imagine is something like this:
for _ in range(num_steps):
    # Collect batch
    td = env.rollout(100, policy)

    # Train on batch
    with set_recurrent_mode(True):
        loss = loss_module(td)

    loss.backward()
    ...

To your questions:

policy(input)  # what's the default?

I'd say we should keep the current default (recurrent mode off)

policy.set_recurrent_mode(False)  # should raise a deprec warning?

I'd say we could support both approaches of setting the recurrent mode. The context should be used in short-lived use-cases, while the method is better in the case of distributed systems.

with set_recurrent_mode(True):
   policy(input) # does the decorator overrides the mode set in the line above? ```

I'd say that the context takes precedence over the default recurrent mode?

with set_recurrent_mode(False):
    policy.set_recurrent_mode(True) # does this work?
    policy(input)```

Uuuh, tricky. Based on the previous statement ("context takes precedence over the default recurrent mode") I'd say that this would run, but the context would still take precedence.
Maybe we can think of the method set_recurrent_mode as setting the default recurrent mode? Which can then be overridden by the context.

Wanna work on this, or should I?

I'd be interested, but it might take some time due to some other high-prio work. So feel free to take it over!

The only thing I don't particularly like is the setting of a global variable. Would make sense to have a lock for it?

Sure, whatever works!

@thomasbbrunner one thing I learned in the PyTorch team is that having 2 similar APIs to do one thing should be avoided when possible.
I like the CM better, so I'm enclined to adopt it and deprecate the other. If you think it's a viable way, I can make a PR pretty quickly.

@vmoens

one thing I learned in the PyTorch team is that having 2 similar APIs to do one thing should be avoided when possible.

Definitely agree with that! I also prefer the CM approach, so I'd be ok with deprecating the other.
At the same time, I feel like the two APIs serve slightly different purposes. I guess it's similar to with torch.no_grad(): and the requires_grad argument for torch.Tensor and Parameter.
Maybe for some use-cases (like distributed setups) it would be beneficial to set a default recurrent mode. I don't think that the set_recurrent_mode method is ideal for this. I'd argue that a recurrent_mode argument in the constructor would work better. Either way, def something that could be implemented if needed at a later point.

Solved by https://github.com/pytorch/rl/pull/2584
Closing!


enable greetings workflow again

The greetings workflow is currently broken. We should enable it again when it's fixed.

Implemented


Add support for history

We use the raw history command as solution and amax panels don't allow using the text events command.
For panels that do support it, I use the text history command to get human readable text, as it means we don't have to manually parse in those cases.

@mag1024 Out of curiosity, is this working on your panel now? I fixed that error you encountered the other day

Im not sure if there are B or G panels running firmware old enough that they need the history parsing, or if all of them support the human readable events

The library seems to work (at least it doesn't throw any errors), but with the integration changes I got this:

2023-05-30 00:21:47.694 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error adding entities for domain alarm_control_panel with platform bosch_alarm
Traceback (most recent call last):
File "/home/mag/homeassistant/core/homeassistant/helpers/entity_platform.py", line 464, in async_add_entities
await asyncio.gather(*tasks)
File "/home/mag/homeassistant/core/homeassistant/helpers/entity_platform.py", line 742, in _async_add_entity
await entity.add_to_platform_finish()
File "/home/mag/homeassistant/core/homeassistant/helpers/entity.py", line 870, in add_to_platform_finish
await self.async_added_to_hass()
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/alarm_control_panel.py", line 122, in async_added_to_hass
await self._panel.load_history(start_id, history)
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/bosch_alarm_mode2/panel.py", line 178, in load_history
await self._history._load_history(last_event_id, previous_events)
TypeError: object NoneType can't be used in 'await' expression

I have fixed this now

Long term it's worth studying how the z-wave integration build their devices. They both a have a completely custom statistics popup accessible via the devices' burger menu, and, possibly even more compelling, they emit custom events that get recorded in HA's native Logbook.

Long term it's worth studying how the z-wave integration build their devices. They both a have a completely custom statistics popup accessible via the devices' burger menu, and, possibly even more compelling, they emit custom events that get recorded in HA's native Logbook.

well now im tempted to see how the hell they do that because it does look a lot nicer. Getting everything in the log book would also be a nice method to go with as well, i just need to work out how the hell that sorta thing is actually done, and im not 100% sure we can do that with custom timestamps for importing the old events

Long term it's worth studying how the z-wave integration build their devices. They both a have a completely custom statistics popup accessible via the devices' burger menu, and, possibly even more compelling, they emit custom events that get recorded in HA's native Logbook.

Turns out this is something extremely specific to Z-Wave, and isn't just something anybody can do, but what i can do is  set up a device anyways, and then tag the history as a DIAGNOSTIC sensor so that it isnt automatically added to panels or voice assistants

Ah, that's unfortunate. Thanks for investigating!
Anyway, we can fiddle with exactly how we surface the events in HA after we merge the initial version. The main thing I'd like to address before then is to find a way around having to have an init_history call. It seems to me that the current structure is too influenced by the fact that we currently use a separate sensor, and it is the one persisting the history state, and results in a somewhat strange API for the library.
Can we find a way to persist the the history state (last event id) at the integration level, s.t. it can be read at initialization time, and given to the Panel constructor? Alternatively, we could forego state persistence altogether for now -- just always read the entire history on startup (this would also allow us to remove init_history) -- and add load time optimizations later.

Ah, that's unfortunate. Thanks for investigating! Anyway, we can fiddle with exactly how we surface the events in HA after we merge the initial version. The main thing I'd like to address before then is to find a way around having to have an init_history call. It seems to me that the current structure is too influenced by the fact that we currently use a separate sensor, and it is the one persisting the history state, and results in a somewhat strange API for the library. Can we find a way to persist the the history state (last event id) at the integration level, s.t. it can be read at initialization time, and given to the Panel constructor? Alternatively, we could forego state persistence altogether for now -- just always read the entire history on startup (this would also allow us to remove init_history) -- and add load time optimizations later.

Ill look into the persistance stuff soon, however i am just going to test what i have with a sol 3000 panel that supports subscriptions, and next week i will be receiving a b series panel as well, so i will test history with both panels and get everything working with the three panels i will have here.

I have now obtained a b series panel

Ah, that's unfortunate. Thanks for investigating! Anyway, we can fiddle with exactly how we surface the events in HA after we merge the initial version. The main thing I'd like to address before then is to find a way around having to have an init_history call. It seems to me that the current structure is too influenced by the fact that we currently use a separate sensor, and it is the one persisting the history state, and results in a somewhat strange API for the library. Can we find a way to persist the the history state (last event id) at the integration level, s.t. it can be read at initialization time, and given to the Panel constructor? Alternatively, we could forego state persistence altogether for now -- just always read the entire history on startup (this would also allow us to remove init_history) -- and add load time optimizations later.

Alright, ive figured out how to use homeassistant.helpers.storage.Store and have now decoupled the history persistance from the entity

Also, now that I'm using developer panels instead of my main house alarm, i ended up setting up a home assistant dev environment. It turns out when you do this, you can easily test both the integration and the module, as you can just clone the integration and symlink it to custom_integrations, and then you can python -m pip install bosch-alarm-mode2/ and it will install it from the filesystem, and if you then use the "skip pip" option when starting home assistant, it will use the version of the module you just installed, instead of attempting to pull another one.

I have now obtained a b series panel

Cool! It's very confusing that my panel B8512G is part of the G-series. Who came up with this naming??
BTW, is there any chance your Bosch contacts can hook me up with whatever's necessary to run the configuration software for my panel? I've tried to get this to work a while back, and wasn't able to, because I think it requires some kind of a hardware security dongle.

Since you set the device up, i also specified that the history sensor is a diagnostic sensor, and so it gets put into the diagnostic section of the device instead of being listed with the other sensors.

Oh nice. That seems good for now. I randomly met Paulus (the HA founder) the other day, and he mentioned something about how integrations can even have custom dashboards now. I feel like there are a lot of advanced non-documented options for what one can do, so maybe eventually we'll find something better.

I have now obtained a b series panel

Cool! It's very confusing that my panel B8512G is part of the G-series. Who came up with this naming?? BTW, is there any chance your Bosch contacts can hook me up with whatever's necessary to run the configuration software for my panel? I've tried to get this to work a while back, and wasn't able to, because I think it requires some kind of a hardware security dongle.

what did it do when you tried to use it? I notice the the guide for the B series panel also mentions the same key, but it isnt necessary, I did however find that when i was configuring it with RPS, it refused to let me do the initial setup (giving me a red X) unless i put in my public IP address, which i then was able to change back to my local one later for testing. You also should be able to just use a usb A to A cable for programming directly as well from what i gather.

I have now obtained a b series panel

Cool! It's very confusing that my panel B8512G is part of the G-series. Who came up with this naming?? BTW, is there any chance your Bosch contacts can hook me up with whatever's necessary to run the configuration software for my panel? I've tried to get this to work a while back, and wasn't able to, because I think it requires some kind of a hardware security dongle.

Haha that naming confused the hell out of me too when i was implementing that history stuff, but that reminds me to add the fact that we now know the B5512 works

I have now also been able to confirm that subscription based history events are parsing correctly as well, and i have simplified the parsing of text based events

The parser changes look like they worked out great -- thank you!

I did however find that when i was configuring it with RPS, it refused to let me do the initial setup (giving me a red X) unless i put in my public IP address, which i then was able to change back to my local one later for testing.

Ah, that could very well be it! I'll have to try that the next time I get around to playing with it.

The history loading is so slow on my panel, that it trips hearbeat and resets the connection, causing it to restart the load 🤦

Maybe we should limit it to something reasonable like 1 month of events of backlog -- otherwise it's loading stuff from 2021, which doesn't seem particularly useful.....

Annoyingly, all we can do is specify a event id to start from, there's no way to specify a date specifically.

Yeah, I'm in strongly in favor of not adding any parameters that we don't absolutely need, so hardcoding a sane default for the number of events to load sounds pretty reasonable.
In the meantime, I experimented with forcing the use of the binary history format on my panel to see if it's any faster, and found that it totally doesn't work. There are so many errors, that I suspect that there's something totally off with the parsing: either wrong endian-ness, or maybe something off with the byte offsets.
Dropping some sample errors here in case you get around to looking into it before I do: history-errors.txt

Oh, yeah, it's totally the endian-ness: switching to BE fixes it. Can you please check if your B-series uses LE or BE in binary mode?

BTW, have you looked into Protocol 4 at all? Seems like it basically uses 16 bit lengths, instead of 8 bit, allowing it to return much larger responses -- up to 23 per history response. I tried it out by hacking some stuff in connection.py, and the panel seems to respond with... something. But it doesn't match what we're currently expecting

I didn't really look at the other formats tbh, but tbh I kind of like the idea of just limiting it to 30 responses or so.
I implemented that logic here: https://github.com/mag1024/bosch-alarm-mode2/pull/7


Update Connect-SPOHubSite.md

This cmdlet is removed in the February 2018 Release of SharePoint Online management shell (16.0.7414.1200). This was announced in the General SharePoint Dev (CSOM, Provisioning, PnP) SIG call of February 22nd 2018.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Connect-SPOHubSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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

actually the name was changed. I just submitted #204 with the updated name.

@davidchesnut thanks for the update. Should I close this PR?

I'll close this for now to avoid conflicts. Thx Dennis for the submission regardless. Names were indeed renamed as shared in the February updated notes for the SPO mgmt Shell.


IndexError is sometimes raised

Example:
a =

When load is called on a file like that, it fails with IndexError: string index out of range. This may not be the best behaviour, because

it requires to write a very broad except clause;
the exception itself doesn't really tell anything useful about what's wrong.

Is there something that should/can be done about this? Thanks! 👍

Thanks for the bug report!
I believe that the latest commit on master fixes this issue. The pre-parsing checks now pass empty vaues along to the value parsing code which raises a TomlDecodeError if it encounters an empty value.


Added MiniEye collection module; Minor change to ChromeDump

MiniEye - Collect recordings from Webcam.
ChromeDump - Modified sqlite DB connection string for read-only access.

Nice work!


Is it possible to interrupt FFMPEG?

Hi I need to interrupt execution on certain conditions, is it possible or do I need to do some shamaning on source code?

Pretty interested how to do this as well

I might have found a work around for this.
On a separate thread create a while loop(with a termination variable pre-specified, like while(recording)), in that loop record small piece of video(1 second long for example) per run and give them distinct names so you can find and concat them afterwards, then after you recorded enough seconds you just concat them into one big video and delete smaller pieces.
Yes its VERY VERY fucky way to deal with things, but I really really dont wanna dig code and implement it myself.

If you wish to interrupt ffmpeg, you should manage the Process yourself, and use this library to build the command line arguments only. For example:
    FFmpegBuilder builder = new FFmpegBuilder()
        .setInput("input")
        .addOutput("output.mp4")
        .done();

    List<String> args = new ArrayList<>();
    args.add("/path/to/ffmpeg");
    args.addAll(builder.build());

    ProcessBuilder processBuilder = new ProcessBuilder(args);
    processBuilder.redirectErrorStream(true);

    Process p = processBuilder.start();

    Thread.sleep(1000);

    p.destroy(); // Interrupt

You may wish to read stdout, and deal with other error situations.  Example of how all this is hidden from you is in FFcommon.java.

Oh yeeeeee thanks!


[RHCLOUD-21109] Const AccountNumber refactor

after discussion in #562 I decided to create PR for each constant from middleware/headers/headers.go

to have smaller PRs and
to not have chaos in repo commit history

this PR contains changes related with constant ACCOUNT_NUMBER
all PRs related with this constant refactor will be registered in https://github.com/RedHatInsights/sources-api-go/issues/570
JIRA: RHCLOUD-21109

/retest

rebased & conflict solved

rebased & conflict solved

rebased & conflict solved


Dependabot won't update Gemfile in a nonstandard location.

Dependabot did a great job of generating PRs for the vulnerable python libraries in https://github.com/stripe/stripe-payments-demo but it couldn't generate a PR for the vulnerable ruby library in that repo. What's odd is that it was able to find that there was a vulnerable ruby library. It just couldn't create the PR. The only details I have on why is the error message:

Dependabot couldn't update this dependency to the required version as it doesn't support your dependency files.

It would be great if there were feature parity for ruby and it could generate the ruby PR as well.

Pretty sure this was my mistake. The repo contains a GemFile but not a Gemfile. I'll reopen if it's actually a dependabot issue.


Improve patchComponent && Add patchCluster scripts

Fixes #11685
Status
ready
Description
With the current PR we improve the functionality of patchComponent.sh script adding the following functionalities:

The ability to find the correct WMCore codebase destination - regardless if running from pypi or from Source
The ability to recognize the WMCore version currently deployed at the destination
The ability to parse the patch file to find the full list of files prepared for altering
The ability to  "zero" the codeBase of all the files which are about to be patched to the state as they are at the WMCore version currently deployed at the destination
The ability to perform a second patch attempt starting from latest version of the files from the list of files to be altered (by fetching them from upstream/master) if the first attempt to patch from the currently deployed version fails. It is a feature quite needed in the case of completely broken history and/or intermediate developments that might have happened between the moment of forking to a new branch for creating the patch and the actually applying and/or when the origin branch on top of which the patch has been created is behind the branch currently deployed at destination.
Automatically  detecting any code conflicts (failed patch steps) and  reverting the whole code to the baseline it started  from if found any
The ability to patch from local tree (through git * commands) without going through officially creating a PR in the upstream repository
The ability to chose if to skip any of the above actions
The ability to manually revert (only zeroing)  the whole code base to the version deployed at the destination
The ability to apply multiple patches in a row (preserving their order)

We also introduce the script patchClustetr.sh, which is capable of applying all those step on a Kuberenetes  cluster. The granularity could be:

A whole cluster
A Pod
A Service
A Deployment

This way those two scripts become a well coupled pair, which boosts the development and testing/validation process tremendously!!!
Is it backward compatible (if not, which system it affects?)
YES
Related PRs
None
External dependencies / deployment changes
None

Hi @vkuznet  I have addressed your comments. Please  take another look.


Minimal implimentation of prefetch

https://github.com/rust-lang/rustc_codegen_gcc/blob/1a8e0c39fac364211a92ace4f872f6091518bd50/src/intrinsic/mod.rs#L170-L175
Currently, all the prefetch operations lead to unimplemented!() macro. However, prefetches are just a suggestion and can be interpreted as a noop, like assume is.

__builtin_prefetch can probably be used here. Not sure if there's anything in gcc to prefetch instructions.

__builtin_prefetch can probably be used here. Not sure if there's anything in gcc to prefetch instructions.

I'll take a look while I'm doing the constanty_p one.

__builtin_prefetch can probably be used here. Not sure if there's anything in gcc to prefetch instructions.

There is nothing for instructions. Does it make sense to use a data prefetch call in place of an instruction prefetch?

I'm not sure. It could be interesting to try and see if the resulting assembly is affected.

The assembly will be different on many platforms, but maybe a data prefetch will still benefit instruction load time if it brings it from main memory to intermediate cache. While experimenting does sound interesting, I think we will get better results by asking an expert in computer architecture. I'm assuming we can use conditional compilation and only use it on targets that would benefit. In the mean time, I lean towards being conservative and making instruction prefetch a noop.

That's OK for me.


Incorrect bot shutdown

I'm using nestjs-console package and I have separate cli entrypoint for commands. That entrypoint initialized application and closes it at the end similar to example below.

And each close call causes Error: Bot is not running on following line:
https://github.com/hypeertech/nestjs-telegraf/blob/0781837c19be463f3dc924c78327cd229c865081/lib/telegraf-core.module.ts#L120
So is there anyway to add a check there whether the bot is running before stopping it, so that my cli process have correct exit code during CI instead of having error every time due to this?

+1


Is there any ordered list options for indentation numbered list?

Hello, quick question, is there any options for change ordered list with indentation?
As for now, even thou I use indentation (tab), it will make new ordered list with 1, 2, 3 order list (see below)

What I want, is using a, b, c for first indentation, and then i, ii, iii, for second indentation.
Is that possible with tui.editor? I'm using version 2.2.0 btw.

@fransyosuaa Currently, it does not provide the function. According to the markdown specification, only numbers can be used in ordered lists.

https://spec.commonmark.org/0.29/#lists

.


Adding compat-openssl11 to the installer

Fixes issue #12 and adds compat-openssl11 to base and builder images in the installer.

Hi @ParsaHarooni, thanks for your contribution!
Just a suggestion to fix a missing space...
Could you also update the title and the description of this PR?

@aleskandro Sure, Fixed and updated the PR.


Advice or example of mocking the client for tests

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

I'm working on a FastAPI project that uses the supabase-py client.
I am writing tests focused on API interaction (payload validation, return structure, etc).
Many of the endpoints interact with the supabase client to fetch data, perform some transforms and return it.
I want to mock the client and fake a query return - without actually calling Supabase.
However, I cannot find an example of best practice on how to do this.

Describe the solution you'd like

An example of how to mock the client to provide mocked query returns.

Describe alternatives you've considered

Considered running local DB to run tests against - but feels heavy

repo
hey bro👋，there is base template of fastapi+ supabase with 90+% test
coverage，although i do not apply mock client tests，hope the rest of tests or other code would help💪

Thank you @Atticuszz, I'll take a read and hope to understand it :)

@philliphartin have you tried https://vcrpy.readthedocs.io/en/latest ?
Basically, you keep aside a test account and use it with the API once. vcr-py will cache the responses and reuse them subsequently. A workaround like this might be your best bet in the absence of a dynamic & stateful mocking library.

That's actually really cool @tinvaan. Certainly will save a lot of effort. Thanks

I use for it a special account for it. When running test, at the beggining my test load all my tables, functions, triggers, etc ... via psql command. Then it launch all my scenarios including business logic, and then when it finish, it drops all to clean it for the next test.
So for my real project, I just need to change api keys, variables (for psql) and loads all tables, functions, etc ...
@philliphartin I have a question. Do you use middleware for your project ?
Thank you

Closing as there were a few suggestions given for this task.


Adding banner to help menu

...and maybe a Beatles reference...
I totally understand if you hate my humor @arob. No worries if you're like:

This makes me happy. :)
But... isn't this a public repo designed for non-leankitty sort of people as well?

@Prestaul @arobson we don't have to include it, of course. But the point of LK labs is we're sharing the non-proprietary bits in the chance that others can benefit from our experience - but the primary goal isn't to write stuff for wide consumption, but to share what we've tailored for our own benefit.

I think it'd be nice of folks outside of LK were able to use it. I don't think a banner with our logo would prohibit that.
Viva LeanKit ;)


Image captions not wrapped

Longer image captions expand the background area, leading to an unwanted visual effect.

This should be fixed in 9eee731e89b48c8f85889c04dba436eb9cae861c. Note that the css class has changes as well but I've altered the CZ site accordingly.


multiCheckbox does not initialize state

Unless I am missing something (which of cause may well be the case). the multiCheckbox type doesn't initialize with the modelObject contents.

I'm not sure I understand what you mean. Could you show me an example of what you're talking about? http://jsbin.com/biqesi/edit

OK.. here you go.
http://jsbin.com/wimiluxita/3/
.. the fix is in the comments :)

Good find! Until I get a chance to update this repo, you can use this as a workaround. Feel free to make your own PR. It would amount to adding this to this line

This has been fixed in 4.0.4. Thanks!
http://jsbin.com/kavoge/1/edit?html,js,output

Hi. Just wanted to say thanks. I'm very impressed with the module.
Steve
On Wednesday, April 8, 2015, Kent C. Dodds<EMAIL_ADDRESS>wrote:

This has been fixed in 4.0.4. Thanks!
http://jsbin.com/kavoge/1/edit?html,js,output
—
Reply to this email directly or view it on GitHub
https://github.com/formly-js/angular-formly-templates-bootstrap/issues/10#issuecomment-91099332
.

I really appreciate that :-) Keeps me going! Thanks!

Hi,
I did a custom template (extending one of you examples) to use ui-select as
a dropdown.
http://jsbin.com/wosetepeva/7/
Not sure if these examples are of use to you .. I'll probably do more as I
work through my use cases..
Let me know if yu want me to send them to you...
Steve
On Wed, Apr 8, 2015 at 10:02 PM, Kent C. Dodds<EMAIL_ADDRESS>wrote:

I really appreciate that :-) Keeps me going! Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/formly-js/angular-formly-templates-bootstrap/issues/10#issuecomment-91109878
.

That's awesome! The more examples, the better :-) Thanks!
Looks like you created that jsbin anonymously, so I cloned it, and it appears that it's not working as expected. If I choose something from ui-select, it doesn't stay selected. Is that what you saw?
Here's my clone: http://jsbin.com/casino/1/edit?html,js,output

Ok, well I figured my previous issue ... updated version of module and
caching...
The real implementation of the jsbin is working correctly. I'll have
another look at the one I sent.
Steve
On Fri, Apr 10, 2015 at 4:21 PM, Kent C. Dodds<EMAIL_ADDRESS>wrote:

That's awesome! The more examples, the better :-) Thanks!
Looks like you created that jsbin anonymously, so I cloned it, and it
appears that it's not working as expected. If I choose something from
ui-select, it doesn't stay selected. Is that what you saw?
Here's my clone: http://jsbin.com/casino/1/edit?html,js,output
—
Reply to this email directly or view it on GitHub
https://github.com/formly-js/angular-formly-templates-bootstrap/issues/10#issuecomment-91707529
.


Error Running Yo: npm ERR! not a package /tmp/npm-30929-OgybIFr-/github.com/RocketChat/asteroid.git

When I run yo hubot as a non-root user, I am receiving the following error:
[richlu@chat r2z2-test3]$ yo hubot
                     _____________________________
                    /                             \
   //\              |      Extracting input for    |
  ////\    _____    |   self-replication process   |
 //////\  /_____\   \                             /
 ======= |[^_/\_]|   /----------------------------
  |   | _|___@@__|__
  +===+/  ///     \_\
   | |_\ /// HUBOT/\\
   |___/\//      /  \\
         \      /   +---+
          \____/    |   |
           | //|    +===+
            \//      |xx|

? Owner r2z2
? Bot name r2z2.api
? Description A simple helpful robot for your Company
? Bot adapter (campfire) rocketchatgot back false
? Bot adapter rocketchat
   create bin/hubot
   create bin/hubot.cmd
   create Procfile
   create README.md
   create external-scripts.json
   create hubot-scripts.json
   create .gitignore
   create package.json
   create scripts/example.coffee
   create .editorconfig
                     _____________________________
 _____              /                             \
 \    \             |   Self-replication process   |
 |    |    _____    |          complete...         |
 |__\\|   /_____\   \     Good luck with that.    /
   |//+  |[^_/\_]|   /----------------------------
  |   | _|___@@__|__
  +===+/  ///     \_\
   | |_\ /// HUBOT/\\
   |___/\//      /  \\
         \      /   +---+
          \____/    |   |
           | //|    +===+
            \//      |xx|

npm ERR! not a package /tmp/npm-30929-OgybIFr-/github.com/RocketChat/asteroid.git
npm ERR! Error: ENOENT, open '/tmp/npm-30929-OgybIFr-/github.com/RocketChat/asteroid.git-unpack/package.json'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 3.10.0-327.el7.x86_64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "hubot" "hubot-scripts" "hubot-diagnostics" "hubot-help" "hubot-heroku-keepalive" "hubot-google-images" "hubot-google-translate" "hubot-pugme" "hubot-maps" "hubot-redis-brain" "hubot-rules" "hubot-shipit" "hubot-rocketchat" "--save"
npm ERR! cwd /home/richlu/r2z2-test3
npm ERR! node -v v0.10.40
npm ERR! npm -v 1.4.28
npm ERR! path /tmp/npm-30929-OgybIFr-/github.com/RocketChat/asteroid.git-unpack/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! not ok code 0

My package.json turns out empty of dependencies. The last time I ran yo hubot, although a few months now, it was running fine. I had yo installed as root. When I try running yo hubot as root I receive:
[root@chat hubot-test]# yo hubot

Error: EACCES, permission denied '/root/.config'
    at Object.fs.mkdirSync (fs.js:654:18)
    at sync (/usr/local/lib/node_modules/yo/node_modules/mkdirp/index.js:71:13)
    at Function.sync (/usr/local/lib/node_modules/yo/node_modules/mkdirp/index.js:77:24)
    at Object.create.all.get (/usr/local/lib/node_modules/yo/node_modules/configstore/index.js:38:13)
    at Object.Configstore (/usr/local/lib/node_modules/yo/node_modules/configstore/index.js:27:44)
    at new Insight (/usr/local/lib/node_modules/yo/node_modules/insight/lib/index.js:37:34)
    at Object.<anonymous> (/usr/local/lib/node_modules/yo/lib/cli.js:130:11)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

The file /root/.config doesn't exist. I am not sure if this is a relevant issue. I'm just trying to dig deeper and determine where this issue is coming from and would like some help.

It looks like the /tmp/npm-14425-3PWTo3x9/github.com/RocketChat/asteroid.git-unpack/package.json doesn't exist. Anyone have any idea why this would be?

Having the same issue. Installed RocketChat 0.37.1, installed hubot, and ran npm install hubot-rocketchat.
npm ERR! not a package /tmp/npm-1935-PYBoJJWE/github.com/RocketChat/asteroid.git
npm ERR! Error: ENOENT, open '/tmp/npm-1935-PYBoJJWE/github.com/RocketChat/asteroid.git-unpack/package.json'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 4.4.0-31-generic
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "hubot-rocketchat"
npm ERR! cwd /home/intsysadmin/myhubot
npm ERR! node -v v0.10.43
npm ERR! npm -v 1.4.29
npm ERR! path /tmp/npm-1935-PYBoJJWE/github.com/RocketChat/asteroid.git-unpack/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! not ok code 0

@mcmcghee I did some testing and I am led to believe the issue is coming from an outdated version of npm or yo. There must be a directory structure change or something.
Hubot generation failed with the following:

yo v1.5.0
node v0.10.40
npm v1.4.28

Hubot generation successful with the following:

yo v1.8.4
node v0.12.15
npm v2.15.1

We're running fairly close versions of npm. What version of yo are you running? Try updating npm with npm install -g npm.

@richardwlu Currently at:

yo v1.8.4
node v0.10.43
npm v1.4.29

Will test upgrading NPM and report back

We've had some people having issues with yoeman.  If you'll note in the README.  We have options for specifying all the options yo asks for at once.  We've had many have success with this route.
Though at this time you would need to edit the package.json after yo finished.. and modify the version of hubot-rocketchat to 0.1.4 then do an npm install before running hubot.

@geekgonecrazy Will hubot-rocketchat 0.1.4 work with RC >=0.36? I'm currently on 0.36 and could upgrade to 0.37.

@richardwlu It should... but i've seen a few cases where people have said that it does not.  I'm investigating this today.  I have a freshly upgraded 0.37.0 instance i'm going to see if I can get hubot working with.

@geekgonecrazy Gotcha. We look forward to hear what you find. Thank you!

Issued a npm install -g npm per @richardwlu suggestion (thanks!) and it upgraded npm to v3.10.6.
I was then able to execute npm install hubot-rocketchat without errors. Appears everything is working now.

@mcmcghee Good to hear! Is your hubot able to listen and respond to messages while on RC 0.37.1? I was looking to do a downgrade to 0.31 (our last working w/ bot) this evening so we can get our bot back up and working but if yours works while on hubot-rocketchat to 0.1.4 then I'll consider the upgrading RC to 0.37 then.

@geekgonecrazy @mcmcghee I stood up a test instance of RC 0.37.1 running Hubot with adapter 0.1.4 but was unable to successfully subscribe:
r2z2-0 (out): 2016-08-18 19:42:55 407: [Thu Aug 18 2016 19:42:55 GMT+0000 (UTC)] ERROR Unable to subscribe: {"error":404,"reason":"Subscription not found","message":"Subscription not found [404]","errorType":"Meteor.Error"} Reason: Subscription not found
r2z2-0 (out): [Thu Aug 18 2016 19:42:55 GMT+0000 (UTC)] ERROR {"error":404,"reason":"Subscription not found","message":"Subscription not found [404]","errorType":"Meteor.Error"}
r2z2-0 (out): [Thu Aug 18 2016 19:42:55 GMT+0000 (UTC)] ERROR Unable to complete setup. See https://github.com/RocketChat/hubot-rocketchat for more info.

Let me know if anyone else is receiving the same.

I too upgraded my npm per @richardwlu suggestion and was able to install hubot-rocketchat w/o issue.

@richardwlu please try adapter 1.0.1 I just tried locally and it seems to be working.

@geekgonecrazy RC 0.37.1 and Adapter 1.0.1 does work :)

@richardwlu fantastic!  Thanks for reporting back.  I'm going to update documentation and cut a new release.  Hopefully we can put this problem behind us :grin:

@geekgonecrazy I hope so! Just FYI, some users still report that Adapter 1.0.1 isn't working for them over at #142.

I'm going to go ahead and close this issue since this is for for running into the ENOENT Error when running yo. Solution is to upgrade npm via npm install -g npm.

@richardwlu 👍 thanks for the feedback


Audit | Where vs GetAudits

Currently, it's possible (Code First), to retrieve audit using Where extension methods (from EF+ library)
using (var ctx = new TestContext())
{
    ctx.AuditEntries.Where(item);
    ctx.AuditEntries.Where<Entity_Basic>(item.ID);
    ctx.AuditEntries.Where<Entity_Basic>(101);
}

However, using the same method name as LINQ add some confusion like discussed in issue #23
Another solution could be to use a method named GetAudits (or support both!)

I am unable to implement this. Can you provide a sample implementation.

Hello @maharatha ,
You want an example how to implement it for Database First right?

Yes please

I am using repository pattern to get the data. Below are few issues 👍

It's doesn't provide the data for deleted item. I changed an entity thrice and softdeleted it. But it doesn't show up the deleted history. I have enabled only track changed property

Can you suggest how I can send the Entity_Basic as a parameter

I need example for Code first.

Hello @maharatha ,
Can you contact me directly<EMAIL_ADDRESS>If you can, provide me an example of the code so I could try to reproduce this.
This will make easier to understand your problem since it doesn't look related to this issue.
Best Regards,
Jonathan

Hi Jonathan -
I was able to make it work. But I am struggling with one thing here  :

On my EF 6 code first , I have created a base entity and a derived
entity. So when I start logging the base entity it's logging the derived
entity which is amazing. But when I pass the base entity id to get the
audit log it's returning zero always, ie.,it's not returning the changes.

Let me know if you could help.
Note : We also bought a license from you for the Bulk Insert and it's
working amazing.
Keep up the good work.
Thanks,
Partha
On Mon, Sep 19, 2016 at 7:48 PM ZZZ Projects<EMAIL_ADDRESS>wrote:

Hello @maharatha https://github.com/maharatha ,
Can you contact me directly<EMAIL_ADDRESS>If you can, provide me an example of the code so I could try to reproduce
this.
This will make easier to understand your problem since it doesn't look
related to this issue.
Best Regards,
Jonathan
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zzzprojects/EntityFramework-Plus/issues/42#issuecomment-248187398,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGcvU2-F2fJEwev3fdbXPqkHwIK60UWrks5qr0mPgaJpZM4J9FXf
.

Hello Maharatha,
We successfully reproduce this issue. We will for sure try to fix it very soon.
As you probably noticed, there is a lot of open issues currently so we cannot promise any date for now but I will try to check it this weekend if time permit.
Thank you for bought a license ;) This certainly contributes to help us to provide the best support as we can.
Best Regards,
Jonathan

Hi Jonathan -
Thank you for a quick reply. I appreciate the work you are doing. Just so
as you know we are heavily relying on you to fix the issue as it would help
us on building the audit log screen sooner. Until you fix it we have to
wait.
Thanks
Partha
On Wed, Sep 21, 2016 at 7:00 PM ZZZ Projects<EMAIL_ADDRESS>wrote:

Hello Maharatha,
We successfully reproduce this issue. We will for sure try to fix it very
soon.
As you probably noticed, there is a lot of open issues currently so we
cannot promise any date for now but I will try to check it this weekend if
time permit.
Thank you for bought a license ;) This certainly contributes to help us to
provide the best support as we can.
Best Regards,
Jonathan
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zzzprojects/EntityFramework-Plus/issues/42#issuecomment-248792441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGcvUxMiYh1SujDeU6ssLv90Kt5M0i6gks5qseEvgaJpZM4J9FXf
.

Hello @maharatha,
We successfully fixed it. We are currently making some other fixes before release it, but it should be available on Monday.

Thank You so much
On Sat, Sep 24, 2016 at 10:49 AM ZZZ Projects<EMAIL_ADDRESS>wrote:

Hello @maharatha https://github.com/maharatha,
We successfully fixed it. We are currently making some other fixes before
release it, but it should be available on Monday.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zzzprojects/EntityFramework-Plus/issues/42#issuecomment-249377971,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGcvU1Prkq2foNNNYUquW2__bFO4wuOUks5qtWK9gaJpZM4J9FXf
.

The v1.4.4 has been released
If you got another issue, please create a new thread since it's not related to the main issue.
Best Regards,
Jonathan

Closing: Fixed in v1.4.4
If some work is still remaining, please re-open it.

Hi,
I use a custome class that inherits the AuditEntry, how can I retrieve audit entries easily?
Here are my dbsets:
public DbSet<MyAuditEntry> AuditEntries { get; set; }
public DbSet<MyAuditEntryProperty> AuditEntryProperties { get; set; }

When I use ctx.AuditEntries.Where<Clients>(1) , it can't find the Where extensions
Thanks

@khoait I am having the same issue, with custom class, did you find a solution ? Thanks


(PDB-3207) Backport ezbake reload and logback file-sized based rotation

This PR backports changes done originally for the PuppetDB 4.2.4 release for:

Adding a 'reload' action (via ezbake) that the service framework can use to
HUP the puppetdb service.

Add file-size based log rotation to the logback configuration.

This PR includes cherry-picks of commits from the following PRs that were
previously merged for the 4.2.4 release: #2087, #2091, #2097, #2098, and
#2102.

Putting this up for review but this shouldn't be merged until we have a CI pipeline running for the 4.2.3.x branch.  Having that pipeline in place is currently blocked on https://github.com/puppetlabs/ci-job-configs/pull/2110.

Ping @cprice404 and @jpinsonault for review.

👍 looks good to me

CLA signed by all contributors.

looks good to me. I'd be inclined to squash the commits but reasonable people may differ.

Thanks, @wkalt.  I'd be good with squashing the commits.  I'll plan on doing that after we see if the CI pipeline for the new branch is working (assuming no one else has chimed in with a different opinion before I get to that).

Test FAILed

@wkalt - fyi, I rebased the PR.  Only change from before is that I deleted the commit that would have bumped beaker to an older version than what is now on the 4.2.3.x branch.

Test PASSed


Edit tasks

User Story:
As a user, I want to have the flexibility to make changes to tasks so that I can easily correct a task if I have made a mistake or decide to change my mind.
Acceptance Criteria:

You are able to edit an already created task.
The edit is saved in the database.

Why is the feature required?
You can't currently edit tasks.
Describe the solution you'd like
When you click on a task, an edit button pop up appears, which will take you to another page (probably the same as creating a task) to edit the existing task.

will investigate


Add flexible boundary condition handling via matrix

This PR introduces a more flexible method for applying boundary conditions using a matrix.
This approach is particularly beneficial for complex scenarios where the boundary condition values cannot be directly expressed as a function of time or location. Examples include values derived from experimental data or results from other solvers. In this method, each row of the matrix corresponds to a specific dimension, while each column maps to a position of a PD node. By assigning values to the appropriate elements in the matrix, it is possible to define boundary conditions for individual PD nodes. Furthermore, by implementing a function to update the matrix dynamically during each iteration, this method allows for seamless adjustment of boundary values at every time step. This capability is especially useful in cases where boundary conditions evolve dynamically, such as in fluid-structure interaction simulations.
Key changes:
Introduced a matrix to represent boundary conditions.

Benefits:
Provides greater flexibility and adaptability for handling diverse and dynamic boundary conditions.
Enables easy integration of experimental or solver-based boundary values.
Facilitates precise control over individual PD nodes, ensuring compatibility with a wide range of scenarios.

Verification:
Velocity boundary condition validation: The new boundary condition method has been validated by comparing it with quasi-static results from a tensile test in https://kaipartmann.github.io/Peridynamics.jl/stable/generated/tutorial_tension_static/#tutorial_tension_static. The results are consistent with the theoretical predictions. Below is the input file used for the validation.
using Peridynamics
inp_file = joinpath(@__DIR__, "TensileTestMesh.inp")
body = Body(BBMaterial(), inp_file)
point_sets(body)

# Declare the dimensions involved in boundary conditions.
# 1 represents the x-direction, and 2, 3 represent the yz directions.
# If all three dimensions are involved, dims = UInt8[1, 2, 3].
dims = UInt8[1]

# Define a matrix to describe the boundary conditions.
# The number of rows is equal to the number of dimensions,
# and the columns are initialized for all points.
v_matrix = zeros(length(dims), length(body.point_sets[:all_points]))

# Assign values to the boundary points in the matrix according to the boundary conditions.
for i in body.point_sets[:all_points]
    if i ∈ body.point_sets[:bottom]
        v_matrix[1, i] = -0.6  # Set boundary condition for the bottom
    elseif i ∈ body.point_sets[:top]
        v_matrix[1, i] = 0.6   # Set boundary condition for the top
    end
end

material!(body; horizon=0.01, rho=2700, E=70e9, Gc=100)
velocity_bc!(v_matrix, body, :bottom, dims)
velocity_bc!(v_matrix, body, :top, dims)

vv = VelocityVerlet(steps=500)
job = Job(body, vv; freq = 1, path="results/tension_dynamic_fracture_vbc", fields=(:velocity_half, :damage))
submit(job)

Force boundary condition validation:
The force boundary condition was validated using a 3D block model, where the left end was fixed and a tensile force was applied at the right end. This simulation follows Fig 8.14 on page 161 of the reference book “Peridynamic Theory and Its Applications“. The results align with the theoretical solution and are consistent with the findings from the literature. Below is the input file used for this test.
using Peridynamics
l, w, h, Δx = 1.0, 0.1, 0.1, 1/100
pos, vol = uniform_box(l+3Δx, w, h, Δx; center=(-1.5Δx, 0, 0))
body = Body(BBMaterial{EnergySurfaceCorrection}(), pos, vol)
point_set!(p -> p[1] <-l/2, body, :left)
point_set!(p -> p[1] > l/2-Δx, body, :right)

# Declare the dimensions involved in boundary conditions.
# 1 represents the x-direction, and 2, 3 represent the yz directions.
# If all three dimensions are involved, dims = UInt8[1, 2, 3].
dims_f = UInt8[1]
dims_v = UInt8[1, 2, 3]

# Define a matrix to describe the boundary conditions.
# The number of rows is equal to the number of dimensions,
# and the columns are initialized for all points.
f_matrix = zeros(length(dims_f), body.n_points)
v_matrix = zeros(length(dims_v), body.n_points)

# Assign values to the boundary points in the matrix according to the boundary conditions.
for i in body.point_sets[:all_points]
    if i ∈ body.point_sets[:right]
        f_matrix[1, i] = 2e10 # Set boundary condition for loading in y direction
    elseif i ∈ body.point_sets[:left]
        v_matrix[:, i] .= 0.0 # Set boundary condition for fix layer
    end
end

material!(body; horizon=3.015Δx, rho=7850.0, E=200e9, epsilon_c=1.0)
velocity_bc!(v_matrix, body, :left, dims_v)
forcedensity_bc!(f_matrix, body, :right, dims_f)

vv = DynamicRelaxation(steps=30000)
job = Job(body, vv; freq = 500, path="results/tensile_vbc", fields=(:displacement, :b_ext))
A = submit(job)

We are currently organizing a fluid-structure interaction (FSI) code based on your project. We appreciate your support and look forward to potential future collaboration. Thank you for your contribution to the field.


Slow pending limits for consumers and handlers

Hi,
why is ts-client for NATS incapable of having a setter for pending limits and a handler to detect slow consumers? Can you introduce one in the ts.client ?
Thanks.

That would mean processing the buffer into a queue that could be queued. Right now the ingestion mechanism simply looks for the first protocol it can find and dispatches.

Ok, thanks for the explanation. I do get your point. The problem we are having is that we are running 10x ++ replicas of a node worker that is subscribed to a certain topic over a queue, suggesting that the dispatch will be done in a round robin manner with a very fast consumption on our side as we fetch the callback and do async promise straight away. It looks however that NATS is dropping messages as our results are not correct. We have not tried spinning up 100 instances of the worker yet, but we had the chance to compare it to the same implementation in golang, where with very high buffers the dropped messages disappeared (at least we have a handler ther to see that). What if we use nats-straming ? Could you help us what it is exactly and whether this would help us

@BatiGencho how many messages are you generating per second vs processing? NATS will do millions of messages per second without breaking a sweat. But if you are producing more than your workers can process, at some point workers are going to be slow consumers. If all your workers are part of the queue group, then the server load balances, however, unless you dynamically adjust for when you have heavy workloads, you will run into the same issue. BTW, you could potentially have another service monitor traffic (simply subscribing outside of that queue group) and when the message rate increases more than your workers can handle comfortably you can add additional workers.
NATS streaming is the opposite of NATS (internally we call it STAN). NATS streaming stores messages in a channel (one subject = one channel), and replays them to a subscriber. The logs are persistent, meaning that old messages will linger as per the store expiration policy.
As with NATS, you can create queue subscribers to manage the load, and you can also make your subscribers durable. The server retains the durable subscribers (or group) position, so on a restart of the client, work resumes with the last un-acknowledged message.
To make nats-streaming work queue, you would:

create a durable queue subscription
set acknowledgment of message to manual
set maxInFlight to 1 - this will make the server only send a single message to a client at a time.
set your acknowledgment wait to be longer than the time required to process a message under load.

The client would then receive a message process it, and when done acknowledge it. At that point, the server will send another.
Note that there are many trade-offs. Message streams persist using some sort of policy, and it is possible that if some process takes longer to acknowledge the message than what was set the message would be sent to another for processing. This means that your processing would likely require some way to handle duplicates (nats streaming will inform you that it is a duplicate send). Again NATS is at most once, NATS Streaming is at least once.

Also note that messages are stored in a queue and it is just a replay - meaning that there's no request-reply when you have nats-streaming. You are simply processing the log.

Finally - we are working on a new technology dubbed JetStream, that uses plain nats messages and supports worker semantics. See https://nats.io/blog/tech-preview-oct-2019/


Refactor TransferWalletBalance

Related Web PR: https://github.com/Expensify/Web-Expensify/pull/34127
Details

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/216150
Tests

Pre-requisite accounts (via clitools.sh generator:account and validator:wallet)

Account A set up with a gold wallet and a validated bank account
Account B set up with a gold wallet and a validated bank account

Tests:

As Account A send money to Account B
As Account B, navigate to Settings > Payments > Transfer Balance

Click on Transfer Balance and then the Transfer $<amount> button

Verify the transfer completes successfully and you see the success page

Verify clicking Done or the close button directs you back to the Settings > Payments page

Verify the Transfer Balance button is disabled when offline

Verify that the button on the Transfer Balance page is disabled when offline

PR Review Checklist

Contributor (PR Author) Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[x] MacOS / Chrome
[x] MacOS / Desktop

[x] I verified there are no console errors (if there’s a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained “why” the code was doing something instead of only explaining “what” the code was doing.
[x] I verified any copy / text shown in the product was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named “index.js”. All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] Any functional components have the displayName property
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose and it is

[x] If a new CSS style is added I verified that:

[x] A similar style doesn’t already exist
[x] The style can’t be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.

PR Reviewer Checklist

[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] I verified there are no console errors (if there’s a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained “why” the code was doing something instead of only explaining “what” the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named “index.js”. All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn’t already exist
[ ] The style can’t be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.

QA Steps

Pre-requisite accounts:

Account A on the wallet beta, set up with a gold wallet and a validated bank account
Account B on the wallet beta, set up with a gold wallet and a validated bank account

Tests:

As Account A send money to Account B
As Account B, navigate to Settings > Payments > Transfer Balance
Click on Transfer Balance and then the Transfer $<amount> button
Verify the transfer completes successfully and you see the success page
Verify clicking Done or the close button directs you back to the Settings > Payments page

[ ] Verify that no errors appear in the JS console

Screenshots

Web
https://user-images.githubusercontent.com/12268372/178234139-06a7a36f-4c48-4fb8-b317-faad70afa512.mp4
Desktop
https://user-images.githubusercontent.com/12268372/178480028-3c14d78d-e063-4386-b015-1228cff91da0.mp4

Shall we remove the hold now that Web-E PR is merged?

@JmillsExpensify we need to wait until the web PR is deployed to production to prevent this from getting merged when it won't work yet :)

Should be off hold now?

Updated and off hold!

I agree that the alignment is off. I commented in Slack here about that.

Merged https://github.com/Expensify/App/pull/9959 into this branch and added the OfflineIndicator to:

BasePaymentsPage:

TransferBalancePage: I think the padding on the bottom is a little too much but that's set on the FixedFooter component and I'm not sure how to adjust that without affecting the styles of the footer when online.

Let me know what you think, @shawnborton @ctkochan22

In terms of the offline indicator itself, I think we want it to be something like this:

Where there is 20px from the left edge to the icon, and below there should be 12px of spacing. Between the icon and the text, there should be a 12px gap.
Not sure if that's what's going on here or if you are even making those changes here, but just wanted to call it out.

Updated the styles for the OfflineIndicator, specifically:

Updated the icon and altered the gap between the icon and text to be 12px
On the Payments page and on the TransferBalance page, there is 20px from the left edge to the icon, and below there is 12px of spacing

Relevant commits:

https://github.com/Expensify/App/pull/9589/commits/1796df02ea1f4a914219e0466cd04cc9f0297894
https://github.com/Expensify/App/pull/9589/commits/7909bbbe8aef4637f5c96276bfceafe99762b6a5

Fixed merge conflicts and tweaked the styles for the OfflineIndicator

@MariaHCD I hope its okay, I feel like we have all the approves, but cause of the timezone, we are getting approvals after changes that causes conflicts. I just went in and fixed the conflicts

@stitesExpensify @shawnborton @thienlnam Can we get a quick re-reveiw, I just took care of the small merge conflict

Just going to merge this before we get any more conflicts - all previous reviewers have approved pending conflicts

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

Thanks for moving this forward!

@MariaHCD @JmillsExpensify @thienlnam Can you QA this internally? We are not able to test wallet due to PROD KYC wall

🚀 Deployed to staging by @thienlnam in version: 1.1.86-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@MariaHCD @JmillsExpensify @thienlnam Can you QA this internally? We are not able to test wallet due to PROD KYC wall

Asked here! https://expensify.slack.com/archives/C02HWMSMZEC/p1658825528148109?thread_ts=1657045889.543309&cid=C02HWMSMZEC

@MariaHCD did we manage to test this on staging?

Tested on staging! It's a pass 🎉

🚀 Deployed to production by @yuwenmemon in version: 1.1.86-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Support other layer types beyond Labels

This is an attempt to plot properties of surface layers. I presume it is at hand to implement the same for points layers ( #103 ).
To try it out, you need napari-process-points-and-surfaces and in particular the menu Tools > Measurements > Surface Quality Table (nppas) to put measurements in surface_layer.properties.
I managed to make it work for Dimensionality Reduction, Clustering and Plotting. One can for example cluster the Stanford Rabbit's vertices like this:

I'm afraid the right color is not yet supported by napari. I will create an issue there as well.
I presume the same should be possible for Points layers as well.
Please don't merge this yet. We should add tests, example data, documentation and potentially support for Points layers first. Also #117 should be merged before.

Hi Robert @haesleinhuepf,
This looks amazing!
From where could I get this bunny's dataset to play around with?

It's part of napari-process-points-and-surfaces. There you also find the tabular measurements needed for clustering:
https://github.com/haesleinhuepf/napari-process-points-and-surfaces#surface-measurements-and-annotations

Hi @haesleinhuepf,
Do you mind if I take over this PR and directly commit to this branch?
I will work on this to-do list then:

[ ] fix existing tests
[ ] add more tests
[ ] add example data
[ ] add documentation
[ ] support for points layers

Should example data be the same as in https://github.com/haesleinhuepf/napari-process-points-and-surfaces or do you have something else in mind?

Hi Laura! Oh it would be awesome if you could take this task over. @Cryaaa will send us cool example data soon ;-)

@haesleinhuepf @lazigu
Yep, here is some organoid data which you can use for surface reconstruction:
https://zenodo.org/record/7603081
The images are quite huge so you might want to do some down-scaling and smoothing!

@Cryaaa, thank you so much for this!

Ok, here comes a ply (mesh/surface) file of a Gastruloid. When using it, please put this statement in the code or notebook:
The used example data is derived from of [AV Luque and JV Veenvliet (2023)](https://zenodo.org/record/7603081#.Y94N4XbMJmN) licensed [CC-BY](https://creativecommons.org/licenses/by/4.0/legalcode).

You can open it in napari using napari-stl-exporter and from Python as shown here:
import napari_process_points_and_surfaces as nppas
import vedo
import napari

mesh = vedo.load("gastruloid.ply")
surface = nppas.to_napari_surface_data(mesh)

viewer = napari.Viewer(ndisplay=3)
viewer.add_surface(surface)

Hi, Marcelo @zoccoler,
I fixed the bug I was talking about yesterday and other merge conflicts and this branch can safely be used as a starting point today. One thing is that Dask is not used for cluster image generation with surface layers. How frequent are surface timelapses anyway? We don't have any surface example data that is 4D anyway for testing.
Other todo points that were planned for this branch (copied from my old comment above):

[x] fix existing tests
[ ] add surfaces specific tests
[ ] add example data (see few messages above for the example data)
[ ] use Dask for surface timelapse data?
[ ] custom colour maps do not work for surfaces (see linked issues above)
[ ] add documentation
[ ] support for points layers


Add Util.Types to client API (close #78)

\cc @AlexanderMoskovkin @LavrovArtem

Tests are failed

lgtm


is there any option to unlike tweets?

hi, can you please add an option to unlike tweets too?

Check this script.


fix Fix jdk17 and jemalloc hook not compatible on some envs

Proposed changes
Now in order to support malloc hook, compiling jemalloc will add tow compilation options --with-jemalloc-prefix=je and --disable-cxx, then overwrite malloc/free as follows to allow BE to use jemalloc:
#define ALIAS(doris_fn) __attribute__((alias(#doris_fn), used))
void* malloc(size_t size) __THROW ALIAS(doris_malloc);
void free(void* p) __THROW ALIAS(doris_free);
void* realloc(void* p, size_t size) __THROW ALIAS(doris_realloc);
void* calloc(size_t n, size_t size) __THROW ALIAS(doris_calloc);
void cfree(void* ptr) __THROW ALIAS(doris_cfree);

but after such overwrite like this, Doris BE on jdk17 cannot be started in some environments.
there are three solutions:

Modify overwrite malloc/free, fixed in https://github.com/apache/doris/pull/33897
Modify BE dynamically loads JVM, fixed in https://github.com/apache/doris/pull/32865
Commit of this PR, modify jemalloc compilation options, after remove --with-jemalloc-prefix=je, there is not need to overwrite malloc/free, BE will use Jemalloc by default.

So,  if need to use memory hook, this PR still cannot solve this problem.
Looking forward to modify BE dynamically loads JVM, which will not only solve this problem, also fix other crashes caused by BE use JVM.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall


[mac] only append header termination IE2 when data payload is present

According to IEEE802.15.4, header termination IE2 is present only when header IE and payload data is present.

codecov not updated correctly. Issue #6133


fixed starred message style

https://github.com/zulip/zulip/issues/17938
Testing plan:
Ran the test server and viewed the style changes
GIFs or screenshots:

@michaelkli1998 would you be up for reworking this to match the design in #17985?  I think we're pretty happy with the visuals for that version, but not its implementation.
Also, you'll want to write a clean commit history.
Check out our GitHub guide and commit guidelines for more details.

I ended up doing this work myself in https://github.com/zulip/zulip/commit/b7cfefc2136a0e1e4e6d033ece9919a23ce0c591 because we had just rewritten the base CSS anyway. Thanks for your work on this @michaelkli1998!


chore: fix driver properties issue with only String values

This PR fixes:
https://github.com/brettwooldridge/HikariCP/issues/1496
This issue makes a problem with Snowflake Driver when PrivateKey is passing as a String value instead of actual PrivateKey instance here:
https://github.com/snowflakedb/snowflake-jdbc/blob/master/src/main/java/net/snowflake/client/core/SFSessionProperty.java#L143
https://github.com/snowflakedb/snowflake-jdbc/blob/master/src/main/java/net/snowflake/client/core/SFSessionProperty.java#L35

You may also want to change PropertyElf for consistency:
https://github.com/brettwooldridge/HikariCP/blob/30c63c637229e11f050721372abc3f9c9d670b66/src/main/java/com/zaxxer/hikari/util/PropertyElf.java#L116

I'm closing this pull request. #1895 covers the same issue and has more discussion.


Delete unmodified files when saving a template

is this something that will be done in the near future?

It requires some major changes to the rendering infrastructure so it probably won't be fixed for a while. For now you'll have to delete out-of-sync files manually, sorry.
Is this a big issue for you?

It would be nice to have but no, it's not a big issue.


Return TracerProvider object instead of creating globally

We can return the TraceProvider created in ConfigureTracerProvider(), instead of creating a global object:
https://github.com/xmidt-org/candlelight/blob/26649f5fb0827273399b2057188fb145786cac70/candlelight.go#L45
This will better allow for tracking structs and functions with a dependency on the TracerProvider, because it must be passed explicitly.  Global mutable objects are generally something we want to avoid, as it can make code more brittle and cause difficult to predict/find issues in the future.
For example, to configure zipkin:
https://github.com/xmidt-org/candlelight/blob/26649f5fb0827273399b2057188fb145786cac70/candlelight.go#L55
When I looked at the docs, it looks like we can call NewExportPipeline() instead of InstallNewPipeline().

Resolved this issue and raised a PR for the same: https://github.com/xmidt-org/candlelight/pull/15


Updates footer 2018

Removes old footer and updates with new footer

Closing as this code is now in foundation-docs so this PR here is obsolete now.


zh-translation: docs/root/intro/arch_overview/operations/init.rst

ref: https://github.com/cloudnativeto/envoy/issues/21

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]

@scilla0531   添加了些comment。参考一下。

/LGTM


fix: Allow already-parsed body objects

Fixes a regression introduced in #28.
If the body is already parsed and it's a valid POST request, we can just return it.

@aaronpowell this fixes a real issue - I'm going to merge and release a patch. Please take a look when you get the chance!
@abartolotdf thanks for the fix!


eth events should not assume cosmos prefix

Oops, should have created this off of main. Closing and correcting my starting point.


Allow to get parameters by path for AWS Systems Manager Parameter Store provider

I'm looking into migrating from deprecated Kubernetes External Secrets but I found out that the functionality of fetching all parameters by the path from AWS Systems Manager Parameter Store, available in Kubernetes External Secrets, is missing in the External Secrets Operator. It was already reported in:
https://github.com/external-secrets/external-secrets/issues/431
Currently, I'm using the path prefix in the parameter store to identify all secrets keys owned by a single service and use kubernetes-client.io/ExternalSecret resource to create a k8s secret with multiple keys without a need to specify every key or need to update any k8s resources when I add a new parameter. Because there is a lot of keys per secret and many services it's a huge overhead having to declare every key in the external secret resource.
Instead of having to specify every parameter:
apiVersion: external-secrets.io/v1alpha1
kind: ExternalSecret
metadata:
  name: service-name
spec:
  # [omitted for brevity]
  data:
    - secretKey: PASSWORD1
      remoteRef:
        key: /service-name/PASSWORD1
    - secretKey: PASSWORD2
      remoteRef:
        key: /service-name/PASSWORD2
    # Followed by more
  target:
    name: service-name

I'd like to use the path prefix to fetch all keys for the service (not sure if dataFrom was intended for this purpose)
apiVersion: external-secrets.io/v1alpha1
kind: ExternalSecret
metadata:
  name: service-name
spec:
  # [omitted for brevity]
  dataFrom:
    - key: /service-name/
  target:
    name: service-name

Example of the current usage with Kubernetes external secrets:
apiVersion: 'kubernetes-client.io/v1'
kind: ExternalSecret
metadata:
  name: service-name
  namespace: namespace
spec:
  backendType: systemManager
  data:
    - path: /service-name/
      recursive: false

The proposed alternative solution using a JSON string to store multiple keys wouldn't work for me for 2 reasons:

AWS Systems Manager Parameter Store has a value limit of 4 KB in the free tier, 8 KB for the advanced option, this will be not enough to store all the keys for some of the services.
A JSON, especially a big one, won't be readable in the AWS Web console.

Is there a plan to implement this functionality?
If not, Could you please provide some direction on how to contribute to adding this feature?
Is it possible to implement one using the current externalsecret.external-secrets.io resource, dataFrom element or it would require changes to CRDs? Would the changes be limited to the Parameter store provider adapter (parameterstore.go file)?

Hi @jacekpuczko! We already addressed this functionality on #820. It should be available on our next release, 0.5.0, although it will work in a different manner then path referencing. I believe, for instance, we cannot currently specify recursiveness (by default all calls are recursive).
To use the preview feature, you would need to define the ExternalSecrets using dataFrom.find:
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: service-name
spec:
  # [omitted for brevity]
  dataFrom:
    - find:
        name:
          regexp: /service-name/.*$ # you can try a regexp that blocks recursiveness if you need to.
  target:
    name: service-name

You can try this preview feature by installing external-secrets using the latest image. Just remember you need to use the helm charts available at deploy/charts/external-secrets, and not the released ones.
After trying it out, then we can see if this feature needs any adjustment for your specific use case =)

Hi @gusfcarvalho, it works for me :) Is there a way to translate parameters that the secret keys have no path prefixes?
Now I get:
data:
  _service-name_PASSWORD1: cGFzc3dvcmQ=
  _service-name_PASSWORD2: cGFzc3dvcmQ=

and would be great to have:
data:
  PASSWORD1: cGFzc3dvcmQ=
  PASSWORD2: cGFzc3dvcmQ=

That way migration from Kubernetes External Secrets would be easier because I wouldn't have to update the environment variables injected in deployments.
I've tried to change the regex to /service-name/(.*)$, but the result is the same.
Thanks!

hey @jacekpuczko, thank you for bringing this up!
Your problem with rewriting the keys is yet an open issue. While looking at your regexp i noticed the capture group and i think that would actually be a pretty neat way of adding that. Tho i think we still need to support multiple ways of rewriting keys. We should create a design document for that as this is a very common use-case.

@moolen specifically for this use case, in vault provider I used the Path to allow filtering out “the root path” from the secrets. (i.e. searching regexp dev/.would lead to different results to secret key names than searching path dev/ regexp .) Maybe this can be done in AWS provider as well (and generally speaking, making Path useful for any provider)

That's covered, i added that feature that when you added the field in the vault provider :sun_with_face:
https://github.com/external-secrets/external-secrets/blob/56c69a106386d61730cf222c85945dd407026484/pkg/provider/aws/parameterstore/parameterstore.go#L76-L82

In this case @jacekpuczko if you try passing your main path in find.Path and use a general regexp, it might already filter out for you!

Hi @gusfcarvalho, I've just tried:
  dataFrom:
    - find:
        name:
          regexp: /service-name/.*$
        path: /service-name/

and it gives the same result with prefixes:
data:
  _service-name_PASSWORD1: cGFzc3dvcmQ=
  _service-name_PASSWORD2: cGFzc3dvcmQ=

Using the find.path without name.regex fails with an error.

I guess the behavior is not the same as in vault provider, then. I’ll try to make a change for it and then we can see how it goes :)

Hi @gusfcarvalho, thanks, looking forward :)

I opened #975 to track the dataFrom key rewrite topic. I think your initial issue was solved, if not feel free to reopen.


Use the artifacts store for iOS assets

Fixes https://github.com/flutter/flutter/issues/1977

zip.zip.zip
LGTM

Verified loading from the artifact store


Enable Merge Queue feature

Document and Enable Merge Queue feature

Reviewing the test cases with @mlehotskylf in preparation for the release

@mlehotskylf is working with @nickmango on this.

I sent notification on Slack on Friday, May 3rd and I will sent another reminder by end of this week. We are planning to enable this feature on the week of May 20th.

Verified use case mentioned in documents on prod & found that feature is properly working on prod, So updating this ticket status

This is done, closing.


Added tests for coverage.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.34%. Comparing base (b24f3ed) to head (0e30677).

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #297      +/-   ##
==========================================
+ Coverage   95.91%   96.34%   +0.42%
==========================================
  Files         151      151
  Lines        8992     8992
==========================================
+ Hits         8625     8663      +38
+ Misses        367      329      -38

see 5 files with indirect coverage changes


wip: reserve space in vec

DO NOT LAND! This is awful code that is here just to showcase that pursuing this path is worth it. I will submit the appropriate functions to dynasm-rt so that this can become not-too-ugly before we can land it. Basically I’m using lots of unsafe and undefined behavior in order to go around visibility constraints, to force a reserve in a Vec deep down the chain to verify sending these PRs upstream is worth it.
With a reproducer extracted from nearcore-private-1#2:
       | Non-rayon |   Rayon
-------+-----------+-----------
Before |  27.5-28  |  12.5-13
After  |  21.5-22  |  11-11.5

So this gives a ~20-25% win on non-rayon, and ~10-15% on rayon

We can come back to this once https://github.com/CensoredUsername/dynasm-rs/pull/72 lands and is released, unless we want to maintain a fork of dynasm-rs too

Closing in favor of #146


Implement wrappers for Fréchet distance under measurement module (3.7.0+)

Code is pretty much similar to the implementation of wrappers for Hausdorff distance, except for:

Fréchet distance is only supported in 3.7.0, hence appropriate checks are additionally added.
When testing Hausdorff distance, there are tests with empty linestrings, but in the case of Fréchet distance, the GEOS library seems to be segfaulting when such inputs are passed. Hence I have skipped tests with empty linestrings for now. Any alternate suggestions over this are welcome.

Also, this is part of #126.

Thanks for this PR!
The reason for our extensive testing especially with empty geometries is that we avoid segfaults at all costs.
The way to solve this is to wrap the function from the GEOS CAPI on the C level. First check if the geometry is an empty line, and raise a PyError if so.

Done, handled the empty geometry cases which were causing segfaults, and added tests as well.
Also, during this change I noticed 'hausdorff' was misspelled as 'haussdorf' in a few places, making it hard to be discovered through Ctrl+F. I will submit a different PR for it.

Now that the error validation has its own issue (https://github.com/pygeos/pygeos/issues/150) I think this can be merged. If not, please let me know if anything else is needed.

Done, thanks again!


improve the folder directoty

currently all the files in root folder
Make a folder img and put all img in that folder and edit all the paths properly

i will do it

https://github.com/arpit456jain/Getting-Started-with-open-source/pull/134 fixed


#17: Add bindElementToQueries utility function for libraries using this API

What: Add bindElementToQueries utility function, taking a DOM element and binding the functions from queries.js

Why: Reduce duplicated code in libraries using this API and the tests for this library themselves.

How: Added file bind-element-to-queries.js, moved the Object.assign code from the test helper and added it to the export from index.js

Checklist:

[x] Documentation
[x] Tests
[x] Ready to be merged
[x] Added myself to contributors table

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Deleting entries

" delete entries (with confirmation and ideally using checkboxes for multiple actions)"
@Qwlouse - Do you mean deleting the whole experiment? (And really deleting it or just marking it as deleted and not showing them, something like a trash bin?)
An open question (not needed to be answered now)
In "server / multi user mode" (where I expect that you will probably first need to log in somehow), should be this allowed to anyone? (Anyway, as long as you can directly connect to the database from your local machine, you can delete whatever you want, if you decide to. Any logic preventing it in the application wouldn't guarantee it).

Good questions. I meant really deleting the entry. But it might be a nice feature to move them to a trash collection instead.
And I think authentication is something that we should discuss separately later. For now I think it is fine without, but it is a good feature to keep at the back of our minds.

From time to time, an experiment run may become useless to be maintained in the database, for instance when it fails and provides no interesting information to the researcher.
Sacredboard shall provide an option to delete the run.


feat(amplify-category-api): change "gqlSchemaPath" to be a relative path from an absolute path

Description of changes
Change gqlSchemaPath in cli-inputs.json of api category to relative path from absolute path. The relative path is from project root path.

Issue #, if available
fix #123

Description of how you validated changes

Unit Testing (yarn test)
Manual Testing

amplify-dev api add
amplify-dev api update

Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added

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

@fossamagna, thank you for your contribution. I've added a comment to the issue, but I think we want to evaluate the usage of this input, since it doesn't seem to be actually used for gql-compilation, in which case we may be able to just remove it entirely and use the path computed on-the-fly.

I closed this pull request since I recreated new pull request.
https://github.com/aws-amplify/amplify-category-api/pull/634


fix: csp updates

Temporarily loosening CSP Policy to allow seamless DC deploys.
Currently DC contains the bare minimum number of frontend files, to facilitate streaming apps on SAS 9 EBI deploys (many of which have only 3 multibridge connections).  Multiple parallel file requests can also bring down a Viya 4 image (2020.2 hackathon image confirmed).
That said - inline javascript is bad as it can facilitate Cross Site Scripting (XSS) attacks.  More info here:  https://csper.io/blog/no-more-unsafe-inline
The SASjs Server build of Data Controller will be updated to eliminate the script tags and then the CSP policy will be tightened up.  Ticket to follow.

Linked issue: https://github.com/sasjs/server/issues/168


config: add an IPv6DualStackNoUpgrade feature set

We cannot yet enable the IPv6DualStack feature gate because it's still broken upstream but we'll need it for dual-stack development/testing. This would be expected to go away in 4.6 when we enable the feature gate by default.
I just copied the "CANNOT BE UNDONE, and PREVENTS UPGRADES" text from one of the other unsupported feature sets; AFAICT that it not actually implemented for other unsupported feature sets either.

ok, tested that this actually works as expected. should be good to go

hm, so I wasn't going to file a PR to revendor this into cluster-kube-scheduler-operator because kube-scheduler doesn't care about IPv6DualStack, but it seems that if you want to define a new featureSet, you have to update every module that watches the FeatureGate resource so it will have the new value of configv1.FeatureSets to look it up in...
So besides machine-config-operator, cluster-kube-apiserver-operator, and cluster-kube-controller-manager-operator (which I already did) and cluster-kube-scheduler-operator (which I need to do), is there anything else? (kube-proxy and cloud-controller-manager take --feature-gates but CNO does not pass any feature-gates to kube-proxy by default currently, and I'm not sure if we support any configurations with cloud-controller-manager?)

/assign @deads2k @smarterclayton
/bugzilla refresh

Poke. We need this to set up dual-stack CI

ok, let's try some new reviewers
/uncc @adambkaplan @abhinavdahiya
/auto-cc

/lgtm

We discussed this in the dual-stack enhancement, as well: https://github.com/openshift/enhancements/pull/293
+1 to adding an unsupported feature set so we can continue development and testing of dual-stack without turning it on for everyone.
Adding the enhancement link might be good for the PR summary and commit message, too.

/approve


Fix s3 file driver xattr

What kind of change does this PR introduce?
Bug fix
What is the new behavior?

removed @types/ajv since they are shipped with the lib
disable bodyParser for PutObject requests (improves performance)
fix xattr metadata for s3 multi-part upload
fix equality check for copying objects across buckets

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

112 of 119 (94.12%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 79.416%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/http/routes/s3/index.ts
35
37
94.59%

src/storage/backend/file.ts
2
7
28.57%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
11832

Relevant Lines:
14764

💛  - Coveralls


python3.11 -m build fails with FileNotFoundError

Summary
python3.11 -m build fails with "FileNotFoundError: [Errno 2] No such file or directory: '/tmp/build-via-sdist-k5fbi61p/UltraDict-0.0.6/readme.md'".
Worked out new build system that works.

Deleted setup.py
Modified pyproject.toml
Created setup.cfg

Build/Install/Test System
Raspberry Pi OS (Debian) Bookworm Version 12.2 Rasberry Pi 4 4GB Ram Python 3.11.5

Build works: python3.11 -m build .
Install works: python3.11 -m pip install dist/UltraDict-0.0.6-py3-none-any.whl
Tests Passed: python3.11 -m tests.tests
Repo to pull from: https://github.com/thatlarrypearson/UltraDict

By The Way...
This is an awesome good project.  I've been using it for a year or so.  The abstraction (shared dictionaries) works really well with my programming style.

I apologize.   My pyproject.toml and setup.cfg changes don't actually work.  I started over.
I came up with a simple solution that does in fact build on the RPi and is relatively simple to fix.
Attached is the failed build (python3.11 -m build .)
RPi-UltraDict-Build-Failure.txt
setup.py line 7:
long_description = (this_directory / "readme.md").read_text()
# file exists
ls -l readme.md

File exists but when build runs it spits out this odd message:
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md
This led me to change setup.py line 7 reademe.md to README.md and then rename the readme file.
git mv readme.md README.md

Here is the build, install and test output.
RPi-UltraDict-Build-Test.txt