Detecting Underwater

Hello, this is not actually an issue but a doubt.
Im trying to figure out the best way to detect if a player is underwater and apply a shader to the part of the screen thats underneath the waves.
Whats the best approach?
Thanks

@hayes87 Hi.  We are working on the same problem.  We can easily detect when the camera is above or below and modify the shader appropriately but the issue is that the camera is not always fully above or below the water line so you get these spots where your half below half above and it looks wrong.  Not sure yet how to solve it yet so good place to have a discussion and try out some ideas.

Thanks for starting this thread. I've seen some games mask it with a flash:
https://www.youtube.com/watch?v=a1ezfA2sb_Q
The look of a camera half underwater is pretty sweet but I'm not sure how easy it is to achieve as you need different post processing for half of the screen?
https://www.youtube.com/watch?v=KIcJgznQWqA

Yeah, i was researching as to how the Witcher3 does this.
It seems they grab a zdepth of the water, clamp to  get only the line of water that crosses the screen and then some magic to create a gradient with this.
Some screenshots from renderdoc
https://cdn.discordapp.com/attachments/409446549567963151/489451627246387211/unknown.png
https://cdn.discordapp.com/attachments/409446549567963151/489451449592446989/unknown.png

Ah thats interesting. Do they produce a half-in-water effect from that? Do you have the rendered result? I looked at some youtube videos but couldn't find a good shot of the camera transitioning into water so far..

Ah sure, forgot to link it  https://cdn.discordapp.com/attachments/409446549567963151/489513816632066051/unknown.png
Heres a link to the full renderdoc capture (300mb)
https://drive.google.com/file/d/1KiR_9kWgQVuowyFlJ97o3lfmeTPWjHWG/view?usp=sharing

Ah sure, forgot to link it https://cdn.discordapp.com/attachments/409446549567963151/489513816632066051/unknown.png
Heres a link to the full renderdoc capture (300mb)
https://drive.google.com/file/d/1KiR_9kWgQVuowyFlJ97o3lfmeTPWjHWG/view?usp=sharing

ops close by accident hah

Hi there, apologies but I ended up redacting the link for the renderdoc capture, i hope you dont mind. The capture will contain a complete set of assets for that scene in the game and I don't want to link to it here as I don't think the developers would appreciate this (let alone the publisher). I realise that this kind of thing is fairly easily obtained but its a gesture of respect for the devs, hope that makes sense?
From the images it seems like they darken the water near the camera and ramp down the refraction based on the gradient, and also modify the lighting under the water.
I think it would be possible in crest to generate a screen facing strip of tris along the water intersection line, and then draw "some blurry stuff" on top of it, to emulate some of the half underwater youtube video i linked above. It wont be simple, but i think it could work. It would be somewhat similar to how the crest logo is rendered on the ocean surface, but using some more shader stuff to find the intersection line and make it screen facing.
The bigger problem for me is how to achieve different postprocessing and fog etc below the water vs above. I know that this kind of thing is possible with custom tech (c.f witcher images above, and a ue4 example http://oliverm-h.blogspot.com/2014/08/ue4-localized-post-process-effects.html ) but i havent been able to piece it together in my mind for unity. However i'm far from an expert on this and I have limited experience with the post processing stack. Maybe it can be done?

Uncharted 3 uses some interesting techniques to achieve this effect with its capsized boat.
https://www.slideshare.net/mobile/agebreak/water-technologyofunchartedgdc2012
The water verts are clamped to the Shape of the ship and a polygon skirt it used to achieve a fog effect. It's quite effective.

Yep, great point. That kind of thing seems doable.
The skirt could have a stripped down ocean shader perhaps. I guess when the camera is fully submerged the skirt becomes a full screen quad?
I'm super intrigued to see if this would look.. I'll report back if i do some experimentation on this but i probably wont get onto it in the short term as I have a few other issues i need to resolve first. If anyone else looks at this feel free to report results!

Ok the temptation to try it out was too strong!
https://drive.google.com/open?id=1OzgtMhRGT54fBekC0q-bFM1enT845PKu
Perf is good and besides a few edge cases with awkward view directions that need to be addressed, and a bunch of making it production ready, i believe this could be a workable solution.
I'm also able to get the underside of the ocean rendering but right now it assumes camera above water and it looks strange. It would work in theory though I believe, just needs more work.
It's pushed in a branch feature/underwater-skirt , it can be seen by grabbing this branch and opening main.unity.
It could really use a brave early adopter to help push it forwards and make it shippable. Anyone up for it?

Hi huwb, thanks for working on this. Really appreciated! Seeing you so inspired and engaged to this project makes us feel confident about the potential of your solution. Keep it up! 😊

I will definitely give it a go as well.  As I have shown we are doing underwater transition stuff.  That transition between under and above still has these issues so need to do something (was thinking of just doing the flash but this might be way better).  Only issue that I am not sure of with this would be how to deal with the changes of fog and post processing effects that the underwater needs vs above water.  Cannot really apply them until your all the way under which this half/half approach would not allow so not sure on that.  Maybe we will be able to use this approach before turning on the underwater effects and it will look fine just not sure.  Babbling I know.

Thanks for the comments!
There was an issue where it only worked with near plane at Z=1 (quite a large near plane value). I've generalised it for any near plane in a fix pushed just now.
Good point about underwater postprocessing. I don't think this technique addresses the issue of potentially having different postproc above vs below the water. I think that would go back to my question above about ways to split unity postproc along a arbitrary line. Do you think not having dedicated underwater postproc would be an option - just using depth fog/caustics etc from the shader combined with above water postproc? Are there features you use in the underwater postproc besides fog?
In other news I've started experimenting with getting the underwater look working, there is an artifact due to a slight overlap i had to add to avoid cracks when you're looking up through the water (the underwater look is placeholder rihgt now, it doesnt refract properly or fog etc) - it adds an objectional strip beyond the water that I'm currently thinking about how to solve..

Thanks @danilonishi , it's been a pleasure working on it! I'd be very interested to know if you go with Crest or with something else - if you have any feedback on where Crest falls short do send it through - thanks!

@huwb Right now we do some bloom and color adjustments using post proc stack 2 but honestly we could probably live without it depending on how good we can get the underwater look using this effect.  Need to play with it to see for sure.  We also do some adjustments to the water shader itself to get the under surface looking nice (mostly change to a different cube).  I was thinking we might also be able to fade in those effects as the camera goes completely underwater and use this to help with the transition but not sure how that would work.  So really need to grab your latest off this branch and just bang on it.  Just wrapping up some work on generating fish, fish flocking and movement etc.

Cool. It would be possible to do colour cube in this shader as well - well I've never done fancy 2018 colour cube so I'm not sure what sorts of complexities there are these days, but I think the core concept if fairly straightforward.
I've pushed another version which has the under side of the ocean rendering, and it has a bit more test geom and has a few more minor fixes, probably best to take this one. you may notice small cracks at the fluid interface now and then, if i dont find a better solution im thinking to just render "some blurry stuff" to mask it - to emulate the fluid interface being defocus blurred by the camera. I've laid some of the foundation for this now, but haven't done a proper test yet.

Wow, this is awesome!  We weren't planning to let the camera in our game go underwater, purely to avoid all of these issues.  It does though occasionally clip with the water's surface, so it'll be great to not only stop worrying about that, but having it actually look really cool!

Nice :)
I haven't worked much this week but i did get a bit futher - video below. It draws a fake DoF mesh close to the camera to hide the cracks that can appear between the water surface mesh and the underwater skirt mesh. This can be an artist authored texture (its just a strip of alpha that tracks the water interface).
https://drive.google.com/open?id=1eIfzblVXHG1t09ml_ttB9Ip4qnWYjrmH
Still more to do - its not properly integrated into the shader code and has some issues to work through but I was capturing videos and thought id post a WIP update.

Great job so far.  Very nice you are a water genius.
Ok so the one thing that jumps out at me immediately is the "fog".  This works great for objects under the water be seems to be ignoring the water surface.
SO here is an example of what I saw.
Here the ocean stretches off forever and anything you look up at will show up as well shadowed by the ocean.

Another shot of the object disappearing but showing up still against the surface.

Here is how we would want this to look (main branch using deferred fog exp2 0.05).

As for other effects like bloom, wiggle, lighting etc I am thinking we can probably just ease those in as we go further into the water and make sure we are fully submerged or would have to add whatever we need to the shader itself or do some custom processing to the underwater skirt.  I am guessing that would be possible?  Thoughts on that.

Glad you saw what I was seeing with the fog.  Was also seeing some artifacts with unity fog while above water as well.  Will see if I can grab a shot of that and post it.  I think if we can get the fog working properly below/above water then that should make this workable.
As far as post proc stuff I would agree the less we have to tweak the shader the better since that is way more flexible ie your never going to please everyone so will play with fading in those effects.  Will look for blending and give that a try, if you saw something that looks promising shoot me the link.
Great job and glad we could be of help.  Thanks for doing all the heavy lifting and let us know anytime you need any help.

verified that the fog works fine in the main branch so only see the artifacts in the skirt branch.

i did a big refactor and rewrite of the scattering code to unify the code between underwater and above water. and i found a system variable to tell me when i'm drawing a backface (for free), so no more ugly fireflies!!
https://drive.google.com/open?id=13io-152FFI6StqCMRohb74KD8I5zEZ8x
there's still a bunch to go - it currently triggers unity to grab the framebuffer twice, when only once is needed. and there are awkward edge cases when looking straight down through the water surface and the near plane intersects the water in complex ways and the 'skirt' fails. need to think about how to address this..

Great job.  That looks so much better now.  Getting a few of the flickers still underwater but way less then before.

The underside of the water in Subnautica is done really well.  I'm a bit of a layman, but at a glance, it looks like the transparency of the surface is masked using a fresnel with a fairly sharp falloff.
https://youtu.be/kJN6A8HYTAw

The bigger problem for me is how to achieve different postprocessing and fog etc below the water vs above.

I created a thread in the Unity forums, where I ask how to achieve this with Unity's Post Processing Stack v2 solution:
https://forum.unity.com/threads/how-to-apply-effects-depending-on-a-mask-under-water-transition.562516/

@pschraut Thanks good idea.  Ya the only thing so far I can come up with is blend into those settings as you go deeper below the water which I am guessing will work but would love to be able to apply post effects split screen.  My guess you can only do it with two cameras.

Was just testing this feature branch in vr and it was beyond cool. Certainly wasn't getting 90 fps but it was a constant 50 or so which is better than I was expecting. I noticed while trying it out that if you look pretty much straight down all the underwater effects get disabled. Just thought I should point it out. 😄

Just discovered this package and I'm really blown away by it so far. Really cool! Tried to correct the issue with the skirt failing when looking close to straight down and came up with this addition:
`// isolate topmost edge
if (v.vertex.z > 0.45)
{
half2 nxz_dummy = (half2)0.;
float2 sampleXZ = o.worldPos.xz;
float3 disp = float3(sampleXZ.x, 0., sampleXZ.y) + up* _OceanCenterPosWorld.y;
float3 closestPoint = float3(9999999.,99999999.,99999999.);
for (int i = 0; i < 6; i++)
{
// sample displacement textures, add results to current world pos / normal / foam
disp = float3(sampleXZ.x, _OceanCenterPosWorld.y, sampleXZ.y);
SampleDisplacements(_LD_Sampler_AnimatedWaves_0, LD_0_WorldToUV(sampleXZ), 1.0, _LD_Params_0.w, _LD_Params_0.x, disp, nxz_dummy);
float3 nearestPointOnUp = o.worldPos + up * dot(disp - o.worldPos, up);
float2 error = disp.xz - nearestPointOnUp.xz;
sampleXZ -= error;

}
// Check if not looking downwards
if (dot(forward, float3(0.,-1.,0.)) < .8) {
o.worldPos = disp;
}
else {
o.worldPos += 1. * up;
}
// small fudge to lift up geom a bit and cover any cracks. it will render UNDER the ocean so any overlap will be covered
//o.worldPos += .02 * up;
}`
It doesn't actually solve the issue but it covers it up pretty well when I was messing about. I don't have much experience with shader coding so it was the best I could think up. Just thought I should post it in case anyone wanted to use a temporary solution. Cheers!

Just tried underwater branch and gotta admit it looks radical! But will there be option to leave the waterline without blur?

Awesome to read these comments! Nice that this feature is resonating with people :).
It's somewhat parked while i tend to other things, but will most definitely be driven forwards in the near future. I'll be sure to try your changes @mschwarz1 , thanks for posting!
@GeorgeDziov yes, the hibiscus/waterline should be an alpha blended texture instead of the current blurry mess (or it could be some kind of fancy raytraced thing). It would involve sampling the texture in WaterInterface.shader frag() using the uv, instead of the procedural smoothstep thing thats currently there.

@huwb  Ok finally back looking at this and the first thing that jumps out is the ocean surface now blending out with distance.  I believe we had an issue with this that we solved awhile back in the main line where the ocean was not picking up fog or something.
Here is a shot of what i mean using the skirt branch.  The ocean shows regardless of distance so could use fog as below or the skirt would need to blend out the ocean or something not sure on that.

This is the current main line using fog.  See how the ocean respects the fog.

@huwb  If this is an issue with the skirt being out of wack with main would it be possible to get an update form main to get it back in line?

Grrr ok I just setup the original skirt stuff again and not seeing these same issues.  Need to reconstruct my scene and see how things went wrong.  I will let you know once I have done that.

Ok so yes most of that was correct.  You see the issue when your drop the skirt transparency down to like .1 across the board so you can see stuff below the water.  The skybox is gone in this which is good (need to see if that has something to do with postprocessing which is off right now) but the water line does not fade in the distance my guess because of the transparency.  So we do want to be able to lower transparency in order to see stuff but we dont really want it to effect the ocean top way off in the distance.  Basically wanted the effect to work like exp2 fog does at a 0.05 setting or so.  Clear up front but quickly drop off and have it effect the water as well as everything else.  Have no idea how to do that honestly.  The reason we are using the skirt is to get rid of the issues with fog ie coming out of the water and everything being obscured (including the skybox which is super bad but has to be done or it shows up under the water).  So using the skirt makes sense to me now.  Just not sure how to get it to work correctly.   Must be a way to apply a exp fog like effect to the skirt instead of straight trans.  Will do some research as well and let me know your thoughts from my gibberish ramblings.

Oh i think i know - you need to replicate exactly the settings across the ocean skirt material and the ocean material - i guess you have different density settings on these two materials? could probably write a script the replicates settings to make this more user friendly, perhaps.
I've been looking at the branch a bit. there is some experimental total internal reflection work that i've temporarily disabled because its making the result look really dark. I've pushed this to the branch now. It looks like this for me:

Next i'll see if i can address some of the issues with looking straight down through the water.

Sync'd up now FYI

@mschwarz1 yeah that fix helps a ton and i've integrated it and pushed. Nice!
I made some adjustments to it:
I remove the if condition for camera < 2m from sea level. this broke when going deeper under water, or would break when the wave heights are greater than 2m
I made it do a similar job when you're just below the water looking up - in this case it does the opposite, it pushes the skirt geometry away.
Also I added code comments and some links as i could not understand my own hacky code :)
I put a list of some optimisations and the actually hibiscus needs love as it can still get caught in nasty edge cases. I guess just fading it based on view angle would be a good thing to try.

@huwb Yep ok great so far so good.  I see that keeping the values in check between the two (skirt and ocean) fixes the hard line issue I was seeing before.  Now need to play with that via code so that the values I have above water sync back to the original water settings I want vs the matching ones for below water.  My guess is you won't really notice the change much as we are still so close to the surface at least that is my hope.  Going to do the same things with the postprocessing values as well basically turn on weighting based on distance below water so the effects kick in as you go a little deeper and lessen as you breach the surface.  Throwing in a nice water camera effect (running window pane drops for instance) should also help with the transition as well be obscuring things for a second.
BTW was also going to do a full video of driving the boat around as well, did you ever figure out where you maybe want these videos to go?  Kind of see what crest can do section.
Thanks great job as always.  I think this is going to look fantastic, not many games support a transition this nice.

Thanks Jason, A link for now would be great, i haven't settled on a plan here but i might contact you off thread about it.
So i tried to give the meniscus a makeover by applying a texture but even after a few hours i could not get a good result, so i went back to the drawing board and i think i've eliminated the need for it completely. i now get crack free rendering without it:

the trick was to move the verts a bit towards the water horizon, which creates a bit of overlap to avoid cracks. it looks good to me in my tests and was a just a bit of added code.
Having said that the meniscus is still fully supported, and some kind of delineation between above and under might be desirable. I think i'll push a much more subtle, multiply blended version that looks like this for now:

Hopefully we can switch it out for an artist authored texture, or perhaps do something fancy like sampling the cube map to emulate how it would work in reality.

So how hard would it be to do change how transparency worked
Just noticed this - not "hard" as in difficult, but would take a bit of dilligence to see if it can be done elegantly (and perhaps it could borrow code from the unity fog stuff?), and not sure if i want to take it on my list right now. happy to discuss it though, but I'd consider this to be a separate issue so perhaps open a new issue if i can provide further assistance.

Ok np.  I guess I should have started by asking if my guess is correct and this is related to transparency or something else?  I can play with it and just see what I can work up.  Sure will start another thread perhaps on that.

Oh, both the underwater skirt and the normal ocean surface are refract materials - they sample the scene colours and depth and then apply the depth fog in shader. You can trace the shader variable to see the code - look for _DepthFogDensity . It's exponential depth atm.

Oh so it's probably pretty close to what I want now anyway.  I can play with it then.

Getting closer to shippable:

Couple of nice optimisations
Works in shallow water
Works for shadowed water
Made meniscus width tweakable

Don't think its far away now at all, maybe we can get it pushed this week. Testing/feedback welcome

@huwb glad to see my comment was helpful. The clause I had put in about the < 2m or whatever is still needed although only at extremes so you could set it to < 100m or something like that and it would probably still be fine. To reproduce that you can set the camera's y position to -3000 and look down and the skirt will fail. For most people it wouldn't be an issue though. Aside from that also ran into a weird horizon line while just slightly underwater in shallow water.

Will play around with it some more at some point.

Also the meniscus gets weird when looking straight up from underwater. You can probably fix this the same way the underwater skirt failing issue was addressed I would imagine.

Also managed to break the caustics, I think? Either that or there is another layer specifically dealing with the sea floor I don't know about. It's another angle thing where the sea floor just becomes all white at certain angles. Here's a screenshot of the issue with my camera transform in there so you can try and plug in the same position and rotation and see if you can reproduce.

Last one for the night I think. I also managed to have the skirt generally fail in a weird way while flying the camera around. Screenshot with camera transform so you can reproduce below.

Also it's worth mentioning all the issues pointed out above are just from a straight up clone of the latest underwater skirt feature branch on the main scene. I didn't mess with anything so they should all be pretty easy to reproduce.

Thanks that gives me a bunch to go on, nice one. I'll report back when i've looked at these.

Also the meniscus gets weird when looking straight up from underwater. You can probably fix this the same way the underwater skirt failing issue was addressed I would imagine.

Haven't used the most recent commits, but I found a quick solution for this was to turn off the "WaterInterface" renderer while below the water. I added the following to UnderwaterSkirt.cs:
 _rend.enabled = _isDistAbsolute ?  Mathf.Abs(heightOffset) < _maxDistFromWater || !gotHeight : (heightOffset) < _maxDistFromWater || !gotHeight;
with _isDistAbsolute being set to true for the WaterInterface and _maxDistFromWater being set to quite low, like 0.25.
Hope that helps in the short term.

@Nimuecrypto You can get it here.  Its a branch right now.
https://github.com/huwb/crest-oceanrender/tree/feature/underwater-skirt

Yep, apparently I was just blind.  I will test this thing out and give whatever feedback I can.  Thank you for working on it!

@huwb I think I figured out why the horizon line is there. The problem lies in the fact that in the Ocean.shader the
`
#if _SUBSURFACESHALLOWCOLOUR_ON
SampleSeaFloorHeightAboveBaseline(_LD_Sampler_SeaFloorDepth_1, uv_1, wt_1, o.lodAlpha_worldXZUndisplaced_oceanDepth.w);
#endif
`
is only called on the closest LOD chunks. To fix the horizon line issue you'd need to call it on all of them or at least a few more that are closer. I'm not sure how to implement that with my knowledge of the code base. Hopefully this helps point you in the right direction though.

thanks all!
fixes incoming - in order:

when i put the camera very far down, i got weird slithers of island geometry, because the island geom sucks. worth trying to disable the island if you see weird things. when i disable the island everything looked "fine" - everythhing was black.
horizon line - its hard to elim all issues here but i have something that should be more solid, pushed
weird meniscus - yeah i killed it on a similar condition to the skirt look up/look down check
caustics - pretty sure thats a bit of rogue island as well, see first point ^
insane skirt failing - that was some crazy behaviour introduced by my last change that i didnt go deep enough to see.

other issues?

I actually get total skirt failure when looking straight down with your latest commits. I'm not sure if that was in the last one or not. Failure occurs regardless of whether or not all scene geometry is disabled and at any depth. Actually the deeper it goes the weirder it will get.
-1m

-500m

-5000m curiously good at this point

Happens specifically when the camera hits 90 degrees on the x axis almost exactly.
Horizon line is gone which is nice but the colors seem a bit, for lack of a better word, poppy when just moving about but that's not really a deal breaker by any means. Nice work!

You're so close. 😄
Ran into this guy just messing about at various depths.

No obvious behavior causing this. Just will show up when just looking around with the camera at -120m and below. If you disable the oceans the line will stretch fully across the screen. I don't know if that's significant or not.
I don't know if you want to worry about this one though it seems like a very minor issue.

Hey just thought I'd chime in... I got the skirt working in my project, and immediately encountered some artifacting at depth.    Anyway, I just did some thorough testing with the newest commit and I cannot recreate this artifacting, so whatever you did seems to have fixed it.  I'm unsure if this was one of the previously described bugs, but it seems to be gone now, so good job!

Ha that one was fun .. didnt happen for all FOVs, good find.. In the end it was numerical issues with having large numbers in floating point calculations. It may be a sign of an instability that could be removed, but here i could simply add a clamp to avoid large values completely and it looks good for me now.
Unless anyone finds any other issues i'll start tidying it up and prepare to merge!

Ok i opened a PR. did a lot of cleanup and added some functionality to make it less error prone - see #110
Right now this stuff hits the default ocean material. A remaining change i might make is to break out a new ocean material with this stuff enabled.

Alright its now merged and enabled in main.unity in the example content. Thanks for the ideas and help!


Reified Clean up

This PR does a little bit of housekeeping:

Remove reified and inline modifiers from DataSource operation shortcuts. (with a small alignment on formatting)
Remove suppression for FUN_INTERFACE_WITH_SUSPEND_FUNCTION, it no longer seems to be requried.
Update StorageDataSource.kt to StoreDataSource.kt and updated the docs.

Coveralls looks not working from forked PRs. Will need to investigate how to fix the GA. but overall the implementation looks good! thank you Su!


UI sometimes "crashes"

Hi,
90% of the time the connection and all the features work fine.
Sometimes I have the issue, that the In-Car UI "crashes"

The current title is not displayed anymore.
I cant select tracks via the onscreen or steering wheel.
The tracktime is not correct,
The album cover art does not display...
It seems to happen when I am "too fast" in selecting and changing tracks.
In my case I do it via my HUD and the steering wheel buttons.
Or when selecting another album via the in-car UI.
It only helps to disconnect bluetooth / the phone and close the used apps on the phone.
Then wait ~5 min and then reconnect the phone.
Then everthing works fine again.
Build: <IP_ADDRESS>.2022
Did you get what I am on about ?

I've also experienced this and it usually happens when the phone runs out of memory - not sure AAIdrive can do anything about that 🤔

I also thought of that, but the RAM was fine. I am running on as Samsung Galaxy S22 Ultra. That one has 12GB of RAM
The usage was by about 9GB.
Is there a way of "checking" if the connection died / timeouted within the AAIdrive App ?

I've also experienced similar issues on an S21 with RAM+ enabled.
Did you make sure to disable battery optimizations for AAIDrive and MyBMW, as well as disable adaptive battery ? I've seen improvements after doing this.

Is there a way of "checking" if the connection died / timeouted within the AAIdrive App ?

Apart from checking the logcat for any errors, I don't think so.

The connection from AAIdrive to the car is easy to test: Pushing the Media button or selecting any of the apps in the Media menu, or clicking the Notification app, or clicking any of the toolbar buttons within the app, will make the car request the next menu destination from AAIdrive while handling the button click. If AAIdrive connection to the car is stuck, then this button press will appear to not respond.
The connection from AAIdrive to Spotify is harder to test, and I could imagine would look like the symptoms you see. You can try switching to a different music app within AAIdrive, and then switch back to Spotify, to reconnect this connection. To isolate it further, you can try playing around with the mini-player in the AAIdrive phone interface, to see if you can replicate the crash there. If it is a problem in the Spotify connection, that is harder to fix, because it's handled entirely through the Spotify SDK.

This seems to be fixed.
The I am on v1.4.1 nightly build of 10th Feb 2023, and everything is very stable and fast.
No matter how hard I tried to get the UI to crash, it just works :D
Very nice


Host commons-compress-api

Repository URL
https://github.com/basil/commons-compress-api-plugin
New Repository Name
commons-compress-api-plugin
Description
Commons Compress API Plugin
GitHub users to have commit permission
@basil
Jenkins project users to have release permission
basil
Issue tracker
Jira

Security audit, information and commands
The security team is auditing all the hosting requests, to ensure a better security by default.
This message informs you that a Jenkins Security Scan was triggered on your repository.
It takes ~10 minutes to complete.
Commands
The bot will parse all comments, and it will check if any line start with a command.
Security team only:

/audit-ok => the audit is complete, the hosting can continue :tada:.
/audit-skip => the audit is not necessary, the hosting can continue :tada:.
/audit-findings => the audit reveals some issues that require corrections :pencil2:.

Anyone:

/request-security-scan => the findings from the Jenkins Security Scan were corrected, this command will re-scan your repository :mag:.
/audit-review => the findings from the audit were corrected, this command will ping the security team to review the findings :eyes:.
	It's only applicable when the previous audit required changes.

Only one command can be requested per comment.

(automatically generated message, version: 1.28.6)

I chose the baseline to match pipeline-utility-steps, which currently has a baseline of 2.361, and where I want to consume this new library plugin. I could increase it, but then I'd also have to increase it in pipeline-utility-steps as well, and I might get some pushback from the maintainer for doing so. Does this really matter one way or another? If it does, I can increase the baseline. But it seems fine either way to me.

The Jenkins Security Scan did not find anything dangerous with your plugin, congratulations! :tada:

:bulb: The Security team recommends that you are setting up the scan in your repository by following our guide.

/hosting host

Doesn’t matter much, for plugins we prefer they start modern, not so worried for library plugins


refactor(routes): Refactor routing into routing modules

Aligns the routing with standard Angular CLI conventions

Thx for submitting a PR @brandonroberts!

Codecov Report

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

@@           Coverage Diff           @@
##           master     #152   +/-   ##
=======================================
  Coverage   88.46%   88.46%
=======================================
  Files           7        7
  Lines          78       78
  Branches        7        7
=======================================
  Hits           69       69
  Misses          6        6
  Partials        3        3

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 c3e4561...cf88cb1. Read the comment docs.


Cannot restore restic backup

Hi,
i'm testing the 0.9.0_alpha_2 version of ark. I deployed ark (and restic) on a local cluster and I'm using Minio for the bucket (two different bucktes, one for ark and one for restic).
I was able to execute a backup and I can see that files have been backed up. But the restore process didn't work out:
./ark restore describe restic-20180627115342
Name:         restic-20180627115342
Namespace:    heptio-ark
Labels:       <none>
Annotations:  <none>
Backup:  restic
Namespaces:
  Included:  *
  Excluded:  <none>
Resources:
  Included:        *
  Excluded:        nodes, events, events.events.k8s.io
  Cluster-scoped:  auto
Namespace mappings:  <none>
Label selector:  <none>
Restore PVs:  auto
Phase:  Completed
Validation errors:  <none>

Warnings:  <error getting warnings: Get http://minio.heptio-ark.svc:9000/ark/restic/restore-restic-20180627115342-results.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=minio%2F20180627%2Fminio%2Fs3%2Faws4_request&X-Amz-Date=20180627T095449Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=08f84581b2ef7f32a611b2e67779dc9692ccf9c965b10422f72640f28cd6d49e: dial tcp: lookup minio.heptio-ark.svc on <IP_ADDRESS>:53: no such host>

Errors:  <error getting errors: Get http://minio.heptio-ark.svc:9000/ark/restic/restore-restic-20180627115342-results.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=minio%2F20180627%2Fminio%2Fs3%2Faws4_request&X-Amz-Date=20180627T095449Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=08f84581b2ef7f32a611b2e67779dc9692ccf9c965b10422f72640f28cd6d49e: dial tcp: lookup minio.heptio-ark.svc on <IP_ADDRESS>:53: no such host>

Do you know why this error arises?

See also: #387.

@domcar if you run ark restore get, what are the warning and error counts? Can you exec into pods restored with restic data and see if the data were restored? I'm wondering if there was an error with the restore, or is it possible that it succeeded and the problem is that describe isn't working?

I also spun another cluster at GKE (but using Minio for the bucket), and exactly the same problem with the minio service appeared dial tcp: lookup minio.heptio-ark.svc on <IP_ADDRESS>:53: no such host>

@domcar if you're using Minio from our example, you end up with a ClusterIP service for it, sitting in front of a pod. The service (minio.heptio-ark.svc) is not routable from outside the cluster. What we really should do is add a second, optional URL to the AWS backupStorageProvider configuration, something like publicUrl, that Ark can use when returning the pre-signed URLs to download the backup tarball, backup logs, restore logs, and restore warnings/errors (part of ark restore describe).
Could you please kubectl describe the PersistentVolume that's part of the restore attempt? Thanks!

@ncdc yes minio.heptio-ark.svc is not routable from outside but still the restore process should get to it, right? The process is inside the cluster, that's why I don't understand the dial tcp: lookup minio.heptio-ark.svc on <IP_ADDRESS>:53: no such host.
Anyway, i'm trying with NodePort now. My setup is very simple, 1storage class, 1 PVC, 1 deployment, there is nothing else on the cluster.
This is the output of kubectl describe pv
Name:            pvc-5b022e8f-7b78-11e8-b458-0a580af40389
Labels:          <none>
Annotations:     kubernetes.io/createdby=vsphere-volume-dynamic-provisioner
                 pv.kubernetes.io/bound-by-controller=yes
                 pv.kubernetes.io/provisioned-by=kubernetes.io/vsphere-volume
StorageClass:    sphere
Status:          Bound
Claim:           default/sphere-pvc
Reclaim Policy:  Delete
Access Modes:    RWO
Capacity:        1Gi
Message:
Source:
    Type:        vSphereVolume (a Persistent Disk resource in vSphere)
    VolumePath:      StoragePolicyName:  %v

    FSType:                            [cf2-cvc02-kubermatic-poc] kubevols/kubernetes-dynamic-pvc-5b022e8f-7b78-11e8-b458-0a580af40389.vmdk
%!(EXTRA string=ext4, string=)Events:  <none>

This is the podvolumebackup:
apiVersion: v1
items:
- apiVersion: ark.heptio.com/v1
  kind: PodVolumeBackup
  metadata:
    clusterName: ""
    creationTimestamp: 2018-06-29T08:44:31Z
    generateName: restic-test-
    generation: 1
    labels:
      ark.heptio.com/backup-name: restic-test
      ark.heptio.com/backup-uid: a275e5dc-7b78-11e8-b458-0a580af40389
    name: restic-test-wm6c9
    namespace: heptio-ark
    ownerReferences:
    - apiVersion: ark.heptio.com/v1
      controller: true
      kind: Backup
      name: restic-test
      uid: a275e5dc-7b78-11e8-b458-0a580af40389
    resourceVersion: "169212"
    selfLink: /apis/ark.heptio.com/v1/namespaces/heptio-ark/podvolumebackups/restic-test-wm6c9
    uid: a4555f26-7b78-11e8-b458-0a580af40389
  spec:
    node: kubermatic-bvt7mbts7d-kk2xw
    pod:
      kind: Pod
      name: nginx-test-645796c976-6jm7n
      namespace: default
      uid: 5b1a4ec1-7b78-11e8-b458-0a580af40389
    repoPrefix: s3:http://<IP_ADDRESS>:32199/restic-bucket
    tags:
      backup: restic-test
      backup-uid: a275e5dc-7b78-11e8-b458-0a580af40389
      ns: default
      pod: nginx-test-645796c976-6jm7n
      pod-uid: 5b1a4ec1-7b78-11e8-b458-0a580af40389
      volume: persistent-storage
    volume: persistent-storage
  status:
    message: ""
    path: /host_pods/5b1a4ec1-7b78-11e8-b458-0a580af40389/volumes/kubernetes.io~vsphere-volume/pvc-5b022e8f-7b78-11e8-b458-0a580af40389
    phase: Completed
    snapshotID: 3ae0c589
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

I then delete Deployment and PVC and I try a restore ark restore create --from-backup restic-test
ark restore describe restic-test-20180629105304 shows
Name:         restic-test-20180629105304
Namespace:    heptio-ark
Labels:       <none>
Annotations:  <none>
Backup:  restic-test
Namespaces:
  Included:  *
  Excluded:  <none>
Resources:
  Included:        *
  Excluded:        nodes, events, events.events.k8s.io
  Cluster-scoped:  auto
Namespace mappings:  <none>
Label selector:  <none>
Restore PVs:  auto
Phase:  Completed
Validation errors:  <none>
Warnings:  <none>
Errors:    <none>

PVC and PV are there and bound, the Pod is stuck in init:o/1:
kubectl get pvc
NAME         STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
sphere-pvc   Bound  pvc-5b022e8f-7b78-11e8-b458-0a580af40389   1Gi   RWO   sphere    1m

kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-5b022e8f-7b78-11e8-b458-0a580af40389   1Gi  RWO    Delete   Bound   default/sphere-pvc  1m

kubectl get pod
NAME                          READY     STATUS     RESTARTS   AGE
nginx-test-645796c976-6jm7n   0/1       Init:0/1   0          1m

kubectl describe pod
Events:
  Type     Reason                 Age               From                                  Message
  ----     ------                 ----              ----                                  -------
  Normal   Scheduled              5m                default-scheduler                     Successfully assigned nginx-test-645796c976-6jm7n to kubermatic-bvt7mbts7d-kk2xw
  Normal   SuccessfulMountVolume  5m                kubelet, kubermatic-bvt7mbts7d-kk2xw  MountVolume.SetUp succeeded for volume "default-token-zdksd"
  Warning  FailedAttachVolume     1m (x10 over 5m)  attachdetach-controller               AttachVolume.Attach failed for volume "pvc-5b022e8f-7b78-11e8-b458-0a580af40389" : File []/vmfs/volumes/5c24140e-8a01a62c/kubevols/kubernetes-dynamic-pvc-5b022e8f-7b78-11e8-b458-0a580af40389.vmdk was not found
  Warning  FailedMount            1m (x2 over 3m)   kubelet, kubermatic-bvt7mbts7d-kk2xw  Unable to mount volumes for pod "nginx-test-645796c976-6jm7n_default(d6deba31-7b79-11e8-b458-0a580af40389)": timeout expired waiting for volumes to attach or mount for pod "default"/"nginx-test-645796c976-6jm7n". list of unmounted volumes=[persistent-storage]. list of unattached volumes=[persistent-storage default-token-zdksd]

yes minio.heptio-ark.svc is not routable from outside but still the restore process should get to it, right? The process is inside the cluster, that's why I don't understand the dial tcp: lookup minio.heptio-ark.svc on <IP_ADDRESS>:53: no such host.

The "no such host" error that you're seeing is from the computer where you are running ark restore describe - that command asks the ark server for a URL it can use to download the file from object storage that contains the details about the warnings and the errors for the restore. The error that you're seeing:
Warnings:  <error getting warnings: Get http://minio.heptio-ark.svc:9000/ark/restic/restore-restic-20180627115342-results.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=minio%2F20180627%2Fminio%2Fs3%2Faws4_request&X-Amz-Date=20180627T095449Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=08f84581b2ef7f32a611b2e67779dc9692ccf9c965b10422f72640f28cd6d49e: dial tcp: lookup minio.heptio-ark.svc on <IP_ADDRESS>:53: no such host>

is only about the attempt to retrieve the warnings & errors file. The restore process itself was able to talk to minio.
I think you might be running into #613 - to confirm, could you please:

provide the yaml for the PV before you take the backup
take a backup
delete your PVC and deployment
do a restore
provide the yaml for the PV after it's been restored

Thanks for your patience as we work through these issues!

@ncdc Thanks for the explanation.
This is the PV before snapshost:
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    kubernetes.io/createdby: vsphere-volume-dynamic-provisioner
    pv.kubernetes.io/bound-by-controller: "yes"
    pv.kubernetes.io/provisioned-by: kubernetes.io/vsphere-volume
  creationTimestamp: 2018-07-02T06:44:30Z
  finalizers:
  - kubernetes.io/pv-protection
  name: pvc-5ed64675-7dc3-11e8-b458-0a580af40389
  resourceVersion: "610906"
  selfLink: /api/v1/persistentvolumes/pvc-5ed64675-7dc3-11e8-b458-0a580af40389
  uid: 5f27212c-7dc3-11e8-b458-0a580af40389
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: sphere-pvc
    namespace: default
    resourceVersion: "610888"
    uid: 5ed64675-7dc3-11e8-b458-0a580af40389
  persistentVolumeReclaimPolicy: Delete
  storageClassName: sphere
  vsphereVolume:
    fsType: ext4
    volumePath: '[cf2-cvc02-kubermatic-poc] kubevols/kubernetes-dynamic-pvc-5ed64675-7dc3-11e8-b458-0a580af40389.vmdk'
status:
  phase: Bound

And this is after the restore:
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    kubernetes.io/createdby: vsphere-volume-dynamic-provisioner
    pv.kubernetes.io/bound-by-controller: "yes"
    pv.kubernetes.io/provisioned-by: kubernetes.io/vsphere-volume
  creationTimestamp: 2018-07-02T06:47:38Z
  finalizers:
  - kubernetes.io/pv-protection
  labels:
    ark-restore: restic-test-20180702084737
  name: pvc-5ed64675-7dc3-11e8-b458-0a580af40389
  resourceVersion: "611291"
  selfLink: /api/v1/persistentvolumes/pvc-5ed64675-7dc3-11e8-b458-0a580af40389
  uid: cf0a782a-7dc3-11e8-b458-0a580af40389
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: sphere-pvc
    namespace: default
    resourceVersion: "611288"
    uid: cf0fff55-7dc3-11e8-b458-0a580af40389
  persistentVolumeReclaimPolicy: Delete
  vsphereVolume:
    fsType: ext4
    volumePath: '[cf2-cvc02-kubermatic-poc] kubevols/kubernetes-dynamic-pvc-5ed64675-7dc3-11e8-b458-0a580af40389.vmdk'
status:
  phase: Bound

I don't know if it can be useful, these are the describe pod nginx
Name:           nginx-test-645796c976-h6rmx
Namespace:      default
Node:           kubermatic-bvt7mbts7d-kk2xw/<IP_ADDRESS>
Start Time:     Mon, 02 Jul 2018 08:47:38 +0200
Labels:         app=nginx-test
                ark-restore=restic-test-20180702084737
                pod-template-hash=2013527532
Annotations:    backup.ark.heptio.com/backup-volumes=persistent-storage
                snapshot.ark.heptio.com/persistent-storage=4459f730
Status:         Pending
IP:
Controlled By:  ReplicaSet/nginx-test-645796c976
Init Containers:
  restic-wait:
    Container ID:
    Image:         gcr.io/heptio-images/ark-restic-restore-helper:v0.9.0-alpha.2
    Image ID:
    Port:          <none>
    Args:
      ce7d56fd-7dc3-11e8-b458-0a580af40389
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Environment:
      POD_NAMESPACE:  default (v1:metadata.namespace)
      POD_NAME:       nginx-test-645796c976-h6rmx (v1:metadata.name)
    Mounts:
      /restores/persistent-storage from persistent-storage (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-zdksd (ro)
Containers:
  nginx-test:
    Container ID:
    Image:          nginx
    Image ID:
    Port:           80/TCP
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /usr/share/nginx/html from persistent-storage (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-zdksd (ro)
Conditions:
  Type           Status
  Initialized    False
  Ready          False
  PodScheduled   True
Volumes:
  persistent-storage:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  sphere-pvc
    ReadOnly:   false
  default-token-zdksd:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-zdksd
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     <none>
Events:
  Type     Reason                 Age               From                                  Message
  ----     ------                 ----              ----                                  -------
  Warning  FailedScheduling       2m                default-scheduler                     persistentvolumeclaim "sphere-pvc" not found
  Normal   Scheduled              2m                default-scheduler                     Successfully assigned nginx-test-645796c976-h6rmx to kubermatic-bvt7mbts7d-kk2xw
  Normal   SuccessfulMountVolume  2m                kubelet, kubermatic-bvt7mbts7d-kk2xw  MountVolume.SetUp succeeded for volume "default-token-zdksd"
  Warning  FailedMount            30s               kubelet, kubermatic-bvt7mbts7d-kk2xw  Unable to mount volumes for pod "nginx-test-645796c976-h6rmx_default(cf152e49-7dc3-11e8-b458-0a580af40389)": timeout expired waiting for volumes to attach or mount for pod "default"/"nginx-test-645796c976-h6rmx". list of unmounted volumes=[persistent-storage]. list of unattached volumes=[persistent-storage default-token-zdksd]
  Warning  FailedAttachVolume     21s (x9 over 2m)  attachdetach-controller               AttachVolume.Attach failed for volume "pvc-5ed64675-7dc3-11e8-b458-0a580af40389" : File []/vmfs/volumes/5c24140e-8a01a62c/kubevols/kubernetes-dynamic-pvc-5ed64675-7dc3-11e8-b458-0a580af40389.vmdk was not found

And this is the get pod -o yaml
apiVersion: v1
kind: Pod
metadata:
  annotations:
    backup.ark.heptio.com/backup-volumes: persistent-storage
    snapshot.ark.heptio.com/persistent-storage: 4459f730
  creationTimestamp: 2018-07-02T06:47:38Z
  labels:
    app: nginx-test
    ark-restore: restic-test-20180702084737
    pod-template-hash: "2013527532"
  name: nginx-test-645796c976-h6rmx
  namespace: default
  ownerReferences:
  - apiVersion: extensions/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: nginx-test-645796c976
    uid: cf195c75-7dc3-11e8-b458-0a580af40389
  resourceVersion: "611306"
  selfLink: /api/v1/namespaces/default/pods/nginx-test-645796c976-h6rmx
  uid: cf152e49-7dc3-11e8-b458-0a580af40389
spec:
  containers:
  - image: nginx
    imagePullPolicy: Always
    name: nginx-test
    ports:
    - containerPort: 80
      name: http-server
      protocol: TCP
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /usr/share/nginx/html
      name: persistent-storage
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-zdksd
      readOnly: true
  dnsPolicy: ClusterFirst
  initContainers:
  - args:
    - ce7d56fd-7dc3-11e8-b458-0a580af40389
    env:
    - name: POD_NAMESPACE
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.namespace
    - name: POD_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.name
    image: gcr.io/heptio-images/ark-restic-restore-helper:v0.9.0-alpha.2
    imagePullPolicy: IfNotPresent
    name: restic-wait
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /restores/persistent-storage
      name: persistent-storage
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-zdksd
      readOnly: true
  nodeName: kubermatic-bvt7mbts7d-kk2xw
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 30
  volumes:
  - name: persistent-storage
    persistentVolumeClaim:
      claimName: sphere-pvc
  - name: default-token-zdksd
    secret:
      defaultMode: 420
      secretName: default-token-zdksd
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: 2018-07-02T06:47:38Z
    message: 'containers with incomplete status: [restic-wait]'
    reason: ContainersNotInitialized
    status: "False"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: 2018-07-02T06:47:38Z
    message: 'containers with unready status: [nginx-test]'
    reason: ContainersNotReady
    status: "False"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: 2018-07-02T06:47:38Z
    status: "True"
    type: PodScheduled
  containerStatuses:
  - image: nginx
    imageID: ""
    lastState: {}
    name: nginx-test
    ready: false
    restartCount: 0
    state:
      waiting:
        reason: PodInitializing
  hostIP: <IP_ADDRESS>
  initContainerStatuses:
  - image: gcr.io/heptio-images/ark-restic-restore-helper:v0.9.0-alpha.2
    imageID: ""
    lastState: {}
    name: restic-wait
    ready: false
    restartCount: 0
    state:
      waiting:
        reason: PodInitializing
  phase: Pending
  qosClass: BestEffort
  startTime: 2018-07-02T06:47:38Z

@domcar ok, yes, this appears to be fixed by #613. Please try v0.9.0-alpha.3 and let us know if it resolves the issue. Note, some of the internals have changed - see https://github.com/heptio/ark/blob/master/docs/restic.md#pre-install-steps---upgrading-from-a-previous-v09-alpha for more details on what to do.

@ncdc Thanks a lot, that was the problem. I tried now with the v0.9.0-alpha.3 and it worked.
I'll close this Issue.


[BUG]

Rancher Server Setup

Rancher version: 2.6.9
Installation option (Docker install/Helm Chart):

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1

Proxy/Cert Details:

Information about the Cluster

Kubernetes version: v1.23.10
Cluster Type (Local/Downstream): Local

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider):

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom)

If custom, define the set of permissions: Admin

Describe the bug
We need to rolling patch the Local cluster with a new AMI. This is what I did:

Provision a NEW EC2 instance
Update cluster.yaml removing the OLD node and adding the NEW node
Run rke up --config cluster.yaml --update-only

The command just hang trying to delete the OLD node from the etcd member.
time="2023-08-24T15:51:04Z" level=info msg="[reconcile] Reconciling cluster state"
time="2023-08-24T15:51:04Z" level=info msg="[reconcile] Check etcd hosts to be deleted"
time="2023-08-24T15:51:04Z" level=info msg="[remove/etcd] Removing member [etcd-x.x.x.x] from etcd cluster"
To Reproduce
See the description of the bug
Result
The OLD node removed from the cluster and the NEW node added
Screenshots

Additional context

This looks like an RKE specific issue, are you attempting to rke up a cluster that is managed by rancher?

Hi Jake! Yes. I will post the issue under https://github.com/rancher/rke/issues.


pull request for e2e test at 01/03/2017 04:56:16

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


View doesn't scroll with selector if there is more then one

VSCode Version: Code - Insiders 1.5.0-insider (6dff3f61be3c8f99bac8e9ba9a0aecef51b4dbbb, 2016-09-03T01:41:40.747Z)
OS Version: Windows_NT ia32 10.0.14905

Steps to Reproduce:

Click on a spot within a document
Use Alt+Ctrl+(ArrowUp/ArrowDown) to create another selector instance
Hold ArrowUp or ArrowDown until the selectors get out of the view

Possible solution:
Make the view follow the main selector (the bold one)

@VojtechStep Some time ago (more than 1 year) we had the following behaviour:

when going up we would reveal the first (lowest line number) cursor
when going down we wold reveal the last (highest line number) cursor

In many cases, where having multiple cursors that would span more than the viewport size, this would lead to a very jumpy behaviour. The root problem is that we don't know where the user is looking when there are multiple cursors...

@alexandrudima how about: when all cursors are currently visible and a subset of them are moving outside the viewport, all in the same direction, then scroll the editor in that direction. I.e. do try to scroll when there is no ambiguity.

:+1: This could be implemented by computing a bounding box around all the cursors and if the bounding box fits within the viewport, then scroll the viewport accordingly.


<EMAIL_ADDRESS>decompress error

Failed to extract files from C:\Users\redacted\scoop\apps\twilio\4.2.0\\twilio-win32-x64.tar.
Log file:
  ~\scoop\apps\twilio\4.2.0\\7zip.log

Please try again or create a new issue by using the following link and paste your console output:

:( I'm following the CLI guide from: https://www.twilio.com/docs/sms/quickstart/node#receive-and-reply-to-inbound-sms-messages-with-express

same issue for me.

Hey @andrew-wiskus & @dwexel,
Hope you're using Powershell as an Admin, that's an important step.


Why manual mock by creating manual mock file in mocks folder not work

I tried mock method in ES6 class, by creating manual mock file in __mock__folder, but mock file not working at all. Here is my project:
├── __mocks__
│   └── MockTestDependency.js
├── MockTestDependency.js
└── MockTest.test.js

// ./MockTestDependency.js
export default class MockTestDependency {
    addAction(value1, value2) {
        return value1 + value2
    }
}

// ./__mocks__/MockTestDependency.js
export default {
    addAction: jest.fn((value1, value2) => {
        return value1 + value2 + 1
    })
}

// ./MockTest.test.js
import MockTestDependency from "./MockTestDependency"

beforeAll(() => {
    jest.mock('MockTestDependency')
})

describe('mock test', () => {
    it('first case', () => {
        let mockTestDependency = new MockTestDependency()
        expect(mockTestDependency.addAction(1, 2)).toBe(4)
    })
})

Any help would be appreciated.

Because you use wrong path. Use jest.mock('./MockTestDependency').

@thymikee still not work

still cannot repro

here's my package.json
{
  "name": "SimpleJestDemo",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.2.0",
    "react-native": "0.53.0"
  },
  "devDependencies": {
    "babel-jest": "^22.2.0",
    "babel-preset-react-native": "4.0.0",
    "jest": "22.2.1",
    "react-test-renderer": "16.2.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

might something wrong here? @thymikee

Nothing wrong with the config, but this is not a help forum unfortunately. Please reach out some help on our help page: https://facebook.github.io/jest/en/help.html and make sure you create a repo with minimal example of your problem before you show it to anybody.

ok, sorry for wasting your time, and thanks! @thymikee


proposal: write release tool to run your package's callers' tests

In https://github.com/golang/go/issues/24301#issuecomment-390788506 I proposed in a comment:

We've been discussing some sort of go release command that both makes releases/tagging easy, but also checks API compatibility (like the Go-internal go tool api checker I wrote for Go releases). It might also be able to query godoc.org and find callers of your package and run their tests against your new version too at pre-release time, before any tag is pushed. etc.

And later in that issue, I said:

With all the cloud providers starting to offer pay-by-the-second containers-as-a-service, I see no reason we couldn't provide this as an open source tool that anybody can run and pay the $0.57 or $1.34 they need to to run a bazillion tests over a bunch of hosts for a few minutes.

@SamWhited and @mattfarina had objections (https://github.com/golang/go/issues/24301#issuecomment-390792056, https://github.com/golang/go/issues/24301#issuecomment-390794717) about the inclusivity of such a tool, so I'm opening this bug so we don't cause too much noise in the other issue.
Such a tool would involve:

querying a service (such as godoc.org or anything implementing the "Go workspace abstraction") to find your callers
running the tests (or a fraction thereof) either

locally, possibly overnight
on a cloud provider of your choice (AWS Fargate, Azure Container Service, Digital Ocean, GCP, etc)

... and telling you if they pass before your change, but fail after your change, so you can release a new version of your package with confidence.
In local mode, it'd use your local GOOS/GOARCH. On cloud, Linux containers are cheapest, but it could also spin up Windows VMs like we do with Go. (Each Go commit gets a fresh new Windows VM that boots in under a minute and runs a few tests and then the VM is destroyed).
None of this costs much, and the assumption is that this would be used by people (optionally) who are willing to pay for the extra assurance, and/or those whose time needed to fix regressions later is worth more than the cloud costs.
And maybe some cloud CI/CD company(s) could sponsor such builders.

Here are a few problems to be solved/questions...

Can you share how my bold question here is solved by this?
How is this simpler or easier for people than something like dep that has configurable maximums on ranges?
What about all the people who don't use a release tool (because it's complicated and extra work to setup) and break compatibility?
How does costing work for this? If you're popular you pay more. Doesn't this enable those with a lot of money while being worse for those who don't?

you're taking issue over an optional feature of a hypothetical design

I had missed the "optional feature" part, it sounds to me when reading it that the point was that the tool used some cloud service to download lots of code and run tests. I'm not sure that it would be practical to run on a laptop if you have a popular project, but I'm less concerned and it seems worth exploring if that's the case.

In addition to pulling all sources and running in one VM, since the users of your package may have their own test environment (like cgo usage) and their own os/arch combo, also to allow closed source users of your package to have this benefit...
How about the tool somehow notifies users of your package (uses a list file for closed source users) to pull your changes and test on their builders.
Maybe even have a service/daemon tool to automate this somehow and report back to you through smtp/email.

btw would Go itself use the tool to check if some change to the compiler or std broke some popular package?

This sounds like a security minefield.  A nefarious actor just has to import your project in order to get you to run their code for them.  Any such tests would have to be very well sandboxed.

@randall77 i.e. bitcoin miners
One of the reasons I suggested they run the code.

@randall77 @AlexRouSg, all of this assumes sandboxes. I assume we'd limit CPU execution time & run things under gVisor where possible, and for Windows at least use firewalled VMs (limiting network in/out, so they can't e.g. send email). What I don't know how to do is nice sandboxing for GOOS=windows on GOHOSTOS=windows without new VMs. Maybe we assume Hyper-V or something.

@bradfitz do you think having a mode to inform/let users of your package to run the test on their builders is something to look at?
I feel like people with non trivial build processes or uses of C/C++ libs would be left out.

Prior art in the Perl community: CPAN Testers. Community testing of Perl modules releases since 1998.

This sounds like a great idea. It's like a generalization of what Rust does with https://github.com/rust-lang-nursery/crater, except instead of testing the compiler for breaking changes, it's testing libraries. Many many times I see people accidentally introduce breaking changes not because they are being irresponsible but because they didn't realize what the full scope of the change was. This tool could really help with that.
I do suspect that only the best supported libraries will end up using it, unless some company makes it easy to do test runs.
I guess the main downside that I see is some people might think it's okay to make a breaking change if they find that no tests failed. For some packages I bet there are fewer tests using them directly (eg. logging libraries). But I don't think that's really a reason to not make this tool.

Not entirely sure why this is in the proposal process. Is there a proposal for the Go team to evaluate?

@rsc, yeah, no need for the proposal process. Removed.

See also #26420. As far as I can tell, these issues are basically dual: the tool proposed here is “test my dependencies with the current version of my module”, and #26420 is “test the current version of my module with the versions as seen by dependencies”.


Not Using Latest Version of @google-cloud/storage - Mismatch Bucket Typing

[READ] Step 1: Are you in the right place?

For issues related to the code in this repository file a Github issue.
If the issue pertains to Cloud Firestore, read the instructions in the "Firestore issue"
template.
For general technical questions, post a question on StackOverflow
with the firebase tag.
For general Firebase discussion, use the firebase-talk
google group.
For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
Firebase support channel.

[REQUIRED] Step 2: Describe your environment

Operating System version: MacOS 13.2 (22D49)
Firebase SDK version: firebase: 9.19.1, firebase-admin: 11.6.0
Firebase Product: storage (auth, database, storage, etc)
Node.js version: 18.14.1
NPM version: 9.3.1

[REQUIRED] Step 3: Describe the problem
Updated to latest versions of @google-cloud/storage (6.9.5) and firebase-admin (11.6.0). firebase-admin seems to want to use version 6.5.2 of @google-cloud/storage, which uses an incompatible version of Bucket.
I was able to fix the issue by manually changing yarn.lock to only have version 6.9.5 of @google-cloud/storage.
Steps to reproduce:
Install the latest versions of @google-cloud/storage and firebase-admin and try to set a variable typed as Bucket with a storage that could be of type admin.storage.Storage from firebase-admin.
Relevant Code:
(Simplified) Code Snippet
import { Storage, Bucket } from "@google-cloud/storage";
import * as admin from "firebase-admin";

export class GoogleCloudStorage {
  constructor(storage: Storage | admin.storage.Storage, storageBucket: string) {
    super();
    this.bucket = storage.bucket(storageBucket);
  }
}

error in vscode:
Type 'Bucket | Bucket' is not assignable to type 'Bucket'.

yarn.lock
<EMAIL_ADDRESS>  version "11.6.0"
  resolved ***
  integrity ***
  dependencies:
    "@fastify/busboy" "^1.1.0"
    "@firebase/database-compat" "^0.3.0"
    "@firebase/database-types" "^0.10.0"
    "@types/node" ">=12.12.47"
    jsonwebtoken "^9.0.0"
    jwks-rsa "^3.0.1"
    node-forge "^1.3.1"
    uuid "^9.0.0"
  optionalDependencies:
    "@google-cloud/firestore" "^6.4.0"
    "@google-cloud/storage" "^6.5.2"

Hi @babbott-coalesce , since @google-cloud/storage is listed as an optional dependency and since we do not pin to a specific version of the library, you should be able to manually upgrade to the latest version. This should also addressed in https://github.com/firebase/firebase-admin-node/pull/2147, which we will include in this week's release. Thanks!

Fixed with
"firebase": "^9.20.0",
"firebase-admin": "^11.7.0",

Thanks!

Still happening with
    "@google-cloud/storage": "^7.7.0",
    "firebase": "^10.7.2",
    "firebase-admin": "^12.0.0",


possible to set custom year list for every date picker?

Hi!
I have two datepicker, one for an event and one for a birthdate.
I do not want to show so much years for the event but it`s needed for the birthdate.
Is this possible?
I saw there is a "monthList" in the directive source.
Can I expose it to the angular code in any way?
Thanks!

Currently i am using the list for months and year from a service in this component itself. But you can customize the Month's list and the Day's list. But for now, there is no such feature to show only a few years, but still you can disable those years, which you think not need.


AttributeError after installation

After following the installation instructions, entering the web page yields this error:

I received this error on both Ubuntu 16.04.7 and Ubuntu 18.04.02

Hm, looks like this is related to a newer version of sqlalchemy, thought this was fixed by 07bc3a89f08a004deefc913fcfd1cec2e0ee47d2. Can you share the sqlalchemy version you're using?
Thanks!

The version automatically downloaded to the Docker instance is 1.4.3:

Here is the complete log:
I can see that 1.4.3 is installed during installation of requirements in vcs_requirements.txt
amitp@ubuntu:~/vulncode-db$ ./setup.sh
[] Ensuring all .yaml configuration files are available.
[] Checking for app.yaml existence.
[+] Created.
[] Checking for vcs_proxy.yaml existence.
[+] Created.
[*] Ensuring SSL certificates for the VCS proxy exist.
Generating a 4096 bit RSA private key
........................................................................................................................................................++
.....................................++
writing new private key to 'key.pem'
[+] Created.

[] Ensuring all third-party dependencies are satisfied.
[+] Satisfied.

Building dependency tree...
Reading state information...
default-libmysqlclient-dev is already the newest version (1.0.5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Removing intermediate container 2a76967dccf4
---> 388df33aaf0a
Step 7/10 : RUN pip3 install -r /app_setup/requirements.txt
---> Running in 097ec56bbeb3
Collecting dulwich<0.20,>=0.19
Downloading dulwich-0.19.16-py3-none-any.whl (428 kB)
Collecting gitpython==2.1.11
Downloading GitPython-2.1.11-py2.py3-none-any.whl (448 kB)
Collecting Flask>=1.1.2
Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)
Collecting PyGithub==1.40
Downloading PyGithub-1.40.tar.gz (2.6 MB)
Collecting unidiff==0.5.5
Downloading unidiff-0.5.5-py2.py3-none-any.whl (14 kB)
Collecting pyyaml
Downloading PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl (636 kB)
Collecting sqlakeyset==0.1.1559103842
Downloading sqlakeyset-0.1.1559103842-py2.py3-none-any.whl (11 kB)
Collecting mysqlclient>=1.4.6
Downloading mysqlclient-2.0.3.tar.gz (88 kB)
Collecting Flask-Bootstrap==<IP_ADDRESS>
Downloading Flask-Bootstrap-<IP_ADDRESS>.tar.gz (456 kB)
Collecting flask-marshmallow>=0.12.0
Downloading flask_marshmallow-0.14.0-py2.py3-none-any.whl (10 kB)
Collecting Flask-Migrate>=2.2.1
Downloading Flask_Migrate-2.7.0-py2.py3-none-any.whl (13 kB)
Collecting Authlib>=0.15.2
Downloading Authlib-0.15.3-py2.py3-none-any.whl (203 kB)
Collecting Flask-Script>=2.0.6
Downloading Flask-Script-2.0.6.tar.gz (43 kB)
Collecting Flask-SQLAlchemy>=2.4.0
Downloading Flask_SQLAlchemy-2.5.1-py2.py3-none-any.whl (17 kB)
Collecting Flask-WTF>=0.14.2
Downloading Flask_WTF-0.14.3-py2.py3-none-any.whl (13 kB)
Collecting marshmallow-sqlalchemy>=0.23.1
Downloading marshmallow_sqlalchemy-0.24.2-py2.py3-none-any.whl (18 kB)
Collecting google-auth==1.23
Downloading google_auth-1.23.0-py2.py3-none-any.whl (114 kB)
Collecting flask-bouncer==0.3.0
Downloading flask-bouncer-0.3.0.tar.gz (5.1 kB)
Collecting bouncer==0.1.12
Downloading bouncer-0.1.12.tar.gz (5.5 kB)
Collecting flask-debugtoolbar>=0.10.1
Downloading Flask_DebugToolbar-0.11.0-py2.py3-none-any.whl (325 kB)
Requirement already satisfied: setuptools>=40.6.3 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 21)) (54.2.0)
Collecting sqlparse==0.3.0
Downloading sqlparse-0.3.0-py2.py3-none-any.whl (39 kB)
Collecting pygments==2.4.2
Downloading Pygments-2.4.2-py2.py3-none-any.whl (883 kB)
Collecting colorama>=0.4.1
Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting simplejson>=3.16.0
Downloading simplejson-3.17.2-cp37-cp37m-manylinux2010_x86_64.whl (128 kB)
Collecting google-cloud-logging==2.0.0
Downloading google_cloud_logging-2.0.0-py2.py3-none-any.whl (175 kB)
Collecting sqlalchemy<1.4
Downloading SQLAlchemy-1.3.23-cp37-cp37m-manylinux2010_x86_64.whl (1.3 MB)
Collecting dominate
Downloading dominate-2.6.0-py2.py3-none-any.whl (29 kB)
Collecting visitor
Downloading visitor-0.1.3.tar.gz (3.3 kB)
Collecting blinker
Downloading blinker-1.4.tar.gz (111 kB)
Collecting gitdb2>=2.0.0
Downloading gitdb2-4.0.2-py3-none-any.whl (1.1 kB)
Collecting rsa<5,>=3.1.4
Downloading rsa-4.7.2-py3-none-any.whl (34 kB)
Collecting six>=1.9.0
Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting cachetools<5.0,>=2.0.0
Downloading cachetools-4.2.1-py3-none-any.whl (12 kB)
Collecting pyasn1-modules>=0.2.1
Downloading pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
Collecting google-api-core[grpc]<2.0.0dev,>=1.22.0
Downloading google_api_core-1.26.3-py2.py3-none-any.whl (93 kB)
Collecting google-cloud-core<2.0dev,>=1.4.1
Downloading google_cloud_core-1.6.0-py2.py3-none-any.whl (28 kB)
Collecting proto-plus>=1.11.0
Downloading proto_plus-1.18.1-py3-none-any.whl (42 kB)
Collecting requests>=2.14.0
Downloading requests-2.25.1-py2.py3-none-any.whl (61 kB)
Collecting pyjwt
Downloading PyJWT-2.0.1-py3-none-any.whl (15 kB)
Collecting python-dateutil
Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting cryptography
Downloading cryptography-3.4.7-cp36-abi3-manylinux2014_x86_64.whl (3.2 MB)
Collecting urllib3>=1.24.1
Downloading urllib3-1.26.4-py2.py3-none-any.whl (153 kB)
Collecting certifi
Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
Collecting Werkzeug>=0.15
Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
Collecting click>=5.1
Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
Collecting Jinja2>=2.10.1
Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB)
Collecting itsdangerous>=0.24
Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting marshmallow>=2.0.0
Downloading marshmallow-3.11.1-py2.py3-none-any.whl (46 kB)
Collecting alembic>=0.7
Downloading alembic-1.5.8-py2.py3-none-any.whl (159 kB)
Collecting WTForms
Downloading WTForms-2.3.3-py2.py3-none-any.whl (169 kB)
Collecting Mako
Downloading Mako-1.1.4-py2.py3-none-any.whl (75 kB)
Collecting python-editor>=0.3
Downloading python_editor-1.0.4-py3-none-any.whl (4.9 kB)
Collecting gitdb>=4.0.1
Downloading gitdb-4.0.7-py3-none-any.whl (63 kB)
Collecting smmap<5,>=3.0.1
Downloading smmap-4.0.0-py2.py3-none-any.whl (24 kB)
Collecting packaging>=14.3
Downloading packaging-20.9-py2.py3-none-any.whl (40 kB)
Collecting googleapis-common-protos<2.0dev,>=1.6.0
Downloading googleapis_common_protos-1.53.0-py2.py3-none-any.whl (198 kB)
Collecting protobuf>=3.12.0
Downloading protobuf-3.15.6-cp37-cp37m-manylinux1_x86_64.whl (1.0 MB)
Collecting pytz
Downloading pytz-2021.1-py2.py3-none-any.whl (510 kB)
Collecting grpcio<2.0dev,>=1.29.0
Downloading grpcio-1.36.1-cp37-cp37m-manylinux2014_x86_64.whl (4.1 MB)
Collecting google-cloud-core<2.0dev,>=1.4.1
Downloading google_cloud_core-1.5.0-py2.py3-none-any.whl (27 kB)
Collecting MarkupSafe>=0.23
Downloading MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl (33 kB)
Collecting pyparsing>=2.0.2
Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting pyasn1<0.5.0,>=0.4.6
Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
Collecting idna<3,>=2.5
Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting chardet<5,>=3.0.2
Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)
Collecting cffi>=1.12
Downloading cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl (402 kB)
Collecting pycparser
Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
Building wheels for collected packages: bouncer, Flask-Bootstrap, flask-bouncer, PyGithub, Flask-Script, mysqlclient, blinker, visitor
Building wheel for bouncer (setup.py): started
Building wheel for bouncer (setup.py): finished with status 'done'
Created wheel for bouncer: filename=bouncer-0.1.12-py3-none-any.whl size=4870 sha256=3787aca1bd2fe3b876e04b2f7558a5fba9ffaebece2fd0018fee58fc18393c45
Stored in directory: /root/.cache/pip/wheels/b4/fd/4b/d93a9859e184e72fb49b9220e17a4e36786dc9dfc727352c0a
Building wheel for Flask-Bootstrap (setup.py): started
Building wheel for Flask-Bootstrap (setup.py): finished with status 'done'
Created wheel for Flask-Bootstrap: filename=Flask_Bootstrap-<IP_ADDRESS>-py3-none-any.whl size=460123 sha256=4518efaad16bec6e4a462ec7f50e84baa4e5e10b9b42ae04a4f8dbffaa592e5d
Stored in directory: /root/.cache/pip/wheels/67/a2/d6/50d039c9b59b4caca6d7b53839c8100354a52ab7553d2456eb
Building wheel for flask-bouncer (setup.py): started
Building wheel for flask-bouncer (setup.py): finished with status 'done'
Created wheel for flask-bouncer: filename=flask_bouncer-0.3.0-py3-none-any.whl size=3391 sha256=91e4accc62393ffe897c92f5cd427881878a6628c48dababc35c8bc66e4bc98c
Stored in directory: /root/.cache/pip/wheels/e3/00/83/f7896a16e7a58633444131f91c9b73995df7b5d9c76425bd51
Building wheel for PyGithub (setup.py): started
Building wheel for PyGithub (setup.py): finished with status 'done'
Created wheel for PyGithub: filename=PyGithub-1.40-py3-none-any.whl size=3184948 sha256=380c8dfa1c39f0c1c5b1e5c4b39b57d400d552a38e406353715527ce379723fa
Stored in directory: /root/.cache/pip/wheels/44/7f/95/7a5552a146f7f43beff9b471a978c139611851d51429d7da8a
Building wheel for Flask-Script (setup.py): started
Building wheel for Flask-Script (setup.py): finished with status 'done'
Created wheel for Flask-Script: filename=Flask_Script-2.0.6-py3-none-any.whl size=14015 sha256=3037d7d02ee1fc1a85609bee98498dc0b227e8a917464e2fb322ed0867560f23
Stored in directory: /root/.cache/pip/wheels/b5/fb/6b/01ea56e8a6486540ebe086676c8b3a823f1bbcc830df0cd4f0
Building wheel for mysqlclient (setup.py): started
Building wheel for mysqlclient (setup.py): finished with status 'done'
Created wheel for mysqlclient: filename=mysqlclient-2.0.3-cp37-cp37m-linux_x86_64.whl size=114851 sha256=5aca73417673cbc9124b21dd71b11632ddb6b4b3aad690f223b6d15d183cca08
Stored in directory: /root/.cache/pip/wheels/79/1c/f8/11fafab45fe6696eea63794a5d747b9c6b54990ac6f1885fb7
Building wheel for blinker (setup.py): started
Building wheel for blinker (setup.py): finished with status 'done'
Created wheel for blinker: filename=blinker-1.4-py3-none-any.whl size=13451 sha256=596c94f79bcb484d3e88aa93d314a69675b754399b3ae990c2f87779eb5c1317
Stored in directory: /root/.cache/pip/wheels/22/f5/18/df711b66eb25b21325c132757d4314db9ac5e8dabeaf196eab
Building wheel for visitor (setup.py): started
Building wheel for visitor (setup.py): finished with status 'done'
Created wheel for visitor: filename=visitor-0.1.3-py3-none-any.whl size=3929 sha256=31d812836313f3710b9fcfef00c5c3a3785849e974374f32163e065b1145f775
Stored in directory: /root/.cache/pip/wheels/64/34/11/053f47218984c9a31a00f911ed98dda036b867481dcc527a12
Successfully built bouncer Flask-Bootstrap flask-bouncer PyGithub Flask-Script mysqlclient blinker visitor
Installing collected packages: six, pyasn1, urllib3, rsa, pyparsing, pyasn1-modules, protobuf, MarkupSafe, idna, chardet, certifi, cachetools, Werkzeug, smmap, requests, pytz, pycparser, packaging, Jinja2, itsdangerous, googleapis-common-protos, google-auth, click, sqlalchemy, python-editor, python-dateutil, Mako, grpcio, google-api-core, gitdb, Flask, cffi, WTForms, visitor, pyjwt, proto-plus, marshmallow, google-cloud-core, gitdb2, Flask-SQLAlchemy, dominate, cryptography, bouncer, blinker, alembic, unidiff, sqlparse, sqlakeyset, simplejson, pyyaml, pygments, PyGithub, mysqlclient, marshmallow-sqlalchemy, google-cloud-logging, gitpython, Flask-WTF, Flask-Script, Flask-Migrate, flask-marshmallow, flask-debugtoolbar, flask-bouncer, Flask-Bootstrap, dulwich, colorama, Authlib
Successfully installed Authlib-0.15.3 Flask-1.1.2 Flask-Bootstrap-<IP_ADDRESS> Flask-Migrate-2.7.0 Flask-SQLAlchemy-2.5.1 Flask-Script-2.0.6 Flask-WTF-0.14.3 Jinja2-2.11.3 Mako-1.1.4 MarkupSafe-1.1.1 PyGithub-1.40 WTForms-2.3.3 Werkzeug-1.0.1 alembic-1.5.8 blinker-1.4 bouncer-0.1.12 cachetools-4.2.1 certifi-2020.12.5 cffi-1.14.5 chardet-4.0.0 click-7.1.2 colorama-0.4.4 cryptography-3.4.7 dominate-2.6.0 dulwich-0.19.16 flask-bouncer-0.3.0 flask-debugtoolbar-0.11.0 flask-marshmallow-0.14.0 gitdb-4.0.7 gitdb2-4.0.2 gitpython-2.1.11 google-api-core-1.26.3 google-auth-1.23.0 google-cloud-core-1.5.0 google-cloud-logging-2.0.0 googleapis-common-protos-1.53.0 grpcio-1.36.1 idna-2.10 itsdangerous-1.1.0 marshmallow-3.11.1 marshmallow-sqlalchemy-0.24.2 mysqlclient-2.0.3 packaging-20.9 proto-plus-1.18.1 protobuf-3.15.6 pyasn1-0.4.8 pyasn1-modules-0.2.8 pycparser-2.20 pygments-2.4.2 pyjwt-2.0.1 pyparsing-2.4.7 python-dateutil-2.8.1 python-editor-1.0.4 pytz-2021.1 pyyaml-5.4.1 requests-2.25.1 rsa-4.7.2 simplejson-3.17.2 six-1.15.0 smmap-4.0.0 sqlakeyset-0.1.1559103842 sqlalchemy-1.3.23 sqlparse-0.3.0 unidiff-0.5.5 urllib3-1.26.4 visitor-0.1.3
Removing intermediate container 097ec56bbeb3
---> 87df40789dec
Step 8/10 : RUN pip3 install -r /app_setup/dev_requirements.txt
---> Running in 5a08fa33a8f0
Requirement already satisfied: dulwich<0.20,>=0.19 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 1)) (0.19.16)
Requirement already satisfied: gitpython==2.1.11 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 2)) (2.1.11)
Requirement already satisfied: Flask>=1.1.2 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 3)) (1.1.2)
Requirement already satisfied: PyGithub==1.40 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 4)) (1.40)
Requirement already satisfied: unidiff==0.5.5 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 5)) (0.5.5)
Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 6)) (5.4.1)
Requirement already satisfied: sqlakeyset==0.1.1559103842 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/vcs_requirements.txt (line 7)) (0.1.1559103842)
Requirement already satisfied: mysqlclient>=1.4.6 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 3)) (2.0.3)
Requirement already satisfied: Flask-Bootstrap==<IP_ADDRESS> in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 6)) (<IP_ADDRESS>)
Requirement already satisfied: flask-marshmallow>=0.12.0 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 7)) (0.14.0)
Requirement already satisfied: Flask-Migrate>=2.2.1 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 8)) (2.7.0)
Requirement already satisfied: Authlib>=0.15.2 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 9)) (0.15.3)
Requirement already satisfied: Flask-Script>=2.0.6 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 10)) (2.0.6)
Requirement already satisfied: Flask-SQLAlchemy>=2.4.0 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 11)) (2.5.1)
Requirement already satisfied: Flask-WTF>=0.14.2 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 14)) (0.14.3)
Requirement already satisfied: marshmallow-sqlalchemy>=0.23.1 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 15)) (0.24.2)
Requirement already satisfied: google-auth==1.23 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 16)) (1.23.0)
Requirement already satisfied: flask-bouncer==0.3.0 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 17)) (0.3.0)
Requirement already satisfied: bouncer==0.1.12 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 18)) (0.1.12)
Requirement already satisfied: flask-debugtoolbar>=0.10.1 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 20)) (0.11.0)
Requirement already satisfied: setuptools>=40.6.3 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 21)) (54.2.0)
Requirement already satisfied: sqlparse==0.3.0 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 22)) (0.3.0)
Requirement already satisfied: pygments==2.4.2 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 23)) (2.4.2)
Requirement already satisfied: colorama>=0.4.1 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 24)) (0.4.4)
Requirement already satisfied: simplejson>=3.16.0 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 28)) (3.17.2)
Requirement already satisfied: google-cloud-logging==2.0.0 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 33)) (2.0.0)
Requirement already satisfied: sqlalchemy<1.4 in /usr/local/lib/python3.7/site-packages (from -r /app_setup/requirements.txt (line 36)) (1.3.23)
Collecting pylint
Downloading pylint-2.7.4-py3-none-any.whl (346 kB)
Collecting black>=20.8b1
Downloading black-20.8b1.tar.gz (1.1 MB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting pytest==5.2.0
Downloading pytest-5.2.0-py3-none-any.whl (226 kB)
Collecting pytest-mock==1.11.0
Downloading pytest_mock-1.11.0-py2.py3-none-any.whl (9.8 kB)
Collecting pytest-cov==2.7.1
Downloading pytest_cov-2.7.1-py2.py3-none-any.whl (17 kB)
Collecting pytest-flask-sqlalchemy==1.0.2
Downloading pytest_flask_sqlalchemy-1.0.2-py3-none-any.whl (11 kB)
Collecting bandit==1.6.2
Downloading bandit-1.6.2-py2.py3-none-any.whl (122 kB)
Collecting mypy==0.770
Downloading mypy-0.770-cp37-cp37m-manylinux1_x86_64.whl (21.7 MB)
Collecting mypy-extensions==0.4.3
Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting sqlalchemy-stubs==0.3
Downloading sqlalchemy_stubs-0.3-py3-none-any.whl (115 kB)
Collecting pandas==0.25.1
Downloading pandas-0.25.1-cp37-cp37m-manylinux1_x86_64.whl (10.4 MB)
Collecting flask-shell-ipython==0.4.1
Downloading flask_shell_ipython-0.4.1-py2.py3-none-any.whl (3.5 kB)
Collecting stevedore>=1.20.0
Downloading stevedore-3.3.0-py3-none-any.whl (49 kB)
Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.7/site-packages (from bandit==1.6.2->-r /app_setup/dev_requirements.txt (line 10)) (1.15.0)
Requirement already satisfied: visitor in /usr/local/lib/python3.7/site-packages (from Flask-Bootstrap==<IP_ADDRESS>->-r /app_setup/requirements.txt (line 6)) (0.1.3)
Requirement already satisfied: dominate in /usr/local/lib/python3.7/site-packages (from Flask-Bootstrap==<IP_ADDRESS>->-r /app_setup/requirements.txt (line 6)) (2.6.0)
Requirement already satisfied: blinker in /usr/local/lib/python3.7/site-packages (from flask-bouncer==0.3.0->-r /app_setup/requirements.txt (line 17)) (1.4)
Collecting IPython>=5.0.0
Downloading ipython-7.22.0-py3-none-any.whl (785 kB)
Requirement already satisfied: click in /usr/local/lib/python3.7/site-packages (from flask-shell-ipython==0.4.1->-r /app_setup/dev_requirements.txt (line 18)) (7.1.2)
Requirement already satisfied: gitdb2>=2.0.0 in /usr/local/lib/python3.7/site-packages (from gitpython==2.1.11->-r /app_setup/vcs_requirements.txt (line 2)) (4.0.2)
Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/site-packages (from google-auth==1.23->-r /app_setup/requirements.txt (line 16)) (4.7.2)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/site-packages (from google-auth==1.23->-r /app_setup/requirements.txt (line 16)) (4.2.1)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/site-packages (from google-auth==1.23->-r /app_setup/requirements.txt (line 16)) (0.2.8)
Requirement already satisfied: google-cloud-core<2.0dev,>=1.4.1 in /usr/local/lib/python3.7/site-packages (from google-cloud-logging==2.0.0->-r /app_setup/requirements.txt (line 33)) (1.5.0)
Requirement already satisfied: google-api-core[grpc]<2.0.0dev,>=1.22.0 in /usr/local/lib/python3.7/site-packages (from google-cloud-logging==2.0.0->-r /app_setup/requirements.txt (line 33)) (1.26.3)
Requirement already satisfied: proto-plus>=1.11.0 in /usr/local/lib/python3.7/site-packages (from google-cloud-logging==2.0.0->-r /app_setup/requirements.txt (line 33)) (1.18.1)
Collecting typed-ast<1.5.0,>=1.4.0
Downloading typed_ast-1.4.2-cp37-cp37m-manylinux1_x86_64.whl (743 kB)
Collecting typing-extensions>=3.7.4
Downloading typing_extensions-<IP_ADDRESS>-py3-none-any.whl (22 kB)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/site-packages (from pandas==0.25.1->-r /app_setup/dev_requirements.txt (line 16)) (2021.1)
Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.7/site-packages (from pandas==0.25.1->-r /app_setup/dev_requirements.txt (line 16)) (2.8.1)
Collecting numpy>=1.13.3
Downloading numpy-1.20.2-cp37-cp37m-manylinux2010_x86_64.whl (15.3 MB)
Requirement already satisfied: requests>=2.14.0 in /usr/local/lib/python3.7/site-packages (from PyGithub==1.40->-r /app_setup/vcs_requirements.txt (line 4)) (2.25.1)
Requirement already satisfied: pyjwt in /usr/local/lib/python3.7/site-packages (from PyGithub==1.40->-r /app_setup/vcs_requirements.txt (line 4)) (2.0.1)
Collecting wcwidth
Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting more-itertools>=4.0.0
Downloading more_itertools-8.7.0-py3-none-any.whl (48 kB)
Collecting atomicwrites>=1.0
Downloading atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB)
Collecting attrs>=17.4.0
Downloading attrs-20.3.0-py2.py3-none-any.whl (49 kB)
Requirement already satisfied: packaging in /usr/local/lib/python3.7/site-packages (from pytest==5.2.0->-r /app_setup/dev_requirements.txt (line 5)) (20.9)
Collecting pluggy<1.0,>=0.12
Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting py>=1.5.0
Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
Collecting importlib-metadata>=0.12
Downloading importlib_metadata-3.10.0-py3-none-any.whl (14 kB)
Collecting coverage>=4.4
Downloading coverage-5.5-cp37-cp37m-manylinux2010_x86_64.whl (242 kB)
Requirement already satisfied: cryptography in /usr/local/lib/python3.7/site-packages (from Authlib>=0.15.2->-r /app_setup/requirements.txt (line 9)) (3.4.7)
Collecting toml>=0.10.1
Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting regex>=2020.1.8
Downloading regex-2021.3.17-cp37-cp37m-manylinux2014_x86_64.whl (721 kB)
Collecting appdirs
Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting pathspec<1,>=0.6
Downloading pathspec-0.8.1-py2.py3-none-any.whl (28 kB)
Requirement already satisfied: urllib3>=1.24.1 in /usr/local/lib/python3.7/site-packages (from dulwich<0.20,>=0.19->-r /app_setup/vcs_requirements.txt (line 1)) (1.26.4)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/site-packages (from dulwich<0.20,>=0.19->-r /app_setup/vcs_requirements.txt (line 1)) (2020.12.5)
Requirement already satisfied: Jinja2>=2.10.1 in /usr/local/lib/python3.7/site-packages (from Flask>=1.1.2->-r /app_setup/vcs_requirements.txt (line 3)) (2.11.3)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.7/site-packages (from Flask>=1.1.2->-r /app_setup/vcs_requirements.txt (line 3)) (1.1.0)
Requirement already satisfied: Werkzeug>=0.15 in /usr/local/lib/python3.7/site-packages (from Flask>=1.1.2->-r /app_setup/vcs_requirements.txt (line 3)) (1.0.1)
Requirement already satisfied: marshmallow>=2.0.0 in /usr/local/lib/python3.7/site-packages (from flask-marshmallow>=0.12.0->-r /app_setup/requirements.txt (line 7)) (3.11.1)
Requirement already satisfied: alembic>=0.7 in /usr/local/lib/python3.7/site-packages (from Flask-Migrate>=2.2.1->-r /app_setup/requirements.txt (line 8)) (1.5.8)
Requirement already satisfied: WTForms in /usr/local/lib/python3.7/site-packages (from Flask-WTF>=0.14.2->-r /app_setup/requirements.txt (line 14)) (2.3.3)
Requirement already satisfied: Mako in /usr/local/lib/python3.7/site-packages (from alembic>=0.7->Flask-Migrate>=2.2.1->-r /app_setup/requirements.txt (line 8)) (1.1.4)
Requirement already satisfied: python-editor>=0.3 in /usr/local/lib/python3.7/site-packages (from alembic>=0.7->Flask-Migrate>=2.2.1->-r /app_setup/requirements.txt (line 8)) (1.0.4)
Requirement already satisfied: gitdb>=4.0.1 in /usr/local/lib/python3.7/site-packages (from gitdb2>=2.0.0->gitpython==2.1.11->-r /app_setup/vcs_requirements.txt (line 2)) (4.0.7)
Requirement already satisfied: smmap<5,>=3.0.1 in /usr/local/lib/python3.7/site-packages (from gitdb>=4.0.1->gitdb2>=2.0.0->gitpython==2.1.11->-r /app_setup/vcs_requirements.txt (line 2)) (4.0.0)
Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.6.0 in /usr/local/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.22.0->google-cloud-logging==2.0.0->-r /app_setup/requirements.txt (line 33)) (1.53.0)
Requirement already satisfied: protobuf>=3.12.0 in /usr/local/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.22.0->google-cloud-logging==2.0.0->-r /app_setup/requirements.txt (line 33)) (3.15.6)
Requirement already satisfied: grpcio<2.0dev,>=1.29.0 in /usr/local/lib/python3.7/site-packages (from google-api-core[grpc]<2.0.0dev,>=1.22.0->google-cloud-logging==2.0.0->-r /app_setup/requirements.txt (line 33)) (1.36.1)
Collecting zipp>=0.5
Downloading zipp-3.4.1-py3-none-any.whl (5.2 kB)
Collecting backcall
Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting pexpect>4.3
Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
Collecting pickleshare
Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting traitlets>=4.2
Downloading traitlets-5.0.5-py3-none-any.whl (100 kB)
Collecting decorator
Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting jedi>=0.16
Downloading jedi-0.18.0-py2.py3-none-any.whl (1.4 MB)
Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0
Downloading prompt_toolkit-3.0.18-py3-none-any.whl (367 kB)
Collecting parso<0.9.0,>=0.8.0
Downloading parso-0.8.1-py2.py3-none-any.whl (93 kB)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/site-packages (from Jinja2>=2.10.1->Flask>=1.1.2->-r /app_setup/vcs_requirements.txt (line 3)) (1.1.1)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.7/site-packages (from packaging->pytest==5.2.0->-r /app_setup/dev_requirements.txt (line 5)) (2.4.7)
Collecting ptyprocess>=0.5
Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth==1.23->-r /app_setup/requirements.txt (line 16)) (0.4.8)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/site-packages (from requests>=2.14.0->PyGithub==1.40->-r /app_setup/vcs_requirements.txt (line 4)) (2.10)
Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.7/site-packages (from requests>=2.14.0->PyGithub==1.40->-r /app_setup/vcs_requirements.txt (line 4)) (4.0.0)
Collecting pbr!=2.1.0,>=2.0.0
Downloading pbr-5.5.1-py2.py3-none-any.whl (106 kB)
Collecting ipython-genutils
Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting mccabe<0.7,>=0.6
Downloading mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
Collecting astroid<2.7,>=2.5.2
Downloading astroid-2.5.2-py3-none-any.whl (222 kB)
Collecting isort<6,>=4.2.5
Downloading isort-5.8.0-py3-none-any.whl (103 kB)
Collecting lazy-object-proxy>=1.4.0
Downloading lazy_object_proxy-1.6.0-cp37-cp37m-manylinux1_x86_64.whl (55 kB)
Collecting wrapt<1.13,>=1.11
Downloading wrapt-1.12.1.tar.gz (27 kB)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.7/site-packages (from cryptography->Authlib>=0.15.2->-r /app_setup/requirements.txt (line 9)) (1.14.5)
Requirement already satisfied: pycparser in /usr/local/lib/python3.7/site-packages (from cffi>=1.12->cryptography->Authlib>=0.15.2->-r /app_setup/requirements.txt (line 9)) (2.20)
Building wheels for collected packages: black, wrapt
Building wheel for black (PEP 517): started
Building wheel for black (PEP 517): finished with status 'done'
Created wheel for black: filename=black-20.8b1-py3-none-any.whl size=124184 sha256=fdb61508e4583fcbc21a656147ed7f12f152ce1518ed18fa963e738a7fb3189d
Stored in directory: /root/.cache/pip/wheels/c5/85/79/f3af8daaf8037c0bf14beb3b7a1511a39b6e6902ca2aaf494e
Building wheel for wrapt (setup.py): started
Building wheel for wrapt (setup.py): finished with status 'done'
Created wheel for wrapt: filename=wrapt-1.12.1-cp37-cp37m-linux_x86_64.whl size=76450 sha256=fd4934bf3f80bf3514a4dd1cba141e759214a70ab4a149767793fbd0cbda32b2
Stored in directory: /root/.cache/pip/wheels/62/76/4c/aa25851149f3f6d9785f6c869387ad82b3fd37582fa8147ac6
Successfully built black wrapt
Installing collected packages: zipp, typing-extensions, importlib-metadata, wcwidth, py, ptyprocess, pluggy, parso, more-itertools, ipython-genutils, attrs, atomicwrites, wrapt, typed-ast, traitlets, pytest, prompt-toolkit, pickleshare, pexpect, pbr, mypy-extensions, lazy-object-proxy, jedi, decorator, backcall, toml, stevedore, regex, pytest-mock, pathspec, numpy, mypy, mccabe, isort, IPython, coverage, astroid, appdirs, sqlalchemy-stubs, pytest-flask-sqlalchemy, pytest-cov, pylint, pandas, flask-shell-ipython, black, bandit
Successfully installed IPython-7.22.0 appdirs-1.4.4 astroid-2.5.2 atomicwrites-1.4.0 attrs-20.3.0 backcall-0.2.0 bandit-1.6.2 black-20.8b1 coverage-5.5 decorator-4.4.2 flask-shell-ipython-0.4.1 importlib-metadata-3.10.0 ipython-genutils-0.2.0 isort-5.8.0 jedi-0.18.0 lazy-object-proxy-1.6.0 mccabe-0.6.1 more-itertools-8.7.0 mypy-0.770 mypy-extensions-0.4.3 numpy-1.20.2 pandas-0.25.1 parso-0.8.1 pathspec-0.8.1 pbr-5.5.1 pexpect-4.8.0 pickleshare-0.7.5 pluggy-0.13.1 prompt-toolkit-3.0.18 ptyprocess-0.7.0 py-1.10.0 pylint-2.7.4 pytest-5.2.0 pytest-cov-2.7.1 pytest-flask-sqlalchemy-1.0.2 pytest-mock-1.11.0 regex-2021.3.17 sqlalchemy-stubs-0.3 stevedore-3.3.0 toml-0.10.2 traitlets-5.0.5 typed-ast-1.4.2 typing-extensions-<IP_ADDRESS> wcwidth-0.2.5 wrapt-1.12.1 zipp-3.4.1
Removing intermediate container 5a08fa33a8f0
---> 183ab9d01f4c
Step 9/10 : WORKDIR /app
---> Running in 61b075e55449
Removing intermediate container 61b075e55449
---> a4091b909770
Step 10/10 : EXPOSE 8080/tcp
---> Running in ef2ca86099ae
Removing intermediate container ef2ca86099ae
---> 751cdc3429fc
Successfully built 751cdc3429fc
Successfully tagged frontend:latest
[*] You should be able to start everything with: ./docker/docker-admin.sh start
[!] Please also run ./docker/docker-admin.sh to see general information on how to fill the database and more.

Ah thanks. Should be fixed with the newest commit. Can't test it right now though. Let me know if it still doesn't work.

I reinstalled everything on a clean machine. I still get the same error, even though an older version is installed.
Here is the log:
log2.txt

Sorry for the delay.  I was able to reproduce the error and it looks like this one was a result of a latest flask-sqlalchemy change (partially to make it compatible to sqlalchemy 1.4)