flake8-import-order icon indicating copy to clipboard operation
flake8-import-order copied to clipboard

Proposal to archive this project recommending Flake8-isort instead

Open pgjones opened this issue 5 years ago • 11 comments

Flake8-isort seems to be a better choice than this project, as it is fully customizable (a common request), has the ability to auto-format the imports via isort directly, and able to reproduce all the current styles in this project. Therefore I think this projects readme be changed to recommend Flake8-Isort with the configurations that match the styles and then this project be archived. It would be good to know your thoughts.

pgjones avatar Dec 31 '18 15:12 pgjones

I would personally continue using this project over isort even if it were "archived". I've personally had consistently negative, borderline making me want to quit the community, experiences with the author/maintainer of isort. Furthermore, the Flake8-isort plugin does not use Flake8 config which is a drastic departure from this plugin. It checks its own locations for configuration and handles that separately which means that as a plugin, it is barely pretending to be one. This plugin means that I can configure the entirety of my project's style guidelines inside the [flake8] section and I don't need to remember "Oh right this plugin puts something in an entirely separate file with a different section name". I've also learned recently that everything in setup.cfg that has substitutions (used for custom Flake8 formatting) gets auto-interpolated and things crash if it can't.

Whether or not you continue developing this project is one thing. I would strongly advise not recommending flake8-isort to be a replacement though.

Edit: Further, the plugin (flake8-isort) is licensed as GPL v2 which is a deal-breaker for a lot of people. In short, I suspect there will be a large group of people who want to stick to using this plugin.

sigmavirus24 avatar Dec 31 '18 15:12 sigmavirus24

These are very good points, and I've been unsure how best to respond.

I think that for users wanting different styles to those offered by this project or any extra customizations flake8-isort is a better choice as I don't see a need to re-implement those features in this project. Practically then I think #153 should be closed.

Given your points I think it would be best for this project to be maintenance only i.e. no new features. Practically then I think #161 should be closed and #165 merged.

pgjones avatar Mar 02 '19 14:03 pgjones

maintenance-only makes perfect sense to me. Besides, new styles can be implemented as plugins iirc so if people want new styles, they can be released separately instead of being pushed into here (as I pointed out on a few other PRs).

sigmavirus24 avatar Mar 02 '19 14:03 sigmavirus24

Edit: Further, the plugin (flake8-isort) is licensed as GPL v2 which is a deal-breaker for a lot of people. In short, I suspect there will be a large group of people who want to stick to using this plugin.

Agreed.

We need a fork of flake8-isort, a potential license change, or something equivocal.

tony avatar Oct 10 '19 21:10 tony

isort forces alphabetical sort, which one might not care about (as in pep8 style), so isort is not a proper replacement.

hydrargyrum avatar May 06 '20 10:05 hydrargyrum

For what it's worth, I proposed a pull request for flake8-isort https://github.com/gforcada/flake8-isort/pull/86 that would allow it to use a flake8 config file.

After discussion with the maintainer they preferred to use another pull request that allowed it to use an existing isort configuration file. Some discussion was had as to which approach was preferred in which situation... Anyway, the pull request is still available and is quite simple to apply if desired. And if anyone is ever serious about a fork, let me know.

SwampFalc avatar Jun 02 '20 09:06 SwampFalc

@sigmavirus24,

I'm extremely sorry for any negative interaction. This is the first time I've stumbled into a comment when doing research for an open source project, that I've felt sad. You've done so much for the community and the thought that I would have done something that would make you want to quit that community makes me feel sick.

~Timothy

timothycrosley avatar Aug 23 '20 11:08 timothycrosley

I've been using this project because I find flake8-isort to be completely unusable unless you are actually running isort to fix your imports (and I'm against running tools which modify my code automatically).

All it outputs is: I005 isort found an unexpected missing import

That's of no use to me (not only does it give no information about the correct import, it's also wrong as the imports are in the wrong order, not missing).

Dreamsorcerer avatar Feb 12 '21 12:02 Dreamsorcerer

I'm a big fan of Flake8 Import Order, so since it looks like this project may be archived or go into maintenance-only, I've written Flake8 Alphabetize https://github.com/tlocke/flake8-alphabetize. It's designed to work with the Black formatter and also sorts the __all__ list. I've tried to make Flake8 Alphabetize work in a similar way to Flake8 Import Order. Apart from looking at __all__ a big difference with Flake8 Import Order is that Flake8 Alphabetize is designed to only support one style. Hope this is helpful :-)

tlocke avatar Apr 12 '21 20:04 tlocke

☝️ https://github.com/tlocke/flake8-alphabetize is now MIT 0 Attribution (LICENSE)

As for flake8-isort, I think one blocker to most users is the GPL: https://github.com/gforcada/flake8-isort/issues/56. If the author isn't flexible or open to addressing that, we may need to go for flake8-alphabetize, or fix this one, or something else.

If I had a magic wand we'd just merge the effort to a permissively licensed project so we're not reinventing the wheel - but it's never so simple 😆

tony avatar Aug 10 '22 15:08 tony

If someone wants to take over maintenance of this project I'm sure it can be arranged.

public avatar Aug 10 '22 17:08 public