"Block user" feature is never used as intended and is not well designed

So, if I've learnt my CW history lessons properly, the current block user feature was added because of #623 and #787.
Currently these things happen if a user (A) has blocked another user (B):

A cannot see B's comment, they're masked and will say: This comment can not be viewed.
B cannot see A's profile
B cannot leave comments on A's profile (at least on the front-end)
B cannot edit A's kata
...

The problem: it was added due to one user causing one flame war in the past, and this has never happened again in the future. At least for the whole year I'm on CW, I've never seen any actual occurrences of any flame war happening, so it's solving a "problem" that doesn't exist in the first place.
(Note that even things like #1198 and #1210 had happened just once before, and it was resolved by admin action, not block user.)
However, what I have seen multiple times is newbies blocking users telling they're wrong, and kata authors blocking users to stop these users posting issues on their katas (I'm looking at you, @SteffenVogel79). The latter is not normal usage of this feature. It's an abuse.
Also, block users feature should not hinder normal site usage. CW does not belong to any user, so there's no reasons being blocked by a user makes me unable to perform certain site-related actions. This is not Twitter or Facebook, we don't have user-specific timelines, just public katas that everyone can see and comment on.

Proposal:

Either remove all restrictions on those B cannot do this to A and just leave the first one apart...
Or just remove this feature, it doesn't solve anything practically and track record proves that it's causing hindrances instead. It wasn't even added with much thought in the first place. And in fact, most actually abusive things, like spams, are resolved by admin action anyway.

Voile, you are creating issues only because you think a kata have to be in your way of thinking.

That is the reason, I blocked you! I do not want to discuss or read from you! So, the blocking feature is the best and most worthy feature on codewars.
Have a nice time on codewars, but please without disturbing and annoying me.

@SteffenVogel79 What you're saying is completely wrong and off the basis of facts.
For the record, you blocked me when I posted issues at your "Construct a Car" katas:
https://www.codewars.com/kata/constructing-a-car-number-2-driving
https://www.codewars.com/kata/constructing-a-car-number-3-on-board-computer
The thing is, just like most of the OO katas on CW, these katas have serious lack of specs:

2: See the comments: did you see that at least 3 people are asking about what some of the tests are about? I was posting an issue about 2 of the things that I encountered as I'm attempting the kata, and I haven't even gone through the whole thing by that point. There are even more hidden mines.
3: It's basically 2 but lots, lots more of these mines. The consumption by distance metric are the worst: only in actual tests, zero feedback, zero information as to how the tests are set up, and in fact even the calculation of it is vague.
Also, lots, lots, lots of tests are in the actual tests only and they test behaviours which is not stated anywhere. If we have to comtemplate

I mean, seriously, both you and @g964 needs to get your heads straight and admit the fact that your kata can be unclear/have issues and you have to work with the users to resolve them, not just f**king block/shoot down the reporters and pretend they don't exist. Has anyone felt good about how g964 handled the inquiries in his kata comments? Pretty much none. In fact it's so annoying it's been vented out on various occasions; we just don't speak out in the kata comments.
And I have to say, you're even worse than him. Shooting down issues by abusing a site feature? This is bad and you should feel bad. You're not even trying to be cooperative to your kata users (there were lots of questions in your katas about the specs and you answered none).
(Shots fired because, seriously, lots of people have been thinking along the same line. I think someone has to speak out, and it's gonna be me today.)

:)

Bumping the issue. This "feature" is abused more than used for valid reasons. Considering the fact, that CW is "calm" and more-or-less friendly in the whole, there's virtually no reason why users would need to block other users. On the other hand, oversensitive kata-creators (let's be fair, they are the only ones doing this) like to block users whose views (especially on kata issues) they do not share. And this is a far more serious problem than a possibility that once in a few years some troll will start spamming messages and targetting users (this also doesn't help with the targetted downvoting bullshit).

Is this going to be fixed? Because apparently SteffenVogel is just blocking everyone who raises a issue on his katas. This is literally the worst abuse of this "feature" (if it's even a "feature" in the first place).

Another problem is that it may fix the issue if user A is exclussively targetting user B, but it changes nothing if troll is spamming everywhere. Obviously, all of the active users won't just go and block him, and even if they did, the endless flow of "this message is not shown to you"'s would still appear on the dashboard.

I've been avoiding this issue because I don't really know how to "fix" and I didn't know what to say. I've already spent more time than I wanted to so here's my initial thoughts.

@Voileexperiments

At least for the whole year I'm on CW, I've never seen any actual occurrences of any flame war happening, so it's solving a "problem" that doesn't exist in the first place.

I see you arguing with other users (mostly new users) about best practices very often. I understand the frustration, but I'd appreciate if you toned down. They're usually just lacking knowledge and/or experience and simply need more time to gain that. Words from some random person won't be enough anyways.
Also, sometimes you sound too harsh. Again, I understand the frustration of seeing similar issues happening over and over, but usually those are different users.
I personally don't mind the directness since I believe you have good intentions, but many will misunderstand you. They will react defensively and the communication will be highly inefficient. So I'd appreciate if you can pause and think about how others will feel before posting your comments.

@SteffenVogel79
Can you help me understand the problem from your point of view? You seem to have blocked many users. Can you elaborate on how they annoyed you?
I know @Voileexperiments sometimes sounds too harsh, but issues opened for the kata mentioned above seems fine. If there was other issues that triggered blocking him, please let me know so I have a better understanding.

Constructing a car #2 - Driving: 2279 code submissions and completed 49 times.
Constructing a car #3 - On-Board Computer: 471 submissions and completed 8 times.

Doesn't this show many are struggling to understand the requirements? Or they had to submit in order to find the hidden requirements? Do you think descriptions can be improved?
It's your kata, but it's for the Codewars community to solve and to learn from. So I'd like you to at least consider whenever someone opens issues rather than forcing them to stop by blocking. They're usually trying to help improving it or having problems understanding it.
If you disagree with them, explaining the reasons behind your decision will be much more constructive. This can also prevent someone else from raising the same issue again.
Like I wrote above, I only looked at the mentioned kata. So let me know if I've misunderstood the problem.

So, the blocking feature is the best and most worthy feature on codewars.

This is very depressing :(

I have never blocked anyone but I think this should be kept if used wisely. "Respect and courtesy" must be CW's motto.

I have never blocked anyone but I think this should be kept if used wisely. "Respect and courtesy" must be CW's motto.

@kazk I do not consider my tone "too harsh" for the situation in which I choose my tone; I choose my tone that I feel reflects what the other side deserves, which includes the tone of the original message and the other side's reputation. Being respected is a privilege that is earned by being, well, respectable; it is never an universal right in the first place. Yes, I do admit sometimes I get salty like everyone does, but I do adjust afterwards.
What is not mentioned here is that most of the times I'm very strongly worded because the other side starts the discussion with a condescending tone, especially prevalent with "I can't pass the test" inquiries-as-issues and UUN (Unreadable, Unmaintainable, Not for production) arguments: what do you expect to do then? Newbies buy into these arguments; and sometimes the entire discussion thread is wrong. If you don't debunk them, you lose by forfeiting the argument. If you're not strongly worded enough, you lose because you look like a wimp. I know people don't like to listen to strong worded sentences because it hurts their (sometimes blistering) ego, but I choose to do it anyways because while every choice lead to losing, it is at least the best for my mental health. I hope you can understand my situation.
(Also, humbleness goes to both sides too: if one is inexperience, they should've been sure to be extra humble and not make very strong claims because they're more likely to be incorrect. This is like, I dunno, human interaction 101? If someone's bold enough to make outrageous claims about wrong stuff despite the lack of abilities and doesn't back up at all, I feel I have all the rights to retaliate.)

I am very strongly worded about this issue because it is, to be honest, very appalling. It takes effort and time to actually pinpoint and write the issues; after all I can just solve the kata in the quickest way, do nothing about the obvious problems and let everyone after me suffer from the same thing. But then all the beta katas will be approved with tons of issues, and in the end kata quality becomes abyssmal, CW quality is dragged down as a result and everybody loses.
I know nobody wants to have issues in their katas, especially the bogus ones. I understand that. But blocking users to prevent them from posting issues because the author believes that their issues are "not a issue" is not just ridiculous, but completely disrespectful of any author-user interactions. The author might as well live in an ivory tower where they believe that their works are "perfect", and anyone who dares to point out otherwise would be banished. Now that's the real WTF right there.
(In addition, for almost all the katas with issues I can just edit them and change everything to make them make sense again, which would've saved all the troubles and avoided any needs to deal with potentially hostile kata authors. I choose not to because I still respect the will of the kata author. It's their katas, and they get to decide what the requirement is. By committing the act to outright blocking users who post issues, the kata author is basically saying they do not want to be respected. So why should I?)
Oh, by the way, yes, those two katas still have issues with completely unspecified requirements and wrong requirements.

Also, let's point out more problems with how the current "block" function is implemented:

As mentioned above, it is supposed to be a restriction on user interaction but it's interfering with site functions. Site function related restrictions should've been handled by admins (like a certain no one that has manipulated the beta system by somewhat). If I can censor people I don't like by using the block function like this, it's abuse.
It is not just visible, it's wide in the open: I can easily see a kata author has blocked me from the comment section of their katas. In fact it's even worse: #1357 is not patched so anyone can instantly see all users that have blocked them.

I recommend reading this as to how to design these user interaction related features that prevents abuse.

@Voileexperiments
You're assuming that they can recognize their lack of ability.
They think they know what they're talking about because that's all they know. If they only know one way of doing something, they won't be able to think about trade-offs.
UNN comments are often reactions to seeing something different from what they value and not being able to accept it. They're in denial. They have the right to express that and they should be able to have civil discussions. It's part of a learning process and there's no need to put them down.
"I can't pass the test" is someone being desperate and not knowing what to do. We should tell them to label their comment as questions instead and help them.

Newbies buy into these arguments; and sometimes the entire discussion thread is wrong. If you don't debunk them, you lose by forfeiting the argument. If you're not strongly worded enough, you lose because you look like a wimp.

I honestly don't understand this.
Do you argue with little kids and yell at them for not knowing better?
I mean, they might be wrong, but that's not really their fault. They just need to learn.

It takes effort and time to actually pinpoint and write the issues; after all I can just solve the kata in the quickest way, do nothing about the obvious problems and let everyone after me suffer from the same thing.
I choose not to because I still respect the will of the kata author. It's their katas, and they get to decide what the requirement is.

I know you have good intentions.
You clearly care about Codewars and have done a lot for the community.
Unfortunately, many users don't think so because they've misunderstood you and they're intimidated by you. A new user might see your comment on the dashboard and assume you're abusive user putting others down.
You might not care what others think of you, but I think that's sad and that's why I mentioned it in the first comment.

I agree blocking shouldn't be used this way, but I also understand some authors want to do it their way.
For the next version of Codewars, I was thinking of having a few separate pool of kata:

Official Kata Listing

Require certain quality to be listed here
Authors agree to adhere to Codewars standards and are not allowed to personalize the content

Personal Kata Listing

Authors are free to do whatever they like and it'll be under their namespace

Beginners Kata Listing

Kata for really basic stuff to learn languages

Also, let's point out more problems with how the current "block" function is implemented:

I agree it's not implemented well. Thanks for the link, it was a great read.

@SteffenVogel79 probably muted this issue.
I just checked if any other author does this and he is the only one that blocked multiple active power users. Maybe we can keep it as is for now.

PSA: I've just been blocked by JohanWiltink too. He's probably fed up with my issues on his kata.
Relying on users to use the block user feature responsibly when we all know it can slience users you don't like on your katas is just not gonna work. Are we still gonna repeat the same history again?

Strange. I did not block Johan, and he did not block me.
Bot we blocked YOU both! Maybe the problem is you!

What do you mean? Why don't you list out the 1000 users you've blocked? ;-)
You're the biggest prick on CW living on the highest ivory tower, and every power user knows it. I'm surprised you have the audacity to still comment on this issue.

 And they can block you... sorry, it must be very hard.
There are many power users, with whom I have discussed hard and we are still ok with each other.
But freaks like you.... no thanks.
Bye, voile. The blocking-feature ist the best feature here ever!

What? Nobody is trying to win him over.
I think you're getting the point wrong: he has been doing this for years and has basically refused any kind of communication (just look at this issue). If anything most PUs do not want to deal with him at all.
This issue is opened to advocate kazk to remove most of the (unnecessary and poorly designed) power associated with block feature to dethrone him from the ivory tower he's on right now.

Well then don't deal with him... ignoring each other seems to be the simpler way here, it doesn't look like there is any chance of reconciliation, so maybe mutually ignoring each other works better rather than try to change the whole website because of one single particular dispute between two users. But that's just my $0.02.

Yes, I have read through the issues, although I am not such an active or great user, and I'm nowhere near as experienced with coding as you, I do find the progression of this website interesting. I do not mean/did not mean to attack you personally or something, but I just think that this issue is completely pointless and just wanted to voice my opinion about that. I hope that's fine with you.
 Also, I don't think that calling people vulgarities will help your cause nonetheless, it's kind of hard to take it seriously at that point.
I don't think that a community site with no block feature will work, sometimes people just don't get on, and there needs to be a way for such people to stop the other one from interacting with them.

The thing is that when a user blocks everyone, there's no one left to raise issues on their katas, so there're lots of permanently unfixable katas around.

The thing is that when a user blocks everyone, there's no one left to raise issues on their katas, so there're lots of permanently unfixable katas around.

Maybe a (reasonable) limit on the number of users that you can block would help. But not removing the feature altogether...

Neithor Johan nor me blocks everyone! Only freaks like Voile are blocked!
The number of users blocked by me is not so high as Voile said.
He is really my important blocking!

Maybe a (reasonable) limit on the number of users that you can block would help. But not removing the feature altogether...

Why? Katas do not belong to authors. They belong to the site. By submitting your kata to CW you already forfeit your right to the original content you've written: they become CW material. This is how every site featuring user-created content works.
So no, blocking users causing a disruption in site function does not make sense, because that would imply the kata author is "special", in which they are not. Kata author do not, and should not have the privilege to block users to access to a kata's specific features.
Also, there is still the issue that block user feature is prone to abuse, and has been abused (by multiple users even). Are you going to address it? If not then this issue is not for you.

Maybe a (reasonable) limit on the number of users that you can block would help. But not removing the feature altogether...

Why? Katas do not belong to authors. They belong to the site. By submitting your kata to CW you already forfeit your right to the original content you've written: they become CW material. This is how every site featuring user-created content works.
So no, blocking users causing a disruption in site function does not make sense, because that would imply the kata author is "special", in which they are not. Kata author do not, and should not have the privilege to block users to access to a kata's specific features.
Also, there is still the issue that block user feature is prone to abuse, and has been abused (by multiple users even). Are you going to address it? If not then this issue is not for you.

If not then this issue is not for you.

Thankfully it is not up to you to decide what is for who :)
I see you are often berating other users (sometimes with vulgarities). If we go by standards of how other sites work, you'd be long excluded by now.
If you have not considered the fact that people do not want to be berated by others, then you probably should. It's the main issue that you are having (and causing to yourself).

In any case, are you contributing to the discussion? Or are you just trying to invalidate my personality?
Looks like both you and SteffenVogel is doing the latter. I thought you would be better than this ;-)

Yes, I am, I'm giving you a neutral point of view. It's not about invalidating your personality, it's about the fact that you are berating other users and then posting (pointless) issues that they are blocking you as a response.

Your "neutral" point of view is funny, because in a neutral point of view I do not enter the equation, nor SteffenVogel.
A neutral point of view is this:

Blocking users currently disrupts normal site functions
Kata do not belong to kata authors, so kata author should not be able to rig their katas in whatever means

Hence I already mentioned my suggested course of action above:

Block user do not need to be removed, but it should be revised
It should definitely not block users from interacting with katas, because katas do not belong to kata authors.  That's why blocking are supposed to be in the first place

And when will you learn to not talk about individual users? You're really "neutral" there, you know ;-) Maybe you should take your effort to post on #1646 instead.

And when will you learn to not talk about individual users?
(I'm looking at you, @SteffenVogel79)

Your opening comment is literally about picking out an individual user :)

Block user do not need to be removed, but it should be revised

Agreed, the site does not seem to have big issues in general, perhaps a limit to how many users can be permanently blocked could work, and perhaps there could also be a feature to block someone temporarily.

It should definitely not block users from interacting with katas, because katas do not belong to kata authors

Do not agree, people should be able to have complete peace of mind from abusive users.

And when will you learn to not talk about individual users?
(I'm looking at you, @SteffenVogel79)

Your opening comment is literally about picking out an individual user :)

Block user do not need to be removed, but it should be revised

Agreed, the site does not seem to have big issues in general, perhaps a limit to how many users can be permanently blocked could work, and perhaps there could also be a feature to block someone temporarily.

It should definitely not block users from interacting with katas, because katas do not belong to kata authors

Do not agree, people should be able to have complete peace of mind from abusive users.

@SteffenVogel79 did you read my comment? Can you reply to that instead of calling names?

I agree it needs improvement, but this is low priority because I already have too many problems to fix and this doesn't seem too bad:

Number of kata authors that blocked at least one active power user: 15

14 of them blocked one or two

12 of them blocked one
2 of them blocked two

8 of them authored 3 or less kata

Number of kata authors that blocked at least one active user: 18

17 of them blocked one or two

14 of them blocked one
3 of them blocked two

9 of them authored 3 or less kata

As far as I can tell, @Voileexperiments (blocked by many) and @SteffenVogel79 (blocked many) are outliers.
I can't look up those blocks temporarily so I don't know about that.

The main issue is that there isn't a separation between

general feedback, commentary
raising issues

It is reasonable for a user to be able to prevent the first, completely unreasonable for the second.
If they are not uncoupled then a solution for users who do the second would be they lose the right to do the first. However what is happening in some cases is that one user feels another one is raising issues which are not actually issues and they are blocking them to prevent that. That is a more complicated issue because someone has to judge if the issues are valid to settle the conflict.

@kazk Well, #1357 is not fixed yet, so...
I'm not sure if even my case is "too many" compared to what SteffenVogel is doing. There are users with 2 honor, there are many inactive users that haven't even posted comments, and after all there are just... 3 active users? At least compare that to what PUs have been mentioning the in gitter chat over the year about being blocked by him, that's certainly much lower in numbers.
Also, I should point out that @plasticbottle have also blocked me. I think I understand now why he insists on talking about me instead of the issue.  (It's also why disclosure of interest is a good thing!) For some reasons the blockers have been acting are low-quality trolls in this issue instead of, say, contributing to the issue.

I do agree about

If they are not uncoupled then a solution for users who do the second would be they lose the right to do the first.

though. But then this is again material for #1646, and I think we need more of kazk's feedback.

Also, I should point out that @plasticbottle have also blocked me. I think I understand now why he insists on talking about me instead of the issue

I did that as a preventative measure, since I do not want to spend much time arguing with users that like to do that all the time. All I can say is reiterate what has already been said in #805:

If a blocked user feels like they can't express themselves because they were blocked - maybe they should reconsider their actions that got them blocked in the first place.

I think they'd expect that the blocked user can't contact them anymore anyhow.

CW is not Facebook, and the discourse is not owned by anyone ;-) I don't care if the block function make you unable to see my comments (after all, everyone is free to ignore other's comments), but if I cannot comment on some of the entire discourse because I was blocked by an user, then I consider it a breach of my rights as I have the right to comment on every discourse, unless I had done something that forbids me to comment on the entire site. This has happened before, in fact twice (#1198, #1210) ;-)
The same goes to katas. Kata does not belong to kata author, so they do not have the right to arbitrarily deny an user's functionality on their katas. By tomorrow you might as well claim that by blocking me I'm not able to solve any of your katas.
In fact I think only two person here would think so ;-)

All I can say is reiterate what has already been said in #805

And in the same thread jhoffner also said "I was reluctant to add it in the first place". When you quote someone, please quote it in full and not just cherry-pick the part that flavours you ;-)
Everyone knows that why and how the block feature was implemented (see this issue's OP), and how much of a rush it was. Blocking users also blocks the entire discourse is not part of #623, and 2 of the 3 proponents there have blocked me anyway (yes, I figured out dinglemouse blocked me recently too. JohanWiltink has lifted the block though).
So what I'm saying here is: essentially jhoffner just listened to 3 particular outlier users and hastily (in 2 days) implemented a feature due to a conflict between one of them and another user; in which this feature is being abused by also the same outlier users. There were no feedback asked from any other users. In this ground I cannot claim at all that this function is well-designed at all, or is implemented in the benefit of most CW users. No, not at all.
(Also it's good to know that SteffenVogel has already behaved like that back in #623 was made. Really eye-opening!)

Also, let's get this straight: I perfectly know you don't like how I talk. But I don't care :trollface: Keep telling me this is not doing anything, so you might as well do other things instead.

Hence the title of this issue, and my strong request that it should be removed before it is certain that most users actually want this function.

Good. I respect your opinion and your view. I am here to say the opposite however. People should be able to have complete peace of mind from users that they find abusive/obnoxious. As much as you have a right to express your opinions, everyone has the right to feel comfortable on the website too.
So what do you really want to achieve?  Why don't you try instead, to find out why he blocked you, and try to say sorry/apologize and reconcile, instead of calling him out publicly on a forum, and trying to force the site admins to lift the block?

I perfectly know you don't like how I talk.

If you are such a leading figure in being blocked, then apparently I'm not alone. Perhaps community advices shouldn't be taken from you...

But I don't care :trollface:

This response entirely reflects your overall attitude.

The fact, that Voile called me a prick is the best sign, that it is the best decision to block him!

I am here to say the opposite however. People should be able to have complete peace of mind from users that they find abusive/obnoxious.

And CW should be ensuring that kata authors are fulfilling their responsibility and doing their jobs properly, which SteffenVogel has done none of them. He's just abusing this feature so he can continue not fulfilling any responsibilities as a kata author and shoot down every single issue in his kata.
If it is just used to slience particular user, I don't mind (like I don't complain about how KenKamau blocks people temporarily). But if it is used to circumvent the kata process, this is an abuse.
And CW > people, so your opinion is invalid.
If you want to argue, don't argue about me. You're still spending an entire thread commenting about me. I thought you should've learnt that already ;-)

And CW > people, so your opinion is invalid.

Umm... what? There is no CW without a userbase. If it becomes possible to keep trolling a person and the person has zero tools to stop that as per your suggestion, it means the only thing a user can do is basically delete his account and leave the website and thereby letting the troll win. And that is not cool :(
The current system seems reasonable. People can block each other, instead of going down on big flame-wars. Additionally, the current system forces people to act respectfully to each other, since there is now a real deterrent from trolling authors.

If you want to argue, don't argue about me.

I do not really care about you, but I did not like how a user in OP and ever since OP has been getting picked on. And the abusive language got me to put my $0.02 into this thread.

And CW should be ensuring that kata authors are fulfilling their responsibility

I saw a pretty good idea from the site admin in another thread for the future, I'll link it for you:
https://github.com/Codewars/codewars.com/issues/1626#issuecomment-438400435
Perhaps we simply need to be patient ;)

Last week I solved an issue, that was correct.
But I close issues like "Your description is not in the way I like" or "My code does not work. Your tests must be wrong!"
And I blocked Blind4Basic. This was really a fault and I unblocked him. Sorry, Blind4Basic, if you read this.
But again and again, it shows, that it is the best feature to block freaks like Voile! Really!

I kinda agree with @SteffenVogel79. Sometimes there are users that need to be blocked, I for one have not blocked anyone since I failed to see anything wrong with anyone (highest in my list is @FArekkusu and I don't hate him enough to bother blocking). But if some users want some peace of mind, they should be allowed to block a user. @Voileexperiments on pointing out issues : just give it a down-vote and rank it, and post in gitter channel that there is an issue on this Kata and let someone else post it (neither of them have blocked Blind4Basics, ZED and a ton of others).

So after one particular user threw a fit on a hastily authored "Kata" and this repo, he proceeded to block me on Codewars solely based on a (perhaps out-of-place, I'll have to admit) comment I left on the Codewars Gitter channel on his last reply to #1866 . As this particular case once again demonstrates, the block feature is commonly abused by irresponsible Kata authors who don't give a s*** about the Codewars community in order to push their s***ty Kata out of Beta.
@kazk @jhoffner Can we just agree to remove this "block" function once and for all? As @Voileexperiments stressed multiple times before:

It was hastily added to Codewars based on just one particular incident of some egotistic maniac (who I won't name here to protect his identity from those who do not already know him) causing shenanigans in the Discourse section of multiple CW Kata who requested this feature himself to prevent others from refuting his absurd actions
It has brought nothing but harm to the site. If a particular Codewarrior is found to exhibit disruptive behavior on Codewars by leaving inappropriate comments or otherwise then an admin can always step in and ban the user from continued engagement of Codewars' services. Instead, Codewars has opted to provide a "Block" button which gives the perfect excuse for snowflakes unable to handle comments from respected Codewarriors pointing out actual issues on their Kata to "ignore the elephant in the room", so to speak, by blocking them and continue on with their destructive actions
It doesn't actually work! As #1840 has demonstrated, experienced Codewarriors can easily work around the "block" by fiddling with various endpoints creating issues that the Kata author can neither view nor resolve

I'm going to have to pipe in and comment that the biggest issue with the "Block" feature is it does not understand the problem that it is trying to solve... and in the history of the Internet has never done anything but escalate the scenario.
I've gotten into a few heated interactions with people back when I was still checking stuff out on Codewars (I've since then decided to take a break for a bit, to see if that has me more level headed when I return)... but even when talking about how the to solve me getting into these interactions, I'd have not suggested this.
Essentially, there are a number of issues from Dunning-Kruger Effect, Tribalism, Confirmation Bias and a result in blocking just making stuff worse.
IIRC, I mentioned that such a feature would only make matters worse prior to me taking a little self-imposed vacation last year.

Since then there are apparently at least several cases where new users, after publishing the first beta kata and being pointed out their beta kata do not constitute acceptable quality, begin blocking power users that are pointing the above out:
https://www.codewars.com/kata/student-grades-what-grade-did-the-student-achieve
https://www.codewars.com/kata/is-fred-a-good-golfer-or-not
...how are the new users knowing this feature? Is there are group of people in behind who are actively trying to sabotage the beta process and undermine the power users or something? Because otherwise it's difficult to explain how new users magically know this feature undocumented on anywhere else besides here. This is honestly ridiculous and we're now resorting to dirty tactics, apparently?


Implement eq, ne of slice

Compute eq and ne by comparing start,
stop and step of slice
Issue #1431

@coolreader18 @youknowone cc @corona10
Can I get a review?


idris-codegen-python: rawSystem: runInteractiveProcess: exec: does not exist (No such file or directory)

Hi Ziman,
Thanks for the cool work !
I was trying to run the examples, followed carefully the readme and then I got this error message:
idris-codegen-python: rawSystem: runInteractiveProcess: exec: does not exist (No such file or directory)
any idea what I might be doing wrong ?
Regards
Jozsef

issue solved :
with:

works now :)

issue solved :
with:

works now :)


Enable language server completion tests

Description:
Disabled with commit https://github.com/ballerina-platform/ballerina-lang/pull/15936/commits/fe4c12dc62d06b4feba78c41cae8b198a24a779c with the revamp to the representation of constants  in AST

closing since the fix has been merged


⚠ 366.ru has degraded performance

In 124d21e, 366.ru (https://366.ru) experienced degraded performance:

HTTP code: 200
Response time: 1399 ms

Resolved: 366.ru performance has improved in 4aa9f4d.


Rename hosts in inventory files

Host naming is very limited, we can only have 5 hosts in each dc.
Refactor host names so we can provision a large number of hosts in each DC without conflicts.

Is this still an issue?

Yes.
Any good naming schemes? We could do ctl-X and compute-X

To make sure I'm following -- do you mean that it's not easy to deploy multiple microservices-infrastructure clusters in to the same OpenStack project because the host names would overlap?
Can you think of a simple way to solve this in Ansible?
My hope is that we can avoid predefined host names all together when we move to Terraform.

Right now in our example inventory files, we have host-01 to host-03 as management nodes, and host-04,5 as compute nodes. DC2 starts with host-06, so if you want to have more than a couple of compute nodes in DC1, you will have interleaving hostnames with DC2.

You can get around this problem by changing the name of the hosts in dc2 so there is no overlap.  I can see how this becomes complicated at scale and exposes oppertunity for operator error.
I'll mark this as an enhancement.

Terraform obsoletes this ticket. The inventory is now dynamic, you can name things whatever you want!


[devtools] add wndt72

What's changed, or what was fixed?

add What's New In DevTools (Chrome 72)

Fixes: N/A
Target Live Date: 2018-11-28

[x] This has been reviewed and approved by @kaycebasques
[x] I have run npm test locally and all tests pass.
[x] I have added the appropriate type-something label.
[x] I've staged the site and manually verified that my content displays correctly.

CC: @petele

Whoops!
There were 21 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2018/11/devtools.md#L144 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/11/devtools.md#L3 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L3 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L9 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L9 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L19 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L20 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L39 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L41 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L41 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L46 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L48 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L57 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L59 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L59 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L61 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L64 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L64 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L66 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L67 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L31 - Line must be at most 100 characters

@jbingham you can view a staged version of the page at https://pr-6900-dot-web-central.appspot.com/web/updates/2018/11/devtools

Whoops!
There were 21 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2018/11/devtools.md#L146 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/11/devtools.md#L3 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L3 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L9 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L9 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L21 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L22 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L41 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L43 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L43 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L48 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L50 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L59 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L61 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L61 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L63 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L66 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L66 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L68 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L69 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L33 - Line must be at most 100 characters

@jbingham you can open an issue with a list of feedback if you see things that need to change
https://github.com/google/WebFundamentals/issues/new

Whoops!
There were 21 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2018/11/devtools.md#L146 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/11/devtools.md#L3 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L3 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L9 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L9 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L21 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L22 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L41 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L43 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L43 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L48 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L50 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L59 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L61 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L61 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L63 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L66 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L66 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L68 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L69 - Common typo found: 'node' Should it be 'Node'?
src/content/en/updates/2018/11/devtools.md#L33 - Line must be at most 100 characters

:tada: This has been pushed live to https://developers.google.com/web/


Typo in Book Cover

The book cover should say - "Developing native agents for JVM"

Create another image using https://www.canva.com/


Code inside of preprocessing tokens is being ignored.

This /was/ a bug in an older version.  It's working correctly as of Build <IP_ADDRESS>.TiVo.ClassHierarchy.11.


Fix memory leak release

Hi! I see you've merged the pull request that fixes a memory leak. Can you please release a new version for it? It would be great for users of Zip to have the fix. Thanks and thanks for Zip framework!

Thanks @chrisamanse. Released!


export dictionary addToken function

Please provide Issues links to:

Issues: #

Provide test code:

Description
...

Codecov Report

Merging #120 (39e1a5d) into master (be4ddfd) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #120   +/-   ##
=======================================
  Coverage   92.50%   92.50%
=======================================
  Files          10       10
  Lines        1000     1000
=======================================
  Hits          925      925
  Misses         50       50
  Partials       25       25

Impacted Files
Coverage Δ

dict_1.16.go
91.30% <100.00%> (ø)

dict_util.go
91.91% <100.00%> (ø)

dictionary.go
90.16% <100.00%> (ø)

Continue to review full report at Codecov.

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


Get LBRY blockchain listed on Thorchain DEX

Since is becoming increasily harder to exchange LBC it would be nice if it would be listed on a decentralized multichain exchange like Thorchain.
For that to happend it's necesary to write a Bifröst module and propose it via a THORChain Improvement Proposal (TIP) as stated on ThorChain documentation.
https://docs.thorchain.org/how-it-works/governance#protocol-upgrades-and-thorchain-improvement-proposals-tips

By the way, do you know LBC is already supported by BLOCK-DX atomic swap DEX? Soon LBC be supported also by XLIte wallet, it will be possible to store and swap LBC for BTC LTC whatever UTXO coin with light wallet.
For more details please check ouf https://blockdx.com/ more details on blocknet official discord.

LBRY is tradable on BlockDx already as mentioned above, and can be swapped with LTC and BTC with ERC20 support coming very soon. All atomic swap based on so no wrapped tokens etc


Quark backends sometimes don't handle multiple instances of a package correctly

i.e. having
package foo { ... }

... other stuff ...

package foo { ... }

will collect multiple package AST nodes and not merge them in some cases, such as for handling annotations and for output of things like package.json and setup.py.

Need to turn Backend self.packages into an OrderedDict.
Need to add a test for this stuff working correctly.

This works now.


Re-enable duplicate kernel code

This needs to be done as we have reverted thi s change in the release and change is in main

Ensure duplicates are not displayed in kernel picker
If we have an interpreter XYZ and we have a python kernel inside that, then we should only display the interpreter or the kernel (not both) as both are identical

use command `python -m ipykernel install --sys-prefix --name duplicate
Now edit the kernelspec.json to give it some custom variables in the json.

After we add env in the kernelspec.json then confirm we have both kernels

Ensure duplicates are not displayed in kernel picker
If we have an interpreter XYZ and we have a python kernel inside that, then we should only display the interpreter or the kernel (not both) as both are identical

use command `python -m ipykernel install --sys-prefix --name duplicate
Now edit the kernelspec.json to give it some custom variables in the json.

After we add env in the kernelspec.json then confirm we have both kernels

I still have dupes in the kernel picker:

However they're not dupes? I can select them and they will show the correct sys paths. So I think this is working as designed.
Validated.

I still have dupes in the kernel picker:

However they're not dupes? I can select them and they will show the correct sys paths. So I think this is working as designed.
Validated.


Amplify CLI yields TypeError on almost all commands

Note: If your issue/bug is regarding the AWS Amplify Console service, please log it in the
Amplify Console GitHub Issue Tracker

Describe the bug
All CLI commands that seems to touch the cloud now yields the following error in some form:
The 'request' argument must be string. Received type undefined
Simply running "amplify status" seems to show the correct status, followed by:
The 'request' argument must be string. Received type undefined TypeError [ERR_INVALID_ARG_TYPE]: The 'request' argument must be string. Received type undefined     at /home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/node_modules/esm/esm.js:1:224803     at Object.<anonymous> (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/node_modules/esm/esm.js:1:251922)     at Object.t (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/node_modules/esm/esm.js:1:279775)     at n (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/node_modules/esm/esm.js:1:279589)     at /home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/lib/extensions/amplify-helpers/show-helpful-provider-links.js:54:44     at Array.forEach (<anonymous>)     at AmplifyToolkit.<anonymous> (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/lib/extensions/amplify-helpers/show-helpful-provider-links.js:53:31)     at step (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/lib/extensions/amplify-helpers/show-helpful-provider-links.js:33:23)     at Object.next (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/lib/extensions/amplify-helpers/show-helpful-provider-links.js:14:53)     at fulfilled (/home/fabian/.nvm/versions/node/v11.4.0/lib/node_modules/@aws-amplify/cli/lib/extensions/amplify-helpers/show-helpful-provider-links.js:5:58)
To Reproduce
Steps to reproduce the behavior:
I haven't changed anything in the AWS environmnet for weeks, only updated the CLI.
Expected behavior
I expect not to receive errors.
Desktop (please complete the following information):
<EMAIL_ADDRESS>Windows 10
Visual studio code, Ubuntu WSL.

We've noticed unrelated issues when the Amplify CLI is running on Ubuntu WSL.
can you do a fresh re-install and try to run the CLI directly on the windows cmd.exe or powershell?

@UnleashedMind:
I installed the @aws-amplify/cli using powrshell in the same directory, ran ampliy configure project,  which went through without showing any issues.
I can now run "amplify status" in powershell without running into any problems, but as soon as i try to do "amplify push" i get the following error:
`× An error occurred when pushing the resources to the cloud
Missing credentials in config
An error occured during the push operation: Missing credentials in config`
Event though I entered a correct IAM user during "amplify configure project" and the CLI didn't throw any errors at that point.

@fabianjj you probably have your AWS credentials set up in ~/.aws in WSL, and Powershell isn't reaching into the WSL filesystem.
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html

@fabianjj

follow the doc and setup the credentials files under /.aws/config and /.aws/credentials file
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
run amplify configure project again in powershell

@UnleashedMind , @UnleashedMind:
I've moved the contents of ~/.aws to %UserProfile%.aws. Now I get a little bith further, but amplify push fails rather quickly and yields the following error:
UPDATE_FAILED      authicepackcfa592d6cfa592d6 AWS::CloudFormation::Stack Thu Oct 17 2019 21:28:29 GMT+0200 (GMT+02:00) Parameters: [authRoleArn, usernameAttributes, autoVerifiedAttributes, allowUnauthenticatedIdentities, hostedUI, smsVerificationMessage, userpoolClientReadAttributes, mfaTypes, emailVerificationSubject, useDefault, userpoolClientGenerateSecret, mfaConfiguration, identityPoolName, thirdPartyAuth, authSelections, permissions, resourceNameTruncated, smsAuthenticationMessage, passwordPolicyMinLength, userPoolName, userpoolClientWriteAttributes, dependsOn, parentStack, resourceName, triggers, emailVerificationMessage, userpoolClientRefreshTokenValidity, userpoolClientSetAttributes, unauthRoleArn, requiredAttributes, passwordPolicyCharacters, userpoolClientLambdaRole, defaultPasswordPolicy] must have values UPDATE_FAILED      apiicepack                  AWS::CloudFormation::Stack Thu Oct 17 2019 21:28:29 GMT+0200 (GMT+02:00) Parameters: [S3DeploymentRootKey, S3DeploymentBucket] must have values
It seeems like there's more to in than the .aws folder and the amplify configure project command to set my project back up in powershell. Any thoughts?

Update:
I updated my WSL Ubuntu installation and the original error no longer appears.
However, I'm running into the same issue as in my previous comment when trying to update using WSL, which keeps me from implementing the cloud changes I wanted to make.

I am getting similiar problems to these    I just updated the @aws-amplify/cli today  (and everthing else) and started seeing these issues.
One additional item.  If I try a comand like amplify function ....    the catagory does not exist  The catagory pluggins seem not to be loaded

@DavidNelsonCordelia
what OS did you run your amplify CLI on?
could you run a fresh amplify plugin scan and then amplify plugin list -> active plugins, check what are in your system.

@fabianjj Can you check your amplify/.config/project-config.json file and see if the absolute path to your project is entered correctly?

@fabianjj
You can probably try these steps to restore your project:

backup your local changes
amplify env pull --restore
amplify api gql-compile
apply your local changes from the backup.
amplify push

@DavidNelsonCordelia
Thank you, I was having this problem and also getting
? Select the backend providers. (Press <space> to select, <a> to toggle all, <i> to invert selection), with nothing after it (enter would exit), when running amplify config. Reinstalled multiple times, nothing worked.
amplify plugin scan fixed it.

Off-topic, but: the Amplify team could probably save themselves a lot of time responding to issues if there was a FAQ or How-To guide on remediating Amplify-managed CF stacks that are in an unhappy state. One of the major appeals of the Amplify CLI is that it builds and manages stacks for you so you can focus on development, but then when something goes wrong there's very little guidance on how to remediate.

after a amplify plugin scan and then list I get the output below.   I will do a new global install tomorrow
core<EMAIL_ADDRESS>{ packageName: '@aws-amplify/cli',
packageVersion: '3.15.0',
packageLocation:
'C:\Users\nelson\Documents\code\onlinecoop\node_modules\@aws-amplify\cli\',
manifest:
{ name: 'core',
type: 'core',
commands:
[ 'categories',
'configure',
'console',
'delete',
'env',
'help',
'init',
'migrate',
'publish',
'push',
'run',
'status',
'plugin',
'version' ],
commandAliases: { h: 'help', serve: 'run', ls: 'status' } } }

AI am on Windows 10.      A reinstall of "@aws-amplify/cli"  globally did not help.     I see i have it installed locally as well,    is that a problem?

A gloabl reinstall of "@aws-amplify/cli"   did not help.       When i do Amplify configure,   i get:
? Select the backend providers. (Press  to select,  to toggle all,  to invert selection)
and no providers are shown.
I am running on windows 10

@DavidNelsonCordelia
Could you get this file  <root>\Users\<username>\.amplify\plugins.json and send it over to us?
This is our email address<EMAIL_ADDRESS>did you use "npm" or "yarn" to install the Amplify CLI? are you running on Powershell or cmd.exe?

Here is the file.   I am using NPM in a cmd.exe (admin )
plugins.zip

I think I am resolved now.  I took a very careful uninstall of everthing about the amplify cli both globally and in the project.

@kaustavghosh06
I've verified that this path is correct (I've tried both with forward slashes and escaped backslashes).
@UnleashedMind
The command amplify env pull --restore does not work, as I haven't migrated to "environments" yet (I had enough issues getting through the migration as it was, and the documentation and in-cli descriptions for creating "environments" were'nt really clear about what would happen to existing data in the "NONE" environment).
I have also tried doing a global reinstall of @aws-amplify/cli and amplify-provider-cloudformation, which didn't seem to help.

@DavidNelsonCordelia
Thank you, I was having this problem and also getting
? Select the backend providers. (Press <space> to select, <a> to toggle all, <i> to invert selection), with nothing after it (enter would exit), when running amplify config. Reinstalled multiple times, nothing worked.
amplify plugin scan fixed it.

I've just run into this after upgrading from 3.17 to 4.2 and running amplify plugin scan resolved my issue

@DavidNelsonCordelia
Thank you, I was having this problem and also getting
? Select the backend providers. (Press <space> to select, <a> to toggle all, <i> to invert selection), with nothing after it (enter would exit), when running amplify config. Reinstalled multiple times, nothing worked.
amplify plugin scan fixed it.

I've just run into this after upgrading from 3.17 to 4.2 and running amplify plugin scan resolved my issue

This also solved my problem on Ubuntu 19.10, thanks.

Checking and updating the "envName": <value> in amplify/.config/local-env-info.json so it matches the Current Environment: <value> shown after calling amplify status, solved this for me.
Can see Current Environment: <value> before the error text kicks in.
Not sure how it got out of whack though.

This is my battle tested process whenever Amplify is not behaving:
(I have amplify CLI package installed globally)

reinstall packages for amplify-cli (amplify plugins sometimes dissapear, not sure why)
scan for amplify plugins on my project
reconfigure project

cd ~/.config/yarn/global/node_modules/@aws-amplify/cli
yarn
cd -
amplify plugin scan
amplify configure project


Precise Rosewood Urchin[Addition]:

Hotspot b58 Addresses
112iAoNrcL5PqUE6kEvQ5WeE9KksZXg7yQa7xUaYsYqTCkqsJUSy
Discord Handle
Jayce#8640
Reason(s)
36 HNT in a day while the network has been down and battered all week, a heltec unit not sending beacons just witnessing other units mostly heltecs. please explain how this is possible and its the same units time and again

Please use the search funtion before you start a new issue.
Already mentioned in the following issues:
#3083
#3081
#3077
#3075
#3067
#3054


Slice number when switching orientations

@msermesant just noticed that when you switch the orientation, the slice number isn't updated immediately.

Pull request #200  fixes this bug.


Prevent cleanup of object given to handle that failed access check

Summary of the Pull Request
Stops a crash that occurs when Cooked Read fails to acquire the screen buffer handle and accidentally cleans up the entire buffer on failure.

References

PR Checklist

[x] Closes #3216
[x] I work here
[ ] Tests added/passed
[x] Doc comments added, MSDN docs should be fine
[x] I'm a core contributor and I was the one that broke this

Detailed Description of the Pull Request / Additional comments
When I refactored the object management and server layer in the console host, I divided each segment into objects with their own role and tried to ensure that things cleaned themselves up appropriately when errors occurred.
Turns out, one of those things got a little bit too aggressive.
ObjectHandle is given out for each client process or activity touching either the input or output objects (the input buffer and output buffers, respectively.) They also track their own permission state because each access can have different permission to the same object.
However, the objects themselves in the ObjectHeader have to keep track of their open count, that is how many outstanding ObjectHandles there should be referencing a particular object.
When an ObjectHandle closes, it decrements the counts on the object to represent itself going away, but it will also finally check if the outstanding count reaches zero and trigger the object itself to leave when there are no longer any references.
This all sounds good, except for the fact that a Handle was created referencing the screen buffer before the access check occurred, the check failed, and the Handle was freed as we exited early.... which then decremented the count to zero despite the increment never happening... cleaned up the object... and then later when the client application came by to shut the object... crash. It's already gone.
The resolution here is to not actually give Handle the rights to the object until the access check and increment has occurred. The Handle still has cleanup rights if it has the object pointer, now given after all the checks. Otherwise, it should just leave everything alone.
The problem is actually in the read operation. Because the read is a "cooked read" where the conhost is supposed to process the characters interactively, it acquires a handle to the active screen buffer before operating. However, if that buffer doesn't have share rights, it's not allowed and did the cleanup (oops). It should probably just fail quietly (or do whatever v1 did... still looking).

Validation Steps Performed

[x] Used the sample application in #3216
[ ] Put in an automated test from this sample application (feature test?)
[ ] Put in automated tests exercising handle counts (unit tests?)
[ ] Check that conhostv1 did indeed have the sharing error but silently ate it instead of reporting it on the debug channel and recovering.

conhostv1 does indeed fail with STATUS_SHARING_VIOLATION (0xc0000043) on the Read call that happens when the alternate screen buffer is set.

conhostv2 is giving 0xc0070020, which is just an NTSTATUS that says it packed a Win32 error of ERROR_SHARING_VIOLATION. Same sort of thing, but a touch different.

I'm mildly concerned about the fact that we return different errors between conhostv1 and conhostv2, but I'm not that concerned.

I thought about that, but we've been moving to the win32/hr ones for 5 years now and it's not been a big deal. I've seen a max of a couple complaints that the codes aren't exactly the same. We could introduce some sort of better mapping table back to the OG NTSTATUSes, but I don't think it's justified yet.


Refactor of html scraping function and associated test refactoring

_abstract

scraper now is only passed the href tags inside the html for a significant speed improvement (see below if interested!)
cleaned up unused imports & functions
replaced the usage of concat_host function with urljoin for in file handling.
added a new method normalize_link to ensure full URLs are always returned.

test_scrapers_with_html

improved test accuracy by loading base URL from CSV file.
now using loaded base URL when testing scraper instances.

###CURRENT SETUP
(.venv) pytest tests/test_scrapers_with_html.py
============================================ test session starts =============================================
platform darwin -- Python 3.12.3, pytest-8.1.1, pluggy-1.4.0
configfile: pyproject.toml
plugins: mock-3.14.0
collected 93 items

tests/test_scrapers_with_html.py ..................................................................... [ 74%]
........................                                                                               [100%]

============================================ 93 passed in 21.40s =============================================

###WITH UPDATE
(.venv) pytest tests/test_scrapers_with_html.py
============================================ test session starts =============================================
platform darwin -- Python 3.12.3, pytest-8.1.1, pluggy-1.4.0
configfile: pyproject.toml
plugins: mock-3.14.0
collected 93 items

tests/test_scrapers_with_html.py ..................................................................... [ 74%]
........................                                                                               [100%]

============================================= 93 passed in 2.03s =============================================

For an additional speed boost to the scraper you could swap to lxml over html.parser, only downside being it requires an additional dependency.
stackoverflow discussion

Removal of concat host doesn't quite work as its purpose is to check if the url is full and if it is not use extract_base_domain to get it from the html and concatenate it with the link. This is specifically for the case where html is provided and a base url is not.

Removal of concat host doesn't quite work as its purpose is to check if the url is full and if it is not use extract_base_domain to get it from the html and concatenate it with the link. This is specifically for the case where html is provided and a base url is not.

I'll revisit this sometime this afternoon!


Update install-report-builder.md

Add space on line 95 between `msiexec and /i.

@CharlesSerrett : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@CharlesSerrett -- thanks!
#sign-off


Consider adding SignInResult/SignOutResult and SignIn/SignOut

MVC 6 has really cool authentication-specific ActionResults and helpers for Forbid and Challenge, but nothing for SignIn and SignOut.
It would really make this kind of actions much clearer:
[HttpPost("~/connect/logout"), ValidateAntiForgeryToken]
public async Task<IActionResult> Logout() {
    var response = HttpContext.GetOpenIdConnectResponse();
    if (response != null) {
        return View("Error", response);
    }

    // ...

    // Ask the cookies middleware to delete the local cookie created
    // when the user agent is redirected from the external identity provider
    // after a successful authentication flow (e.g Google or Facebook).
    await HttpContext.Authentication.SignOutAsync("ServerCookie");

    // Redirect the user agent to the post_logout_redirect_uri specified by the client application.
    await HttpContext.Authentication.SignOutAsync(OpenIdConnectServerDefaults.AuthenticationScheme);

    return new EmptyResult();
}

->
[HttpPost("~/connect/logout"), ValidateAntiForgeryToken]
public async Task<IActionResult> Logout() {
    var response = HttpContext.GetOpenIdConnectResponse();
    if (response != null) {
        return View("Error", response);
    }

    // ...

    return SignOut("ServerCookie", OpenIdConnectServerDefaults.AuthenticationScheme);
}

I'm fine submitting a PR if you like the general idea :clap:

If it would make the templated controller code more understandable/declarative then it seems like a good idea. I'm not familiar enough with this part of the system on my own to understand how much of this could be refactored into a result type.
@blowdart thoughts?

I like the general thoughts behind this idea. Seeing this included would certainly be a plus.

/cc @HaoK @lodejard

For some reasons, I'm seeing weird issues with DependencyModel in the MVC tests.
Restoring doesn't seem to help. I'll investigate.

"Microsoft.Extensions.DependencyModel/1.0.0-dev-1452673922": {
  "type": "package",
  "dependencies": {
    "Newtonsoft.Json": "7.0.1",
    "System.Dynamic.Runtime": "4.0.11-rc2-23616",
    "System.IO.FileSystem": "4.0.1-rc2-23616",
    "System.Linq": "4.0.1-rc2-23616",
    "System.Reflection": "4.1.0-rc2-23616",
    "System.Runtime": "4.0.21-rc2-23616"
  },
  "compile": {
    "lib/dotnet5.4/Microsoft.Extensions.DependencyModel.dll": {}
  },
  "runtime": {
    "lib/dotnet5.4/Microsoft.Extensions.DependencyModel.dll": {}
  }
}

Hum, another buggy package... I'll wipe my packages folder :smile:

@PinpointTownes the DependencyModel packages went back in time. Delete the Microsoft.Extensions.DependencyModel from your packages directory (%UserProfile%/.dnx/packages and %UserProfile%/.nuget/packages) and try restoring again.

@HaoK would have a better opinion than I

Seems reasonable and shouldn't hurt to have.  Identity takes care of some of this stuff for you already, so things like signing in with the identity created claims principal might not feel great with a SignInResult

@PinpointTownes the DependencyModel packages went back in time.

@pranavkm that's so sneaky :smile:
Thanks for the tip.
PR sent: https://github.com/aspnet/Mvc/issues/4259

Not a bad idea, but we're trying to lock down for a stable 1.0.0 release. I think this can wait until post 1.0.0.

@danroth27 it could wait until post-RTM, but it's really a trivial change. Actually, it's more a copy/paste of existing code (which is itself a tiny wrapper around the authentication APIs) to polish the API a little bit than a real new feature.

@rynowak parking this on your plate, @PinpointTownes has a PR out for it: https://github.com/aspnet/Mvc/pull/4259

f9d24a8521fbdc82234544068d4a832ca8f3a53a


[sw, libbase] Add mmio set field helper function

This allows setting fields of arbitrary width inside a register, without affecting other register bits.
For example, I have noticed that I have been misusing mmio_region_nonatomic_set_mask32, which internally ORs the given mask (sets multiple bits). The following code becomes buggy, as once the bits set - they won't be unset by this function. Meaning that watermark level cannot be decreased below the highest value it has been set to:
bool dif_uart_watermark_rx_set(const dif_uart_t *uart,
                               dif_uart_watermark_t watermark) {
  if (uart == NULL) {
    return false;
  }

  // Check if the requested watermark is valid, and get a corresponding
  // register definition to be written
  uint32_t rxi_level;
  switch (watermark) {
    case kDifUartWatermarkByte1:
      rxi_level = UART_FIFO_CTRL_RXILVL_RXLVL1;
      break;
    case kDifUartWatermarkByte4:
      rxi_level = UART_FIFO_CTRL_RXILVL_RXLVL4;
      break;
    case kDifUartWatermarkByte8:
      rxi_level = UART_FIFO_CTRL_RXILVL_RXLVL8;
      break;
    case kDifUartWatermarkByte16:
      rxi_level = UART_FIFO_CTRL_RXILVL_RXLVL16;
      break;
    case kDifUartWatermarkByte30:
      rxi_level = UART_FIFO_CTRL_RXILVL_RXLVL30;
      break;
    default:
      return false;
  }

  // Set watermark level
  mmio_region_nonatomic_set_mask32(uart->base_addr, UART_FIFO_CTRL_REG_OFFSET,
                                   rxi_level, UART_FIFO_CTRL_RXILVL_OFFSET);

  return true;
}

Using the mmio_region_nonatomic_set_field32 solves this issue.

Not sure what makes more sense to pass it by value or reference.

Not sure what makes more sense to pass field by value or reference in mmio_region_nonatomic_set_field32.

As far as calling convention goes, const T* and T are equivalent for large T, except that the latter may incur a copy, depending on register allocation. Unfortunately, I don't think you can really make field small enough to explode it into registers (it seems that the calling convention will only do this for sizeof <= 8).
I think it should be passed by value, at any rate.

I wasn't sure about the mmio_region_nonatomic_set_fields32 function, so I just threw it out there so you guys could have a look and see whether you would think something amongst these lines would be useful? In reality we probably could live without this function, but then we should be careful where and how we use multi field access in our DIFs. Because something like this:
  uint32_t reg = (nco_masked << UART_CTRL_NCO_OFFSET);
  reg |= (1u << UART_CTRL_TX);
  reg |= (1u << UART_CTRL_RX);
  if (config->parity_enable == kDifUartEnable) {
    reg |= (1u << UART_CTRL_PARITY_EN);
  }
  if (config->parity == kDifUartParityOdd) {
    reg |= (1u << UART_CTRL_PARITY_ODD);
  }
  mmio_region_write32(uart->base_addr, UART_CTRL_REG_OFFSET, reg);

Is fine in the init routine, where we don't care about the initial state, but can't be used in normal API. However, I don't think in any of my DIFs I needed to do a multi-field access anywhere outside of the init/configure routines. So maybe this is not a concern, and we can completely dismiss it.

I think the ...set_fields is not that fun to use, and also I haven't seen a need for it outside of init/configure. Long story short, I decided to drop the commit that adds ...set_fields function.

In the latest push:

Dropped the ...set_fields commit.
Addressed outstanding issues, apart from splitting field functionality out.

In the latest push:

Addressed @lenary comments.

Not sure whether I supposed to use | inside the structure description or @, similar to function description to reference the structure parameters?

Thanks for the review @lenary , I will try to address these comments tomorrow.

In the latest push:

I have addressed all of the outstanding comments.

In the latest push:

I have added a commit to use non-volatile bitfield lib in mmio lib.

@silvestrst What do you think about the trade-off between adding a dependency for the mmio library (which affects the DIFs), vs having code duplication between mmio.h and bitfield.h?

Hey @lenary I don't see much problem with having the dependency in mmio library on bitfield.h, but maybe I am missing something? What concerns do you have, that It can grow big and sophisticated and you want to avoid the dependency on it because of that?

Until now we've been trying to keep the number of dependencies that DIFs have as low as possible so it is easier to use them from rust or other places - I realise the bitfields library doesn't materially change that today, but I am wary that it could get out of hand in future. That said, duplicating code is also something to avoid, and i do understand why you did it this way.

Mmio library functions would then mostly (1) read, (2) use the bitfield library, and (3) write (again, as you did here). I don't think all these changes have to be done in this PR, but we can set the direction in this PR by updating mmio_region_nonatomic_set_mask32 and mmio_region_nonatomic_clear_mask32.

Yup, eventually It would be nice to factor out all of  the common functionality from mmio to bitfield. The set_field function was the first step and a way to test out the waters, to avoid wasted effort in case it was rejected.

One question I have is regarding the parameters: Is there a particular reason why you chose to have a bitfield_field32_t instead of mask, mask_index, and value in the function prototype?

It logically binds closely related values. The rest of the functions should probably follow similar practice where possible. @mcy had also idea of using this in register definition generation, which might materialise or not.
I think the idea behind it was described in the "non-volatile bitfield" change that has been merged (PR description and the commit descriptions).

Until now we've been trying to keep the number of dependencies that DIFs have as low as possible so it is easier to use them from rust or other places - I realise the bitfields library doesn't materially change that today, but I am wary that it could get out of hand in future.

In general I agree, however in this case it seems that they are very tightly coupled, and it makes sense to use this kind of setup.

Yup, eventually It would be nice to factor out all of the common functionality from mmio to bitfield. The set_field function was the first step and a way to test out the waters, to avoid wasted effort in case it was rejected.

👍

There seems to be consensus here that although there might be future cleanups with respect to the dependency on the bitfield library, we're not overly concerned about it right now. Therefore I'll go ahead and merge.


transaction passcode - restart transaction

What would you like to be added:
Current user flow:

User proceeds with a transaction (e.g, Converting, Add Liquidity, Swap etc.)
Submit button will be disabled for a while, then it will display the passcode prompt

Scenario A: Passcode prompt displayed properly. User will be able to proceed with their transaction.
Scenario B: Passcode prompt doesn't show. Submit button will be disabled. Users will not be able to proceed with other transactions (as we only allow one transaction for now)
Thing to solve is:
In the event where passcode prompt doesn't display, allow users to be able to "restart" their transaction.
Linked https://github.com/DeFiCh/wallet/issues/2139
https://www.youtube.com/watch?v=1JUbhJ9KZEU

Sharing prototype for this flow
In this particular example, I used 5 seconds for demonstrative purposes only - not prescripting it as there may be technical considerations in the length of the waiting time the user has before restarting his/her transaction.


Add support for yosys and iverilog on osx arm64

This adds support for building these packages on arm64 versions of macos.
Note that the biggest change is the clang compiler -- only clang 12 and clang 14 are available in conda, so I picked the latest available version.

cc @proppy

@PiotrZierhoffer @ajelinski do we have some CI environment for osx/arm64?

@proppy @xobs only GitHub runners, vide https://github.com/hdl/conda-eda/blob/master/.github/workflows/Build.yml#L335-L342

@proppy @xobs only GitHub runners

But that's x64 right not arm64?

Yes, that's x64 not arm64.
The magical incantation to switch to arm64 is conda config --env --set subdir osx-arm64, but I suspect that won't work on the github builders since they don't build fat binaries and you can't run arm64 binaries on x64.


Set the user-installed bin directory when "activating" a terminal

E.g. if you choose your system-installed Python and then run Create Terminal, we should make sure that .local/bin (or whatever the appropriately directory is for your OS) is on PATH.

Sounds like a resurrection of https://github.com/Microsoft/vscode-python/issues/900#issuecomment-372850992

I've implemented a solution in my personal extension and the solution is as follows:
Create a temporary folder

Add the files python.cmd into the above folder if on windows, else add python
the contents of the above file is to launch the actual python file (hence the file created will be specific to each python enviromment), same with the folder
Update the Path variable (either when you create or update the PATH variable in existing terminals) in the terminal to include the above directory
Now when you run python it will run the right executable.


Submitting exercise04

The code in your module looks good, though! If you don't have the notebook anymore, I'll import the module and try to provide the right arguments to your main function.

Chester,
Does this file work for you? If it does, I can commit it to GitHub when I
get back from my appointment.
On Thu, Feb 29, 2024 at 10:59 AM Chester Harvey @.***>
wrote:

The code in your module looks good, though! If you don't have the notebook
anymore, I'll import the module and try to provide the right arguments to
your main function.
—
Reply to this email directly, view it on GitHub
https://github.com/ncsg/ursp688y_sp2024/pull/75#issuecomment-1971447942,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4CNAGI5I3TBRPMYF4PYJMTYV5H7FAVCNFSM6AAAAABD27SGY6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZRGQ2DOOJUGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Unfortunately, I don't think attachments work when replying to github comments by email. If you can commit it later today, or send it to my email, that might work better. No particular rush.

Thanks for emailing the notebook. I'm a little confused because I thought I originally saw a .py file with code and the notebook was blank. But most recently a saw a notebook (.ipynb) but no .py module. I must be going crazy. Maybe I got confused with files stored in different directories?
This looks great in most ways. I found the module code in a notebook, though, so I copied and pasted it into a .py file with the same name. Then everything ran great. Maybe take a quick look at how I restructured things so you can see the .py file and how it's imported in the notebook? I also moved everything into a folder with your name the exercises/exercise04 directory.

Chester,
Sorry for the late reply. The first time I submitted it there was a .py
module in an additional folder and a .ipynb file in the main folder, but
when I tried to redownload the .ipynb file the formatting seemed off. The
second time I submitted it I placed the .ipynb file and the .py module in
the same folder and renamed the .py module to include my last name.
I think that the way that I'm going about things is incorrect. I ran into
some runtime errors in colab so I used visual studio code then pasted my
code into the .ipynb file and pasted the .py module into google drive.
While I was able to write my program doing that I believe that copying
things over created some issues.
On Thu, Feb 29, 2024 at 6:12 PM Chester Harvey @.***>
wrote:

Thanks for emailing the notebook. I'm a little confused because I thought
I originally saw a .py file with code and the notebook was blank. But most
recently a saw a notebook (.ipynb) but no .py module. I must be going
crazy. Maybe I got confused with files stored in different directories?
This looks great in most ways. I found the module code in a notebook,
though, so I copied and pasted it into a .py file with the same name. Then
everything ran great. Maybe take a quick look at how I restructured things
so you can see the .py file and how it's imported in the notebook? I also
moved everything into a folder with your name the exercises/exercise04
directory.
—
Reply to this email directly, view it on GitHub
https://github.com/ncsg/ursp688y_sp2024/pull/75#issuecomment-1972129552,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4CNAGK725FIPJBZEGFOG3TYV62XBAVCNFSM6AAAAABD27SGY6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZSGEZDSNJVGI
.
You are receiving this because you authored the thread.Message ID:
@.***>


[ja] update Japanese translation /docs/contribute/new-content/_index

This is a Feature Request

What would you like to be added

Update Japanese translation of https://kubernetes.io/ja/docs/contribute/new-content/
Remove https://kubernetes.io/ja/docs/contribute/new-content/overview/ (this page is merged into new-content index in English page)

Why is this needed
outdated page
Comments

/language ja
/assign

sig/docs

/triage accepted


Save entries?

Looks great! Does this website save entries in any ways yet?

Hi, at this time, it saves to your local browser (localStorage). Later, we will be able to save on the cloud.


Size-limited populations

Is your feature request related to a problem? Please describe.
When working on Evolving Fair Models, I notice that on long runs, the population size grows indefinitely. A 40,000-solution population slows down the improvement of solutions compared to a smaller population.
Describe the solution you'd like
A size-limited population, that works like a FIFO queue (maybe with exceptions for Pareto-optimal solutions?).
Describe alternatives you've considered
I could just write more deletors/allocate more threads to do deletion. However, getting that balance correct is difficult. I want some static guarantees about maximum population size. You can delete within those.
Additional context

What do you think about adding behavior like this to strategies? Currently, our agent step scheduling is not flexible enough to support this (since strategies can only return wait times), but we could make the system more flexible by allowing strategies to specify run conditions (as predicates). One of these run conditions could be that the population size (which is already encapsulated by PopulationInformation) is less than some number. And then that strategy can be used for the modifiers and creators.
This would also have the benefit of deleting solutions according to deletors instead of some pattern we decide on.


Flushing buffer results in Response->write() error

I use a common buffer flushing function:
function buffer_flush(){
	while (ob_get_level() > 0) {
		ob_end_flush();
	}
	flush();
}

and in my view if I use buffer_flush() I don't specify an exit; at the end of the code, the following exception is thrown:
500 Internal Server Error
Argument 1 passed to flight\net\Response::write() must be of the type string, bool given, called in /var/www/vendor/mikecao/flight/flight/Engine.php on line 430 (0)

#0 /var/www/vendor/mikecao/flight/flight/Engine.php(430): flight\net\Response->write()
#1 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(219): flight\Engine->_stop()
#2 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(162): flight\core\Dispatcher::invokeMethod()
#3 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(54): flight\core\Dispatcher::execute()
#4 /var/www/vendor/mikecao/flight/flight/Engine.php(98): flight\core\Dispatcher->run()
#5 /var/www/vendor/mikecao/flight/flight/Engine.php(346): flight\Engine->__call()
#6 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(190): flight\Engine->flight\{closure}()
#7 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(163): flight\core\Dispatcher::callFunction()
#8 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(141): flight\core\Dispatcher::execute()
#9 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(58): flight\core\Dispatcher->filter()
#10 /var/www/vendor/mikecao/flight/flight/Engine.php(98): flight\core\Dispatcher->run()
#11 /var/www/vendor/mikecao/flight/flight/core/Dispatcher.php(219): flight\Engine->__call()
#12 /var/www/vendor/mikecao/flight/flight/Flight.php(97): flight\core\Dispatcher::invokeMethod()
#13 /var/www/index.php(38): Flight::__callStatic()
#14 {main}

Perhaps my buffer flushing is not ideal but it seems like write should be aware that ob_get_clean may return false

I fixed this and merged the fix into n0nag0n/flight https://github.com/n0nag0n/flight/pull/3


ignite-cli: 28.5.1 -> 28.5.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/ignite/cli/releases.
meta.description for ignite-cli is: All-in-one platform to build, launch, and maintain any crypto application on a sovereign and secured blockchain
meta.homepage for ignite-cli is: https://ignite.com/
meta.changelog for ignite-cli is: https://github.com/ignite/cli/releases/tag/v28.5.2
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 28.5.2 in filename of file in /nix/store/ky8bkckgr85fqs64m42d8737hgb0462y-ignite-cli-28.5.2

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

ignite-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ky8bkckgr85fqs64m42d8737hgb0462y-ignite-cli-28.5.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/0262a1d8c4b6c6fdca6061ce1d1c79f5f194d19e#ignite-cli

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ky8bkckgr85fqs64m42d8737hgb0462y-ignite-cli-28.5.2
ls -la /nix/store/ky8bkckgr85fqs64m42d8737hgb0462y-ignite-cli-28.5.2/bin

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

1 package built:

ignite-cli

Maintainer pings
cc @kashw2 for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Synchronize to Xcode adds files incorrectly to the Xcode project

This feature was removed, issue no longer applies.


Issues in google Auth dashboard UI

I have broken this original ticket in 3 and left this issue as the remaining issue 4. Other issues are #2689 and #2690
Issue 4

Nested Group Membership is missing from Authentication section after google Auth is enabled

@sowmyav27 Can I clarify - the screenshot for issue 4 is of the Ember UI - I see the checkbox for Nested Group Membership is present on the Vue UI for GtiHub Auth setup - is the bug on the Ember UI or Vue ?

@sowmyav27 I can not reproduce this issue in the Dashboard UI, can you retry and provide steps to reproduce.

Steps:

Enable google Auth in Ember UI - Nested Group membership - Enabled/Disabled
The value of Nested Group membership - Enabled/Disabled is seen on Ember UI after the Auth is enabled
The value of Nested Group membership - Enabled/Disabled is not seen on Cluster Explorer/Dashboard UI after the Auth is enabled

On 2.5.8-rc4, this issue is still seen.

This should be fixed in 2.5-head, but it isn't in dashboard's 2.5.8-rc4

On 2.5-head - commit id: 41f173a
See this fixed - when Nested Group membership is either Enabled or Disabled.


Small improvements to training request workflow

In the training requests list view:

[x] Display dates in "created at" column using "yyyy-mm-dd" format to make the column compact.
[ ] Let users filter by state using multichoice widget (three checkboxes instead of one drop-down).
[x] Display only pending and accepted requests by default.
[x] Display email in submitter column.
[x] Display email in submitter and matched trainee columns in a new line, below full name, so that the columns don't take too much space.

Other stuff:

[x] Change validation rules so that a request is accepted when it's matched to a training (now it's accepted when it's matched with an account)
[x] Change title of training request edit view to something meaningful (from TrainingRequest object to Training request #11)

@gvwilson, do you want me to enforce in validation rules that a pending request cannot be matched to a training and an accepted one must be matched to a training?

Pending cannot be matched to training.
Accepted doesn't necessarily have to be matched to training: the use
case is:

We have several training events coming up.

We score applications and accept those that are to be distributed
amongst the events.

We then assign them to training events.

In this case, "accepted" is being used to filter/select applications.

@gvwilson, do you want any other choices (like "all")?

I think that a drop-down is faster to use than three checkboxes. And definitively easier to implement. Is it fine?

Sure, and thanks.

PR #1030


Update to standard library 1.5

The standard library has been released at version 1.5 https://github.com/agda/agda-stdlib/issues/1386 :tada:
It was noticed by @iblech in https://github.com/NixOS/nixpkgs/pull/110830 that agda-categories uses the module Relation.Binary.OrderMorphism which has been deprecated. This should probably be fixed?

Yes, indeed it should. I welcome even partial PRs on this. I'm not likely to get time to fix this for at least 10 days.

Yes, indeed it should. I welcome even partial PRs on this. I'm not likely to get time to fix this for at least 10 days.

I'm a bit curious about the change of the definition of OrderMorphism in the stdlib. The old definition wasn't as uniform as the new one (when compared to the generic definitions) but it had less redundancy (as is evident in @MatthewDaggitt's PR #243). If one is actually working with posets, the new definition is a bit of a pain, it seems.
Would it not have been possible to keep both versions in the stdlib? Or at least add some helper functions/smart constructors that compute the redundant fields?

I'm a bit curious about the change of the definition of OrderMorphism in the stdlib. The old definition wasn't as uniform as the new one (when compared to the generic definitions) but it had less redundancy (as is evident in @MatthewDaggitt's PR #243). If one is actually working with posets, the new definition is a bit of a pain, it seems.
Would it not have been possible to keep both versions in the stdlib? Or at least add some helper functions/smart constructors that compute the redundant fields?

Just to be clear, if an order morphisms goes between two posets (as opposed to preorders) then the cong field is redundant because it follows from mono and antisymmetry. Hence one could define a helper (akin to those we have in other parts of the library) that fills in cong automatically.

Just to be clear, if an order morphisms goes between two posets (as opposed to preorders) then the cong field is redundant because it follows from mono and antisymmetry. Hence one could define a helper (akin to those we have in other parts of the library) that fills in cong automatically.

Hence one could define a helper (akin to those we have in other parts of the library) that fills in cong automatically.

Like what other helpers?

Hence one could define a helper (akin to those we have in other parts of the library) that fills in cong automatically.

Like what other helpers?

Like ntHelper and niHelper.

Like ntHelper and niHelper.

... or categoryHelper.
https://github.com/agda/agda-categories/blob/2080b4d6f87dff6fe807f8e8913e566c24cc0797/src/Categories/Category/Helper.agda#L32
There's lots of them in agda-categories.  Of course, for OrderMorphism it would be better to put a helper in the stdlib. I'd be happy to write one and create a PR but I have no idea where best to put such helpers in the stdlib.

... or categoryHelper.
https://github.com/agda/agda-categories/blob/2080b4d6f87dff6fe807f8e8913e566c24cc0797/src/Categories/Category/Helper.agda#L32
There's lots of them in agda-categories.  Of course, for OrderMorphism it would be better to put a helper in the stdlib. I'd be happy to write one and create a PR but I have no idea where best to put such helpers in the stdlib.

Of course, for OrderMorphism it would be better to put a helper in the stdlib. I'd be happy to write one and create a PR but I have no idea where best to put such helpers in the stdlib.

Maybe it makes sense to have it as well in agda-categories at the beginning, because the stdlib will probably not make a new release just for that?

Of course, for OrderMorphism it would be better to put a helper in the stdlib. I'd be happy to write one and create a PR but I have no idea where best to put such helpers in the stdlib.

Maybe it makes sense to have it as well in agda-categories at the beginning, because the stdlib will probably not make a new release just for that?

Would it not have been possible to keep both versions in the stdlib? Or at least add some helper functions/smart constructors that compute the redundant fields?

Yes, to both. So the old definition wasn't usable in many important cases because you didn't actually know that one of the relations was a poset and the point of establishing the morphism was to transfer the properties across in (see Data.Rational.Properties for an example). The new definitions are more general so can be used in both cases. You're right though I had missed the fact that some of the fields are redundant and that it's sometimes easier to work with the bundled form than the structure form.
I'll add the bundles and smart constructors to Relation.Binary.Morphism.Bundles in the standard library but probably won't make a new release in case some other bug comes up. I'll therefore make a cut-down version of the smart constructors for #243.

Would it not have been possible to keep both versions in the stdlib? Or at least add some helper functions/smart constructors that compute the redundant fields?

Yes, to both. So the old definition wasn't usable in many important cases because you didn't actually know that one of the relations was a poset and the point of establishing the morphism was to transfer the properties across in (see Data.Rational.Properties for an example). The new definitions are more general so can be used in both cases. You're right though I had missed the fact that some of the fields are redundant and that it's sometimes easier to work with the bundled form than the structure form.
I'll add the bundles and smart constructors to Relation.Binary.Morphism.Bundles in the standard library but probably won't make a new release in case some other bug comes up. I'll therefore make a cut-down version of the smart constructors for #243.

Opened https://github.com/agda/agda-stdlib/issues/1407 to address this.

Opened https://github.com/agda/agda-stdlib/issues/1407 to address this.

Splendid, thanks @MatthewDaggitt!

Splendid, thanks @MatthewDaggitt!

Will you prepare a new release for agda-categories?

Will you prepare a new release for agda-categories?

Yes. But first I was to bring in PR #240 as it seems ready.

Yes. But first I was to bring in PR #240 as it seems ready.

Awesome that this could be fixed so quickly! :-)
How can I help with PR #240? Cutting a new release of agda-categories, compatible with standard-library 1.5, is the last thing to be done before we can release the new standard-library in Nix. :-) (We strive to offer an all-compatible package set, hence updating just standard-library but not agda-categories is not an option.)

The PR has been merged in now.

Super awesome, thank you very much Jacques! I'll immediately prepare the update for Nix.


Rpmbuild

Thanks! merged now, I also made it so that it only builds for new tags so that when we don't have a tag yet it doesn't error out https://github.com/geteduroam/linux-app/commit/20a1e90ef92ecef443f2e474e1296d83ce4d1316