Ode ts parameters

Submission Checklist

[x] Run unit tests: ./runTests.py test/unit
[x] Run cpplint: make cpplint
[x] Declare copyright holder and open-source license: see below

Summary:
Allow ts of ODE integration functions to be var. This can be used to make inference on observation time in models involving ODEs.
The sensitivity with respect to ts[i] is zero unless at the ith observation results, in which case the sensitivity is the RHS of the ODEs.
Intended Effect:
Allow ts in ODE solvers to be parameters.
How to Verify:
unit tests.
Side Effects:
N/A
Documentation:
In src.
Copyright and Licensing
Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):
Metrum Research Group, LLC.
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

This seems like an important thing to add.  When it's in the math lib, we can generalize the parser to allow time as a parameter.
Any chance either of @charlesm93 or @betanalpha or @syclik could review this?  I'd give it a go, but I really don't understand the ode autodiff well enough.

@yizhang-cae, for future reference, can you open up an issue before dropping in a pull request? It'd help give context as to what we're looking at.
Before I dig into the pull request, can you guide me (us) through the changes? What's being changed? It looks like there's another overload of decouple_states()... is that right?

I haven't looked deeply into it, but there is a formal issue with this right now: Please do not introduce any dependencies on var inside the  prim directories which are supposed to not pull in the rev stuff.

@yizang-cae --- @wds15 is right that dependencies have to run mix -> fwd, rev -> prim.
@charlesm93 --- would you be willing to co-review this one with me?  We can sit down side by side and do it.  We need to get more people reviewing PRs.

@bob-carpenter Yes, happy to sit down and work through it next week.
@yizhang-cae This is not critical, but if you have some math spec lying around, please share it; this can help us find spots in the code that can be optimized.

@yizhang-cae Do you think that this PR has a negative impact on performance for the existing use case of this code? If the answer is a clear „no“, then fine; if the answer is maybe...could you please performance performance comparisons with the performance test suite. The sir and michaelis menten examples there should tell us if we pay performance with these changes under the old usage scenarios. Thanks!

Thanks @wds15---that's an important testing consideration.

@wds15 and @yizhang-cae: Going through the code, it doesn't look to me like there is too much overhead associated with allowing time step to be a parameter. That said, writing a performance test comparing the old and new integrator should be straightforward. Any takers?

Given that template magic will ensure that this new code won’t affect
any instantiations where the time is a double there should’t be any
performance hit at all, right?

On Jun 6, 2018, at 11:10 PM, Charles Margossian<EMAIL_ADDRESS>wrote:
@wds15 https://github.com/wds15 and @yizhang-cae https://github.com/yizhang-cae: Going through the code, it doesn't look to me like there is too much overhead associated with allowing time step to be a parameter. That said, writing a performance test comparing the old and new integrator should be straightforward. Any takers?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/stan-dev/math/pull/857#issuecomment-395197775, or mute the thread https://github.com/notifications/unsubscribe-auth/ABdNluZdMyS5DtiEMDSU0i61qXPpWJpmks5t6Dc9gaJpZM4TzE5m.

@charlesm93 , Thanks for the review.
I've made changes according to your comments.
@wds15 , I don't see why this would hammer performance of the original tests.

@yizhang-cae & @betanalpha Ok, if the template specializations for the existing things do not change, then all is fine, of course.
So we have now 8 specializations?? Urgh..
@yizhang-cae There are currently issues on Jenkins with the MPI unit tests for which I hope to have a handle on...

This can't go in as is: Currently, you include under the prim branch (stan/math/prim/arr/functor/coupled_ode_system.hpp) the file
#include <stan/math/rev/core.hpp>
I haven't checked for more, but this on really should not go in like this. I understood that including rev stuff inside prim will mess up things.

remote file operation failed: /Users/Shared/Jenkins/gelman-group-mac/workspace/Math_Pipeline_PR-857-WQ52UUPNRAGZSZFFAMTUP2NNBESPXLTNZ2DK2BMDP476INUHBI6A/dist.log.zip at hudson.remoting.Channel@41463948:gelman-group-mac: hudson.remoting.ChannelClosedException: Channel "unknown": Remote call on gelman-group-mac failed. The channel is closing down or has closed down

@wds15: do you think this PR should be closed?
@yizhang-cae: what do you think?
I haven't looked into too much depth at either PR, so I don't have a suggestion at the moment.

I agree.

On Dec 4, 2018, at 3:35 PM, Daniel Lee<EMAIL_ADDRESS>wrote:
@wds15 https://github.com/wds15: do you think this PR should be closed?
@yizhang-cae https://github.com/yizhang-cae: what do you think?
I haven't looked into too much depth at either PR, so I don't have a suggestion at the moment.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/stan-dev/math/pull/857#issuecomment-444300947, or mute the thread https://github.com/notifications/unsubscribe-auth/AfkhsJL3rsO3wFlciW_eRONyXg8jbU0Cks5u1wbUgaJpZM4TzE5m.

Thanks. Closing in favor of #1072.


Merge 1.1.x into master

Issue
NA
Description
Merge 1.1.x into master

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 2.0.8-merge-1-1-x-into-master-SNAPSHOT
download it from Artifactory here

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

2.0.8
GitHub release

Your semantic-release bot :package::rocket:


Fix some issues found by PVS-Studio

This is not PVS-Studio promoution, just a demonstration of product capabilities.
Product page: https://www.viva64.com/en/pvs-studio/
How to use for free: https://www.viva64.com/en/b/0600/

@ben-clayton Sorry, I have no access to kokoro builds info.
Could you please provide error logs or smth to start with?

Firstly - thank you for the PR, the changes look like great improvements.
As for the bot failures - they're odd:
All four fail with:
[ RUN      ] WithoutBoundScheduler.CheckConfig
external/bazel_tools/tools/test/test-setup.sh: line 310:  1820 Segmentation fault      "${TEST_PATH}" "$@" 2>&1
================================================================================

I'm on a business trip and I only have access to a Macbook - and I'm unable to locally reproduce. ASAN is also happy with your fork. If you're unable to reproduce the crash, I can try to take a look later in the week.

Firstly - thank you for the PR, the changes look like great improvements.
As for the bot failures - they're odd:
All four fail with:
[ RUN      ] WithoutBoundScheduler.CheckConfig
external/bazel_tools/tools/test/test-setup.sh: line 310:  1820 Segmentation fault      "${TEST_PATH}" "$@" 2>&1
================================================================================

I'm on a business trip and I only have access to a Macbook - and I'm unable to locally reproduce. ASAN is also happy with your fork. If you're unable to reproduce the crash, I can try to take a look later in the week.

Have a chance to look into. Problem was obvious, impl was not initialized before access to:
impl = new Impl(std::move(func), CreateRemoteThreadEx(GetCurrentProcess(),
                                    nullptr,
                                    0,
                                    &Impl::run,
                                    impl,   // <- Here impl will be nullptr as still not assigned.
                                    0,
                                    attributes,
                                    nullptr));

I've encapsulated handle creation into Impl, so now all works as expected.


Danger update to describe deploys

On PR's to release, post a comment neatly formatting the commits (and PR's) present.

K, we have this now:


ENH: use functools.lru_cache to speed up

Levenshtein distance algorithm can't be vectorized.
So the calculation would be very slow in large data.
An idea to speed up is using the cache.
Use the accumulate case to show the cache.
def accumulate(x):
    return sum(range(x))

accumulate(100000000) needs 5s no matter if it is the first time running or the second time running in my local without lru_cache.
from functools import lru_cache

@lru_cache
def accumulate(x):
    return sum(range(x))

After adding lru_cache, the first running accumulate(100000000) still needs 5s.
But the second time running accumulate(100000000) needs 0s.
closed to https://github.com/seatgeek/thefuzz/issues/42

For large amounts of data you should not directly call the corresponding scorer:
from rapidfuzz.distance import Levenshtein

for choice in choices:
    Levenshtein.distance(query, choice)

instead you should use the process module:
from rapidfuzz import process
from rapidfuzz.distance import Levenshtein

process.cdist([query], choices, scorer=Levenshtein.distance)

I do not think duplicates of both query and choice are very common. So chances are they would be evicted from the cache before you reach a duplicate.


Migrate to OpenAPI 3

Any plans to migrate to generic spec? (not swagger)

Sorry for the super late reply @ciarancourtney 😬
There are no plans to update the spec that have really progressed much.
We could include both specs and let the implementers choose what makes the most sense for their tooling, or just vote on one over the other and update the spec accordingly. As long as there aren't incompatibilities with the way the API is structured/implemented I don't see any issue with getting that definition out there.
If you'd like to explore this some more I say go for it. After all, it is Hacktober 😉

I ran the swagger.json through the mermade converter. The openapi.yml is attached. I confirmed it validates, but didn't verify otherwise.
openapi.yml.txt

Merged


nvidia gpu support for nixpak firefox

nixpak maybe needs this code.
bubblewrap = {         bind.ro = [           "/etc/egl"           "/etc/static/egl"         ]; };
I always refer your awesome setup, thank you.

And in addition to this...
bind.dev = [           "/dev/nvidia0"           "/dev/nvidiactl"           "/dev/nvidia-modeset"           "/dev/nvidia-uvm"         ];

@sickle-phin problem solved! Thanks a lot! 3>


Weird artifacts on the surface.

Hello,
Wanting to play around with the gravitational caustic project, i tried to run the program on the default image & a picture of mine. In both ARTIFACTS Appeared. So i guess i'ts not ready for acrylic CNC :) .

I Also barely see a height difference, it only appears when i force it trough scaling the depth. It doesnt Not seem as right as shown in Matt heightmap example made a 3D object.

Also appears when the picture is changed :

that becomes ( and it's turned ).

Last but not least, i can't identify wich variable in wich code to change to define the focal plane distance , anybody knows ? ( i am reffering to the Poisson's equation figure 2.8) :

thank you so much Matt Ferero for sharing your amazing work & thorough explanation.
Lyes

Hello Lyes,
What artifacts are you seeing? Can you describe exactly what you expected to see and how it is different from what you are seeing?
The height difference is indeed very small. For a 10cm x 10cm image, the total height variation is about 2.0mm. Are you seeing much less than that? How are you measuring height difference?
Lastly, the value in question is hardcoded here. In this line of code, the 1.0 indicates the distance from the object to the image in meters. For me, a distance of 0.2 worked much better than a distance of 1.0 in practice because the shorter focal length makes the lens more powerful, which makes the height variations larger, which makes the pieces easier to manufacture with the limited precision of a homemade CNC router. The smaller that number is bigger your height variations will be.

You may also be interested in modifying artifactSize which is a few lines above. This is also in meters and assumed to be a square.

Hello @MattFerraro ,
Thank you so much for your answer, I will try to modify those two factors and see how it goes if I try to directly use your mesh for 3D carving.
Artefacts:
What I referred to as being artifices is the horizontal carved lines that I can see through the moiré effects due to the software readings of the surface wireframe.
I investigated this effect enlarging the scale on the depth axis. And this shows the shapes being enlarged.

Delta variations:
The reason for the later scale enlarging was also because when I compared the mesh output given by the cat picture with the picture that you give in your walk through, I found the delta in depth to be inferior to 1 mm while, a rough look at this mesh of yours (assuming the size of the square would be 10 Cm wide) would have a depth around 1 cm to 5 mm.
Scale & experiments:
Of course this is only assumption as I didn’t actually test the mesh yet, but i did send this mesh created through your program to be carved in an acrylic slab, it will arrive somewhere around next week. Factory says it will be 80% transparent, so I'll have to do a bit of polish on my side, but previous experiments showed that with a flame, it can be carefully and quickly rendered perfectly transparent with a smooth surface.
I modified the depth scale in a total empirical manner to have it match the depth of the cat picture, I'll see how the focal plane will be affected.
Further experiences:
I want to create a sculptural rotating mechanism that will make a L.E.D. pivot around a circle of acrylic slabs. When the light would revolve over an acrylic slab, it would display the ‘hidden’ picture on the surface. I got that idea because I found your first demonstration video amazing when the light caustics gather to form a picture.
Another test would be to make jewellery pieces with it, and for both tests, I would need to have a focal plane between 10 cm to 20 cm from the source.

: )

Regarding the actual artifacts that are the main topic of this bug: I have no idea. I don't see them when I run the code. Hopefully this weekend I can dig in a little more and see what's up. Are you running on an image which is 512x512 pixels square? That's the only resolution I'm confident can work.

I am honored to be able to use your program, I have been fascinated by the subject of architectural caustics for 3 years, when I discovered the 2013 research from Thomas Kiser. Since i only found one swiss company called Rayform that could do it, but they charge a very expensive price for the files : 6000€ for a projection of a 1m diameter lens to a 3m pictures on a 20m distance wall. They're called Rayform.
Thanks to your work I can make all the sculptures and works I dreamed of. It's so beautiful and poetic to be able to encode information in a medium and reveal it with light. By the way, another application that I will test this weekend will be to 3D print a piece of jewelry to use the surface in reflection rather than in transparency.I also have the idea to make a solar clock that would use this same principle rather than using a shadow.
Regarding the quality of the finish, I have subcontracted, I am lucky to live in China which allows me to find some skilled workers. I insisted on the importance of the resolution of the finish pass on the depth axis. When I work with acrylic, after polishing I always finish with flame.
For my editing I cropped the image by making a circle, the distortion is ok I'm not looking for anything perfect, thinking about it I think it's even better with grain and artifacts, it allows some distance between the message and the technique.
Great idea to use Blender, I didn't even think about it, I was using Zbrush and their shaders are not great for this project! While Blender my go to for 3D, i use it quite often, and i didn't know the BlendLuxCore plugin, this looks amazing, i thought that Cycles was already physically accurate but maybe for caustics it get's tricky.
On more practical level, should i close this Github issue and open a follow up on my project's use of this software, i'm new to GH and i dont want to mess with this git.
You provided more then enough guidance. I confirm that i'm using a 512x512 picture on square pixels file format.

I am so thrilled by Blender Lux that i couldnt wait any longer to share my late night experiments. (Thanks again for that great tip ! )
I tried the render with the different files i generated for a focal distance of .15 meters.
I worked with two source files, one is the above Giotto's annonciation the other one is a friends childish drawing.

I converted the second one to black and white and forced a white background on it.
I tried 3 things : one was to use the acrylic IOR with different sources, the childish drawing on black and white and then inversed, original is on the right :

Only the original drawing (without beeing inversed "worked"). I was curious to try inversing
Upclose it goes like this with and without denoiser.  (couldnt figure out how to deactivate it at first. There is a viewfinder setting and a render one )

Then i tried to see if the idea of making a jewel was possible, while using the reflection properties instead of transparency, so i created a mirror material and tried out several distances, and i think that it's doable, so' ill give it a try by 3D printing a 4cm silver pendant in polished silver this weekend.

Last but not least, i tried it with the Giotto picture to try out how changing the focal plane would affect the picture quality :

I'm so happy beeing able to preview those works, it will save money, but i can even preview the effect on my solidworks prototype etc. It's crazy.
Also i can see that what i qualified as articats are now diagonal "leaks" of light, i think there is beauty in it, and i really don't know where it comes from.   :)

I found a fixed a whole bunch of small issues with the solver. Can you try again with the latest version of the code?
You'll still have to hardcode your own artifact size and focal length and also your own image name. I do not see the wavy lines and I'd be curious to know if you still seem them with the version of the code now on the main branch.

Hi @MattFerraro
I'am having a late night try on the new program, though i'm failing to make it work, i usually use the command terminal to do so, but it gives me this error message:

And when i try to run it with visual run time it goes like this :

Beeing fairly mediocre at coding i have no clue to what's happening, maybe a Julia package that is required, that i don't have, nor do i know how to add them there. The previous version of the code is still working though, so i made the jewel design for a caustic reflection test : dimensions are :
40x40x4.5mm, Focal is set to 0.15, and Artifacts is unchanged.

Hello Matt,
I found a work around for my incompetence :3. My lazy brain found out that you only edited the Src folder codes in the git, so i replaced those ones in the previous version of my "working file", and it worked like a charm.
I have to say that i'm amazed as all the artifacts have disappeared and now it displays a beautifull triangulated mesh, that i can even see trough moiree effect.

It also is way thicker therefore easier to manipulate as a mesh, and i can clearly see the thickness variation progress trough the geometry's surface.

So i went on with different experiments to see how different parameters would affect the caustic picture.

I changed the distance from the lens to the cube surface and rendered with luxblend;  The scale of the cubes are 10x10cm, and they are at various focal of 10 cm, 15cm and 20cm away from the surface.

The contrast is stronger when the glass is closest to the coded focal, but still it feels like the variation is not that big. I have yet to see the result with the carved Giotto picture in acrylic that will arrive withtin the week.
Those were the processed files. And the mesh export dimensions.

I changed the thickness of the mesh to see if it had any impact on the resulting picture;

Btw, i discovered that Luxblend is GPU rendering compatible wich makes it all way faster to compute. You have to go in the render settings and enable the Path tracing GPU on the viewport option.

I also changed the original picture contrast and converted it to black and white.

Doing such, i found out that the contrast was more crisp, and that gave me the following idea :

I inverted the black & white picture to see what the effect would be.

And to get a sharp image i had to get the lens 7cm close to the surface, while it is coded for a 0.2m distance. Wich makes no sense to me :) .

And i'm not even sure i get the correct image, i'm so close to the view that the lens is getting in the way. I could decide not to render the lens but that would count as sorcery , or cheating.
In the meanwhile i received the first failed attempt to make the acrylic while using my logo. I think here, that it's crucial to have a black on white logo instead of the opposite, as i tried previously with the Adam creation picture (hands) it has an impact on the focal length that is not related to the set focal in the program.

We can see the toolpath, quite good accuracy, i can be further polished eventually.
And here is a preview of the carved Giotto Annunciation lens.
https://user-images.githubusercontent.com/89966396/133045917-cd14556a-1b30-421f-909d-c5b2416d6285.mp4
I'am having so much fun with your code , it's crazy good!

Hello @MattFerraro
Here is a head's up on my latest try, i'm very happy with the outcomes, it had to go through much, and it is so interesting.  I was more confortable handwritting, i hope it's not too much of a challenge to read me.
You definitly got rid of the artifcats.
Hope my feedback can help and is not bothering you. It's a fantastic process to me !
https://user-images.githubusercontent.com/89966396/134768547-d3c7263c-58e6-4fc0-a6ef-0483f29bad4a.mp4
Even though the picture is full of artifcats ( using the previous version of the code), i love the way the caustics comes together to form it in a beautifull transition, I guess it's due to the high contrast of the image used in this one.
https://user-images.githubusercontent.com/89966396/134768488-1d3163c7-c99b-4e4e-9a68-b2990bad1a7b.mp4

wow! incredible work! I'm so impressed with what you've been able to achieve!

I'm going to close this issue because I believe I've resolved the root cause of the artifacts. But please create a new issue if you see new problems, and please show me as you make more things! You've inspired me to try some circular pieces as well.


Update To Fit to Page setting

Update fitToPage to use phantom's zoomFactor rather than setting the zoom on the body. This works better for elements like svgs and other types of images.

Ok, I take your word. :)

Thanks! Any chance you could tag a new release?

Sure, I'll do it ASAP, I'm just in the middle of something else right now.

Sounds good thanks!

Done - 0.4.8


Can't pass graph model test

I'm new to keras. Recently, I ran an automatic test, keras\tests\auto\test_graph_model.py.
It fails only because of the function test_2o_1i_weights(self) inside this file. Specifically, it only can't pass the test test a non-sequential graph with 1 input and 2 outputs because of the Assertion (loss < 4.0). Since all tests could pass after I commented on the line assert (loss < 4.)

============================================================================
The result for test a non-sequential graph with 1 input and 2 outputs  is shown below.

I appreciate any ideas about it. Some setting are as follows.

Keras version: 0.2.0

OS: Windows 8.1 (I have to dual-boot on this PC with the pre-installed Windows later. At least now, I can't use Linux on VM lack of GPU visualization.)

Theano version

These types of test might sometimes fail on untested configurations due to different RNG behaviors. Don't read too much into it.

RNG is random number generation?

Yes.
On 2 November 2015 at 21:51, cyc<EMAIL_ADDRESS>wrote:

RNG is random number generation?
—
Reply to this email directly or view it on GitHub
https://github.com/fchollet/keras/issues/930#issuecomment-153251496.


[Docs] Add Instructions on How to Install via Sketch Plugin Manager

The Sketch Plugin Manager is an amazing project, combining the best of all plugin managers that came before it:

it is a normal Sketch plugin, that works inside Sketch's own 'Plugins' menu - i.e., it is not a separate app, and does not instal obtrusive menu items in your menubar.
it provides a beautiful, searchable, easy-to-use interface for users to find the plugins they need.
it automatically instals plugins listed in Sketch's official plugin directory, straight from the plugin's GitHub repo, requiring no configuration or special setup at all from the developer.
it automatically advises users when a plugin needs updating, and updates them automatically with a single click.
it provides the user with an easy-to-find, clickable link to your plugin homepage/GitHub repo.
it can uninstall plugins with a single click, too.

The instructions that your users would need in order to instal Sketch Measure via Sketch Plugin Manager are:
Installation via [Sketch Plugin Manager](https://mludowise.github.io/Sketch-Plugin-Manager/):

1. In the 'Catalog' tab, click in the 'Search' field and type 'Sketch Measure', to filter the list
2. You will see the 'Sketch Measure' plugin listed at the top of the list. Click the 'Instal' inside it.

Adding these instructions would greatly help popularise and support the project.

sure~


blueprints/validator-test: Fix typo in _filesPath() method

This PR is fixing what appears to by a copy-paste/refactoring mistake in the test blueprint fallback code

:+1: - Thank you!


ssh-pool 5.2 and 5.3 duplicating '&&' on 'tar' comand ('&& && tar -xzf')

After update to version 5.2.0 or higher I can't make deploy cause the process break on tar comand:
Running "mkdir -p ~/folder/releases/20200324175447" on host "ip".
Running "cd ~/folder/releases/20200324175447 &&  && tar -xzf tmp-114681sp8i8x2jusj.tar.gz" on host "ip".
@ip-err bash: -c: line 0: syntax error near unexpected token '&&'
@ip-err bash: -c: line 0: 'cd ~/folder/releases/20200324175447 &&  && tar -xzf tmp-114681sp8i8x2jusj.tar.gz'
'deploy:update' errored after 20 s
Error: Command failed: ssh user@ip "cd ~/folder/releases/20200324175447 &&  && tar -xzf tmp-114681sp8i8x2jusj.tar.gz"
bash: -c: line 0: syntax error near unexpected token '&&'
bash: -c: line 0: 'cd ~/folder/releases/20200324175447 &&  && tar -xzf tmp-114681sp8i8x2jusj.tar.gz'
I'm using windows 10, running the command on the git bash, deploying to a ubuntu 14.04 server.
This is the info on my shipitfile.js:
module.exports = (shipit) => {
require('shipit-deploy')(shipit);
shipit.initConfig({
default: {
servers: 'user@ip',
workspace: '/tmp/folder',
repositoryUrl: 'git@bitbucket.org:user/project.git',
ignores: ['.git', 'node_modules'],
keepReleases: 5,
deleteOnRollback: true,
shallowClone: true,
yarn: {
remote: true,
},
},
develop: {
deployTo: '~/folder',
branch: 'branch',
},
});
shipit.on('deployed', () => {
shipit.start('pm2:restart');
});
shipit.blTask('pm2:restart', () => {
shipit.log('Restarting pm2');
shipit.remote(cd ${shipit.config.deployTo}/current && yarn && pm2 startOrRestart ecosystem.config.js);
});
};

We're having the exact same issue.

A workaround is reinstall the packages with "resolutions" for "ssh-pool" on your package.json:
	"resolutions": { 		"ssh-pool": "5.1.0" 	},

Hi, is this the same issue created by me https://github.com/shipitjs/shipit/issues/270?

Hi, is this the same issue created by me #270?

Yeah, same issue.

Oh, I see. I have put resolutions in my package.json, but still doesn't work. Any clue?

Oh, I see. I have put resolutions in my package.json, but still doesn't work. Any clue?

Have you deleted node_modules folder and install the packages again?

Yes, I actually added resolution before doing npm install --save-dev shipit-cli shipit-deploy. Now I deleted node_modules folder and installed deps again, issue remain.

bash: -c: line 0: syntax error near unexpected token &&' bash: -c: line 0: cd ~/colorsgroup/httpdocs/releases/20200612115230 &&  && tar -xzf tmp-8000Q6I637OV8eGa.tar.gz'

Open your node_modules folder, then look for the ssh-pool folder. Open it's package.json, if the resolutions works, the version should be 5.1.0.

I was using npm. Ends up that with npm doesn't support resolutions. With yarn it works. Temporary fix... please fix :)

Any update?


problem when trying to select sprites

hello I wanted to test the complement but when loading a sheet sprites and pressing f9 I cannot select the probe sprites with a sheet that I download from the internet and also test cracking them from the web that I leave but without success

Before we proceed, answer some basic questions for me plz:

Did you followed README tutorial on how to use?
This spritesheet you have in hands was made with: https://www.leshylabs.com/apps/sstool/?

This plugins only works if you have for example X amount of sprites and generate them with the link above, and set to export the json file.
Workaround
If you found a already done spritesheet on the internet, you can use a tool called: shoebox which can get sprites from the spritesheet and turn it into several images, and then use the like mentioned above to create the spritesheet.
If you dont want to use the link, in case you have texturepacker, you should modify the plugin to support the tpsheet file generated by texturepacker, same with shoebox(which is free)

I did it the same as in the readme

another question, the json file is in the same folder as the spritesheet? and the json's file name is the same as the spritesheet?

video in gif so I save make an account on youtube

From the image above I can tell you, you skipped step 4 from tutorial:
How to use
1 Create your spritesheet here: https://www.leshylabs.com/apps/sstool/
2 Set the FileName type to json
3 JSON and PNG file must be the same name, and located in the same folder
4 Go to your Scene which contains:
AnimationPlayer
Sprite (Attach SpriteSheet2D or SpriteSheet3D scripts)
You forgot to attach the SpriteSheet script to your sprite node!

@nonunknown
If the problem actually works, it was me who did not know that I had to add the script since I thought they were part of the tool, thank you very much and sorry for having wasted your time for an error as simple as mine

no problem dude, you're very welcome. Hope to have more feedbacks from you soon, such as improvements ideas,PRs, or even bugs.


Remove rxjs as a dependency?

Is your feature request related to a problem? Please describe.
rxjs from react-native-sensors is currently 8.1% of my app's JS bundle size. This is quite massive considering all my other react native libraries are quite small.

Describe the solution you'd like
Is there any way a vanilla solution could be used for react-native-sensors instead of rxjs?

Totally open to this 👍 If you have the time, please send a PR :)

unstale


Timber 1.5, PHP 7, Twig 1 errors

I keep getting this error when using php71 and Timber. On composer update Twig updates from version 1 to version > 2. Since then i've been getting this error. I found this issue which seems to fix the problem https://github.com/timber/timber/issues/1299. I updated to the latest version of Timber. But the error is still there. The only thing that helps for now is forcing composer to install version 1 of Twig. Any solutions? Or should i just stick with Twig 1 until this is merged into a release?
Fatal error: Uncaught TypeError: Argument 1 passed to Twig_Filter::__construct() must be of the type string, array given

I've also ran into the same issue. Then I found that a filter in Twig 2 should be added in a different way.
Try this:
$twig->addFilter( new Twig_Filter( 'myfoo', array( $this, 'myfoo' ) ) );

instead of (taken from timber/starter-theme):
$twig->addFilter( 'myfoo', new Twig_SimpleFilter( 'myfoo', array( $this, 'myfoo' ) ) );

Great! That worked. Thanks.


implement get_tree command

This PR will:

implement get_tree swaymsg command
factor most JSON object construction out of ipc-server.c into a separate ipc-json.c
add root container geometry (updated when outputs are created/destroyed)

The output from get_tree doesn't have everything i3's output does yet, but this at least gets most of it. I added some non-i3 stuff in there too, like the scratchpad contents. Definitely open to changes/fixes/etc on this!

LGTM.


Lack of support for column type tstzrange in PostgreSQL

Superset returns an error when I try a query with a tstzrange column.
How to reproduce the bug
Considering Superset have a connection to a PostgreSQL database and there is a table with at least one column of the type tstzrange, Go to "SQL Lab" -> "SQL Editor" and try a select query that includes the tstzrange column, e.g.: select * from user
Expected results
I expect to see a table with the results from the query
Actual results
An error message:
PostgreSQL Error

Unserializable object [2022-05-06 21:12:02.578651+00:00, None) of type <class 'psycopg2._range.DateTimeTZRange'>

This may be triggered by:
Issue 1002 - The database returned an unexpected error.

Logs:

2022-05-09 14:33:34,658:INFO:superset.sql_lab:Query 879: Executing 1 statement(s)
--
Query 879: Set query to 'running'
2022-05-09 14:33:34,658:INFO:superset.sql_lab:Query 879: Set query to 'running'
Query 879: Running statement 1 out of 1
2022-05-09 14:33:35,068:INFO:superset.sql_lab:Query 879: Running statement 1 out of 1
[SupersetError(message="Unserializable object [2022-05-06 21:12:02.578651+00:00, None) of type <class 'psycopg2._range.DateTimeTZRange'>", error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'PostgreSQL', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]
Traceback (most recent call last):
File "/app/superset/views/base.py", line 211, in wraps
return f(self, *args, **kwargs)
File "/app/superset/utils/log.py", line 245, in wrapper
value = f(*args, **kwargs)
File "/app/superset/views/core.py", line 2574, in sql_json
command_result: CommandResult = command.run()
File "/app/superset/sqllab/command.py", line 104, in run
raise ex
File "/app/superset/sqllab/command.py", line 96, in run
status = self._run_sql_json_exec_from_scratch()
File "/app/superset/sqllab/command.py", line 138, in _run_sql_json_exec_from_scratch
raise ex
File "/app/superset/sqllab/command.py", line 133, in _run_sql_json_exec_from_scratch
return self._sql_json_executor.execute(
File "/app/superset/sqllab/sql_json_executer.py", line 111, in execute
raise SupersetErrorsException(
superset.exceptions.SupersetErrorsException: [SupersetError(message="Unserializable object [2022-05-06 21:12:02.578651+00:00, None) of type <class 'psycopg2._range.DateTimeTZRange'>", error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'PostgreSQL', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]
2022-05-09 14:33:35,871:WARNING:superset.views.base:[SupersetError(message="Unserializable object [2022-05-06 21:12:02.578651+00:00, None) of type <class 'psycopg2._range.DateTimeTZRange'>", error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'PostgreSQL', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]
Traceback (most recent call last):
File "/app/superset/views/base.py", line 211, in wraps
return f(self, *args, **kwargs)
File "/app/superset/utils/log.py", line 245, in wrapper
value = f(*args, **kwargs)
File "/app/superset/views/core.py", line 2574, in sql_json
command_result: CommandResult = command.run()
File "/app/superset/sqllab/command.py", line 104, in run
raise ex
File "/app/superset/sqllab/command.py", line 96, in run
status = self._run_sql_json_exec_from_scratch()
File "/app/superset/sqllab/command.py", line 138, in _run_sql_json_exec_from_scratch
raise ex
File "/app/superset/sqllab/command.py", line 133, in _run_sql_json_exec_from_scratch
return self._sql_json_executor.execute(
File "/app/superset/sqllab/sql_json_executer.py", line 111, in execute
raise SupersetErrorsException(
superset.exceptions.SupersetErrorsException: [SupersetError(message="Unserializable object [2022-05-06 21:12:02.578651+00:00, None) of type <class 'psycopg2._range.DateTimeTZRange'>", error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'PostgreSQL', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]

Environment
(please complete the following information):

browser type and version: Firefox 100

Using apache/superset:1.5.0
Checklist
Make sure to follow these steps before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

@dmelo Did you get anywhere with this? I am encountering a similar issue with timestamptz columns

Hi @dheardal . Yes. I have changed the code to interpret the column type that was causing the problem. I have opened a PR. Perhaps this is useful to you as well.

Thanks for the PR on this @dmelo - can you validate if this is still an issue in Superset 3.x? If so, hopefully we can touch up that PR and get it through.

would defs appreciate this fix!!

Using development mode on the master branch, with PosgreSQL 16, I can see that Superset is supporting tstzrange. I guess somebody else implemented this :smile:


Our website is blocked by goguardian

Describe the bug
OUR WEBSITE IS BLOCKED!
To Reproduce
Steps to reproduce the behavior:

Go to our website on a school Chromebook
See error

Expected behavior
Our website should work
Screenshots

Additional context
How do we unblock it?

They blocked all of vercel.app, not much we can do but ask Mr. Ben if he can put out a request to the district via helpdesk.allenisd.org.

I made a help ticket

It has to be from Mr. Ben, they don't accept requests from students for unblocking websites.

I emailed Mr. Ben

still a problem

Should I email the other CS teacher?

Yes, do email the other teacher. It's blocked and that's not acceptable for them to blindly block everything with that domain. In fact, I was considering to email the IT admins

I emailed someone and here's their reply:

I don't mean to be that person, but remove personal info?

What'd they comment?

Thanks for deleting that.
On Tue, Dec 12, 2023 at 13:34 Lunar-Pyro @.***> wrote:

they sent an email. sent a screenshot of email. screenshot contained
school email and full legal name.
—
Reply to this email directly, view it on GitHub
https://github.com/Mr-Ben-Merch-Store/Website/issues/61#issuecomment-1852682481,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUUR7M36RDME2UDC3GBIANLYJCWVNAVCNFSM6AAAAAA7GPNMOCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJSGY4DENBYGE
.
You are receiving this because you were assigned.Message ID:
@.***>

oops, forgot this was a public repo, here its again but censored

our school needs to change...

Did you send an email to the CS-1 teacher?

What we could do is:

Get a new domain
Route to that domain
Tell a CS teacher to unblock that domain

If you add me on discord @LizzyEll *, we can test the idea with a couple of my domains that are unblocked by the district.
* Public Information

You can use namecheap to route one domain to another. I can help out later sometime.

That's using a CNAME record which also requires extra configuration that Vercel does not support. Vercel has a separate menu for connecting domains using an A record to their servers' IPs. That's what I was mentioning earlier.
A:       Domain -> IP
CNAME:   Domain -> Domain

That's what I meant, to use an "A" record, although I didn't know you could
do that in vercel itself
On Tue, Jan 16, 2024, 1:47 PM Lunar-Pyro @.***> wrote:

That's using a CNAME record which also requires extra configuration that
Vercel does not support. Vercel has a separate menu for connecting domains
using an A record to their servers' IPs. That's what I was mentioning
earlier.
A:       Domain -> IP
CNAME:   Domain -> Domain
—
Reply to this email directly, view it on GitHub
https://github.com/Mr-Ben-Merch-Store/Website/issues/61#issuecomment-1894405305,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUG4XYGSLTGX53ZXJQFQVL3YO3KM5AVCNFSM6AAAAAA7GPNMOCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJUGQYDKMZQGU
.
You are receiving this because you were assigned.Message ID:
@.***>

What comment did you delete from me? @Lunarware-xyz

I don't think I had any personal information anywhere

not you, I deleted the comments about @RedCat888 's incident.

Github bug?

I also deleted my comments and a couple of theirs, mine just doesn't show when I delete my own.

Temporary Site Link? I just built it and slapped it on my server lmao. Also, my Domains are unrestricted from the district 😎. I know the main IT person personally. (church)

That seems like a decent alternative at the moment.

Sounds good. As long as changes are pushed to the new domain then that's awesome.

ummm..... about that...
I'll have to set that up ig? idk haha

Our new domain, bensmerch.org is blocked by CK-express for being "unmanaged," because we aren't using an website management service, we're hosting it ourselves on vercel. We need to reach out to the IT department.

I'm closing this because it's a bit dated (goguardian doesn't block it but the school's wifi does, which is problematic)
I'll make a new git issue

ok


Added Nightly pipeline to validate scripts

Nightly triggered pipeline for validating the examples repo scripts.

Cool!   More a question about the actions... but is it a "fail" of the exit code from kind.sh is non-zero?
Also, I see you're modifying REPO... so is this running against the nexus dev repo?    Or against the released community repo?   It should at least run against the public community one.   I suppose we could also have a second one that runs against the repo?
Curious who gets notified of a failure... but this is great to get added.
LGTM... merge away!

Yes, It a "fail" of the exit code from kind.sh is non-zero. I'm not modified REPO, just passing the community repo url through the secrets. I will also add a second one that runs against the community repo.


Can't find visibilty attributes in the elements

I am testing a WinForms application with DevExpress controls. I have many buttons that are not visible to users that do not have specific permissions, but I have not been able to find any unique attribute to look for to make sure it is not visible.
I've been using Appium to find my elements, but the app under inspection when the buttons are visible and when they are not are identical. I initially assummed 'isEnabled' would be an indicator, but from testing it appears it is always 'true'.
The code that sets these buttons defaults to not visible like this:
barButtonComplain.Visibility = BarItemVisibility.Never; barButtonEnrollmentInvestigation.Visibility = BarItemVisibility.Never;
Unless the user has permissions, then its set to 'Always'.
Here is the XML exported from Appium, the visible and non visible were identical.
<Button AcceleratorKey="" AccessKey="" AutomationId="" ClassName="" FrameworkId="" HasKeyboardFocus="False" HelpText="" IsContentElement="True" IsControlElement="True" IsEnabled="True" IsKeyboardFocusable="True" IsOffscreen="False" IsPassword="False" IsRequiredForForm="False" ItemStatus="" ItemType="" LocalizedControlType="button" Name="Mark Regulatory Flag" Orientation="None" ProcessId="14256" RuntimeId="" x="848" y="214" width="116" height="22" />

	<Button AcceleratorKey="" AccessKey="" AutomationId="" ClassName="" FrameworkId="" HasKeyboardFocus="False" HelpText="" IsContentElement="True" IsControlElement="True" IsEnabled="True" IsKeyboardFocusable="True" IsOffscreen="False" IsPassword="False" IsRequiredForForm="False" ItemStatus="" ItemType="" LocalizedControlType="button" Name="Mark Regulatory Flag" Orientation="None" ProcessId="14256" RuntimeId="" x="848" y="214" width="116" height="22" />

Can you try out with the repo at the below location
https://github.com/kfrajtak/WinAppDriver

To clarify, Appium comes with a built in WinAppDriver, are you suggesting to customize Appium to use a different driver to find the locators or are are you saying the other repository has element methods to find DevEx visibilty ?


enable monitor  without prometheus

What this PR does / why we need it:
Which issue(s) this PR fixes
Fixes #9356

/assign @vladikr

Hi @willzgli , Please update description with why we need this PR and what it does.

Hi @willzgli , Please update description with why we need this PR and what it does.

done

LGTM, after configuring the monitor in Kubevirt, kube-prometheus was deployed, enabling the kubevirt ServiceMonitor to be added correctly to the cluster. Thanks!
k -nkubevirt edit kubevirt kubevirt
spec:
 monitorAccount: prometheus-k8s
 monitorNamespace: virt-monitoring

# create kube-prometheus crd manifests
k create -f kube-prometheus/manifests/setup

# check the ServiceMonitor
k get Servicemonitor -A
NAMESPACE         NAME                                        AGE
cdi                          service-monitor-cdi                6s
virt-monitoring      prometheus-kubevirt-rules   3s

k -nvirt-monitoring get Servicemonitor prometheus-kubevirt-rules -oyaml
kind: ServiceMonitor
metadata:
  annotations:
    kubevirt.io/generation: "4"
    kubevirt.io/install-strategy-identifier: 0665097de2b312cb859f0657f0f22925b76326be
    kubevirt.io/install-strategy-registry: registry:5000/kubevirt
    kubevirt.io/install-strategy-version: devel
  generation: 1
  labels:
    app.kubernetes.io/component: kubevirt
    app.kubernetes.io/managed-by: virt-operator
    k8s-app: kubevirt
    openshift.io/cluster-monitoring: ""
    prometheus.kubevirt.io: "true"
  name: prometheus-kubevirt-rules
  namespace: virt-monitoring
spec:
  endpoints:
  - bearerTokenSecret:
      key: ""
    honorLabels: true
    port: metrics
    scheme: https
    tlsConfig:
      ca: {}
      cert: {}
      insecureSkipVerify: true
  namespaceSelector:
    matchNames:
    - kubevirt
  selector:
    matchLabels:
      prometheus.kubevirt.io: "true"


Error building 1.1.1 on IOS

Hi,
I Can't build<EMAIL_ADDRESS>on IOS.
Got React-Native 0.44, followed instructions with Podfile.
lottie-react-native fails to build with:
In file included from /Users/galkahana/Documents/kang/gits/kang-react-native/node_modules/lottie-react-native/lib/ios/LottieReactN
ative/LRNContainerView.m:9:
In file included from /Users/galkahana/Documents/kang/gits/kang-react-native/node_modules/lottie-react-native/lib/ios/LottieReactN
ative/LRNContainerView.h:14:
../../../react-native/React/Views/RCTView.h:12:9: fatal error: 'React/RCTBorderStyle.h' file not found
#import <React/RCTBorderStyle.h>
        ^
1 error generated.

and
In file included from /Users/galkahana/Documents/kang/gits/kang-react-native/node_modules/lottie-react-native/lib/ios/LottieReactN
ative/LRNAnimationViewManager.m:9:
In file included from /Users/galkahana/Documents/kang/gits/kang-react-native/node_modules/lottie-react-native/lib/ios/LottieReactN
ative/LRNAnimationViewManager.h:13:
../../../react-native/React/Views/RCTViewManager.h:12:9: fatal error: 'React/RCTBridgeModule.h' file not found
#import <React/RCTBridgeModule.h>
        ^
1 error generated.

Seems like #import <React/***> doesn't work (lottie imports are falling back on #import <***>
but then React Native internally fails. at least it seems so.
help ?

Managed to resolve this by reverting the ios project changes that were introduced as a result of react-native link lottie-react-native. Given that i have it available as a pod, there's no need for them, and they are the cause of strife.
thanks!


depth

can not change to type depth in conifig as will no work  get this error  RuntimeError: Error(s) in loading state_dict for FocusOnDepth:
Unexpected key(s) in state_dict: "head_segmentation.head.0.weight", "head_segmentation.head.0.bias", "head_segmentation.head.2.weight", "head_segmentation.head.2.bias", "head_segmentation.head.4.weight", "head_segmentation.head.4.bias". why only work in type full

Hi,
I have the same problem with you. did you solve the problem? If so, can you show me how to solve it?
Thank you in advance
Khuong

Hi Andy,
Can I ask you what is the deep scanner you are using. Can you give me the github repo link.
Thank you
Khuong

IT IS A PLUGIN FOR AFTER EFFECTS NOT A GITHUB CODE IT CREATES DEPTH MAPS
AND IS GOOD
On Fri, 24 Feb 2023 at 12:16, Khuong Diep @.***> wrote:

Hi Andy,
Can I ask you what is the deep scanner you are using. Can you give me the
github repo link.
Thank you
Khuong
—
Reply to this email directly, view it on GitHub
https://github.com/antocad/FocusOnDepth/issues/14#issuecomment-1443605886,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFIOA3JE332APGE5D2XKG7DWZCRBFANCNFSM5YCU77YQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi, just a quick answer: the pre-trained weights given are only working with type='full'.
We didn't pre-train for depth-specific tasks.
However, you can still use type='full' and, after the forward pass you only use out_depth.

Thank you for the clarification.
On Fri, 24 Feb 2023 at 21:28, antocad @.***> wrote:

Hi, just a quick answer: the pre-trained weights given are only working
with type='full'.
We didn't pre-train for depth-specific tasks.
However, you can still use type='full' and, after the forward pass you
only use out_depth.
—
Reply to this email directly, view it on GitHub
https://github.com/antocad/FocusOnDepth/issues/14#issuecomment-1444532327,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFIOA3LXAEA3BM4ZPHZ34T3WZERYXANCNFSM5YCU77YQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Thank you for Andy and Antocad for your kind response!


Create advanced example using an Obj-C category

Try making the "Native Modal With RN Navigation" example using a category like the following example:
https://github.com/alinz/react-native-webview-bridge/blob/master/WebViewBridge/RCTWebViewManager%2BWebViewManager.m

Also, at times composition could help extend a RN component. Not sure if this applies to Native Modal with RN Nav example.
Both these techniques(category, composition) are used here:

[composition] github.com/chirag04/react-native-tooltip
[category] https://github.com/chirag04/tooltip

@chirag04 Thanks! I've looked at your tooltip project many times before as it has some very interesting solutions.
Essentially, the example referred to here is when you have an Obj-C view that loads a RCTBridge or RCTRootView. Sometimes you may want to expose methods from that base view to RN as a bridge module. However, when you create the bridge, JS has access to a different instance than Obj-C, since the bridge instantiates all bridge modules at load. This prevents you from being able to call methods on the view actually visible from JS. (I hope that isn't too confusing! hah)
I've discovered a couple different ways to do this, and an Obj-C category was suggested as one of them.


Max runtime

Hi @tblanke
I think it is a good idea to put a max runtime on the thread calculation. If, for example, a certain scenario keeps calculating due to a bug somewhere, that this does not keep intervening with the GUI. We can add this as a FloatBox in the settings perhaps?
What do you think?
Best,
@wouterpeere

Hi @wouterpeere ,
I have implemented an approach to limit the runtime.
with best regards
@tblanke

Hi @tblanke
Seems perfect to me. I just changed the default value to 600. Waiting an hour for having a run-time error is pretty long ;)
Best,
@wouterpeere


Shows wrong content position after close button click (STATE_EXPANDED to STATE_COLLAPSED)

I have a lot of text inside the content part and if I open the bottom part to STATE_EXPANDED, scroll to some lower lines of the text and then click the close (back) button in toolbar the view changes it's state to STATE_COLLAPSED but I don't see buttons at the top. Instead I see my text. See attached video.
I tried to catch STATE_COLLAPSED in onStateChanged and scoll manually by nestedScrollView.post(() -> nestedScrollView.fullScroll(View.FOCUS_UP)); but it not always work.
Instead if I use this in STATE_SETTLING it works well every time but very slows down the graphics and hangs the animation as well.
https://www.dropbox.com/s/uba3vokrlnypgma/CustomBottomSheetBehavior_bug.mp4?dl=0

Did you tried to call fullScroll right after the setState instead of catching it on onStateChanged? I didn't had problems with fullScroll(View.FOCUS_UP) at all.
behavior.setState(STATE_COLLAPSED);
nestedScrollView.fullScroll(View.FOCUS_UP);

@cesardeazevedo Thanks for your answer. I can't make it work for me so I'm going to remove the close button at all for now.


Should make this a real retry mechanism at some point.)


policy: Group policy and identity management cells

Move policy.Cell to policy/repository.Cell, so that policy.Cell can serve as the parent cell that includes cells:

policy repository
policy k8s cell
policy directory
identity cache (allocator)
identity manager

Related to: https://github.com/cilium/cilium/issues/33360
Signed-off-by: Dorde Lapcevic<EMAIL_ADDRESS>

I might not have the full context, but why exactly we want to couple all these cells together?
With the dynamic cell lifecycle we would be able to group them under the same "Feature" or even different Features and have control per existing module? Of course, we would still be able to do that even after grouping but it might be a bit more confusing.
What would be the benefits of this grouping? Why we would want to have the policy cell as the parent compared to the existing design?
Currently, I think we just increase the dependency graph depth.

We want to modularize network policy enforcement system, with the goal to have a module that represents network policies that can be included/excluded through configuration. From this perspective, having a parent cell that reads configuration and accordingly provides the relevant cells is the first step of achieving it. This would not only make the network policy enforcement system a module, but even parts of it can be enabled or disabled depending on configuration. EnableK8sNetworkPolicy already exists, it’s just not structured as part of network policy module, but as a separate feature, while it’s very much tied to the network policy enforcement system, which we care about from the scalability perspective.
As mentioned in https://github.com/cilium/cilium/issues/33360, dynamic config, dynamic cell lifecycle and feature manager are further away and could require more redesign of the system infrastructure, like enablement model that is beyond restarting cilium-agent and onboarding features to it, which might be more difficult.
Is increasing dependency graph depth problematic?
I see how there might be a pattern that this change goes against. I’d like to understand it.
If I understand correctly, dynamic config, dynamic cell lifecycle and feature manager are mainly solving the problem of restarting cilium-agent, plus other benefits. I think we should anyway have a working solution for enabling/disabling the network policy module on cilium-agent restart, before onboarding it to the feature manager.
@ovidiutirla, we should align on this.

After syncing with @ovidiutirla, we've come to the conclusion that grouping the cells can be taken care of by the feature manager, that should be soon available. And it makes sense to group and restructure the cells once they are onboarded to the feature manager.


issue23 added information about required permissions

Resolves #23

Updated permissions description to make them more clear, also made the configuration files from Readme and the exporter code identical.


add basic test

Thanks.
Now I'm rewriting it. It will be parsed to the tree with some mod methods.


Migrate detailed documentation to GitHub Wiki

To declutter the main README and provide a more structured documentation platform:

Migrate detailed topics, advanced usage, and other in-depth content to the GitHub Wiki.
Organize the Wiki into clear sections or pages, such as Installation, Basic Usage, Advanced Features, Troubleshooting, etc.
Ensure that the Wiki is easily navigable with a clear table of contents or sidebar.
Update the README to provide a brief overview and direct links to the relevant Wiki pages for more details.
Regularly review and update the Wiki to ensure it stays up-to-date with the latest changes and features.

https://github.com/localstack-dotnet/localstack-dotnet-client/wiki


Pr4  Revert "bugfix:recheck task status when reboot task_fssync"

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 4 committers have signed the CLA.:white_check_mark: guohao15:white_check_mark: xiaoxiang781216:x: Donny9:x: jerpeleaYou have signed the CLA already but the status is still pending? Let us recheck it.


Use the quickfix list pointer as argument to functions instead of using quickfix stack pointer and a index

Several quickfix related functions take a pointer to the quickfix stack and an index
and then derive the pointer to the quickfix list from these arguments.
Instead of this directly pass a pointer to the quickfix list to these functions.

Codecov Report

Merging #4135 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4135      +/-   ##
==========================================
+ Coverage   79.23%   79.24%   +<.01%
==========================================
  Files         105      105
  Lines      141180   141170      -10
==========================================
- Hits       111870   111868       -2
+ Misses      29310    29302       -8

Impacted Files
Coverage Δ

src/quickfix.c
93.41% <100%> (+0.01%)
:arrow_up:

src/message.c
76.65% <0%> (-0.05%)
:arrow_down:

src/gui_gtk_x11.c
48.42% <0%> (+0.04%)
:arrow_up:

src/channel.c
83.43% <0%> (+0.07%)
:arrow_up:

src/gui.c
58.2% <0%> (+0.1%)
:arrow_up:

src/if_xcmdsrv.c
84.2% <0%> (+0.53%)
: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 61be376...320f1e7. Read the comment docs.


How to use Windows system to debug code ? version1.3.0

Using version 1.3.0, debugging with idea under windows can never succeed, but can 1.3.0 be debugged on windows? Ask how to implement, what should be paid attention to or modified? Thanks！
--使用1.3.0版本，在window下idea调试，始终不能成功，但是1.3.0不是可以在windows上调试吗？请教如何实现，需要注意那些东西或者修改那些东西？

you can pull the newest code from dev-1.3.0, if meet some problem , please show the exception info

please refer to #2592


Date Parsing in CookieParser.cs should be culture invariant

The date values pulled from from Set-Cookie value are culture invariant
Thu, 27-Jul-2017 16:59:55 GMT
However in specific cultures in the .net framework you cant parse this due to using a different calendar system. CookieParser.js should be updated to parse the date with an InvariantCulture to avoid this issue.
Example culture: Arabic - Saudi Arabia(ar-SA)

Thanks for reporting this. I've reproduced it in a test case and made a fix, which is available in the branch 4DateParsingCulture. I would appreciate if you could build that version and verify that it works. If it does, I'll publish it as an updated nuget package.


Add Improvement to symptom field on Mobile devices.

Describe the bug

[ ] Calendar is clipping out and auto-zooming when you click on calendar option on the Onset Date field.
[ ] when Going back from after selecting a symptom from the dropdown, users get confused for closing the dropdown and tend to select other symptoms accidentally. this makes entering symptoms on mobile devices difficult for field nurses.
It's better to add the auto-collapse the dropdown after selecting one symptom. this makes users file symptoms easier and restrict from filing all the symptoms on the same Onset date.

To Reproduce
Steps to reproduce the behavior:

Go to a patient file on mobile devices
Click on log update and go to symptoms field
See error
https://github.com/user-attachments/assets/751a3a6e-0202-4422-82a8-224a46b4eef6

Expected behavior

[ ] Calender should be pop-up on the middle part of the screen
[ ] symptoms dropdown should collapse after selecting one symptom

Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

hey @nihal467 I would like to work on this issue.Can u assign me this issue?

(1) Is an easy fix.
(2) Collapse on multi-select isn't usual/expected behavior; we could make it single select, however that would require a bit more rework. We are going to redesign symptoms anyways, so could do it then.

can anybody tell To Reproduce the same i am not able to do that please

Please refer to this comment before reaching out regarding the assigned issue: comment link.
Thank you! 😊

Feel free to re-open the issue based on new architecture @samholics


[dv] Implement double fault loop detector

Add a double fault loop detector to the testbench. It should determine when Ibex has entered a loop of double faults and terminate the simulation after some configurable number of iterations (with a default e.g. 100).
By default is should exit with a fail but a configuration option should be supplied to enable exit with a pass (for tests where a double fault loop is the intended behaviour).

estimate 4

Implementation here: https://github.com/lowRISC/ibex/pull/1808/commits but not yet merged

I am encountering these double faults (or faults that happen when handling another fault) during some PMP tests. To get an infinte loop of instruction access fault exceptions you can do the following.
Clone this repo and branch: https://github.com/marnovandermaas/ibex/tree/catch-dv-double-faults
Specifically use this commit: https://github.com/marnovandermaas/ibex/tree/10f561a4ddc8a381583fe0d63b9fae23f9b3b003
And then run the following command inside dv/uvm/core_ibex:
make -j1 --keep-going IBEX_CONFIG=opentitan ITERATIONS=1 TEST=riscv_pmp_full_random_test WAVES=0 COV=0 SEED=17397

remaining 2022-10-12 1

Stil TODO:

Add option to change the test result from a pass to a fail when the detector activates.


fix: extract offset from Intl.DateTimeFormat from "GMT"

Should fix https://github.com/date-fns/tz/issues/8 for iOS devices with or without formatjs polyfills.

Thank you a lot, hopefully, it will cover more environments 🙏

Shipped with<EMAIL_ADDRESS>


cannot run mote

I cannot run mote. Every time I start mote I get:
2022-05-20 11:55:44,375 - ERROR - Bad config file format, please copy a new file from template.

I use the default generated files in config/ only. I did not make any changes.
As the message is not very informative I hope to hear where to look to debug.
Thanks in advance

Hi, @pe1mew. Are u working with v1.1.0? Because we have change the config generation method into command mote create -c dir/to/config, rather than using template config files.
Please check if you have generated correct config file in config directory by mote create.

Hi,
I have installed version 1.1.0:
$ pip show lora-mote-emulator
Name: lora-mote-emulator
Version: 1.1.0
Summary: Emulate LoRa mote (a.k.a end-device) and gateway.
Home-page: UNKNOWN
Author: Lu Hou
Author-email<EMAIL_ADDRESS>License: MIT
Location: /home/remko/.local/lib/python3.9/site-packages
Requires: pycryptodome
Required-by:

Your command always results in mote: error: unrecognized arguments: -c ./config/:
$ mote create -c ./config/
usage: mote [-h] [-v version] [-c CONFIG] [--model MODEL]
            {join,app,pull,mac,rejoin,info,abp,create} ...
mote: error: unrecognized arguments: -c ./config/
$ mote create -c config
usage: mote [-h] [-v version] [-c CONFIG] [--model MODEL]
            {join,app,pull,mac,rejoin,info,abp,create} ...
mote: error: unrecognized arguments: -c config

When I create config files I see these files with content:
$ ls config
abp.json  config.json  device.json  gateway.json

is there anyway I can debug the message?

@pe1mew Sorry for the late reply. Please try to use mote create without -c option. It will generate config files at default directory (./config under current location).
I'll look into-c option and see what's going on inside.
Thanks for pointing it out!


Support netpoll or similar

I'm exploring using quic as part of a server and I want to be able to handle many (millions?) of connections. Using 1-goroutine per connection generally doesn't scale at those large numbers. Would be nice to be able to 1) plug the quic Listener into the netpoller (it doesn't conform to the 'normal' Accept signature, so can't be used directly) and 2) plug the quick-connection into a netpoller (I think it supports UDP), and attach a function to call when triggered (the quic.Connection isn't a net.Conn reader/writer).
One possible idea is to somehow expose the underlying udp connection/listener objects so that I can give it to netpoll for monitoring, but then use the higher level quic connection object when actually processing incoming data. Not sure if it's that simple, of course.

Another idea (brain-storming; apologies if this doesn't make any sense): provide hooks like sess.OnIncomingStream(), sess.OnIncomingUniStream(), sess.OnIncomingMessage()
Similar hooks perhaps for a stream: stream.OnIncomingData().
Of course then the internals would need to have some larger select-loop somewhere (but maybe that can be wrapped in lower level netpoll functionality on the UDP socket).

That would require a complete redesign of the library. I doubt it's feasible at all, QUIC relies heavily on timers to trigger various internal events.

It seems to me that quic-go is handling everything by itself above connection level - streams and all. Meaning it should be possible to wire the Listener into a netpoll and simply rely on library functions whenever there's something coming up.
I can see how it probably goes beyond the original plans for this library, but it'd be good to have the possibility to expose some low-level internals and enable netpoll to be used.

Maybe just need to redesign the reading/parser/handler to use size-limited-goroutine-pool, std's udp is already simple enough and easy to use, another netpoll lib is not a must.

The idea here is to allow upper layers to be more even-driven: when scaling to millions of connections in a server, using the standard "one goroutine per connection" becomes prohibitive. It doesn't have to be netpoll or any other library. Another idea might be to let clients accept sessions, and then attach some application-dependent context to it, and allow me to listen on a channel for incoming events (one go-routine) which then uses a gopool to process each event.
I realize that the normal file-handle-based methodology that netpoll uses probably won't work for UDP, since there's not one socket per connection: There's just the one UDP socket we're recvfrom'ing. The demultiplexing into separate "connections" (sessions?) happens higher up. Or something like that (I'm brain-storming).
But perhaps some event-mechanism can be invented or supported.

Sorry to mention my lib here.
@jvilhuber
But you can try nbio, it solves the problems you mentioned:
https://github.com/lesismal/nbio-examples/blob/master/udp/server/server.go#L19

I don't see how nbio can help in this case (I looked at it briefly last week). It's too low-level. Maybe quic-example in the examples directory would help me visualize it.
The problem is that any mechanism that triggers in incoming data on a socket can't really work with quic, where the 'connection' is a higher-level construct.
Happy to be proven wrong!

@jvilhuber
For UDP, nbio solves the problems you mentioned.
But for QUIC, you are right, nbio doesn't support it yet.
It's a ton of work to implement non-blocking and async mod parser for QUIC, I haven't so much time to do it by now, hope somebody can do it too.

Just as a strawman proposal: Maybe some kind of callback mechanism can be added insteadof /parallel to the synchronous calls such as listen.Accept(), conn.AcceptUniStream(), etc?

quic.Transport.ListenWithContext(context.Context) - sets an application provided context.Context, where the app can add 'stuff'. Replaces the context passed in the Accept(ctx) call.
Transport.NewConnectionCallback(func (context.Contexts, conn quic.Connection) context.Context)
receives the existing context (from 0 or nil?) and the new connection (same as a Listen.Accept(ctx) would), and returns a new (or the same) context, to which the application can add 'stuff'. (This one I could almost live without, since the single goroutine to listen for new connections isn't so onerous; it's all the later ones that really start adding up).
maybe configured via quic.Transport{}?
quic.Connection.NewUniStreamCallback(context.Context, quic.ReceiveStream) context.Context
called on new UniStreams. Gets the context from (1) above and the new stream. Returns a new (or same) context to which the app can add 'stuff'
similar for the other kinds of streams as well as Datagrams
ReceiveStream.NewDataCallback(context.Context, io.Reader) error
called when new data is available. Passes the context from (2) above and a Reader. returns error if something went wrong. Possibly don't need this one either, since the ReceiveStream is already a Reader. But it depends on how long that stream persists (want to avoid a go routine to keep reading this, if it's long-lived).

Probably need some Callbacks on Close and so on..
I think as a minimum I could really use (2) (and (3) in the future). The rest can probably be dealt with in some reasonable way.

Hah! Seems I'm repeating myself (didn't read my comment from almost 2 years ago): https://github.com/quic-go/quic-go/issues/3474#issuecomment-1181324424
Sorry about that.


[Automated] Update eventing-kafka-broker-eventing nightly

/assign @knative/delivery-wg-leads
/cc @knative/delivery-wg-leads
Produced via:
for x in eventing-crds.yaml eventing-core.yaml; do
  curl https://storage.googleapis.com/knative-nightly/eventing/latest/$x > ${GITHUB_WORKSPACE}/./third_party/eventing-latest/$x
done

Details:

/test pull-knative-sandbox-eventing-kafka-broker-upgrade-tests
/lgtm
/approve


Updated dialog box to Sweet alert

Build is failing....

No img element
nextjs.org
[12:40:58.973] Running build in Washington, D.C., USA (East) – iad1
[12:41:00.265] Cloning github.com/unelmacoin/unelma-code-translate (Branch: UP-245, Commit: eaac353)
[12:41:00.885] Cloning completed: 619.225ms
[12:41:06.260] Restored build cache from previous deployment (HPk7SDFPDVD1VrYXFQ8aAu4poakJ)
[12:41:06.460] Running "vercel build"
[12:41:07.482] Vercel CLI 37.4.0
[12:41:08.396] Installing dependencies...
[12:41:12.383]
[12:41:12.383] up to date in 4s
[12:41:12.383]
[12:41:12.383] 137 packages are looking for funding
[12:41:12.383]   run npm fund for details
[12:41:12.405] Detected Next.js version: 13.2.4
[12:41:12.424] Running "npm run build"
[12:41:12.834]
[12:41:12.834] ><EMAIL_ADDRESS>build
[12:41:12.834] > next build
[12:41:12.834]
[12:41:14.212] info  - Linting and checking validity of types...
[12:41:19.754]
[12:41:19.754] ./pages/index.tsx
[12:41:19.754] 141:6  Warning: React Hook useEffect has a missing dependency: 'handleTranslate'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps
[12:41:19.754] 154:6  Warning: React Hook useEffect has a missing dependency: 'inputCode'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps
[12:41:19.755] 263:6  Warning: React Hook useEffect has a missing dependency: 'outputCode'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps
[12:41:19.755]
[12:41:19.755] ./components/Footer.tsx
[12:41:19.755] 170:11  Warning: Using <img> could result in slower LCP and higher bandwidth. Consider using <Image /> from next/image to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
[12:41:19.755] 170:11  Warning: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.  jsx-a11y/alt-text
[12:41:19.755]
[12:41:19.756] info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
[12:41:21.434] Failed to compile.
[12:41:21.434]
[12:41:21.434] ./components/SweetAlert.tsx:2:18
[12:41:21.435] Type error: Cannot find module 'sweetAlert' or its corresponding type declarations.
[12:41:21.435]
[12:41:21.436]   1 | import React from 'react';
[12:41:21.436] > 2 | import swal from 'sweetAlert';
[12:41:21.436]     |                  ^
[12:41:21.436]   3 |
[12:41:21.436]   4 | const SweetAlert: React.FC = () => {
[12:41:21.436]   5 |   const showAlert = () => {
[12:41:21.491] Error: Command "npm run build" exited with 1
[12:41:21.768]
Build is still failing


Em's change

So, I'm a little confused about what this code pattern is showing. I originally thought you were going to build an app, but it seems like what you're doing is connecting a sample movie ticket reservation app to a Crunchy DB. Is that correct?
I left a few other questions in there with <!--EM. Please respond to those and we'll go from there.

So, I'm a little confused about what this code pattern is showing. I originally thought you were going to build an app, but it seems like what you're doing is connecting a sample movie ticket reservation app to a Crunchy DB. Is that correct?

The application has code written by us, the user has to use this code and build the application using the commands in step 3.1 and 3.2 https://github.com/IBM/movie_ticket_booking_application_using_crunchydb#31-install-the-dependecies. Hence the user is actually building the app. The user can also modify the code and build the application to cater to his/her needs.


make-initrd: fix #132059

[x] Tested nixos/tests/boot.nix on x86_64-linux
[x] Fits CONTRIBUTING.md.

Fixes https://github.com/nixos/nixpkgs/issues/132059.
cc @ius, thanks for reporting!

Looks good to me (cross compiled using reproducer from #132059).
Thanks.

Result of nixpkgs-review pr 132458 at 64d2a3f9 run on x86_64-linux 1

1 package failed to build:

tests.trivial

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

@ius what's wrong with the other case?

It seems to work for both cases with the fixup.


Gradle task name is shortened

An example of my build report is:
                               0% :midoPlay:prep…ase780Library (0:00.055)
                               0% :midoPlay:fabr…urcesDevDebug (0:00.076)
                               0% :midoPlay:tran…bsForDevDebug (0:00.078)
                               0% :midoPlay:tran…esForDevDebug (0:00.091)
                               0% :midoPlay:merg…JniLibFolders (0:00.104)
                               0% :midoPlay:prep…V72220Library (0:00.108)
                               0% :midoPlay:prep…oda281Library (0:00.151)
                           ??  3% :midoPlay:merg…ebugResources (0:01.989)
                           ??  4% :midoPlay:proc…ebugResources (0:02.381)
                          ???  4% :midoPlay:zipalignDevDebug (0:02.674)
                          ???  5% :midoPlay:packageDevDebug (0:03.259)
                        ?????  7% :midoPlay:assembleDevDebug (0:04.503)
                       ??????  8% :midoPlay:tran…ngForDevDebug (0:05.319)
                     ???????? 10% :midoPlay:tran…stForDevDebug (0:06.721)
              ??????????????? 20% :midoPlay:comp…JavaWithJavac (0:13.230)
????????????????????????????? 38% :midoPlay:tran…exForDevDebug (0:24.944)

I see in https://github.com/passy/build-time-tracker-plugin/blob/master/src%2Fmain%2Fgroovy%2Fnet%2Frdrei%2Fandroid%2Fbuildtimetracker%2Freporters%2FSummaryReporter.groovy#L76, there is a groovy script named shortenTaskName. Could you please explain why do we need to shorten its name?

This is based on the terminal size. If the lines break, the graph becomes unreadable. For more in-depth analysis we have the CSV export.


chore(main): release 1.0.0

:robot: I have created a release beep boop
1.0.0 (2024-12-16)
⚠ BREAKING CHANGES

api: renamed state Property of actuators accordingly

Code Refactoring

api: use state in actuator types (2e14151)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.0.0
:sunflower:


Insuffiently Random Values Used to Generate Console Pin

This is a security issue but I'm posting it as a public issue as it has been well documented elsewhere for years and I couldn't find another Github issue that explains why this is the case.

https://www.daehee.com/werkzeug-console-pin-exploit/
https://github.com/grav3m1nd-byte/werkzeug-pin

The crux of the issue is that Werkzeug uses values from things like the machine guid and bootid to generate the pin number for the debug console. These values aren't securely random and could be retrieved by an attacker if there was some other security issue like Local File Disclosure.
Why doesn't Werkzeug use the Python secrets module to generate secure random values for generating the pin instead of this weak and convoluted method?

The docs and the code mention in multiple places that the pin is not a security feature, it's just a last deterrent
It's never to be enable in production
It's supposed to be stable per project / machine so debug server restart does not change the pin
So this is intentionally not securely random, it's not a security feature, it's a last stumbling block for when it was despite all docs deployed
It's intentionally stable to be a painless debug tool

The docs also mention in multiple places, and the terminal warns when running, that the development server is not intended for production.

This is a security issue but I'm posting it as a public issue

"I'm ignoring responsible disclosure" is not a good look.

This has been documented for a while now, but I think it's good to have this issue as a public record of the official stance on this issue.
And for further reference, thankfully there is a repository which explains this problem in further detail:
https://github.com/wdahlenburg/werkzeug-debug-console-bypass


[meta] Elasticsearch.Extensions.Logging GA

This ticket is a continuation of the following PR: https://github.com/elastic/ecs-dotnet/pull/85

[x] Rely on Elasticsearch to generate the id
[x] Move to a simple buffering approach and _bulk
[x] Add a hook to be notified of failures
[x] state always an  IEnumerable<KeyValuePair<string, object>>?
[x] Make sure trace.id flows into Elasticsearch so that Elastic APM can corrolate logs. (done https://github.com/elastic/ecs-dotnet/pull/96 )
[x] Downgrade Microsoft.Extensions.* packages to 2.1.0.
[x] Should we default to logstash-[current_date] like the serilog sink does?
[x] Remove .Cast<char>
[x] Remove unused _w3CFormat regular expression
[x] ExtractW3cSpanIdFromActivityId has a possible detection edgecase that needs to be adressed. (https://github.com/elastic/ecs-dotnet/pull/96 eliminated it)
[x] Introduce integration tests for this project.
[x] Add support for CloudConnectionPool (https://github.com/elastic/ecs-dotnet/pull/98) ty @btastic !
[x] Make sure CreateConnectionPool throws instead of returning null

When all that is done we can:

[x] Remove <IsPackable>false</IsPackable> from the project

That should be enough to create and publish the package when we tag the next version.
cc @russcam @gregkalapos @sgryphon feel free to take an item and submit PR's. If it's a bigger chunk of work leave a note so we don't duplicate efforts.

Hello,
I just found this package while trying the elastic cloud trial. However, this logger does not seem to have the capability connect to the elastic cloud with its current API. Are there any plans to add that?
I'd like to contribute if you think this is a good addition.
Questions:

As far as I can tell from the source code, you can add multiple Nodes to one configuration. That will make it not straight forward to define different ConnectionPoolTypes for each node. If the ConnectionPoolType is Cloud, you'd have to define it differently than other nodes as far as I understand. Or am I missing something?

Hey @btastic I think its a fantastic addition, looking forward to your PR 😄
https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/connection-pooling.html#cloud-connection-pool
Ideally we find a way to abstract ElasticsearchLoggerOptions to an interface and have two implementations ElasticsearchLoggerOptions and ElasticCloudLoggerOptions where internally we only reference the interface. Otherwise ElasticsearchLoggerOptions turns into a big state machine.
It would be awesome if we could steer the user to a decision early e.g
.ConfigureLogging((hostContext, loggingBuilder) => loggingBuilder.AddElasticsearch())

and
.ConfigureLogging((hostContext, loggingBuilder) => loggingBuilder.AddElasticCloud(cloudId, username, pass))
.ConfigureLogging((hostContext, loggingBuilder) => loggingBuilder.AddElasticCloud(cloudId, apiKey))

Hey @Mpdreamz, thanks for the tips!
first I thought about doing it with an abstract class, but it turns out that the OptionsMonitor<T>  has a class constraint.
TypeLoadException: GenericArguments[0], 'Elasticsearch.Extensions.Logging.IElasticsearchLoggerOptions', on 'Microsoft.Extensions.Options.OptionsMonitor`1[TOptions]' violates the constraint of type parameter 'TOptions'.

See also the OptionsMonitor implementation here:
https://github.com/dotnet/runtime/blob/48e94eb47a5e1381434f007dc1024e0e2f806bae/src/libraries/Microsoft.Extensions.Options/src/OptionsMonitor.cs#L14
I think we need to approach this differently. But not sure how since I am not very fluent with the Options and configuration stuff.

Aye thinking out loud and in pseudocode (all names illustrative):
Wrap the endpoints in a custom class:
class ShipTo {
    public ShipTo(IEnumerable<Uri> nodes, ConnectionPoolType poolType);
    public ShipTo(string cloudId);

    internal IConnectionPool CreateConnectionPool();

    public GetHashCode() {}
}

And set that instead of the current https://github.com/elastic/ecs-dotnet/blob/764253bc2364645cab331d367e46f296fc8bc43c/src/Elasticsearch.Extensions.Logging/ElasticsearchLoggerOptions.cs#L63
The custom GetHashCode on ShipTo will help fix an outstanding todo when options change to prevent the client to be recreated unnecessarily:
https://github.com/elastic/ecs-dotnet/blob/aa70621832bcd85b328c774a089fe40a678cab5c/src/Elasticsearch.Extensions.Logging/ElasticsearchDataShipper.cs#L109

Alright lets see.. https://github.com/elastic/ecs-dotnet/pull/98

Glad I was helpful! Is there any roadmap for expected GA release date? We're eager to use this in production :)

Hey guys, I was going to add some documentation for the Extensions package, and then the example didn't run on my machine.
Looking further, the Options pattern has been broken.  Options (and OptionsMonitor<>, etc) are supposed to be loading configuration settings, so need writeable properties, can't really have Funcs, etc (can't set a Func in JSON :-)
These is nothing wrong with having advanced options settable only from code only, but you still want to support direct settings via configuration.
The advantages of the standard configuration setting is that it automatically has support for a wide variety of scenarios, e.g. setting from appsettings.json, or for an Azure secrets vault only at run time (protect your apikey/password secrets), override with environment variables in a Docker container, or from command line parameters. It also supports automatic reload.
Yes, it means the Options is kind of a state machine, as your configuration in appsettings.json is basically just a text document that needs to parse and support all configuration options (then filter out invalid ones).
I'll see if I can clean up a bit.

For the question " Should we default to logstash-[current_date] like the serilog sink does? ", I don't think the question is correct. The question should be " Should we default to logstash-[current_date] like Logstash does? "
While there might be some tools that assume that logs use the same index as Logstash, I don't think it really makes logical sense as the default.  Logstash is not at all involved in the application, so why use it's name in the index?  That seems just weird.
And if a user does have a tool that is hard coded to look for logs generated by Logstash, then they can always change the configuration for their system (without inflicting it on every user).

@Mpdreamz can you also mark the Logstash format item as resolved. I checked the original comments and it was only a question to prompt if it was intentional, and that it didn't matter either way.   Nothing against logstash (which is part of the ELK stack), I just don't think we should masquerade as it by default. (And a user can configure it if they need to have that particular format, e.g. another tool that is hardcoded to look for logstash).

For State and IEnumerable<>, I added a reply to the original comment, copied here:
State could be anything, called from the public Log() method.  However usually it is not called directly, and either the high performance LoggerMessage.Define<>() is used, or one of the convenience extension methods, e.g. LogWarning().
The usual calls convert the passed in parameters to an internal state class, which is what you get access to in a logger provider. If you are just logging the message you can use the passed in formatter function.
However, for semantic logging you want to get out the individual parameter values, which I then put into the ECS labels dictionary. To do this we assume if the class implements IEnumerable<KeyValuePair<string,object>>, which the internal Microsoft class does, then we can use it to get the semantic labels and values.
There is a similar assumption made about BeginScope() to pull out additional semantic values. As we don't have access to the actual internal code, this is the best we can do and just handle it gracefully if the internals ever change.
Nic Blumhardt blogged about it for Seq handling of Scope: https://nblumhardt.com/2016/11/ilogger-beginscope/

In short, state will currently always be IEnumerable<KeyValuePair<string,object>>, which is the internal implementation by Microsoft, if you use all the normal methods of logging.
If it isn't, then we degrade gracefully and ignore it. We can't extract semantic values (for labels), although we will still get the message from the formatter.

Hi, Is there any updates on this issue?
We currently use Serilog and would love to replace it with this logging extension if this version is released.

@nugroho-expereo  The branches should all be ready to merge, just waiting on project admins to approve and do the merge (I don't have permission to).

@nugroho-expereo three of the branches are now merged; just one more and then ready to package and release, so should be soon.

@sgryphon That's great. Thank you.

I'm looking to release this first as a 1.6.0-alpha1 on nuget in order to gather feedback before a GA release in 1.6.0.

@nugroho-expereo alpha release is up and available on nuget: https://www.nuget.org/packages/Elasticsearch.Extensions.Logging/1.6.0-alpha1

Thank you. I will give it a try.

It's been half a year since the alpha. Any plans on a stable release or has this project been abandoned?
I'm asking because I'm trying to decide between using this directly or Serilog->ES sink

The ECS project overall has not really moved to 1.6 yet; it is still 1.5, hence why the logger provider is only an alpha. I think it has seen enough use (I use it fine) that it should be just 1.6 ... although I don't have permission to change that.
I just use the prerelease.


Create trips and cleanup

Coverage increased (+0.03%) to 96.001% when pulling 12f4a24fee5b2a1ec2b89bbbec402fccb4e59d93 on create-trips-and-cleanup into 9eaa94050b742071b4c3097502d3273dc7880c69 on master.