Skip to content

💥 [feat] Create a single nextcloud plugin with all the nextcloud-related rules instead of many few-rules plugins #1221

@ShGKme

Description

@ShGKme

Problem

The plugins we have:

  • l10n with 2 rules: enforce-ellipsis and non-breaking-space + vue versions
  • nextcloud with 2 rules: no-deprecations and no-removed-api
  • nextcloud-vue with 2 rules: no-deprecated-exports and no-deprecated-props
  • import-extensions with a single rule: extensions

All the plugins are, in fact, only small rule sets. They add nothing except for rules.

It increases the project file structure complexity, extra abstractions complexity and naming variations.
For example:

  • @nextcloud/eslint-plugin plugin with JS rules is registered as @nextcloud
  • @nextcloud/eslint-plugin plugin with Vue rules (same name, different rules) is registered as @nextcloud/vue
  • @nextcloud/l10n-plugin plugin is registered as @nextcloud-l10n

It also means, if some project wants to use the rules without our config, it needs to register at least 3 plugins.

And then adding more rules in the same style means — we introduce more plugins (Just imagine if stylistic or Vue plugins would be split into many small plugins).

Is there anything wrapping into many small plugins help with?

(An exception could be the import-extensions plugin as it is not related to Nextcloud).

Proposal (breaking change)

Follow other projects way: provide a single plugin with all the rule definition and predefined set of rules if needed, without additional plugin abstraction.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions