#dev-contrib
1 messages · Page 73 of 1
@eternal owl You can access to command arguments from Context, what is available in checks.
ahhh you're right, that is how it should be done. good research!
looks like ctx.args and ctx.kwargs dont really work with check(), I have to parse them from ctx.message.content, is it still worth using check?
@cold moon
Huh, then not @eternal owl
Why https://github.com/python-discord/public-stats/blob/master/.github/workflows/docker-publish.yml checkout code twice?
@patent pivot I'm stuck with https://github.com/python-discord/forms-backend/pull/1 : Linting (flake8) have some parsing issues what raise errors, but in local device I don't get this error. Can you help to solve this issue? I tried to use specific actions and other ways, but they don't run flake8 extensions.
I'll have a gander, though I'm pretty busy today
Okay
@patent pivot Solved issue in staff lounge. Problem was that this linted venv. Now only thing that I have to do tomorrow is fix linting errors.
Ah perfect
https://github.com/python-discord/bot/issues/1300, hmmm no content issue
taken care of

probably like the way ks123 suggested for bounty board
u could also add helpers and helpers + to that too
I don't think it makes a lot of difference
I agree about that @eternal owl, though I’ll elaborate on my reasoning on the issue later on
I think our Contributors is enough wise that they don't make flood PRs and reviews
I think that, too
Yeah, that's a pretty good point
It's a tool to make contributions visible and the threshold of having the contributors role should be enough to make it work
Anyway, @mellow hare is taking a lead on this project and we discussed it yesterday during the admin meeting as well. I think we're going to trial it in one form or another. I don't really think that it will lead to so many problems. The staff-only reviewfest worked just fine as well.
Well, this sounds more like the Hacktoberfest 2019 than 2020
I'll elaborate on it when I get to the office
@hardy gorge could you leave your thoughts on the issue as well, so we have the thoughts on a single place?
Huh?
This
This was something that was already extensively discussed; these issues are just about implementation, right?
I think that’s very much about implementation, as well as if it’s even a good idea at all, to some extent. We haven’t really reached a consensus on either of the topics imo
do we want the leaderboard to be displayed in a channel which the bot edits as time goes on or will it be displayed at the end of each month in the #779073065560703007 channel or maybe even a command?
I was thinking, maybe we could display it at the top of #779073065560703007
and the bot constantly updates the message
We haven’t really reached a consensus on either of the topics imo
We've already extensively discussed the idea within the admin meeting. We're going forward with it, although the exact shape may change.
I trust our contributors and staff enough to not act to the detriment of our projects. If they can't, they should not have either role.
Honestly it would have been nice if core devs could have been kept in the loop, we are pretty much affected by those. The original proposal was about including everyone, wasn't it?
This is just a playful way of both highlighting areas that need attention and highlighting the contributions people make.
There were various variants we discussed, yeah.
I agree about the idea of trying to reward people for contributing fundamentally, but these kinds of systems often lead to unintended consequences
Yes, they could. That's why we decided to restrict it to contributors and staff.
I don’t quite understand why you’re so determined on the idea that you won’t reconsider it though
This wasn't very clear haha, I thought it was open to everyone
Yeah, it's good to discuss those concerns. There's no harm in voicing them.
But, ultimately, we also discuss things within the admin group and decide that we want to trial something in an area
We're not deaf for concerns, but we also want to move forward and trial some projects, especially if we'd otherwise shut everything down and/or get stuck in consensus hell
I hear what you’re saying, but right now it has no consensus outside of the admin group at least. I fundamentally like the idea of rewarding people for contributions, but this one has major flaws that need to be addressed. We won’t get stuck in consensus hell by taking in the input from other contributors, staff members and core developers. Including people and making them feel like an important part of the system is one of the key pieces to keep people engaged long term
Once again, I’ll mention the importance of long term stability of the contributions. We’re not looking for people to peak with a high-activity period where they reach the top of the leaderboard. We’re looking for long term contributors who view others as collaborators and team mates — not competitors
I think I expressed myself wrongly: We do appreciate input, but sometimes we do make decisions as the admin team regarding policy points we think are important.
That's a valid concern and we will take note of it. I don't think it's a given, as we are talking about a group of people who are known to us: contributors and staff members. We simply don't know if this is going to be a problem and how much of an issue it's going to be. I don't really believe it's going to be an issue at all, but if it is going to be an issue, a trial should show that.
I think that’s a fair point. The issue is that what I’m referring to isn’t a one month thing. It may work in such a short time frame. The issue is if we consider the long term. If you vision a year into the future, do you think that we will have more great and consistent contributors? Will this leaderboard contribute to that?
You're right, and this is a failure on my end to properly communicate with the Core folks ahead of time. I do want you to know that I'm going to make sure this doesn't harm any critical or important parts of the repos. Anything that must be handled carefully will be marked as such
Personally, I don't think it will change a lot; people who are motivated to contribute will still do so. I do think it will make frequent contributors more visible. It's not easy to see who's a frequent contributor to our projects without having a close look at the GitHub activity while it's very easy those who are very active in policy discussions in staff channels.
I do think the bounty board is a good tool to highlight issues and PRs that are currently of great interest to our projects.
alright, I appreciate that hem
Not all features have an equal priority and handpicking a few that need exposure is a good way of showcasing them here, within the community
(as opposed to relying people to visit GitHub, selects labels, and browse like that)
The main thing I wanted to get out of this was both calling attention to things that need to get done AND trying to get more members of the community involved with the process.
As I say all the time (probably to the point of being annoying), this community is first and foremost an education server. If I can get the opportunity to get people interested not only in PRs but also Code Reviews, then I think it's a step worth at least trying
Some people need that push to get going. Hopefully once they get a taste they'll be interested in the process and stick with it
The issue I find with this logic is assuming that “motivation” is something constant or at least something that you can’t really affect. This entire discussion is about motivating people to contribute. Going by the “motivated contributors will continue to contribute” won’t work. We need to focus on motivating
Before (if) this goes public, I'm going to explicitly say that high scores do not mean you'll get contributor.
On that note, and I'll make a comment on the issue too, I think code reviews should be weighted higher than producing code.
Noted
The current scoring system is just a rough idea I had at the moment
I'm more than willing to have it shuffled around until we find something that feels right
I think making it public will end up in an endless Hacktoberfest 2019
Yeah, we discussed that yesterday as well
@green oriole yes and no.
If we start getting code reviews into the mix, it won't be nearly as tedious
I just had a good convo with my best friend over the weekend about overall strats for encouraging code reviews, it happens to be very applicable here!
But how can be sure that someone would left a review did its job correctly, and isn't just looking for point? We will have to do the work twice.
Correction, I will
Are you concerned that staff and contributors won't actually review code?
And that's something I'm willing to take up
He's saying whenever it gets opened to public
Gosh, that's a lot of work for just one man as incredible as he might be
Considering I'm going to be looking through the repos daily, it should be fine
And I could ask for assistance from time to time
I think that's putting the cart in front of the horse right now. I think the code review guidelines will help as well. Maybe have a checklist people can follow.
Oh trust me, I don't plan on being the only poor sod going through them all
But something to consider, ALL of our PRs require a core dev's signoff anyway
Yeah, but you do need at least 2 good code reviews to be done before merging
If the core dev notices that the PR got a lgtm but they managed to find tons of stuff, we'll know that the other person isn't putting in their best
As cool and well done the code review guidelines might be, we can't force people to follow them
But I agree on that point, it sounds like a problem for later
We are working on a lot of "if" right now
Exactly
For now, it's internal
And like Kat said, the guide needs to be done first
..... and I'd like help with that
I've hit a wall on how to articulate it
It shouldn't get stuck behind me just because I've got writer's block
I'm confused about one aspect: Did we not decide to keep it contrib+staff yesterday?
For now we did, yes
But I feel like the board won't serve its purpose until it gets the community involved
I love our contribs, but they're, what, 0.001% of the total server pop?
!role 295488872404484098
295488872404484098
#55cc6c
0.37 0.58 204
35
17
0
And most have already become staff
0.035%
That's still teeny-weeny
What we discussed yesterday is that the board is a way of highlighting contributions. Most of us won't see what happens on GitHub at all, as it happens outside of the community.
I agree. As I said, this is a trial and it's locked down for staff and contribs
I'll try to keep more focused on the current issue at hand then
Anyway, we can cross the public bridge once we get to that point
Yep
I think this should be contributors and staff + invited normal members.
If we're thinking someone is worthy of being on the board, would we not have them become a contrib anyway?
I don't want this to feel like it's an exclusive club
Everyone on this server should have a stake in the game, as it were
https://pythondiscord.com/pages/contributing/sir-lancebot/#development-environment
We should also include USE_FAKEREDIS in the additional env variables section
As sometimes, we won't be running the project with docker
We're a large, friendly community focused around the Python programming language. Our community is open to those who wish to learn the language, as well as those looking to help others.
I'm in no way trying to dismiss anyone's thoughts or opinions on the matter. I want to hear everyone's thoughts on this, either publicly, privately or on the repos
Yeah we should
There's a meta issue for those
On windows, docker is now handled through docker desktop which already comes with compose installed making the docker compose requirement for the projects extraneous on the platform. In https://pyt...
I will comment in that
If you can comment on it, that'd be nice
done
thanks!
also, what the 2 reddit commands we have on our bots?
I guess we want to have it on only 1 bot, on @dusky shore and remove it from @stable mountain
Ideally
This is something @green oriole has talked about a lot hahaha
This is sending it with webhook yes
yea, so what is there to migrate to @dusky shore from @stable mountain
Unless we really like the reddit command on python compared to @dusky shore's reddit command
But @stable mountain is sending webhook messages, isn't it?
Yes, @stable mountain sends these webhooks
Gah, so many pings!
so @dusky shore will have to send th- ... lol
someone just woke up @stable mountain
oh i thought those were coming straight from reddit
Maybe we can open an issue for the reddit command and migration?
Your reminder will arrive in 1 hour and 30 minutes!
@thorny obsidian why do you think we shouldn't just give one point for both?
Because I want to specifically incentivize code reviews as they can sometimes be seen as less "fun" or what have you.
also, can you also include https://github.com/python-discord/sir-lancebot/issues/348
this issue while you are creating it. So, 1 PR can clear 2 Issues at once
@green oriole
Alright, sounds good
ty
When any core dev have to time, @dusky shore 524 PR should get core dev review, as this already have 2 approvals.
Will we have summary page in site about this year Hacktoberfest?
I didn't know we had one for 2019 lol
I don't know do we have for 2019, but I think we should have summaries for our events.
haha, I was just about to ask what the process is for putting up something on the site since that sounds like my domain and a good idea.
I think this should be possible to have draft posts?
Haha, we are currently in the process of migrating to a markdown based workflow
You'd simply have to commit markdown to our site repo
Well, once the migration is complete
I'll just create markdown that I hold in reserve until the migration is complete
Sounds good
I guess this might be more of an @wild ridge question, but will it support html + markdown or strict markdown?
If you need to pull any stats about the hacktoberfest or whatever, feel free to ask us 
Like I said, staff decided to have full HTML event pages that is in repo.
oh whoops, I can't read. Thanks!
pythondiscord.com - A Django and Bulma web application. - python-discord/site
You can also open PR now to dewikification branch, then this go live same time when dewikification is completed.
Oh neat, I will give that a go. I'm still a bit of a git noob, so I might need core dev assistance if I fuck it up
As I always say, no worry, you can always get rid of the proofs if you mess up haha
And you can't make any disaster, because we have protected branches 😆
@green oriole
Here's your reminder: do that.
[Jump back to when you created the reminder](#dev-contrib message)
Smh just when I shut down my computer
shut down your computer and don't tell us 😉
@cold moon review left on forms-backend#1
This PR needs one more review. The refactor will make it easier to work on the future changes to the code, some of which I think are upcoming. https://github.com/python-discord/bot/pull/1294
!remind 8h Review 
Your reminder will arrive in 8 hours!
For the bot, I see lots of logging, are all of those logs in a file?
Or are they sent to the specific channels?
The bot does write its logs to a file within the docker container, but we can also view the logs from the command line using kubectl
The logging level is set to INFO in production
Which means there are not as many log messages in production as you see in development mode
ah so it writes the logs to a file, i see thx
It does, but that's not how we view the logs
The logs outputted are also capture by docker (you could view them with docker logs container) and those are relayed by kubernetes
It would still work without writing them to file
those are relayed by kubernetes
where are they relayed?
to the site or the server
Someone with access can access them from the command line with a tool called kubectl
We're also currently setting up a dashboard
oh i see
@hardy gorge
Here's your reminder: Review .
[Jump back to when you created the reminder](#dev-contrib message)
!remind 2h 
Your reminder will arrive in 2 hours!
!remind 2h
content
!remind [mentions]... <expiration> <content>
Can also use: reminder, reminders, remindme
Commands for managing your reminders.
Subcommands:
!remind delete <id_>
Delete one of your active reminders.
!remind edit
Commands for modifying your current reminders.
!remind list
View a paginated embed of all reminders for your user.
!remind new [mentions]... <expiration> <content>
Set yourself a simple reminder.
@green oriole you can assign the reddit issues to me
done
Done!
ty
@hardy gorge
Here's your reminder: .
[Jump back to when you created the reminder](#dev-contrib message)
The reminder chain haha
@hollow cedar Sorry if I am disturbing you , but can you please drop a review on my PR?
I will take a look soon
@surreal venture About 509, persisting data to JSON doesn't work anymore. You have to use Redis now.
Is there any way to get Postgres or MongoDB to @dusky shore ? I'm currently thinking about AoC implemention, but Redis don't support dicts and lists and is very limited.
Weeeeellll
I would be against that because it will add a pretty major complexity to the bot
I think seeing if async-redis-cache could support those type instead sounds like a better idea (CC @hardy gorge)
worst case scenario you should be able to pickle/json it
I don't want to store JSON.
Could you describe the type you're after? A RedisCache is already pretty close to a dictionary
No, simple example is such dict: {score: x, days: [{day: 1, completed: time, star2: bool}]}
serializing it before sending it off to redis sounds like the simplest solution to me if we're avoiding proper databases because of ease of use
I agree
fakeredis does not give persistence
It's faking redis without actually having a redis backend
I don't think there's anything readily available for postgres; redis is much less complicated to replicate the behaviour of
Regardless, serialization sounds like the way to go here, although you need to be mindful of race conditions
The hash sets that we're using basically have two keys and one value: (namespace->key->value)
That's the deepest nesting of native redis types you'll get
Let's see what I can do with JSON. I will make not persistent list to cog that store all entities that is being edited and this check for them.
I'd lean towards pickle here personally (and used it it for the doc redis cache), as it's more performant and nobody will be viewing the raw data in redis anyway
@patent pivot About forms-backend, do you really want type hints for self and cls?
What's Redis now?
ah, no I don't feel free to add back the ignore for that
@patent pivot PR is now ready for another review.
approved @cold moon. @hardy gorge if you get a chance could you give it a onceover from a CI PoV
What's the ratelimit of snekbox?
We don't have any rate limit AFAIK
oh
@late wolf I think this have max 2 evals running at same time, but no actual ratelimit.
What is going on in #dev-log ?
sry it's me. implementing requested changes and every time i merge a requested change it auto runs the tests
idk how to stop it
Oh, this is in fork
how can I start contributing to the bot?
How to store Pickle object to Redis and then get it again? Redis need argument to be string, but pickle wants bytes.
redis strings should be able to store binary data
I mean I need to provide some encoding when converting Redis string to bytes (I use str converting when I store to Redis).
What encoding I should provide?
Actually you can only have one eval running at the same time
And, well, actions is going
I thought that this is main repo master
@brazen charm I think I'm still going to use JSON. This is just much easier than pickling and depickling object.
Ah right I guess rediscache will try to turn everything into strings
There's a max of two eval workers
Just one job per person at the same time enforced by @stable mountain I think
Other jobs just queue up and we process a max of two at a time
Maybe not. I think that's what Mark recently said when we were thinking about the container memory limit
Ah, yes
There are two workers available (restricted on the gunicorn level)
Any reason rediscache doesn't have a bytes datatype? Feels like a useful type to have @hardy gorge
It's never come up before
I think we could, but we'd have to refactor some bits to bypass the encoding/decoding steps
I already solved issue with JSON, but I think this might really be useful.
Just looked at the code, is it not using pickle intentionally to simplify what it can do or for the size gains? Doing dumps/loads directly instead of the typestrings would work nicely and expand the possible types to a wide range
Perhaps it has something to do with race conditions or something
I'm not sure if I want to pickle/unpickle everything. I'd rather give the bytes option to the end user and let them handle it themselves.
Including making sure that nothing "bad" ever gets pickled and then unpickled
Even then, using pickle in the background with restricted types sound simpler to me
I want to make sure that my fix for the !close command is right but I'm not sure exactly what testing to do before I put in the PR
I'm pretty sure it's working
What is the fix
Also you can submit a PR draft if you don't want to say you're done yet but want to allow other people to take a look
I'm realizing that docker isn't using my virtual environment
I think docker-compose pull is what I need. The bot would no longer start once I pulled from master.
you could try a docker-compose build
Assuming that you're using the docker-compose in the bot repository
I'm trying that now
It does not pull an image from somewhere; rather, it builds it from the dockerfile using your current files
This is what I get only having experience programming in an academic setting.
I'm noticing that commits in the bot repo typically have a main commit message and then a longer, secondary message. What is this called?
@trim cradle you mean the commit subject and body?
I'm just not sure if I'm answering to the right thing
I guess I'll have to figure out how to get that in the commit tool in PyCharm
You basically write why you're making the commit in short, and then after a blank line explain in more detail if you think it's necessary
the blank line is key
If you're committing from the command line, you can do that by using the -m flag twice
I'm learning 
i'd suggest to not use the -m flag at all
yeah, git will open your editor of choice instead
considering I have to write every commit twice I'd rather just have it all right away 😄
I only do git commit -m if I'm working in a terminal-only setting
ie my uni's mainframes
@hardy gorge WARNING "::error file=%(path)s,line=%(row)d,col=%(col)d::[flake8] %(code)s: %(text)s" is an unknown formatter. Falling back to default. I get this error when I try to use same formatting like other repos use for annotations. (verbose mode)
I get the same error too, yet it still formats using that string. I think it might either be a bug, or bad wording (unknown formatter I.E not a builtin one, default = parsing)
Yep, I found this in docs
I will make changes when I'm back from school
I can't find formatter for Expiry object to send expiry date in message, like in !tempmute it sends message with until 2020-11-25 19:32 (59 minutes and 58 seconds).
can someone point to me where this formatter is?
You mean something like this? https://github.com/python-discord/bot/blob/0a49cb61085c2ceb8974decc69b200905bcf14e7/bot/utils/time.py#L118
I think that's it, thx
@hardy gorge made changes to forms-backend GH Actions and deployment PR.
I was thinking about your matcher. Do you know if it shortcuts after the first match in the pattern array or does it try to match all entries, regardless of previous matching ones?
The matcher seems to be a bit underdocumented
I don't know. I used Regex that pre made actions used. This doesn't have official docs yet, only third party posts
Yeah, I was looking into them as well during my initial investigation
But the documentation is lacking and I decided that the --format option was really straight forward
However, if it only matches the first, you could still have the "warning" vs "error" level thing
By adding a matcher for the warning first, then a "matches all error codes" for the rest with an error level after
Some tried to allow for it and it broke the matchers they were using initially
That's what made me look for a different solution
Yes, I reached same after trying multiple times
But I will leave from WiFi connection area now.
I'll have a look later. There wasn't much to change, so it's probably good to go anyway
The files already looked good
do I really need to install all this stuff to contribute to the bot?
If the stuff is all the dependency at the top of the contributing guide, yes
I meant the test server and account
Yes
Hey @clever wraith, have you seen our contrib guides here?https://pythondiscord.com/pages/contributing/
We're a large, friendly community focused around the Python programming language. Our community is open to those who wish to learn the language, as well as those looking to help others.
how do I activate the virtual envirnoment creaated by pipenv?
ah great, I always used virtualenv so far, so I was confused
how about docker-compose shoudln't I install that within the ve?
You'd usually do a system wide install of docker-compose
how i setup @stable mountain bot @green oriole ?
We're a large, friendly community focused around the Python programming language. Our community is open to those who wish to learn the language, as well as those looking to help others.
i download it in the github repo
You should take a look at the link Kingboi posted
how i install pipenv on vs code?
you have to use cmd for that
but which cmd
@patent pivot forms backend PR is now ready for merge
did you ever use pip install before,
no
ok then you have a bit of reading to do before contributing in my opinion
it's a bit unclear what I should do with all these ids?
https://pythondiscord.com/pages/contributing/setting-test-server-and-bot-account/#obtain-the-ids
We're a large, friendly community focused around the Python programming language. Our community is open to those who wish to learn the language, as well as those looking to help others.
this is found in the cloned repo?
No, you need to make a copy of config-default.yml
send dm to minty codess
ok I think I got it now, sorry for all the questions
No worries, I don't mind 
do I have to cpy the ids of all the channels?
You don't need to create all of them but some are required for the general setup and then for whatever you'd be working on to test it out. Could point them all to one or two channels if you're being lazy
@patent pivot Sorry about ping again but I started thinking that when my PR in forms-backend get merged, this is first time when this actually go to production?
Nice!
that is a good point actually
we'll need to add a secret to contain the application environment
Yes, KUBECONFIG and GHCR user and password
Oh, these. Yeah
those secrets are on the org already
DB URL and secret key
and oauth creds

I think after this is done, next thing I'm going to do in this repo is to write nice README.
okay suggestion added
Commited
Trying to figure out the flake8 situation
Amazing!
@patent pivot Deployment failed
Nice!! I love to see when new things go live!
What's up?
sorry, I didn't notice the ping for some reason. I was having trouble setting up the pre-commit checks in part because gitbash sometimes behaves unpredictably. I switched to powershell: https://paste.pythondiscord.com/walukivimi.coffeescript
I think this output means that I lost my chance to run flake8 because I already committed the changes?
You need to add the files to git before running the pre-commit, otherwise it'll stash them all, then try to run pre-commit on 0 files, thus the skip
And uhh, I didn't ping you whoops
you replied and I thought that would give me some kind of alert.
It does, but only if I keep the mention option active
Like so
I turned it off because of muscle memory 😅
I see. The changes I made are already committed and pushed.
what does "add to git" mean, in this case? The files in question are tracked by git.
They are tracked, thus without git add they were left in the staging area
That functionality is what allows for commiting only certain changes from your change log
See here:
before running the commit command, you must use the add command to add any new or modified files to the index.
https://git-scm.com/docs/git-add
@gritty wind the changes are already committed, so what is there to add?
You can also run flake8 directly.
In theory, if you try to commit with unstaged changes, you'll see something like
You can also just list the status
Some of your changes must've been added, and the rest were stored away by the precommit
[WARNING] Unstaged files detected.
[INFO] Stashing unstaged files to C:\Users\Steele.cache\pre-commit\patch1606418810.
I'll have to look at this after my family does our Thanksgiving stuff. Thanks so far @hardy gorge @gritty wind
Have fun, and happy thanksgiving
I found that forms-frontend also don't use Docker. Should I create Docker + Kubernetes there too?
for some unholy reason Pipfile.lock committed with some other files. Do I need to revert that or don't worry bout it?
Can you guys help me out here?
Hey @surreal plaza, see #❓|how-to-get-help, although this look like an assigment, we probably can't help you with that
Thank you! <3
Well, did you change the dependencies?
I don't think I did, but can't guarantee it didn't happen on accident
If you think you might have done something by mistake then it's probably better to revert it.
If almost the whole file changed, it probably means that you locked with the wrong python version
.issue 531
Can any Core Dev give review to this?
I'll request the core dev team now
lol of course it just requests mark that's helpful
@patent pivot Created PR to forms-backend for README
good structure, I'll fix some phrasing stuff and then it'll be good to go
How will be new forms created and answers collected? Custom interface in forms-frontend, with plain API requests or even another like dashboard?
custom interface
So there will be total 3 apps for forms: forms-frontend, forms-backend and forms-dashboard?
nah, custom interface inside forms-frontend
ks is working on the forms but isn't in the event team smh
Oh
I think the backend logic is in place already
ks maybe you should like
be in the insights team
What team this is?
lol
well, you didn't really had a choice, did you
the team working on forms and eventually insights (our version of DO currents or other dev surveys)
no one gets a choice!
my team my rules
The next code jam will most likely try to use whatever comes out of Insights/Forms
😆
So yes, please more people on Insights
ks I think the logic for the admin stuff is already there
user_details["admin"] = request.state.db.admins.find_one(
{"_id": user_details["id"]}
) is not None
so if there is an entry in the admin table for a uid then they get an admin key in the assigned JWT
and the frontend will read that and display the creation UI
as with most react apps everyone will get access to the frontend UI if they play around with their console, so we'll validate it on the admin side (we can verify that we signed the JWT they submit with)
I have seen one Vue app where all logic was in frontend and no validation in backend. Data that was finally submitted...
"Trust me backend, my will is good"
Should I make PR to use to use GH Actions, Docker and Kubernetes for forms-frontend?
Oh, you will not use Kubernetes for this?
probably not
it feels a bit overkill, y'know?
it's a fully static thing
we'll use netlify or S3 or maybe even github pages
Committed README PR suggestions
last review comments left, then it's ready
But is there currently something more to do?
Fair enough
not yet, I can write up some issues after dinner
👍
So I have an Expiry argument I want to make optional, and then give it a default value inside the function. Would I set it explicitly, or would I use the appropriate converter for it? doing it explicitly is not ideal in case the implementation of the Expiry object changes. But I don't know if it's acceptable to use a converter explicitly
Setting it explicitly would be duration = datetime.datetime.utcnow() + datetime.timedelta(hours=1), which works technically
Nothing wrong with calling the converter yourself
Finally all code jams pages are migrated to HTML...
Only game jam pages left
Or actually, there is only 1 page
@wild ridge Changes in content app is made (with bigger refactor). Also new PR https://github.com/python-discord/site/pull/427
if someone wants a very easy issue to solve on our site - https://github.com/python-discord/site/issues/428
Running into a bit of a conundrum here. I have a file importing classes from discord, and importing classes from constants. now the constants imports include guild, and the import I want is discord.Guild.
What is my course of action here:
- Make both explicit imports, and use constants.xy, discord.xy, etc
- Make just the discord imports explicit
- Leave the existing imports, and double up the discord imports so I can use discord.Guild
Hmm, you could use as imports, something like a
import discord.Guild as DiscordGuild
import constants.Guild as ConstantGuild```or use dotted path for both
Both of those feel like they benefit from having the module name in front of them to me
Most of constants really could use that
I guess I'll do Akarys' suggestion and leave it up to reviewers
I don't like that too much, feels like discord.Guild and constants.Guild but with extra steps
i’d rather namespace it
It is, but the if we do go with discord.Guild and constants.Guild, do we do that for all the imports?
Probably, depends on what those imports are and how they are used
The small issue is that this will feel disorganized depending on how the code look like
TBH, do whatever feels right
It looks like the help_channels.py file was deleted in the help channel refactor, even though _cog.py appears to be the spiritual successor to that file. What's the most git-thonic way to integrate my changes into that file?
So you have changes in help channels and need to merge master which removed it?
I have a few commits in help_channels.py that I can no longer merge into master because that file was deleted, yes
so I'm not sure what to do except figure out how different _cog.py is from what help_channels.py was before I made those commits and copy/paste them in.
doesn't git support continuity for a file if you move or rename it?
One idea would be merging into the head before deletion, updating the branch, and adding another commit to migrate to the new file
At least from a history perspective, things make more sense
I'm worried I'd make the history even more difficult to follow if I did that.
I might just have to make a new branch and try again.
If the file has been properly tagged as a rename, yes, otherwise no
I'd probably just introduce the changes to the new file as a part of the merge
You can try something like this https://stackoverflow.com/questions/16526321/how-to-apply-a-git-patch-to-a-file-with-a-different-name-and-path
The way I understood it is, rename+major refractor, which would mean having to update the code anyways, so merge resolve will fail
the first commit on _cog.py is recent, so it doesn't appear that that's what was done.
@gritty wind FYI we don't assign GitHub authors to PRs
We sometimes do if someone will walk the author through the whole thing
the status: waiting for author tag?
Yeah
It is to communicate that changes need to be done by the author
That's pretty fair, I think the tags could deserve some little descriptions
Though, if the tag doesn't mean what I originally thought it meant, how does adding one for that purpose sound?
Hmm, that's pretty sad, can you try the patch method I linked?
I don't have statistics on how many stalled PRs there are, so I don't know how useful it would be
Author needed to take over in what sense? Someone else should take over the PR?
As in the original author is no longer working on the PR, but their changes can still be useful
So a new author can continue fixing the PR for merging
so this is a way of retroactively saying "treat the first commit on this file as coming directly after the last commit on this file"?
Right, this is so rare that I'm not sure if it would really be worth it
Yes Stel
Hmm actually it will only appear as one commit
It's not possible to "tag" a file as renamed in git afaik
It's just something git will automatically figure out based on how similar the file is
I remember having frustrations years ago when refactoring stuff
If the file is explicitly moved with git mv, and then edited significantly, git will still think it's a new file
It's just a fundamental way of how git was designed is what I read
I see
I've almost finished re-introducing the changes @tawdry vapor
though I have to leave now, so I'll have to figure out what the situation is with the automated checks later.
hey @gritty wind, could you also line up the spacing for the channel IDs?
i don't want to add another comment lol
git calls it a "rewrite", so a rename is a 100% rewrite to a new file (that's why you'll sometimes see like 74% similar etc. etc.)
Ouch, that was a bit of an oversight
it's all good
oh yeah
they should also be alphabetized @gritty wind
sorry lol
I'll do that, but perhaps that should be a comment on the thread too?
sure, i'll comment it
Its just staff voice chat and voice chat that need to be switched, correct?
or do the categories themselves need to be switched too
for the voice category, yeah
also the voice channels category, and the Channels class
Not sure what you mean by that. This is what I have right now
Channels:
....
# Voice Channels
code_help_voice_1: 751592231726481530
...
# Voice Chat
code_help_chat_1: 755154969761677312
....```
(With the staff and voice chat switched)
give me a bit, currently eating lunch
what's for lunch
nice
@gritty wind so for example, this would be the Channels class in alphabetical order https://paste.pythondiscord.com/acazobupeb.py
and this'd be the yaml: https://paste.pythondiscord.com/agiqosurud.yaml****
that would be cool
But... that's just noise? 
it's pretty noise
I mean, we don't have some insane 10 second delays
It will probably always reply to the last message
this is true
Oh, i get you know
I should open an issue for refactoring both files after this then
Maybe later
Are all async redis cache operations expensive? I'm thinking it would be useful for the increment and decrement methods to return the new value.
Which would have the consequence of making them asymmetric with a[b] += c
it's only the additions you've made that need alphabetizing
all the others should already be alphabetized
oh nice, you already made the changes
In theory, yes, but:
change_log
announcements
python_news
...
like right above it
how_to_get_help
cooldown```
don't want to flood this channel though
oh lol, i didn't look there
It can be tackled later
I think that git hook got sent before I pushed the submit button lol
For any core dev: https://github.com/python-discord/bot/pull/1310 is ready for merge.
It's taking docker desktop a long time to restart. is that normal?
How long have you been waiting?
ten minutes maybe?
and if I do docker-compose up:
raise DockerException(
docker.errors.DockerException: Error while fetching server API version: (2, 'CreateFile', 'The system cannot find the file specified.')```
might just reboot my whole computer
Was there a recent update or big change on your system?
not that I know of
but I have environment issues with pretty much anything I try to do
which I realize is a vague category of problems
not just for the bot, but in general.
Try rebooting then, and take it from there
alright
It’s a honestly a miracle docker even supports windows
I run all my work stuff via an ssh connection because I'm not willing to waste any more of my life trying to set up ML/AI packages on Windows.
I want the "run these apt get commands and do the pip install again, problem solved" experience all the time.
I’m sure there are more than enough people here that would love to get you dualbooting off their grandmas secret os recipe
I sat down to dual boot one day after wiping my laptop and reinstalling Windows, which in itself solved a lot of problems
but as it turns out, I still had to defragment the hard drive to create room for a new partition
not sure why that was still needed--I guess because I didn't use the secure wipe so there's some way in which that memory is still allocated, or something.
in either case, it probably would have taken over 24 hours to defragment at the rate it was going and I can't be without my computer for even a third of that time with school and such.
I feel ya, my laptop has practically become a desktop at this point because I refuse to go to the repair center
Did docker get its crap together?
@gritty wind yeah, looks like my changes are working now. I just need to figure out the automated checks and then I can fix the PR.
my changes to the bot, that is
Checks as in precommit hooks?
I think so
"mixed line ending" is the only one that failed.
It changed it when it failed
Check Yaml...........................................(no files to check)Skipped```
I assume this doesn't matter
The thing in, after that it should in theory mark it as fixed and pass
Yeah that’s fine unless you were modifying something you expect to run on those files
I don’t have a fix for this yet, but GitHub desktop seems to be able to handle it for some reason. Idk why
what did the line ending thing even mean? is that the issue with Windows doing line breaks differently?
I always assumed so
It’s not a problem unless you ask the precommit to run on your entire project, I.e if you try to run lint
yeah I always run the commit command twice when working on the bot
probably, but I'm too lazy to do the required research lol
claimant = self.bot.get_guild(constants.Guild.id).get_member(claimant_id)
if claimant is None:
log.info(f'{claimant_id} left the guild during their help session; the cooldown role won\'t be removed')
return
is this useful to log?
Yeah, it is
sure, why not
At some point we had also come to the conclusion that you can clone the repo using LF so it wouldn’t even face any issues
It won't be triggered very often anyway
It does mean I have to commit twice like zig said, and from my editor that means running code analysis and limiting twice
Also it doesn’t work if you have staged and unstated changes
Also an issue on this:
sigh. now the precommit check won't pass and running the check doesn't fix the line ending
You can set git to use lf for commits
I'll have to see if I can make pycharm use LF
Git already automatically uses lf, it’s the checkout and your editor that cause the problem
turns out pycharm has a toggle for that on the screen at all times
weird allocation of screen space
Funny enough, most editors I can think of do have it in the corner too
I'm not sure why running the check isn't fixing the line endings anymore
git will use native by default, setting autocrlf to input and eol to lf fixed the behaviour for me
Not sure if you need the eol set
I see; doing git add again fixes that
The default behavior is to commit with lf, but the issue arises when the editors automatically use crlf, which some do
Yeah it sucks
In my workflow, git add is usually a formality
Try doing git config core.autocrlf input and see if it fixes it, having to rely on the hook to fix it is a pain with merges (and in general)
i see commits
Error: [flake8] D205: 1 blank line required between summary line and description
Error: [flake8] D415: First line should end with a period, question mark, or exclamation point
Error: Process completed with exit code 1.``` welp
Hm, why didn't that get flagged?
is it an objection to the commit message? or perhaps an earlier commit message?
oh right, the precommit hooks only run on the current staged files
these are all the implicated commits: https://github.com/python-discord/bot/pull/1306/commits
Would be handy if the path was included
Try running pipenv run flake8 locally
Though it did fail flake on the last commit
PS C:\Users\Steele\development\projects\pydis\bot> pipenv run flake8
Loading .env environment variables...
``` Frozen on this step for some reason
There is no output while processing (unless you add -V). Did it take you back to terminal yet, or are you still on that step?
still on that step
For how much time approximately?
Presumably right around when you said "Try running pipenv run flake8 locally"
not sure how much of a delay there was
it only takes a few seconds for me, can you run it with verbose then?
If you can, dump it into the pastebin
I'm not necessarily seeing anything that should make it break
Wait yes I do
bot only has a 150 odd files
Why Checking 2832 files
should I be working in a subdirectory of where I am currently?
You should be fine running the flake command directly in your project root
that's where I am
For some reason, this don't load extensions
Maybe this don't load config too and lint like venv or such things
wow a lot of text is happening now
If you find where you have ~2k files within your project dir, you'll be golden
it's searching the virtual environment.
yikes
This means that this don't load config
On an unrelated note, I went ahead and tried to commit your commit (the one that failed the action), and it passed both manual invocation of the precommit, and the actual precommit. It failed a manual lint
what does that mean?
So I checkout out your branch, and reset to the second to last commit. I then ran:
- pipenv run lint [passed]
- git commit [passed]
(rollback) - pipenv run flake8 [failed]
The workflow does step 3
So I'm guessing the precommit and the manual invocation of flake8 might be running two separate tasks?
pipenv run lint runs flake8 inside pre-commit
Yes, which is why its weird that produces a different result from running flake8 using pipenv run flake8 or activating then flake8
Ok, nevermind it does find the error, but the git hook still passes
and now it doesnt and it does, alright i give up
I'm not sure what to do
So I've done more testing, the exact same commit passes in:
- My IDE (pycharm)
- Github Desktop
It fails in:
- git bash (mingw)
- regular terminal git
I haven't been this confused in my life
looks like I may have more line break issues
so I'll have to run that fix recursively for the project
must be from pulling stuff from origin
Can anybody link PR? I try to run this myself too.
Do you have a global flake8 install?
I don't believe that I do @brazen charm
Yes, but shouldn't it be running pipenv anyways (and we don't have extra rules, so even a system wide flake8 would fail)
https://github.com/python-discord/bot/actions/runs/390215777 Check this page, this give you exact locations with annotations
Finding them isn't the hard part
pycharm has a bug where its precommit doesn't activate the environment and just runs flake8 outside of it
Alright, I'll uninstall and test
I'd check that to make sure it isn't because of that
And now it can't find flake8
Well, it was that apparently
How do you get around it?
You have to manually patch the path
async def unclaim_channel(self, channel: discord.TextChannel) -> None:
"""
Remove the claimant from the claimant cache and remove the cooldown role
if it was their last open help channel.
"""
It objects to the second line of this, namely the initial """
but it might be an objection to the docstring itself
Yeah that docstring should be one line, or three lines
Interesting
First line is always a short description, followed by a break, followed by paragraphs
now 217 files are modified because of the line breaks
sigh
I'll just have to delete my clone when this PR is done and try that again
Have you tried setting the autocrlf config?
for git itself? no
Try #dev-contrib message, it fixed the newline issues for me. I also set eol to lf but the docs say that's ignored hen autocrlf is not false
alright
I ran Numerlor's command, and I fixed the docstring
PS C:\Users\Steele\development\projects\pydis\bot> pipenv run pre-commit
Loading .env environment variables...
Check for merge conflicts................................................Passed
Check Toml...........................................(no files to check)Skipped
Check Yaml...........................................(no files to check)Skipped
Fix End of Files.........................................................Passed
Mixed line ending........................................................Passed
Trim Trailing Whitespace.................................................Passed
check blanket noqa.......................................................Passed
Flake8...................................................................Passed
does this mean I can commit then push now?
Did you fix the other annotations?
right. I need to make the linter exclude the venv directory
When I run pipenv run lint in PyCharm terminal, I get both these errors
the only issue there is that it tries to fix line breaks in 200+ files
Oh thats safe to commit
but I don't want one commit to change 200+ files 😦
Numerlor's fix would require you recheck out the project
It won't, under the hood git converts everything to LF anyways, so it recognizes no changes need to be made
Just check the commit before pushing
so if I just go ahead and commit all those files (except the one that I actually changed), nothing will actually happen?
Assuming all the changes are line endings, then yes
alright
If you delete the local repo, then set global autocrlf, then reclone, this won't be an issue
I'll do that when this is done
Yeah, wise choice
pushed. Now we see if I get to not cry
I mean.. probably, but at least the line endings didn't get changed :D
flake8 passed
how does the aoc subscribe thing work, i saw the source but couldn't figure it out, like for every new challenge it pings.
The old one, or the PR?
In the PR, if you check the cog, line 88, it
- gets the time left
- sleeps that time + 1 second
- checks for the new puzzle up to five times
- send a role ping if it was found
- repeat for 25 days
The subscribe function itself just adds people to a list
thanks!
OS: Windows 10
Command: aoc leaderboard
Config: 631135 Last year's pydis leaderboard. If you need my cookie, lmk
Exception:
https://paste.pythondiscord.com/alafejusus.rust
Some of the unicode characters:
\u2b50, \u0142
This seems to be on the redis end, as it doesn't stop the program, and I can not catch an exception there
@hardy gorge
(in reference to lance#531)
oh right, fakeredis is True
Doesnt actually break the program, so lower priority issue
...it's a logging error? that's new
Weird. It may be due to the encoding used for logging in Windows. Maybe it's using that windows encoding, not unicode.
Ah yeah, it's using cp1252
Hmm, worth looking into, but it won't hurt the feature in deployment
👍
My guess is that it's going to occur for any logging statements that try to log unicode characters
Oh, good catch
I will soon run this locally
I'm writing a conclusion on the issue, then closing
I'll make some final changes. I have a few hours to do change stuff, but I also have to do a bit of work.
I only slept 2 hours last night 🙃
Ouch thats rough

Ah, yeah, coding is fun
@cold moon the comment is correct; it does check range(1, 25) (excluding the 25th, because we don't need countdowns on the 25th for the 26th)
The docstring and the comment are just not entirely consistent
But I think then docstring should be changed
The file handler that's created for the logging will need utf8 set
Should be a simple fix as a kaizen
@gritty wind I can't check it myself here on Linux, but could you check if the error is now gone?
I've added an encoding to the file handler
Yeah, it’s working as expected
I don’t think it should’ve necessarily been part of this PR but I’ll approve it for time’s sake
No need to create an issue and a pr for every little change
Agreed, but this is unrelated from the actual PR
At worst, a core dev can push to master
It's not really unrelated, as merging this PR will cause everyone testing sir-lancebot's AoC features on Windows run into this warning
It's also a small change that falls within the kaizen allowance, I'd say
I'm not sure. I think @sullen phoenix made himself code owner of everything, which means that he must approve or I have to merge using my admin permissions
There needs to be a second approval as well, I think?
We can change that
This is for files that don’t have a code owner afaik
We can just merge ves’ PR
I need to bribe someone to help me finish the code review guide
I just haven't had any time due to work
(and my self imposed hiatus last week)
What needs to be done for it?
Pretty much just the procedure part of it. Or the "How" as I have it listed
I've already did the who, the what, and the why
Started a little bit into the how and just got stuck
I've been using Akarys' template he gave me to work from (it's on the issue, I'll snag that real quick)
How long do you expect it to be
Length isn't the goal. I just want to make sure that it's clear and helpful for people brand new to the concept of code review
It can be as long or short as it needs to be as long as it gives someone a good idea of how to do it
For the non-staffer here https://paste.pythondiscord.com/dugolijigu.md
Oh derp right
I could polish my comment, if that can help
Sorry
It'd help immensely. If you did that I could just rip it whole sale
Because what you have is incredibly solid
It just needs some polish
Good lord, there are a lot of spelling mistakes in there
And I was also trying to give it the proper Hemlockisms
I really appreciate it. I feel bad that I'm having to push it off to someone
!remind 16h30M polish the thing
Your reminder will arrive in 16 hours and 30 minutes!
You are my hero
Hi is there a stats command like to do!stats the bot will answer all the uptime CPU storage
I think I misunderstood your original phrasing. If you are trying to implement it for your own bot, you'd have to implement it from scratch. There is no uptime, but that should be easy to implement using the time or datetime module. For hardware usage, you can use a library such as https://pypi.org/project/psutil/
Either way, now that I understand what you are asking, that question is indeed better suited for the help channels, sorry
https://github.com/python-discord/sir-lancebot/compare/d664c68ecd81...ddb3dcf00573#diff-e5bace3e9f8f891dbdcc81752a2b2104a54662304da3b068d64df115ce598aecR66
Why's that not just environ.get("...", "").split(",") 👀
because I'm stupid
(the actual reason is that I initially converted them to int and did not think about it after removing that)
I was guessing it was something along those lines, anyways it isn't a big deal :D
If anyone has a bit of time: https://github.com/python-discord/sir-lancebot/pull/535
One of the background tasks has definitely failed (the status updater) and the other one, the new puzzle announcer, may have failed (although I hope it's still running). Regardless, both were a bit broken due to the deseasonification of @dusky shore. This PR should fix them.
Hmm can someone investigate this:
<#782715290437943306 message>
Current leaderboard:
https://paste.pythondiscord.com/raw/oyonurijuz
Entry on the pydis leaderboard:
- 307 ** Lucas Lindström
(both are gold stars)
https://adventofcode.com/2020/leaderboard/private/view/631135
Oh that's curious
Issue persisted, looking into it
https://paste.pythondiscord.com/raw/jakacebivo
That's me, btw. 🙂
You're just special @obtuse arrow
lol, you have all of them solved, right?
Yep
yeah, iiinteresting
Could it be the nordic character in my name?
I don't see anyone else with non-ascii in the table, I think.
hmm
That's what I'm thinking
Who has access to the logs
I have
Anything interesting in there?
Hmm, I'll do some testing locally
i suspect it's redis having issues with that character
Welp, got a json decoding error
oh
It is not the ö
Reason still unclear
Issue narrowed down: it happens in lines 80-95 of _helpers
Its the loop that parses the raw leaderboards and assigns the stars
It parses correctly at first, but fails afterwards
Issue identified: repeated names
The second one has no stars
We have to store ids instead of names
Looks like Ves changed it from IDs to names. This should be changed to IDs back yes.
I was half way through opening an issue, should I keep writing it, or will it just be patched
Let's write it, but attach critical label I think?
👍
We can patch it immediately
Hey Admin, is it allowed here to share python GitHub projects?
This is specifically for the python-discord projects
If you want to share your own projects, check out the general and offtopic channels
cool 👍
Would it make sense to include the ID on the leaderboard too?
I think that would just be noise
Alright... what do I do with my code now lol
I seem to possibly have write access to master
You are not core dev
Which is why I'm confused
I might just make a paste and let one of you handle it from here lol
Ah, ok, so it was because I'm also in the old PyDis leaderboard?
No, you have two entries in the old leaderboard
On another account?
Yeah
Ah, right.
@gritty wind Thanks. I'll create a patch from that. I'll change a few thinks to make the naming consistent (like name to member_id in that star result)
@green oriole
Here's your reminder: polish the thing.
[Jump back to when you created the reminder](#dev-contrib message)
Yes siiir
Chrome crashed when sending the new version, I am really sad
any specific reason snekbox requires Python 3.9?
Well, it allows us to run 3.9 code
So I'm trying to create a custom cog-level error handler for a change to the AoC commands. I have it so that I can send the new error message, but the error still propagates through to the other bot-level error handlers. Is there a way to prevent that?
I only want the first one to appear, but I don't know how to stop the error from propagating through the handler
Try setting an attribute named "handled" on the exception
Never mind, that isn't checked by this bot
But this is https://github.com/python-discord/sir-lancebot/blob/master/bot/exts/evergreen/error_handler.py#L45
You can edit that to check for error handlers on the cog too
Or a custom attribute like @stable mountain does, which is more fine gained
That check specifically seems to be implemented on the global bot level using d.py, and there doesn't seem to be a direct override. I think you might be able to add an optional ignore parameter to the check itself, then decorate any functions you want to ignore
The check in question
https://github.com/python-discord/sir-lancebot/blob/master/bot/utils/decorators.py#L189
So I can't find an example in seasonal lancebot of the "on_error" being used to have a cog-level error handler, and my attempts so far to use it have not been successful. I feel like I'm missing something basic.
That on error seems to be specifically for the evergreen cog possibly?
For your potential proposed solution where you add an optional ignore parameter and then decorate functions, what exactly would that look like? I'm still a relative newbie to d.py
So a lot of the commands in that aoc cog have the @override_in_channel deco. What you could do is change the deco signature to accept a skip bool, which if true returns true, otherwise carries on to the rest of the predicate
I'm testing that right now
Any commands you'd want exempt from that check, would then get the skip parameter
@tawdry vapor Is https://github.com/python-discord/bot/pull/1016#discussion_r531343809 status code really 403? 404 seems more logic for not found.
Yeah I meant 404
Okay, gonna make changes now
Well, the current way to override the global check is by manually using override_in_channel to add the channels you want to the allowed list. There would have to be a change on the in_channel_check level if you want to implement your own bypass functionality
The current iteration checks if the override_in_channel is part of the callback, so you could technically add a has error checker attr there
I thought it's just the message that needs to be changed
I thought the goal was to suppress the error propagation?
But I do agree about not using a skip parameter, I think a separate skip decorator might be better
Yeah, so a custom message can be used
Well, you could also have more logic than just a message
Maybe not for a custom message, but either way, the error can be stopped from propagating by adding a custom attribute that the global error handler will check for and skip if present. So it doesn't really stop it from propagating, it just makes it get skipped.
But I think I see what you're getting at
By reversed I mean that I feel that the handler should be modified, not the check.
Yeah that already exists with the hasattr on line 214
@eternal owl helped! It turns out I was missing something basic with how I was implementing it.
It doesn't work for cog error handlers, only per-command. Which I proposed to change
It's not really good anyway cause if a local error handler exists then it means it'd be responsible for handling all errors.
@tawdry vapor should we have the same way to check on both the bots if their is an error handler for that command/cog?
on @dusky shore we check if the command has the attr on_error but in @stable mountain we check if the error has the attribute handled
could we make it same on the both of bots?
Sure
okay
Here's a counterargument: you don't want that global check to look for the error handlers, as they can be handling other errors, while that check is specifically responsible for one type of error.
Unless you get the error handler to propagate that error like normal anyways
The global handler will only handle errors which were not handled by the local error handler if done properly
Yes, that's why I am suggesting to check for an attribute on the error rather than looking if any error handler exists
Except the global handler as far as I can tell doesn't send the message about the channel being incorrect
Ah, I see
mark, can you look at the issue and approve it if right
The global handler doesn't control the message but it does propagate it
It has a condition to check for the InChannelCheckFailure exception
The check doesn't directly send a message; it just raises an exception containing a custom message
*grumble grumble* pre-commit hook is annoyingly helpful
its a pain on windows tho, it changes all my line endings in alll the files, thats why I just do flake8, lol
The hook itself should only run on changed files?
run lint would go over all the files, but not the pre-commit hook itself
oh yea, I meant run lint
Change your editor to use LF and then you won't have problems
git still says that I have modified those files and have to commit them, lol
Yeah that would have to change in the autoctrlf setting
Your editor needs to be using LF and git needs to be checking out files as LF too
Git on windows by default checksout ctrlf, and commits LF
thus it tricks itself into thinking the remote repo uses crlf
lemme see
Just set it to false to disable it
where do I do that?
git config --global core.autocrlf false

