Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Share error code namespace #68

Open
xZise opened this issue May 29, 2016 · 9 comments
Open

Share error code namespace #68

xZise opened this issue May 29, 2016 · 9 comments

Comments

@xZise
Copy link

xZise commented May 29, 2016

Hi would it be possible to share the same error code namespace with your plugin in flake8-future-import? At the moment I'm using FI?? but there is a request (xZise/flake8-future-import#5) to use LDDD (L = letter, D = digit) but I don't know what letter to choose basically. F (for future imports) and I (for imports) are both taken, and I could of course use other letters but they wouldn't have any meaning.

So my idea was if we could agree that I maybe use I900 to I999, so basically replacing FI with I9. Especially as both plugins have a similar scope in checking the imports.

@sigmavirus24
Copy link
Member

@xZise is this related to https://gitlab.com/pycqa/flake8/issues/141?

@xZise
Copy link
Author

xZise commented Jun 29, 2016

Not really because the original issue required the error code format in someone else's project (which looks abandoned). So even if the bug you mentioned was fixed, it wouldn't fix the original issue in my project.

@sigmavirus24
Copy link
Member

sigmavirus24 commented Jun 29, 2016

Perhaps the other person should be convinced to not use unmaintained and abandoned software. Sharing ranges sends like the perfect way to frustrate users.

Sent from my Android device with K-9 Mail. Please excuse my brevity.

@DylanYoung
Copy link

I don't think anyone suggested sharing ranges. They suggested splitting the range so that it isn't shared. This is pretty standard for flake8 plugins. Normally, a plugin only reserves a limited range within their "letter" to avoid namespace clashes.

@sigmavirus24
Copy link
Member

I don't think anyone suggested sharing ranges. They suggested splitting the range so that it isn't shared. This is pretty standard for flake8 plugins. Normally, a plugin only reserves a limited range within their "letter" to avoid namespace clashes.

A. Not at all a norm, maybe slightly more common than it used to be but also entirely unnecessary given that Flake8 no longer limits plugin authors to a single character prefix.

B. Read the title.

C. I've authored flake8 plugins before and rewrote most of what Flake8 is today.

D. @xZise seems to have taken my membership in the org and the fact that I watch this repository as a user as my representing the project. This plugin isn't actively maintained at the moment and I was never speaking for the project so @xZise painting my responses as being anti-sharing a single-character namespace on behalf of the project are in bad faith.

Regardless, as someone who's spent far too much time working on Flake8 and supporting its users I can say with authority that sharing a namespace still seems like a good way to confuse and frustrate users. There are too often bug reports of odd behaviour with a violation code without explanation of which plugin it is because users can't remember. If I didn't have to guess which plugin in their list of 40 was the one responsible for the specific error code behaving oddly, that'd be great, but because no one wants anything other than a single-letter prefix (for reasons I can't honestly fathom) we have to look at the READMEs. As a result, I've found plugins that conflict with each other's ranges because one plugin started using only X900-X999 and then expanded as they found they needed to without coordinating with other people using the X namespace.

In short, agreements to share namespaces only work so long as everyone involved remembers they're sharing and negotiating and don't need to grow beyond their existing range.

@DylanYoung
Copy link

DylanYoung commented Jul 9, 2020

It's literally and explicitly documented by Flake8, lol.

But absolutely you're correct that sharing works through explicit agreement. Same as sharing a letter namespace, lol. However, there are only a very limited number of letters. There are 999 numbers to be shared per letter.

@DylanYoung
Copy link

Frankly, Flake8 either needs to manage their namespaces better (with a registry) or they need a way to remap error codes from plugins, but that's neither here nor there.

@DylanYoung
Copy link

I don't know where @xZise did what you suggested, but I certainly don't support you being insulted because of your opinion. Hopefully it was just a misunderstanding.

@DylanYoung
Copy link

DylanYoung commented Jul 9, 2020

Never hurts to plug this fellow: https://github.com/life4/flakehell/tree/master/flakehell/

Which has a much more sane execution model.

@PyCQA PyCQA locked as off-topic and limited conversation to collaborators Jul 9, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants