Provide ENV variable for runtime user?

Is there a reason that the runtime user - elasticsearch - is hardcoded rather than set as an environment variable with a default value of elasticsearch.
Maybe my ignorance is showing, but for development having the owner of a bind mounted config directory someone other than me seems an unnecessary aggravation and burden.
Thx!
-steve

I can certainly see an argument for making the user configurable, but we'd have to, somehow, dynamically create the user inside the container. Without that extra logic, once inside the container, there is no user that represents "me":
$ id
uid=1000(jarpy) gid=1000(jarpy) groups=1000(jarpy),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev)

$ docker run docker.elastic.co/elasticsearch/elasticsearch:5.5.0 id jarpy
id: jarpy: no such user

We explicitly create the elasticsearch user so that the Elasticsearch process has someone it can run as (particularly since running as root ranges from "strongly discouraged" to "not permitted" depending on the circumstances).
If you really want to replicate your host-system user inside the container, you could consider making a custom image. You could do something like this:
$ cat > Dockerfile <<EOF
FROM docker.elastic.co/elasticsearch/elasticsearch:5.5.0

ARG UID
ARG USER

USER root
RUN userdel elasticsearch
RUN groupadd -g ${UID} ${USER}
RUN adduser -u ${UID} -g ${UID} -d /usr/share/elasticsearch ${USER}
RUN chown -R ${USER}:${USER} .
USER ${USER}

EOF

$ docker build . -t my-es:5.5.0

Really though, this is deliberately working around the isolation that the container environment is carefully trying to provide. I don't know anything about your use-case, forgive me, but is it worth considering simply running Elasticsearch on the host-system? That way, you'd avoid the extra complexity that the container environment introduces.

for development having the owner of a bind mounted config directory

For a bind mounted config dir (say, you want to provide a customized /usr/share/elasticseach/config/elasticsearch.yml) it will be enough if the file has permissions o+r.
Observe the following example:
[testdocker ~]$ id
uid=1001(testdocker) gid=1002(testdocker) groups=1002(testdocker),1001(docker)

[testdocker ~]$ cat >es.yml
cluster.name: "testcluster"
network.host: <IP_ADDRESS>

[testdocker ~]$ ls -la es.yml
-rw-rw-r-- 1 testdocker testdocker 28 Jul 10 11:29 es.yml

[testdocker ~]$ docker run --rm -v $PWD/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:5.5.0
...
[2017-07-10T08:30:02,674][INFO ][o.e.n.Node               ] [TBB-6we] started
[2017-07-10T08:30:02,774][INFO ][o.e.g.GatewayService     ] [TBB-6we] recovered [0] indices into cluster_state

The key thing to note is that you don't need to override the entire conf dir, you can mount a specific file. For entire dirs, just ensure the dir has o+r permissions as ES just needs to read from it.
On Windows, IIRC the resulting permissions from sharing a windows file should be +r for all.
For the data dir (/usr/share/elasticsearch/data), the best practice is to use a named or anonymous volume. Both will persist and the former will be reusable across container restarts through its name. I have described some best practices at the end of this comment and for the differences between named and host mounted volumes here. See also this KB from Docker. This seems to be a common issues for people and for environments where named volumes are an options (e.g. dev envs on laptops, docker-swarm etc.) we could emphasize it more in the Documentation.

The real issue here - IMHO - is that the security requirements for
production and development are significantly different. For efficient
development I need to manipulate things in a way I would never allow in
production. The use case goes something like this: I want to observe/test a
configuration change. I edit the bind mounted elasticsearch.yml or log
properties in my local development environment (IntelliJ), bounce the
elasticsearch server in the container, and observe the change.
Under the current scenario I am required to make the change, rebuild the
container and redeploy. Not horrific, but a nuisance.
Toby's solution - as he admits - is a hack that seriously compromises
container security in production.
The o+r bind mount option Dimitrous presents doesn't help because I need to
be able to modify the elasticsearch.yml or log4j properties file so I need
write privileges.
The Fluentd container provides another solution. The FluentD docker
container is structured such that for development I can run as any user I
want, while in production it will run as a given user: fluentd.They
accomplish this by defining a FLUENTD_UID environment variable and using
the entrypoint program to define a user and set permissions (See
https://github.com/fluent/fluentd-docker-image/blob/master/entrypoint.sh.erb)
rather than embedding it in the Dockerfile. For development purposes I use
a docker-compose.override.yml with my FLUENTD_UID set to my uid. In
production it remains unset and reverts to the default.
Thanks for the response!
-steve

The o+r bind mount option Dimitrous presents doesn't help because I need to
be able to modify the elasticsearch.yml or log4j properties file so I need
write privileges.

@snesbittsea You are welcome! Note that you don't lose your capability of editing files locally by granting o+r permissions for the conf files (note the + i.e. add read perms for other users). I don't know which platform you are developing on, (e.g. macOS, Linux or Windows) but you can certainly set chmod 664 <the_individual_conffiles.yml>; then you will be able to edit the files on your workstation and the container still be able to read them. See the perms of the es.yml file as well as the uid/gid of the testdocker user in my comment above.
If you are bind mounting dirs, you need to remember the x bit to be able to access files under the dir. In general the unix permission model can be used to grant read privileges to the conf files inside the ES container.

This might be worth a new Github issue, but for my problem, I'd like to see this thread renamed as:

Provide ENV variable for runtime ~user~ uid/gid?

There is a genuine use case for a customisable uid/gid; having a mechanism to cater for this is pretty common in Docker-land. Having not thought about it particularly hard; would it be possible to actually implement this in a secure fashion with the stock container?
~# usermod -u 2005 elasticsearch
~# groupmod -g 3000 elasticsearch

~# find / -group 2000 -exec chgrp -h elasticsearch {} \;
~# find / -user 1005 -exec chown -h elasticsearch {} \;

My containers run in a massively convoluted environment - on hosts that contain a standard operating environment out of my control that end up with hundreds of uid/gid combinations; in these cases I could end up with a conflict giving some random user or group the ability to destroy all our data.
~# lslogins | wc -l
251

@jarpy - Dockerfile and Jenkins are my current solution to addressing this and other non-standard changes to the stock Elastic containers. Whether or not this is addressed is not the end of the world to me.
@dliappis - I agree, that using a Docker volume is an elegant solution to this problem and would remove the need for this specific requirement in the first place, however, in my specific example it's not practical for me to move 10's of TB of elasticsearch data into Docker named volumes; particularly when I haven't tested the extent of Docker named volume performance in my environment.
Just adding some :fuelpump: to the :fire: :fire_engine:.

Closed by https://github.com/elastic/elasticsearch-docker/pull/125, support will come starting with version 6.0

@dliappis The documentation on 6.4.3 suggests that there is still no support for this.


merge from konsum-frontend-svelte,template-svelte-app

package.json

chore(deps): add ^2.55.1 remove ^2.55.0 (devDependencies.rollup)

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

v1.29.16
npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Premium themes with shiny dashboard

Is it possible to use a premium theme e.g. SmartAdmin with the shiny-dashboard implementation of AdminLTE?
https://rstudio.github.io/shinydashboard/appearance.html
http://wrapbootstrap.com/preview/WB0573SK0

I would ask this to @rstudio the creator of shinydashboard.
https://github.com/rstudio/shinydashboard


TypeScript error calling createConfirmDialog()

Hello everyone, thanks for this great package.
I have a problem with its typescript support.
I'm calling createConfirmDialog() function as follow:
const { reveal } = createConfirmDialog(ConfirmModal, {
  title: "Confirm Action",
  type: "warning",
  text: "Do you want to procede?",
});

I get a validation error on the first argument of createConfirmDialog function (ConfirmModal):
Argument of type 'DefineComponent<{ title: { type: StringConstructor; required: true; }; text: { type: StringConstructor; required: true; }; type: { type: StringConstructor; default: string; }; cancelText: { ...; }; confirmText: { ...; }; }, ... 11 more ..., {}>' is not assignable to type 'DefineComponent<any, any, any, any, any, any, any, any>'.
Type 'DefineComponent<{ title: { type: StringConstructor; required: true; }; text: { type: StringConstructor; required: true; }; type: { type: StringConstructor; default: string; }; cancelText: { ...; }; confirmText: { ...; }; }, ... 11 more ..., {}>' is not assignable to type 'ComponentOptionsBase<Readonly<any>, any, any, any, any, any, any, any, string, {} | { [x: string]: any; }, {}, string, {}>'.ts(2345)

ConfirmModal is a simple vue component. Follow its script section:
<script setup lang="ts">
import { Dialog, DialogPanel, DialogTitle, TransitionChild, TransitionRoot } from "@headlessui/vue";
import { ExclamationCircleIcon, ExclamationTriangleIcon } from "@heroicons/vue/24/outline";

// Properties
defineProps({
  title: { type: String, required: true },
  text: { type: String, required: true },
  type: { type: String, default: "warning" },
  cancelText: { type: String, default: "Cancel" },
  confirmText: { type: String, default: "Confirm" },
});

// Emits
const emit = defineEmits(["cancel", "confirm"]);
</script>

If I add as any after ConfirmModal, the error goes away but my linter starts to complain (so I would like not to add it).
What could be the problem? How can I solve?
Thank you in advance.

It's a known problem. It occurs when you have default values for your props. Sorry, it will be fixed somewhen in the future


Fix iseek for folder names that contains spaces

From :

To :

nice catch 😄 can you please squash the commits? LGTM 👍

Yep @ruyadorno. Should be better now :ok_hand:

:confetti_ball: many thanks!


Inactive users still receive email notifications via @all

This is obviously frustrating for users who stopped using our zulip instance some time ago and still get bothered by email. Is there a way to stop this behavior?

@mhassouna95 thanks for the report! I assume you mean "inactive users", not deactivated users -- i.e. these aren't users who explicitly deactivated their accounts.
As a workaround, you can likely address this issue for your organization by limiting permission to use @all in large streams:

But I think our long-term solution here will need to be introducing additional types of wildcard mentions. There are situations where it may be important for an administrator be able to notify everyone with an active account in an organization, and others where you really only want to notify currently only users, and our current set of wildcard mentions doesn't allow expressing that difference.

@timabbott Thank you so much for your speedy reply. I am sorry I wasn't clear in my description. I mean users whose access has been revoked via LDAP or users that are locked in LDAP. Currently they are still under active users but they can't login. Is there a way to automatically deactivate them in Zulip as well? Or at least change their notification settings accordingly.


Pipeline: add random fail points

What problem does this PR solve?
Issue Number: ref #6518
Problem Summary:
What is changed and how it works?

Refactor Event::scheduleImpl to avoid potential problems.
Add noexcept for some function of Task, Event and etc.
Add random fail points:

    M(random_tunnel_write_failpoint)                    \
    M(random_pipeline_model_task_run_failpoint)         \
    M(random_pipeline_model_task_construct_failpoint)   \
    M(random_pipeline_model_event_schedule_failpoint)   \
    M(random_pipeline_model_event_finish_failpoint)     \
    M(random_pipeline_model_operator_run_failpoint)     \
    M(random_pipeline_model_cancel_failpoint)

Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/cc @windtalker @ywqzzy @yibin87

/run-unit-test

/run-all-tests

/rebuild

/run-integration-test

/merge


basic grid vs stack views

Description
This PR follows up on #561 by implementing a basic grid vs stack view. Right now there are 3 methods that have gotten added to the viewer - subplot(layer, position, size) that will place a layer at a particular position in a grid of a particular size, and then two convenience methods grid_view and stack_view that will place layers in those respective configurations. grid_view also takes some parameters in case you want to set the grid to be a specific size or move through the layers with a particular stride, so that you could for example place layer 0, 1 on top of eachother in one grid cell, and layer 2, 3 on top of eachother in the next grid cell etc.
This is still WIP, I need to test it works in all configs and add some tests, but I wanted to quickly follow up on the discussion we were having in #561 with @jni @royerloic and @kellman
Here's a gif of the current performance:

It might be nice to add a button to the toggle grid vs stack view. Also should rearranging the order of the layers in the layers list rearrange the position of the layers in the grid once the grid has been made? If so in what way? Should there be away to rearrange the position of the layers in the grid just by clicking and dragging on them?
Type of change

[x] New feature (non-breaking change which adds functionality)

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

I'll also note that this implementation will work with all our different layer types

Perfect, this is going to be super useful. Probably going to use it everyday...  As is anybody that needs to process images and compare them...

This PR is now ready for review @jni @royerloic
It is implemented as we discussed including a new button to toggle between grid and stacked mode. See here for its basic usage:

You can actually use the grid mode with nD data too, and with 3D rendering if you choose, see here:

Finally if you want to use the stride parameter or set a custom grid size you have to use
viewer.grid_view(n_row, n_column, stride)
viewer.stack_view()

Seems like our CI is failing to even install windows right now

@sofroniewn you are blowing my mind :heart_eyes:

ah - and one other thing that I'm curious for @jni @royerloic opinion on is right now the layers list is ordered such that the most recently added layer goes on top and the oldest layer goes on the bottom. This is different than the natural ordering of the list, and Kira raised this issue #122 to discuss this a while back. At the time I liked the ordering with the new layers ontop, reasoning that those were the ones you were most recently adding were the ones you wanted to see the most. Now actually the layers list would automatically scroll if we grew it from the bottom, so you would see the most recently added at the bottom anyway.
I think it might make sense with grid mode to have the list ordered in the other way now with oldest layer at the top, and grow the layer going down. The reason for that is that the oldest layer gets added to the (0, 0) spot in the grid, and it's weird when the (0, 0) spot and the layer at the top of the grid don't match.
Thoughts?

Wow, this is so cool. I love how the 3D grid just works...

ah - and one other thing that I'm curious for @jni @royerloic opinion on is right now the layers list is ordered such that the most recently added layer goes on top and the oldest layer goes on the bottom. This is different than the natural ordering of the list, and Kira raised this issue #122 to discuss this a while back. At the time I liked the ordering with the new layers ontop, reasoning that those were the ones you were most recently adding were the ones you wanted to see the most. Now actually the layers list would automatically scroll if we grew it from the bottom, so you would see the most recently added at the bottom anyway.
I think it might make sense with grid mode to have the list ordered in the other way now with oldest layer at the top, and grow the layer going down. The reason for that is that the oldest layer gets added to the (0, 0) spot in the grid, and it's weird when the (0, 0) spot and the layer at the top of the grid don't match.

Here we can think about the model/view separation to inform us in the best way.
I think that the order of the list should not change, that's the model, how we choose
to display it is a different thing.  This could cause all sorts of trouble
where scripts would expect the last computed  image at the top, etc... think about 'stack'
based computation for example. I am perfectly happy with having the top (first) layer
be always at (0,0). The grid would be reorganised. Maybe that's confusing.
Oh wait, you might be suggesting simply to display the other way around, not to
reorder the list itself... Yes. if that's what you mean, then having the top of the list
displayed at the end of the grid. It might be confusing though... If you just display
two layers, it is not obvious which layer corresponds to what... One possibility is to
display a 'border' (highlight) that is synced with the layer list selection. I am not sure
that we want to go this path now, though.
Not obvious what is best. We need to think about it more.

I don't really get the confusion... If I remember correctly, we append to the layer list (?), and the list grows towards the top? This is actually fine and if you think about a 2D images + a right-handed reference frame, this is the direction you expect to grow in when you have (row, col) coordinates.
Now, if you take the linear list and reshape it using np.reshape, then you end up with the list growing on the bottom-right edge. So that remains consistent as far as I can tell...
So, my vote:

layer list grows by appending
latest layer on top in the layer list
latest layer on the bottom-right in the grid view

I do see that most users would read left-right then top-bottom, but I don't think that is our primary concern...

Yeah @royerloic i’m not thinking of changing the model, which would be very complex, just the view.
Should new layers appear at the bottom or top of the view. Right now it is the top, maybe it should be the bottom? That’s all I am asking

Top seems reasonable to me, new layers get added at the top of the list,  and at the left-top corner of the grid. I am afraid we  have a tie with @jni . @sofroniewn feel free to pick your preference if Juan agrees :-)

Hmm ok - I think I will consult @liaprins-czi for a 3rd opinion on monday. I think we're all in agreement that the layers list gets appended too though as otherwise all the indexing is weird.
As to growing the layers list view at the top or bottom, and growing the grid view at the top left / bottom right. I think I actually lean towards grow the list view at the bottom and grow the grid view at the bottom right.
For growing the list view at the bottom it is then much easier to count down from the top and know that the top layer is the 0th element in the list, the next layer is the 1st etc, whereas now you need to count up from the bottom. Purely from a code standpoint now I have to do all sorts of weird reversals to maintain the correspondence between the layer list and its view, which is fine as they happen under the hood, but maybe an indication something isn't natural either.
The rest of this PR is ready for review

ok, makes sense, everything grows at the bottom (right). In that case it is all very intuitive and consistent. It was late yesterday... ;-)

What does @jni think? I'll add with this screenshot, in the current view it just looks confusing that the two lists run in opposite orders:

I'm pretty happy to think of the layerlist view as a "stack", because the images do appear like they are stacked together and the topmost image is hiding all the other ones. Then, think about putting your palm on the topmost image and sliding it out, splaying all the "pictures" underneath across the "desk" towards the bottom right. (In fact this could be a neat animation to add. ;) It is that one metaphor that breaks down if you invert the order of the layerlist. But otherwise, your arguments make sense, and I definitely prefer inverting the list to inverting the order of the montage.
I'm very curious what @liaprins-czi will say. =)

During discussion with @liaprins-czi today, her preference was for the layers in the layers list view to remain as they are with most visible on top, and therefore most recent on top, as you want the most recently added layer also to be most visible. Given that, she felt it was natural to have the most recent layer in the top left corner (which is different then our current implementation where it is bottom right). She felt it was important to have that consistency between the top left corner of the grid view and the top of the layers list.
The above implementation still leaves us with a mismatch between the order of the layers list view and the order of the layers in the actual python list, but she felt this was ok - it was more important to have consistency within the GUI then between how things are done within the GUI and within the code, which I agree with, it isn't that big a deal that the ordering is different, and we should really be using the layer name to index into the layers list rather than the location in the list.
Finally she thought it was strange and confusing that the layers could be edited in grid mode, and that you could enter 3D rendering in grid mode, and that you could create new layers in grid mode. All of these options actually led us to weird confusing non-intuitive behavior and she proposed to disable as much of this functionality (at least from the GUI) when in grid mode so as users don't click the wrong stuff and end up doing something weird. I'll think about the best way to implement this, but broadly agree.
If this sounds good to @jni and @royerloic I'll probably make these changes tomorrow

@sofroniewn

She felt it was important to have that consistency between the top left corner of the grid view and the top of the layers list.

sigh fine. =P Actually I'd very much like it if we could make this a configurable option somewhere, so I could play around with both modes. I have a strong intuition that having the next added image on the bottom right would work better, at least for me, someone experienced in the NumPy ecosystem. For biologists who haven't necessarily worked with arrays, I'll admit it might be a different story...

she thought it was strange and confusing that the layers could be edited in grid mode, and that you could enter 3D rendering in grid mode, and that you could create new layers in grid mode.

Here I'm actually in favour of keeping the current behaviour. One common use case that would be enabled basically as soon as this PR is merged is to pick correspondences between two images you want to co-register. This would actually be quite easy to do with the two images, two interleaved points layers, and a stride of 2.
And both @royerloic and I were very impressed with the side-by-side volume rendering, and I think it would be a very nice way to see certain datasets.

@jni ok your points are well taken - i wont disable anything now, we can always disable for the 0.2.1 release, but merging the PR now will give people a change to play around with it.
I've made the default order in the grid such that the most visible layer goes in the top left corner, but if you pass a negative stride (say stride=-1) then the order will be reversed and it will go in the bottom right corner. This seems like a pretty reasonable compromise to me.
I've also added tests. I will merge once they all pass.


multus-cni: 3.7.2 -> 3.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/k8snetworkplumbingwg/multus-cni/releases.
meta.description for multus-cni is: "Multus CNI is a container network interface (CNI) plugin for Kubernetes that enables attaching multiple network interfaces to pods. "
meta.homepage for multus-cni is: "https://github.com/k8snetworkplumbingwg/multus-cni"
meta.changelog for multus-cni is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/0llqxv1bcmznh8nnf57wkcf0gwwzb4fy-multus-cni-3.8/bin/multus passed the binary check.

1 of 1 passed binary check by having a zero exit code.

1 of 1 passed binary check by having the new version present in output.

found 3.8 with grep in /nix/store/0llqxv1bcmznh8nnf57wkcf0gwwzb4fy-multus-cni-3.8

found 3.8 in filename of file in /nix/store/0llqxv1bcmznh8nnf57wkcf0gwwzb4fy-multus-cni-3.8

directory tree listing: https://gist.github.com/1ba9496932641a3144dd11b96819b703

du listing: https://gist.github.com/3807ef122da91c98dbca31d85d096db8

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
multus-cni

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0llqxv1bcmznh8nnf57wkcf0gwwzb4fy-multus-cni-3.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A multus-cni https://github.com/r-ryantm/nixpkgs/archive/25b9b3b762ed713023ab43b000ae29e1c777f04b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/0llqxv1bcmznh8nnf57wkcf0gwwzb4fy-multus-cni-3.8
ls -la /nix/store/0llqxv1bcmznh8nnf57wkcf0gwwzb4fy-multus-cni-3.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

multus-cni

Maintainer pings
cc @onixie @kalbasit for testing.

Result of nixpkgs-review pr 138401 run on x86_64-linux 1

1 package built:

multus-cni


Support plugging in instrumentation based on ActivitySources

Closes #138
This PR introduces a bridge between DiagnosticSources and ActivitySources so that libraries only using ActivitySources for their instrumentation can still be enriched through SerilogTracing's Instrument.With infrastructure.
You can instrument an activity-source by inheriting from ActivitySourceInstrumentor:
using SerilogTracing.Instrumentation;

using var _ = new ActivityListenerConfiguration()
    .Instrument.With<RabbitMQActivitySourceInstrumentor>()
    .TraceToSharedLogger();

class RabbitMQActivitySourceInstrumentor : ActivitySourceInstrumentor
{
    public override bool ShouldSubscribeTo(string activitySourceName)
    {
        return activitySourceName.StartsWith("RabbitMQ");
    }

    public override void InstrumentActivity(Activity activity)
    {
        ActivityInstrumentation.SetMessageTemplateOverride(..);
    }
}

cc @ngbrown: I spent a lot of time tinkering with RabbitMQ's new activity instrumentation and arrived at this as a solution for enriching activities from "modern" sources that are based off ActivitySource instead of DiagnosticSource. Does this look like it would fit your needs?

@ngbrown Ah in order to use IActivitySourceInstrumentors you need to plug them in to your SerilogTracing configuration using .Instrument.With.

Ah, no, I see. I’m simply passing the wrong value to subscribe to 🙂 My bad!

Ah, no, I see. I’m simply passing the wrong value to subscribe to 🙂 My bad!

Right, so to be clear, public override void InstrumentActivity(Activity activity) is going to get all events from all ActivityListener sources since public override bool ShouldSubscribeTo(string activitySourceName) doesn't get called? Is this expected?
It seems that there is no reason for public abstract void InstrumentActivity(System.Diagnostics.Activity activity); to exist unless it starts being called.

Ah, no, I see. I’m simply passing the wrong value to subscribe to 🙂 My bad!

This is working slightly better, but because it is hard-coded to "ActivityStarted" the tags with data are not yet populated. Those are populate after the ActivityStarted event has fired.
https://github.com/rabbitmq/rabbitmq-dotnet-client/blob/7c78e66a42fe13d81cf04b76975f86b13ecba23c/projects/RabbitMQ.Client/Impl/RabbitMQActivitySource.cs#L67-L77
The ActivitySourceInstrumentor base class would be better off with two separate virtual functions instead of a single abstract function. One for "ActivityStarted" and one for "ActivityStopped".
I can work around this with my own implementation of IActivityInstrumentor. I have to use string constants because the relevant constants in SerilogTracing.Core.Constants are all internal.

RabbitMQClientActivityInstrumentor.cs with IActivityInstrumentor instead of ActivitySourceInstrumentor
using System.Diagnostics;
using Serilog.Events;
using Serilog.Parsing;

namespace SerilogTracing.Instrumentation.RabbitMQ;

/// <summary>
/// An activity instrumentor that populates the current activity a template for the RabbitMQ client
/// </summary>
internal sealed class RabbitMQClientActivityInstrumentor : IActivityInstrumentor
{
    /// <summary>
    /// Create an instance of the instrumentor.
    /// </summary>
    public RabbitMQClientActivityInstrumentor(RabbitMQClientActivityInstrumentationOptions options)
    {
        _getSubscriberProperties = options.GetSubscriberProperties;
        _getPublisherProperties = options.GetPublisherProperties;

        var messageTemplateParser = new MessageTemplateParser();
        _subscriberMessageTemplateOverride = messageTemplateParser.Parse(options.SubscriberMessageTemplate);
        _publisherMessageTemplateOverride = messageTemplateParser.Parse(options.PublisherMessageTemplate);
    }

    private readonly Func<Activity, IEnumerable<LogEventProperty>> _getSubscriberProperties;
    private readonly Func<Activity, IEnumerable<LogEventProperty>> _getPublisherProperties;
    private readonly MessageTemplate _subscriberMessageTemplateOverride;
    private readonly MessageTemplate _publisherMessageTemplateOverride;

    bool IActivityInstrumentor.ShouldSubscribeTo(string diagnosticListenerName)
    {
        return diagnosticListenerName == "SerilogTracing.ActivitySource";
    }

    public bool ShouldSubscribeTo(string activitySourceName)
    {
        return activitySourceName.StartsWith("RabbitMQ.Client", StringComparison.OrdinalIgnoreCase);
    }

    public void InstrumentActivity(Activity activity, string eventName, object eventArgs)
    {
        if (eventName != "ActivityStopped" || !ShouldSubscribeTo(activity.Source.Name)) return;

        SerilogTracing.Core.Constants

        switch (activity.Source.Name)
        {
            case "RabbitMQ.Client.Subscriber":
                ActivityInstrumentation.SetMessageTemplateOverride(activity, _subscriberMessageTemplateOverride);
                ActivityInstrumentation.SetLogEventProperties(activity, _getSubscriberProperties(activity));
                break;
            case "RabbitMQ.Client.Publisher":
                ActivityInstrumentation.SetMessageTemplateOverride(activity, _publisherMessageTemplateOverride);
                ActivityInstrumentation.SetLogEventProperties(activity, _getPublisherProperties(activity));
                break;
            default:
                throw new NotImplementedException($"No template for the activity source {activity.Source.Name}");
        }
    }
}

Thanks for the feedback @ngbrown 🙇 Those are great suggestions.

For what it’s worth, I wouldn’t be against making those constants for the diagnostic listener name and events public either, since they indirectly are already via the diagnostic listener discovery mechanism.

Thanks @ngbrown. I ran into this as well while I was tinkering with it and was tossing up whether to log an issue for it. Glad to see one already exists.
I think we do need to do something in Seq to support span links, but that's a separate issue. They generalize traces from being trees into any (hopefully acyclic) graph, so the waterfall visualization isn't necessarily the best for them.
Ideally, it should be configurable in RabbitMQ, which it looks like they're open to, since converting links into a parent/child basically isn't possible with the activity parent being frozen once it's started.
As for SerilogTracing, we had also thought about letting you set an override parent context to an activity in these cases where you're stuck. It won't change what's on the activity, but will be used when converting the activity into a log event. It could look something like:
ActivityInstrumentation.SetParentContextOverride(new SpanContext(traceId, parentSpanId, traceFlags));


missing configure file

As mentioned in INSTALL https://github.com/TimothyGu/libilbc/blob/master/INSTALL Briefly, the shell commands ./configure; make; make install' should configure, build, and install this package.

$ autoreconf -i
$ ./configure
$ make
$ sudo make install


doc/test-framework/scorecard: document config file

Description of the change: Add docs for new scorecard config file being added by PR #1641
Motivation for the change: Keep documentation up-to-date

/hold
Updating to match latest changes to scorecard config PR

/hold cancel


Add support for preferred key server subpackets

This adds support for the subpacket type 24 - Preferred Key Server.

Thanks!

Well that was a quick turn-around ;)
Thanks!


Android App may not comply with new Google Play Photo and Video Permissions policy

Describe the bug

I’m using the react-native-zendesk-messaging package, and we’ve noticed that our app may be violating the new Google Play Photo and Video Permissions policy..
The package seems to request broad access to photos and videos, which might not comply with the recent changes in the policy. According to the updated policy, apps are required to use system pickers for accessing photos and videos, and broad access is only acceptable if there is a core use case.

To Reproduce

Integrate the react-native-zendesk-messaging package in an app.
Attempt to upload a photo or video using Zendesk’s messaging/chat feature.
Observe the app’s permissions request flow.

Current behavior
The package is requesting the broad storage permissions which can cause compliance issues with Google Play.
Expected behavior
The package should use Android's photo picker for any media access, rather than requesting broad storage permissions.
Environment :

Platform: Android
React Native Version:  0.72.14
react-native-zendesk-messaging Version: 0.2.1
Zendesk Android SDK Version being used in the package: 2.13.0

@leegeunhyeok : Can you please help me with this?

@akumarclick Upgrading the Android SDK to the latest version in the build.gradle file should solve your issue

@avivdim : Thanks for the reply. Will Updating the version there solve my problem? Because I don't see any update in the release notes of Zendesk Android SDK regarding this change in their SDK.

@akumarclick You're right, it’s not explicitly mentioned in their changelog. However, keep in mind that version 2.13.0 is quite old and doesn't even support Android 14. The SDK has likely fixed many issues since that version. The fix for file uploading mentioned in the 2.22.0 release could indeed be related to this, but I'm not entirely sure. Please let me know if upgrading to the latest version solved the issue for you.

@avivdim : Thanks!
It worked for me after I updated native SDK's in the package locally to the latest versions. Also Zendesk official support has also confirmed that their latest SDK's are in complete compliance with the Google Play policies.


ERROR: No matching distribution found for opencv-python==<IP_ADDRESS>

pip install install -r docker/requirements.txt
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting install
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4d/c8/8cbca135f9e167810756ea2bc34b028501936675fcbd7dadccf752fa4622/install-1.3.5-py3-none-any.whl (3.2 kB)
ERROR: Could not find a version that satisfies the requirement opencv-python==<IP_ADDRESS> (from versions: <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>)
ERROR: No matching distribution found for opencv-python==<IP_ADDRESS>

opencv版本 不更新一下？
可以4.5不

according to official dockerfile, python should use 3.7 version. if you want to use opencv-python==4.5, you can just modify docker/requirements.txt. change opencv-python==<IP_ADDRESS>  to opencv-python>=<IP_ADDRESS> like this. however other 3rdparty libraries would still complain, change the requirements.txt accordingly. My suggestion would change python version, that would save you a lot of troubles.


Implementing karma-coverage

The other day I was on Slack, I came up with an issue that the exist method is being deprecated. Robert suggested that we should implement the karma-coverage, which I think is an interesting idea. Please let me know what you guys think about this idea, it would be much appreciated. If you agree I want to try to install the karma-runner dependency using this command: npm install karma karma-coverage --save-dev. I will test if the dependency can even be installed and later we can add any additional tests related to karma-coverage.
If you want more references this link tells you more about karma-coverage: https://github.com/karma-runner/karma-coverage. This is the same link that Robert shared on Slack. Thank you, Robert for offering such an interesting idea. I am willing to implement it, and I hope that most of us will be willing to work on this issue.
Thank you guys for reading this.

@MarkKrutik I think this is a great idea.  Quite a few students have asked for it.  If you want to give it a shot, I would be happy to review your PR.  I've played with this in the past, and run into some issues with parceljs and the way it bundles and minifies the code.  I think if we generate source maps for test builds, it should be possible.  Let's try it.

Go for it @MarkKrutik.  You'll want to play around with our settings in https://github.com/filerjs/filer/blob/master/karma.conf.js and https://github.com/filerjs/filer/blob/master/package.json.

I have installed karma by running this command:  npm install karma karma-coverage --save-dev. I have tried to fix the package.json and karma.conf.js, and it ran with the npm run karma-mocha. Is there anything else that you would recommend me to do?

I also ran this statement: istanbul cover index.js and got this message
Writing coverage object [C:\Users\markk\filer\tests\dist\coverage\coverage.json]
Writing coverage reports at [C:\Users\markk\filer\tests\dist\coverage]
=============================== Coverage summary ===============================
Statements   : 11.33% ( 710/6267 )
Branches     : 2.25% ( 119/5289 )
Functions    : 5% ( 125/2499 )
Lines        : 61.4% ( 105/171 )
C:\Users\markk\filer\tests\dist\index.js:9
__cov_da_OZ01mWkcCGFxHD8f19g.s['1']++;parcelRequire=function(e,r,n,t){__cov_da_OZ01mWkcCGFxHD8f19g.f['1']++;__cov_da_OZ01mWkcCGFxHD8f19g.s['2']++;var i=(__cov_da_OZ01mWkcCGFxHD8f19g.b['1'][0]++,'function'==typeof parcelRequire)&&(__cov_da_OZ01mWkcCGFxHD8f19g.b['1'][1]++,parcelRequire),o=(__cov_da_OZ01mWkcCGFxHD8f19g.b['2'][0]++,'function'==typeof require)&&(__cov_da_OZ01mWkcCGFxHD8f19g.b['2'][1]++,require);function u(n,t){__cov_da_OZ01mWkcCGFxHD8f19g.f['2']++;__cov_da_OZ01mWkcCGFxHD8f19g.s['4']++;if(!r[n]){__cov_da_OZ01mWkcCGFxHD8f19g.b['3'][0]++;__cov_da_OZ01mWkcCGFxHD8f19g.s['5']++;if(!e[n]){__cov_da_OZ01mWkcCGFxHD8f19g.b['4'][0]++;__cov_da_OZ01mWkcCGFxHD8f19g.s['6']++;var f=(__cov_da_OZ01mWkcCGFxHD8f19g.b['5'][0]++,'function'==typeof parcelRequire)&&(__cov_da_OZ01mWkcCGFxHD8f19g.b['5'][1]++,parcelRequire);__cov_da_OZ01mWkcCGFxHD8f19g.s['7']++;if((__cov_da_OZ01mWkcCGFxHD8f19g.b['7'][0]++,!t)&&(__cov_da_OZ01mWkcCGFxHD8f19g.b['7'][1]++,f)){__cov_da_OZ01mWkcCGFxHD8f
ReferenceError: describe is not defined
at Object.parcelRequire.k419.../../src (C:\Users\markk\filer\tests\dist\index.js:9:495518)
at u (C:\Users\markk\filer\tests\dist\index.js:9:2146)
at p (C:\Users\markk\filer\tests\dist\index.js:9:2386)
at Object.parcelRequire.Focm../spec/filer.spec (C:\Users\markk\filer\tests\dist\index.js:9:861267)
at u (C:\Users\markk\filer\tests\dist\index.js:9:2146)
at parcelRequire.rwRH (C:\Users\markk\filer\tests\dist\index.js:9:2962)
at Object. (C:\Users\markk\filer\tests\dist\index.js:9:3932)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions.(anonymous function) [as .js] (C:\Users\markk\AppData\Roaming\npm\node_modules\istanbul\lib\hook.js:107:24)
at Module.load (internal/modules/cjs/loader.js:599:32)

I am assuming from this message most of the code is not covered.

@MarkKrutik usually you wouldn't run istanbul directly, but rather let karma run it as a plugin.  You can see in their example at https://github.com/filerjs/filer/blob/master/package.json how they do it, by specifying a coverage reporter.


file-url [number]

Steps to reproduce
file-url 123

Expected behavior
file:///.../123

Actual behavior
TypeError: Expected a string, got number

Fixed in v2.


Add a lock to PlatformPOSIX::DoLoadImage

Multiple threads could be calling into DoLoadImage concurrently,
only one should be allowed to create the UtilityFunction.
This is discussed upstream in https://reviews.llvm.org/D46733, but
this seems fine for now.
rdar://problem/40140766

@swift-ci test and merge


Added SortOrder property to TStyledToolbarButton and SortbySortOrder …

…to TStylesToolbar. Add some functionality to work around sorting components in the StyledToolBar.  Right now, just the buttons, but concept can be expanded. There is verification of each control to make sure the SortOrder property is available.
This address issue of StyledToolbar not always sorting in run time as design time if certain items on the toolbar are hidden or shown during run time.

I've added your implementation with some minor differences, to preserve non storing of property SortOrder if not used.
Also I've made some fix to your code, please check and confirm.


Solve a problem with the new sdk on iOS 11 that causes an extra space…

… in the bottom due to automatic content inset adjustment.

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've been mindful about doing atomic commits, adding documentation to my changes, not refactoring too much.
[x] I've a descriptive title and added any useful information for the reviewer. Where appropriate, I've attached a screenshot and/or screencast (gif preferrably).
[x] I've written tests to cover the new code and functionality included in this PR.
[x] I've read, agree to, and signed the Contributor License Agreement (CLA).

PR Summary

Apple added in the sdk for iOS 11 a new property in ScrollViews that causes automatic inset adjustment by default (https://developer.apple.com/videos/play/wwdc2017/204/). This PR pretends to disable this property to avoid an extra space in the inverted tableView.

Related Issues

Fixes #630

@dzenbot No... the problem here is because of a new property apple add to scrollViews, and it only affects iOS 11.

Update tag -> 1.9.6  pls

@kushak Today I'll update the tag!

@kushak I added the tag 1.9.6 and @cornr I changed the place where the insets were adjusted, thank you.

@cornr Sorry, I forgot about it... Solved!

Where do we put that??


Implement strategy manager

Description
Depending on the state of a cluster, different reconciliation strategies have to be used:

New Cluster: run the installer library
Cluster exists and has Kyma installed: run reconciliation
Cluster exists and requires an upgrade: run installer library

The strategy manager is responsible to define which logic a reconciliation worker has to execute. It evaluates the cluster state and returns a closure-object which wraps the logic to worker has to run.
ACs:

It receives the cluster information from the reconciliation worker and decides which reconciliation strategy has to be applied by evaluating the cluster state.
It either wraps the call of the installer-library (Hydrofrom) in case of install or upgrade actions, or requests the component templates from the chart provider for any other actions and returns the wrapped logic as closure-object to the reconciliation worker.

Reasons
Encapsulation of different reconciliation logic blocks.
Attachments

Obsolete, no longer needed.


Mod Check failed on 1.13.61

After today's update, 1.4.4 fails spectacularly.

It complains that the Mod Check is failing.
However, the old (pair?) IDA signature lands here in 1.12:
.text:0000000141484720 48 89 5C 24 08                                mov     [rsp+arg_0], rbx
.text:0000000141484725 57                                            push    rdi <--- 2nd signature hits this
.text:0000000141484726 48 83 EC 30                                   sub     rsp, 30h
.text:000000014148472A C6 44 24 48 00                                mov     [rsp+38h+arg_8], 0
.text:000000014148472F 48 8B F9                                      mov     rdi, rcx
.text:0000000141484732 84 D2                                         test    dl, dl
.text:0000000141484734 74 25                                         jz      short loc_14148475B
.text:0000000141484736 48 8B 05 6B 67 08 05                          mov     rax, cs:qword_14650AEA8

But your notes say:
    // ---------- INJECTING HERE ----------
    7FF6980649DC: 40 53                 - push rbx
    // ---------- DONE INJECTING  ----------

I've tried to find this function in every Starfield EXE I have, but I can't find it. I don't think the location where it's landing is where it's supposed to be landing, because you replace it with XOR EAX, EAX followed by a RETN (followed by 3 NO-OPs for some reason???)
I did however update the function it was landing at in 1.12 to 1.13 with the following signature:
57 48 83 EC ? C6 44 24 ? 00
Mod Check:
    Starfield.exe+14DC6C5: 45 8B C2              - mov r8d,r10d
    Starfield.exe+14DC6C8: E8 A3 A0 02 01        - call Starfield.exe+2506770
    Starfield.exe+14DC6CD: F7 00 00 80 00 00     - test [rax],00008000
    Starfield.exe+14DC6D3: 74 02                 - je Starfield.exe+14DC6D7
    Starfield.exe+14DC6D5: B3 01                 - mov bl,01
    Starfield.exe+14DC6D7: 8A C3                 - mov al,bl
    Starfield.exe+14DC6D9: 48 83 C4 20           - add rsp,20
    Starfield.exe+14DC6DD: 5B                    - pop rbx
    Starfield.exe+14DC6DE: C3                    - ret
    Starfield.exe+14DC6DF: CC                    - int 3
    Starfield.exe+14DC6E0: 48 89 5C 24 08        - mov [rsp+08],rbx
    // ---------- INJECTING HERE ----------
    Starfield.exe+14DC6E5: 57                    - push rdi
    // ---------- DONE INJECTING  ----------
    Starfield.exe+14DC6E6: 48 83 EC 20           - sub rsp,20
    Starfield.exe+14DC6EA: C6 44 24 38 00        - mov byte ptr [rsp+38],00
    Starfield.exe+14DC6EF: 84 D2                 - test dl,dl
    Starfield.exe+14DC6F1: 74 25                 - je Starfield.exe+14DC718
    Starfield.exe+14DC6F3: 48 8B 05 AE 27 11 05  - mov rax,[Starfield.exe+65EEEA8]
    Starfield.exe+14DC6FA: 48 85 C0              - test rax,rax
    Starfield.exe+14DC6FD: 74 09                 - je Starfield.exe+14DC708
    Starfield.exe+14DC6FF: F6 80 16 11 00 00 04  - test byte ptr [rax+00001116],04
    Starfield.exe+14DC706: 75 09                 - jne Starfield.exe+14DC711

And it (seems?) to be working like before.

However, I think you need to investigate why it's landing on an instruction after the MOV instruction. If you just want it to return 0, I don't see the reason to mov RBX into the stack pointer.

Just a note. E8 ? ? ? ? 84 C0 41 8A C4 74 is a signature I found that works as far back as 1.7.29, and it resolves to a CALL instruction to the function you want. All you have to do is resolve the address of the CALL mask, which is very easy to do.

Thank you for the assistance.


Removed robolectric and electricspock dependency

Resolves https://github.com/dariuszseweryn/RxAndroidBle/issues/769
This PR replaces Robolectric with handcrafted stubs. It also updates groovy and spock. All tests pass.

Agh, missed the test in the sample. Will fix later.

This PR is now complete

This looks amazing! 🚀 In the long run I want to put most of Android specific APIs behind a library-only accessor that would be dead simple and test only the library logic.
Anyway — I will test it and merge in the near future

Sounds good. This may help in that process. Some of the classes have only the methods used stubbed. But for now, this enables the transition to gradle 7 and allows us to upgrade groovy, junit and spock.

I finally got a moment to test properly. I have difficulties in running :mockrxandroidble:androidJavadocs with Java 11. There seem to be a problem with the task seeing dependencies of mockrxandroidble like the rxandroidble or annotation/rxjava libraries

@dariuszseweryn this should work now with my latest commit. Not sure if this is the ideal way to achieve it but it works!

@dariuszseweryn This branch now contains https://github.com/dariuszseweryn/RxAndroidBle/pull/763 and passes

I decided to fork this project so we can maintain it more actively and merge the PRs we had open. I've forked at https://github.com/NRB-Tech/RxAndroidBle/ and it's on Maven Central as io.nrbtech.rxandroidble. I've merged this PR there.

Hi @nrbrook
Sorry for such long silence. Had some time off and I didn't get notifications on my email so I missed a whole lot of events happening here. Thank you for your contributions these will help a great deal


No cost estimation when scaling up rds db

After increase of min_capacity in aws aurora rds cluster no changes in estimation are given.
Here is an example of the configuration:
module "database_service_1" {
  source                = "../terraform/modules/database-aurora"
  vpc_id                = module.config.network.VPC
  subnets               = module.config.network.RSTZS
  name                  = "${terraform.workspace}-service_1"
  engine                = "aurora-mysql"
  engine_version        = "5.7.mysql_aurora.2.08.3"
  engine_mode           = "serverless"
  instance_type         = "db.r4.large"
  replica_scale_enabled = false
  replica_count         = 0
  skip_final_snapshot   = true
  storage_encrypted     = true
  scaling_configuration = {
    auto_pause               = true
    max_capacity             = module.config.settings.stage_name == "prod" ? 16 : 4
    min_capacity             = module.config.settings.stage_name == "prod" ? 4 : 2
    seconds_until_auto_pause = 300
    timeout_action           = "ForceApplyCapacityChange"
  }
  enable_http_endpoint            = true
  db_cluster_parameter_group_name = aws_rds_cluster_parameter_group.service_1.id
  apply_immediately               = true
}

Here is the terraform plan:
# module.database_service_1.aws_rds_cluster.this will be updated in-place
  ~ resource "aws_rds_cluster" "this" {
        id                                  = "development-service_1"
        tags                                = {
            "Backup" = "Daily"
        }
        # (46 unchanged attributes hidden)
      ~ scaling_configuration {
          ~ min_capacity             = 1 -> 2
            # (4 unchanged attributes hidden)
        }
    }

and here is the output form infracost:
──────────────────────────────────
1 project had no cost estimate changes, rerun with --show-skipped to see details
──────────────────────────────────
1224 cloud resources were detected:
∙ 316 were estimated, 248 of which include usage-based costs, see https://infracost.io/usage-file
∙ 908 were free, rerun with --show-skipped to see details

Expected behaviour would be that I will see price change after increasing the capacity.
Am I doing something wrong pls?
Thanks in advance

Thanks @vm1984. Looking at the code it seems like for serverless RDS clusters we don't change the cost based on the scaling_configuration parameter, and instead we classify this as a usage-based resource and base the cost on the capacity_units_per_hr usage parameter.
I'm not super familiar with serverless RDS cluster. What would expect the resulting cost change to be when updating the scaling configuration capacity?

Hello @aliscott. Thank for your reply.
As we know the instance_type and the range in which db can scale I would expect some rough estimation on costs. Sure there are some extra variables like storage, read and write requests ... but some defaults could be use here I guess.
And if I want to be more specific I would use infacost-usage.yaml. My plan is to generate cost estimation based on differences in terraform plan using our cicd.
Do you see this possible or its a bad idea?
Thanks in advance.

@vm1984 thanks, yeah that makes sense 🙏 . I think it should be possible to add estimates for this case.

My plan is to generate cost estimation based on differences in terraform plan using our cicd. Do you see this possible or its a bad idea?

Yes, we have some guides here for doing that: https://www.infracost.io/docs/integrations/cicd/. We don't require the Terraform plan to be generated, since Infracost can work from just reading the code.


OADP-3630: Surface errors when secret is missing

How to test
deploy dpa where backupImages is not false.
~/git/oadp_cred main*
❯ oc get dpa -A -oyaml
apiVersion: v1
items:
- apiVersion: oadp.openshift.io/v1alpha1
  kind: DataProtectionApplication
  metadata:
    creationTimestamp: "2024-10-10T20:51:54Z"
    generation: 1
    name: velero-sample
    namespace: openshift-adp
    resourceVersion: "161818"
    uid: 3732f8dd-b602-4339-8052-590f3c274aac
  spec:
    backupLocations:
    - velero:
        config:
          profile: default
          region: us-east-1
        credential:
          key: cloud
          name: cloud-credentials
        default: true
        objectStorage:
          bucket: tkaovila-aug30-velero-bsl
          prefix: tiger415
        provider: aws
    configuration:
      restic:
        enable: false
      velero:
        defaultPlugins:
        - openshift
        - aws
    unsupportedOverrides:
      openshiftPluginImageFqin: ghcr.io/kaovilai/openshift-velero-plugin:OADP-3630-pluginfix
  status:
    conditions:
    - lastTransitionTime: "2024-10-10T20:51:54Z"
      message: Reconcile complete
      reason: Complete
      status: "True"
      type: Reconciled

create another bsl where its name would not conflict with one in dpa.
kind: BackupStorageLocation
apiVersion: velero.io/v1
metadata:
  name: default
spec:
  provider: aws
  default: true
  objectStorage:
    bucket: tkaovila-aug30-velero-bsl
    prefix: tiger415
  credential:
    name: cloud-credentials
    key: cloud

❯ oc get bsl
NAME              PHASE       LAST VALIDATED   AGE     DEFAULT
default           Available   23s              14m
velero-sample-1   Available   23s              6m28s   true

deploy sample workload
❯ oc apply -f tests/e2e/sample-applications/mongo-persistent/mongo-persistent-csi.yaml
namespace/mongo-persistent created
serviceaccount/mongo-persistent-sa created
securitycontextconstraints.security.openshift.io/mongo-persistent-scc created
imagestream.image.openshift.io/todolist-mongo-go created
Warning: would violate PodSecurity "restricted:latest": privileged (container "mongo" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (containers "mongo", "curl-tool" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers "mongo", "curl-tool" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or containers "mongo", "curl-tool" must set securityContext.runAsNonRoot=true), seccompProfile (pod or containers "mongo", "curl-tool" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
deployment.apps/mongo created
service/mongo created
Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
deploymentconfig.apps.openshift.io/todolist created
service/todolist created
route.route.openshift.io/todolist-route created

~/oadp-operator remotes/upstream/HEAD
❯ echo 'kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mongo
  namespace: mongo-persistent
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  volumeMode: Filesystem
' | oc apply -f -
persistentvolumeclaim/mongo created

backup sample workload using backup storage location not defined in dpa default
❯ velero create backup --include-namespaces=mongo-persistent mongo-backup --storage-location=default

Observe backup partially fails and has following error when running velero backup logs mongo-backup | grep error
time="2024-10-10T21:28:54Z" level=error msg="[is-backup] Error getting UdistributionTransportForLocation: errors getting registryenv: secrets \"oadp-default-aws-registry-secret\" not found" backup=openshift-adp/mongo-backup cmd=/plugins/velero-plugins logSource="/opt/app-root/src/github.com/konveyor/openshift-velero-plugin/velero-plugins/imagestream/backup.go:53" pluginName=velero-plugins

Signed-off-by: Tiger Kaovilai<EMAIL_ADDRESS>Dev Notes

docker buildx build --platform=$(dockerplatforms-amdarm) -t $(ghcr_tag) .  --push

@kaovilai Can you please add some context/steps to the PR description on how to test the PR changes ?

@mateusoliveira43 @shubham-pampattiwar documented test steps in PR description :D

/lgtm

/cherry-pick oadp-1.3

/cherry-pick oadp-1.4


2.36 release

Description
I was wondering if it might be possible to get a release for 2.36.0? Then we could update the SvelteKit templates to address https://github.com/sveltejs/kit/issues/11530

I'd like to release a major version to drop Node <18 which aligns with Svlete itself.
See also #665.

I don't think AST in svelte v5 is stable yet, so svelte-eslint-parser is also not stable. Therefore, I don't think it is possible to release the stable version of eslint-plugin-svelte v2.36 yet.

@ota-meshi We can use https://github.com/un-ts/preversion to release alpha versions very easily, shall I raise a PR for it?

I'm currently using changeset pre mode. It's working fine so far.
https://github.com/sveltejs/eslint-plugin-svelte/pull/658#:~:text=is currently in-,pre mode,-so this branch

Nice

I probably could use the next tag. I just assumed you'd be releasing 2.36 soon because otherwise it's a long time to go without another release. I don't think there's any expectation for anything related to Svelte 5 to be stable regardless of version number. And it would be easier to give the same version to all users. But I can make it work either way, so gee


Cross section

Description

How Has This Been Tested?

Screenshots, that help to understand the changes(if applicable):
Checklist:

[x] A test for the new functionality was added.
[ ] All tests run without failure.
[ ] The new code complies with the TiGL style guide.
[ ] New classes have been added to the Python interface.
[x] API changes were documented properly in tigl.h.

Thanks again for your comments!
I totally agree that we should divide the task into two parts - a calculation part and an analysis part - and in order to do so, enhance for example the CTiglIntersectionCalculation class.
Since it turned out that the CTiglIntersectionCalculation class might need some refactoring, and based on our evaluation of the situation and decision this week, let us proceed as follows:

For now, we keep the simple implementation of the API-function tiglGetCrossSectionArea from August 24th, which doesn't divide the task in a calculation and an analysis part yet, and we make sure that it works and TiGL's users can already use this functionality. To ensure that it works properly, I will add further unittests, also testing the functionality with more complex geometries as the D150. Profiling the calculation time will be enabled, as well.
To implement the tiglGetCrossSectionArea function properly, dividing the calculation and the analysis part as well as ensuring a properly working cache functionality, I open a new issue #921 which also includes an appropriate refactoring of the CTiglIntersectionCalculation class. This will be a larger task.

Codecov Report

Merging #921 (38c9384) into master (6b764bd) will decrease coverage by 0.01%.
The diff coverage is 82.22%.

Additional details and impacted files

@@            Coverage Diff             @@
##           master     #921      +/-   ##
==========================================
- Coverage   69.56%   69.55%   -0.02%
==========================================
  Files         298      298
  Lines       24947    25019      +72
==========================================
+ Hits        17355    17401      +46
- Misses       7592     7618      +26

Impacted Files
Coverage Δ

src/geometry/CTiglIntersectionCalculation.cpp
87.50% <0.00%> (-0.89%)
:arrow_down:

src/api/tigl.cpp
55.16% <86.04%> (+0.31%)
:arrow_up:

src/CCPACSStringVector.cpp
86.53% <0.00%> (-5.30%)
:arrow_down:

src/CCPACSEtaIsoLine.cpp
59.45% <0.00%> (-5.25%)
:arrow_down:

src/cpacs_other/CCPACSMaterialDefinition.cpp
54.54% <0.00%> (-4.72%)
:arrow_down:

src/CCPACSXsiIsoLine.cpp
15.78% <0.00%> (-2.97%)
:arrow_down:

src/CCPACSPointAbsRel.cpp
70.31% <0.00%> (-2.42%)
:arrow_down:

src/geometry/CCPACSTransformation.cpp
76.97% <0.00%> (-1.55%)
:arrow_down:

src/wing/CCPACSWingCell.cpp
78.18% <0.00%> (+0.04%)
:arrow_up:

src/cpacs_other/CTiglUIDManager.cpp
83.48% <0.00%> (+0.45%)
:arrow_up:

... and 2 more


Remove remaining artifacts from mlehner/gelf-php

Support for mlehner/gelf-php seems to have been dropped (which makes sense, since the package is abandoned), but the tests were still there. They were skipped by default, but when I installed mlehner/gelf-php the tests failed because GelfHandler doesn't support the interface provided by mlehner/gelf-php anymore.
Also, GelfMessageFormatterTest.php suggested to install mlehner/gelf-php, which doesn't make sense since it's not supported anymore.

Thanks


no module named torchvision

i already downloaded torch by ./install-pytorch.sh command and then I created my own dataset.
when i run a train command i met this issue. How can i solve this issue.
train_ssd.py --dataset-type=voc --data=data/fire --model-dir=models/fire
Traceback (most recent call last):
File "train_ssd.py", line 16, in
from vision.ssd.vgg_ssd import create_vgg_ssd
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/ssd/vgg_ssd.py", line 6, in
from .predictor import Predictor
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/ssd/predictor.py", line 4, in
from .data_preprocessing import PredictionTransform
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/ssd/data_preprocessing.py", line 1, in
from ..transforms.transforms import *
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/transforms/transforms.py", line 5, in
from torchvision import transforms
ModuleNotFoundError: No module named 'torchvision'

Hi, if you run a python3 interpreter, can you 'import torchvision'?
Can you try running the container which already has these packages installed?

From: ManlaiB @.>
Sent: Thursday, June 3, 2021 9:40:19 PM
To: dusty-nv/jetson-inference @.>
Cc: Subscribed @.***>
Subject: [dusty-nv/jetson-inference] no module named torchvision (#1087)
i already downloaded torch by ./install-pytorch.sh command and then I created my own dataset.
when i run a train command i met this issue. How can i solve this issue.
train_ssd.py --dataset-type=voc --data=data/fire --model-dir=models/fire
Traceback (most recent call last):
File "train_ssd.py", line 16, in
from vision.ssd.vgg_ssd import create_vgg_ssd
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/ssd/vgg_ssd.py", line 6, in
from .predictor import Predictor
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/ssd/predictor.py", line 4, in
from .data_preprocessing import PredictionTransform
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/ssd/data_preprocessing.py", line 1, in
from ..transforms.transforms import *
File "/home/jetson/jetson-inference/python/training/detection/ssd/vision/transforms/transforms.py", line 5, in
from torchvision import transforms
ModuleNotFoundError: No module named 'torchvision'
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/1087, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADVEGK24RXK3VTQFDQJPS5TTRAVIHANCNFSM46B23H5Q.


Description in one pager changed

I used Ortwin's input and request a merge.
Make use of the one pager to share it with customers if we need to

Thanks Manfred, I'll close the PR as we want to keep this repository for the technical assets.


Fix wrong configuration name

Motivation
fileSystemProfilePath : For File System Storage, file system profile path
offloadersDirectory: The directory for all the offloader implementations

@315157973 thanks for your contribution. Does this affect only master or other versioned docs?
If latter, could you please help update all affected versions? Thanks

@315157973 thanks for your contribution. Does this affect only master or other versioned docs?
If latter, could you please help update all affected versions? Thanks

All versions are fixed


Command to display service-app relation

For developers it is crucial to get to know the information how to reach other (micro)services in the mesh. In Kubernetes, the default way to reach another application is to resolve the Service-name (see https://kubernetes.io/docs/concepts/services-networking/service/) with the cluster-internal DNS. Connect to a http-based Service, given the name and the port, like so:
r = requests.get("http://myservice-fancy:9090/")

However, if not documented anywhere, there is currently no way of knowing that from a developer perspective. This feature proposal for the Unikube CLI to solve that.
A K8s Service has a name attribute, for example:
apiVersion: v1
kind: Service
metadata:
  name: myservice-fancy
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 9090
      targetPort: 9376

In this example the Service is called myservice-fancy and listens on port 9090. One can request the Service with python code snipped from above.
The Service acts as a load balancer (don't confuse with the Type: Loadbalancer at this point) and forwards requests to Pods with the label app=my-app from the selector attribute.
The Unikube CLI command
$> unikube app list

currently translates to a kubectl get pods in the namespace of the Deck. I'd suggest to print all available Services, their ports and associated Pods in the already existing output of said command.
Please use the KubeAPI wrapper in order to integrate the required helper functions https://github.com/unikubehq/cli/blob/b436f5904df7f4434b7e92cb189e34ffccd584b0/src/local/system.py#L346
You can find examples how to list Pods and Services from here: https://github.com/kubernetes-client/python#examples
@schwobaseggl can help as well.
The idea is to list all services and find out their selector: and port attributes. The selector must be found in the labels on the corresponding pod from the list. That way you can make the matching and display that information (in a further column?). Mind that you may have a Service with no corresponding Pod as well as Pods with no corresponding Service.

I started a Python Lib which can be used for this purpose: https://github.com/schille/caboto
It depends on introspecting the K8s manifests. That is a more complex approach:

intercept the manifests during Deck installation and feed them into Caboto
load the Caboto graph from the platform and analyse it in the CLI
I'd suggest the second option as is does not pose compatibility issues for different CLI versions and/or the Caboto format.

@Schille Returning the entire cabote graph as json might be difficult or overkill. What about Option 2b:
Maybe we can use the new caboto query language feature make the caboto graph queriable via the graphql endpoint. So that one can query the exact information that one needs.

Too much complexity if you ask me.

the UK platform has to maintain a Caboto Graph for each commit that the user is running (or generate it ad-hoc)
a further query, communication
the knowledge of the applied workload manifests is rolled out to the CLI upon deck install already

Why not hook into the unikube deck install process and store the graph on the client-side? That would allow to ask Caboto questions even if the project is down (or the cluster not connected) and lower CLI response time.


Feature/select branch

Added a dropdown called branch on the initialize step. This enables us to select a branch we want to use from the templates repository.

Looks good to me - thank you


Check golangci-lint is installed during build

Codecov Report

Merging #10 into master will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff          @@
##           master   #10   +/-   ##
====================================
  Coverage       0%    0%
====================================
  Files           3     3
  Lines          51    44    -7
====================================
+ Misses         51    44    -7

Impacted Files
Coverage Δ

pkg/commands/root.go
0% <0%> (ø)
:arrow_up:

pkg/commands/platform_list.go
0% <0%> (ø)
:arrow_up:

pkg/commands/platform.go
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Remove hasPressHandler function and it's uses because it's not used…

…  used in other touchable components also it's not necessary.
By default TouchableHighlight component needs to have a press handler funciton to show and hide underlay color which is not appropriate.
Test Plan : create a TouchableHighlight component and it won't show underlay on press if no press handler function is assigned

Btw when you are using TouchableHighlight vs TouchableOpacity?

@henrikra
I can't think of a reason why you asked this. please explain more about your question.

I mean I have only used TouchableOpacity since I haven't found any use cases for TouchableHighlight yet :D So when in your app you use TouchableHighlight?

@henrikra
I was going through the official tutorial and i faced TouchableHighlight and i was playing around with it when i noticed the difference between these Touchable components. Also the tutorial says :

Generally, you can use TouchableHighlight anywhere you would use a button or link on web. The view's background will be darkened when the user presses down on the button

@shadowm2 Okay so basically it just darkens the views background lol

@henrikra
This conversation is unnecessary and off-topic.


Feature Request - Include device information in MQTT discovery topic

In order to tie the entity created by this to a device in HA, could the device: map be filled out as part of the MQTT discovery topic? It looks like the unique ID field is already being set, so it doesn't look like it would take much extra information to have it show up this way.
https://www.home-assistant.io/integrations/sensor.mqtt/#device

I am rewriting the whole project and this will be in the new version!

is this project still alive?


'dnvm use' breaks

my user folder contains a space since I use my first & last name, which breaks the 'dnvm use' command.
error says system cannot find the path specified. "C:\Users\Mark"
running Windows 7 Pro x64

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.


Fix transportcommon.ListenWithSecuritySettings

Fix #3055.

This pull request is ready to be merged. Thanks for your contribution.


Remove OptionsList use.

Class for OptionsList needs to be removed - it will interfere down the line when trying to run each module as a separate sub-command.
Change the current code to serve as modules and use click to pass in arguments.

This will have to be done in tandem with #2, as the argument handling, sub-commands, options, and help text will be implemented through click in venusaur.py.

Class has been removed from everything except motifs.py, which will really need some cleaning up down the line regardless.

Merged into #33.


Remove exception for setting the hostname on libvirt

This PR reverts the exception for setting the hostname when using libvirt in vagrant.
It was introduced back in 655d20b0bd6ebf995915f33b06d16bd338e0bc52 which claims that the vagrant-libvirt backend doesn't support it.
I don't know which version @conorsch tested against but vagrant-libvirt has supported setting the hostname since the 0.0.5 release which came out in 2013.
Can we have it removed? It messes up integration with the landrush dns for vagrant.

@bol sounds reasonable.


Bugfix: The baseof.ace and baseof.html are not avalible when they are not contained by the theme

In Hugo the base template will be chosen in the following order:

1. <current-path>/<template-name>-baseof.ace, e.g. list-baseof.ace
2. <current-path>/baseof.ace
3. _default/<template-name>-baseof.ace, e.g. list-baseof.ace.
4. _default/baseof.ace
5. <themedir>/layouts/_default/<template-name>-baseof.ace
6. <themedir>/layouts/_default/baseof.ace

The 3 and 4 is not avaible even when the theme remove theirs.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Are you really sure about this? 4 is the case I use for my sites -- works great.

Yeah.
I use theme hugo_theme_robust.
<root>/layouts/_default/baseof.html can not works well even when I delete <root>themes/hugo_theme_robust/layouts/_default/baseof.html.
@bep

@lidm1989 I said that I already tested this, so you should:

Sign the CLA
Provide a breaking test which your "fix" fixes

@bep It does not work in my blog and my test. Following is one of my test.
My directory structure:

[lidm@arch bookshelf]$ tree
.
├── archetypes
├── config.toml
├── content
│   └── post
│       └── test.md
├── data
├── layouts
│   └── _default
│       └── baseof.html
├── static
└── themes
└── hugo_theme_robust
├── images
│   ├── include-images.png
│   ├── responsive.png
│   ├── screenshot.png
│   └── tn.png
├── layouts
│   ├── 404.html
│   ├── _default
│   │   ├── li.html
│   │   ├── li_sm.html
│   │   ├── list.html
│   │   ├── single.html
│   │   ├── summary.html
│   │   └── terms.html
│   ├── partials
│   │   ├── meta.html
│   │   ├── pagination.html
│   │   ├── share.html
│   │   ├── sidebar.html
│   │   ├── single_json_ld.html
│   │   ├── single_meta.html
│   │   └── styles.css
│   └── shortcodes
│       ├── clear.html
│       └── img.html
├── LICENSE.md
├── README.md
├── static
│   ├── css
│   │   └── custom.css
│   └── images
│       └── default.jpg
└── theme.toml
17 directories, 28 files

My steps:

Create a new hugo site: hugo new site bookshelf && cd bookshelf
Add content: hugo new post/test.md, then add something to test.md
Add a theme: cd themes && git clone https://github.com/dim0627/hugo_theme_robust.git
Move baseof.html from bookshelf/themes/hugo_theme_robust/layouts/_default/baseof.html to bookshelf/layouts/_default/baseof.html
Change something of baseof.html.

The result:
When I run hugo server and visit it, it present a blank page.

Can you share your project somehow? Via GitHub or zip file?

Yeah.
This is my test.  For litile the package, I remove the direcotory bookshelf/themes/hugo_theme_robust/.git.
Hugo version: Hugo Static Site Generator v0.17 BuildDate: 2016-10-07T22:45:27+08:00
bookshelf.tar.gz
Thanks.

OK, I see what is happening:
A baseof.html template has no function on its own. You need the other template(s) as well, a simple example tested with /layouts/index.html:
{{ define "main" }}
MAIN
{{ end }}

/layouts/index.html
/layouts/_default/list.html
/layouts/_default/single.html
/themes/THEME/layouts/index.html
/themes/THEME/layouts/_default/list.html
/themes/THEME/layouts/_default/single.html

Yeah. I tested it, only the first two works well. Thank you very much.


add workflow to receive github config updates

There isn't a master branch on this repo yet. I think this PR should be held back until that happens and we can reset the target to master.

@ryanmoran Sweet I will close and reopen later


add blackburn stuff because they are cool

About the PR

Why / Balance

Technical details

Media

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

![Uploading foxmaskfull.png…](
![bkv2](htt
![foxicon](https://github.com/Verbalase/Goob-Sta

tion/assets/121322002/63badaa1-78ef-4e6c-8fce-c2cc171a778c)
ps://github.com/Verbalase/Goob-Station/assets/121322002/2454d0ca-f318-4eb8-bc78-00758cde1f6d)

)


Results table: Refresh error messaging text

In progress -- may add others
Requesting some tweaks to error messages to reflect current vocabulary. For example, we want to consistently use the term "results" and not "data record".

Scenario
Before
After

Indicator has Midline/Endline or Event targets, but results are unassigned
This record is not associated with a target. Open the data record and select an option from the “Measure against target” menu.
This record is not associated with a target. Open the result by clicking on its date, and select an option from the “Measure against target” menu.

Duplicated by #88.


Fix revision number of support libraries to 0

Otherwise the libraries built from the Net45 and Portable projects
end up with different versions and strongnames.

This is causing an error when installing our API-specific libraries.
e.g.:
Assembly 'Google.Apis.Storage.v1' with identity 'Google.Apis.Storage.v1, Version=<IP_ADDRESS>4, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab' uses 'Google.Apis, Version=<IP_ADDRESS>98, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab' which has a higher version than referenced assembly 'Google.Apis' with identity 'Google.Apis, Version=<IP_ADDRESS>97, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab'

:shipit:


Add PHP 8.3

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues
-

See https://github.com/yiisoft/app/pull/307


about vuejs partial print

Version
2.3.2
Reproduction link
https://jsfiddle.net/while_own/ha94pag4/1/
Steps to reproduce
first: i want to partial print what i want;
seconed: i recovery original code,but i find function is not effective like print button after printing;
What is expected?
all function is effective
What is actually happening?
not effective

i thing i destroy the observe model probably,but i'm not want to open a new window for printing because i don't  know when to close the print window or use ifream to print beause i wang to use vuejs grammar to generate html not join it

You cannot overwrite innerHTML like that, whenever you set innerHTML it throws away all the DOM nodes Vue was controlling. Previous HTML is also just a string and doesn't contain any data.

Hi Evan, Then what is the solution of this problem? Instead of, window.document.body.innerHTML what should be used??
Thanks in advance


Support for negative prompt additions in addition to postive

I have some models that only behave properly with some additional negative prompts. I've patched my local copy to allow me to add both positive and negative prompts -- would you be interested in getting a PR for this change?

That's a very good idea.
Are the negative for each keyword? How did you encode the negative prompt?
I think it should be encoded in the keyword(s).
Example for https://civitai.com/models/2856/synthpunk-search :
Original keywords:
SWPUNK|SYNTHWAVEPAINT|SPLATTERS
Keywords with negative prompts (deforum style negative prompt)
SWPUNK --neg watermark|SYNTHWAVEPAINT --neg blurry|SPLATTERS
Do you have better idea for encoding the negative prompts?
Thank you.

@iarna Are you working on it?
If not, I could implement it.
Thank you.

Ok so yeah, I do have this largely implemented. This is how I approached it:
I added another field to the CSV (inserted just after the existing field) that contains the negative prompt. It's added to the user's negative prompt in the same way that the positive prompt is currently handled. (It does this in such a way that it can load current data files so it'll be fully backwards compatible for existing custom entries. It also maintains the existing format if no negative prompt was added so in that respect it's also forward compatible.)
Remaining to be done on this is adding the input box in the UI for the negative prompt.

If there is multiple keywords, is the negative prompt for each keyword, or is it per model?
The current csv format is variable in length. the third column(ckpt name) is optional. This will make adding new column harder.

So I'd prefer embedding the negative prompt in the keywords(second column) without adding a new column to the csv file.

If there is multiple keywords, is the negative prompt for each keyword, or is it per model?
The current csv format is variable in length. the third column(ckpt name) is optional. This will make adding new column harder.

So I'd prefer embedding the negative prompt in the keywords(second column) without adding a new column to the csv file.

I'd prefer (for the sale of consistency) if the negatives were just folded in, with a marker at the front like "neg*"... This would allow the random/multiple stuff to work consistently as now.  If you added all, it would add all negative prompts, if you add one or two, it would handle the prefix and put it into the negative prompt.
I agree, making a new column makes less sense.


Expired certificate on demo.malice.io

Your cert expired 2019-10-14.

Fixed thank you! I don't know why the certbot cron job always seems to fail? 😭

It seems the server / website is not available anymore.

Hm, seems this is not yet the case for https://malice.io/.
Thanks for the fast reply, it seems https://demo.malice.io/ works now (I can see the kibana login).

ah so malice.io is down for now it was meant to be a home site for malice, but for now the README is the home

Ah ok, understood.


Any documentation on the format of 3D environment and maps? How to change it?

As title. If we have a 3D scene, how should I put it into CARLA?

As I am not familiar with CARLA, I wonder if a scene is imported to Unreal, then, what should I do to make it work with CARLA's functionalities?


Fix: test script

This PR:

Do not rely on the globally installed ganache-cli package, use npx to run a pinned version
Use the new ganache package, the last ganache-cli version was released 3 years ago
Fixes #696
Increase sleep time after running ganache, sometimes it takes a longer time to start

I have read the CLA Document and I hereby sign the CLA


Allow DataGrid::setDefaultFilter to take DateTime instance; Closes #410

I've changed quite a lot as there was a lot of inconsistencies. I think it was needed.
See #410 for more details.

Will test that. Thanks!


Fix tutorials 3 and 4

Fix displaying plots in tutorial notebooks 3 and 4:

Added method ModelIterator.get_plots() returning chi2_vs_model_id_plot, chi2_plot, and kinematic_maps.
Use this method to ensure proper plot display in tutorials 3_model_iterations_and_plots.ipynb and 4_BayesLOSVD.ipynb.

Added info to Plotter.beta_plot() docstring: method requires LegacyWeightSolver.
Tested with the tutorials 3 and 4 as well as test_nnls.py.
Closes #330

Tested 3 and 4, working as expected. Thanks Thomas!


typesDefinitionRender file case sensitive

Hi
const typesDefinitionRender_1 = require("./renderer/typesDefinitionRender"); should be
const typesDefinitionRender_1 = require("./renderer/TypesDefinitionRender"); My linux machine in CI/CD pipeline fails on line 14 tsFromSwagger.js
Any chance this can be resolved sooner?
Cheers

fixed in commit 0dd0ba35490162dcaf9fdc1d0d05e676ed792b3f


Misplaced Stored Procedure

I have the following SQL code:
USE dbTravel;
GO

CREATE PROCEDURE spCountTraveller AS
	SELECT dbTravel.dbo.tblTrip.FlightNumber, COUNT (*) AS 'Number of Passengers'
	FROM dbTravel.dbo.tblTrip
	GROUP BY FlightNumber;
GO

Instead of spCountTraveller being created in dbTravel, it's created in master. My database connection is with SQL Server for Linux. Is this a bug of dbeaver?

I can't reproduce that.
I've tried to run this code both in script mode (ALT+X) and in single statement mode (CTRL+ENTER).
Are there any additional details?

There isn't any activity about this ticket very long time. It will be closed. However, if you think that it is actual just let us know.

You can't reproduce that since I didn't give the data to be stored in the database. Will get back on this some time.

@AFAgarap sure. Just leave a comment here and we'll reopen it.


Fix aliases

See https://github.com/pydantic/pydantic/discussions/5393#discussioncomment-5569604 for context.
We need to:

add validation_alias and serialization_alias to Field, if they're not set they generally default to alias
not use field.alias for serialization_alias, here if it's not just a str
not use field.alias to generate the signature here if it's not a str

@hramezani might be good for you to work on this as you've just been working on Field.

One thing I want to add possibly related to this:
Right now, it looks like @dataclass_transform uses the alias keyword argument to determine the name to use in the signature of the __init__ method.
This is convenient in that it is the same behavior pydantic uses now unless you set populate_by_name=True in the config. However, the downside is that you can't change the behavior without using the plugin, and currently, if you do use the plugin, you don't have control over the fact that it will always use the field name in the __init__ signature.
I would propose that we provide some way to make it so the validation_alias is not used as part of the signature. This would make it so that users could control what the generated signature is without being forced down some path as a function of their config settings. (To be clear, I'm more concerned with the mypy signature than the model_construction signature, but I guess it's potentially relevant to both.)
I could see doing this through another config flag or through a different keyword argument — the main thing to keep in mind is that @dataclass_transform will always set the __init__ to use the alias if the plugin isn't in use, so I think it may be a good idea to provide a way of specifying keyword arguments besides alias that have the same effect.

Well, with this change, the user could do
class MyModel(BaseModel):
    foo: int = Field(alias='bar')
    # or, the same:
    foo: int = Field(validation_alias='bar', serialisation_alias='bar')

These are the same with pydantic, but different for dataclass transforms, does that help?

Other than being a bit verbose, I think that covers most users' desired behavior.
If I'm thinking about it right, there are three things going on here:

What alias is used for validation
What alias is used for serialization
What alias is used in the __init__ signature

For simplicity, let's pretend we are just considering a field with name my_field and want to use the alias myField in some of these scenarios. I would propose the following behavior:

__init__
validation
serialization
Field kwargs

my_field
my_field
my_field

my_field
my_field
myField
serialization_alias='myField'

my_field
myField
my_field
validation_alias='myField'

my_field
myField
myField
validation_alias='myField', serialization_alias='myField',

*
myField
my_field
my_field
alias='myField', validation_alias='my_field', serialization_alias='my_field'

*
myField
my_field
myField
alias='myField', validation_alias='my_field'

myField
myField
my_field
alias='myField', serialization_alias='my_field'

myField
myField
myField
alias='myField'

I've called out two of the rows with a '*' at the front as I think these are fairly weird cases — it seems to me unlikely you'd want to have alias as part of the __init__ signature but not be used as the validation_alias. So I think we could choose not to support this case (i.e., raise an error if you specify both an alias and a validation_alias). But if I'm thinking about it right I think we should probably allow specifying both alias and serialization_alias.


Improvement to find

Closes #73
Allows filtering by block and level as well!
Previously: find r/A101
Now:

find r/A
find r/a
find r/1
find r/4
find r/a2
find r/e4
find r/e400

Codecov Report

Merging #83 (20dd017) into master (c99bc11) will decrease coverage by 0.41%.
The diff coverage is 36.00%.

@@             Coverage Diff              @@
##             master      #83      +/-   ##
============================================
- Coverage     62.39%   61.97%   -0.42%
- Complexity      460      463       +3
============================================
  Files            90       91       +1
  Lines          1827     1849      +22
  Branches        215      219       +4
============================================
+ Hits           1140     1146       +6
- Misses          614      628      +14
- Partials         73       75       +2

Impacted Files
Coverage Δ

src/main/java/safeforhall/model/person/Room.java
63.63% <0.00%> (-6.37%)
:arrow_down:

...eforhall/model/person/RoomValidCheckPredicate.java
18.75% <18.75%> (ø)

...main/java/safeforhall/logic/parser/ParserUtil.java
69.33% <60.00%> (-0.67%)
:arrow_down:

...n/java/safeforhall/logic/commands/FindCommand.java
93.05% <100.00%> (ø)

...va/safeforhall/logic/parser/FindCommandParser.java
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


why does get_all_node_embedding  return a list of embedding matrix?

I am working a graph g_dtw:
embedding = Node2VecGloVeEnsmallen(embedding_size=50, walk_length=10, max_neighbours=20).fit_transform(g_dtw)
and try to get the embedding results:
z1 = embedding.get_all_node_embedding()
only to find the returned z1 is a list containing 2 embedding matrices. Why?

I am not sure what other thing you would expect - let me break it down for you.

Node2Vec is a node embedding approach based on sampling random walks to be used as input for NLP models, such as Word2Vec CBOW and SkipGram, or GloVe, such as the option you choose.
All three models, CBOW, SkipGram and GloVe, are characterized by TWO word embedding. These node embeddings have different interpretations depending on the selected embedding, which I may characterize as follows:

In CBOW, the first embedding is the 'context representation' of a node, while the second embedding is the 'central representation' of a node. The model learns to bind the two embeddings in such a way the doc product between true contextual nodes and central nodes is maximal.
In SkipGram, the result is somewhat similar but inverted.
In GloVe, you have a first node embedding that is interpretable as the source node embedding, with the latter being the destination node embedding. This is because the model tunes the dot product of the source and destination node embedding in such a way as to estimate the co-occurrence of the two nodes in random walks.

I hope this clarifies to you why these models have two distinct node embedding with different characteristics.
If you are referring to the choice of several libraries to not make these or several other features available, you should go ask them.

Thank you so much for your teaching!
I thought only one embedding would be returned.

No worries, I understand that there is some confusion regarding these topics. Could you take a minute to describe to me how the library experience could be improved to help you more intuitively understand what was happening?

docstring!
I tried to understand the output by myself but this function does not seem to have a docstring.  Descriptions about returned list should clarify the function's design.

you are so devoted to grape. I am glad to introduce your work to my colleagues.


Gas limit error

I tried this project on a local PoW chain and pre-funded the 3 addresses involved with 100 Ether each. However, upon running ./node_modules/.bin/truffle truffle migrate --network remote, I get this output despite the gas limit on my chain currently being<PHONE_NUMBER>:
Using network 'remote'.

Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.

Deployer address: 0x3a43F087bB52Fd979d9365Be4908b35220fc0842
Maintainer address: 0x9605B4B86cEFf498F0340645beD84d903b710662
Authority address: 0x1a0627d654c251253E736865F25B397De28d041E
maintainer already has 100 ETH, skipping funding.
authority already has 100 ETH, skipping funding.
Deployer contains 100 ETH
Maintainer contains 100 ETH
Authority contains 100 ETH

########################### Notice ############################
It is recommended to have 0.2 ETH in the maintainer and authority address
With 1.0 ETH in the deployer address
Otherwise the deployement might fail
###############################################################

Error: Error: Error: while migrating Migrations: The contract code couldn't be stored, please check your gas limit.
    at Object.run (/some/path/plasma-contracts/plasma_framework/node_modules/truffle/build/webpack:/packages/migrate/index.js:96:1)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Truffle v5.0.38 (core: 5.0.38)
Node v10.17.0

System Specs
I ran this on Manjaro. My Python version is 3.7.4.
$ pip freeze
apipkg==1.5
appdirs==1.4.3
astroid==2.3.3
attrdict==2.0.1
attrs==19.3.0
base58==1.0.3
borgbackup==1.1.10
btrfsutil==1.1.1
CacheControl==0.12.5
chardet==3.0.4
colorama==0.4.1
cupshelpers==1.0
cytoolz==0.10.1
distlib==0.2.9
distro==1.4.0
docopt==0.6.2
eip712-structs==1.1.0
entrypoints==0.3
eth-abi==2.0.0
eth-account==0.4.0
eth-hash==0.2.0
eth-keyfile==0.5.1
eth-keys==0.2.4
eth-rlp==0.1.2
eth-tester==0.2.0b2
eth-typing==2.2.1
eth-utils==1.8.1
execnet==1.7.1
flake8==3.7.9
hexbytes==0.2.0
html5lib==1.0.1
idna==2.8
importlib-metadata==0.23
iotop==0.6
ipfshttpclient==0.4.12
isort==4.3.21
Jade-Application-Kit==2.0.9
jsonschema==2.6.0
keyutils==0.6
lazy-object-proxy==1.4.3
lensfun==0.3.2
llfuse==1.3.6
lockfile==0.12.2
louis==3.11.0
lru-dict==1.1.6
mccabe==0.6.1
more-itertools==7.2.0
msgpack==0.6.2
multiaddr==0.0.8
netaddr==0.7.19
npyscreen==4.10.5
packaging==19.2
pacman-mirrors==4.15
parsimonious==0.8.1
pep517==0.6.0
Pillow==6.2.0
-e git+git@github.com:omisego/plasma-contracts.git@500291de975d7f82e21799c9f37797d68f564911#egg=plasma_contracts&subdirectory=plasma_framework/python_tests
pluggy==0.13.1
progress==1.5
protobuf==3.11.0
psutil==5.6.7
pwquality==1.4.2
py==1.8.0
py-solc-simple==0.0.14
py-solc-x==0.4.0
pycairo==1.18.2
pycodestyle==2.5.0
pycryptodome==3.9.4
pycups==1.9.74
pycurl==<IP_ADDRESS>
pyflakes==2.1.1
PyGObject==3.34.0
pylint==2.4.4
pyparsing==2.4.4
PyQt5==5.13.2
PyQt5-sip==4.19.19
pysha3==1.0.2
pysmbc==1.0.16
pytest==5.3.1
pytest-cache==1.0
pytest-forked==1.1.3
pytest-xdist==1.30.0
pytest-xprocess==0.12.1
pytoml==0.1.21
PyYAML==5.1.2
reportlab==3.5.32
requests==2.22.0
retrying==1.3.3
rlp==1.1.0
semantic-version==2.8.3
six==1.12.0
team==1.0
toolz==0.10.0
typed-ast==1.4.0
udiskie==1.7.7
urllib3==1.25.6
varint==1.0.2
wcwidth==0.1.7
web3==5.0.0
webencodings==0.5.1
websockets==7.0
wrapt==1.11.2
youtube-dl==2019.10.29
zipp==0.6.0

what is the block gas limit of your POW chain? Our contract is actually quite big so require a bit high gas limit (around 6 million)

@boolafish It's 2 925 506 206.

@m1cm1c We previously have noticed that Geth would need to take some time to increase the gas limit to the targeting block gas limit. The chain increase the gas kind of on demand.
Our previous issue: https://github.com/omisego/plasma-contracts/issues/199#issuecomment-519806483
Can you check if this is the issue or not?

btw, just realize we need slightly more than 6m of gas not (sigh). However, I think as you are using remote so the transaction would be sending around 6.7million of gas by default which should be fine. Just FYI.
(FYI: https://github.com/trufflesuite/truffle/issues/2278)

@m1cm1c is this still an issue on your side?

No. Thank you for your support. It was a weird problem. Sorry I forgot to close this issue.