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

🪩 It's time to create a v2 🚀 #5300

Open
ldez opened this issue Jan 6, 2025 · 2 comments
Open

🪩 It's time to create a v2 🚀 #5300

ldez opened this issue Jan 6, 2025 · 2 comments
Assignees
Labels
Milestone

Comments

@ldez
Copy link
Member

ldez commented Jan 6, 2025

There are at least 6 years since the idea of a v2 is here, we should pass this step now.

Important

The focus will be on structural configuration changes and default values changes only (and removing all deprecated options). Because a long tunnel with a massive wishlist to create this release is something we should avoid for multiple reasons.

💭 Main Proposals

🗺️ Plan

There are 3 ways to achieve this v2:

  1. a deprecation phase: this will be slower and more complex (because of the compatibility).
  2. a breaking change (with a migration command): this will be faster and easier but the impact on users could be more important.
  3. a mix of the 2 previous ways.

The choice of the way to achieve this v2 will not be defined based on opinions about those ways: we will know the pros and cons between all those ways.
The choice will be based on technical constraints and how much time the community is ready to give us to do it (cf the Sustainability section).

In all cases, v1 will still be maintained during the v2 development phase.

Work on v2 begins with the opening of this issue.

❤️ Sustainability

This will require a lot of work, and so a lot of time, and where there is time there is money.

First, I would say thanks to the people, who already donated ❤️

Asking for money feels very uncomfortable to me, but I should do it because without that nothing will happen magically.

I will work full-time on this new version, I'm not working for a company, my only revenues are donations.
I've applied to several OSS funding programs but so far without success.
I will continue to look for OSS funding programs, and encourage users to donate, and I will try to find other ways.

Also, I'm not alone: all the active maintainers are a major part of this plan.

As golangci-lint's user what you can do:

  1. Give your feedback on the proposals
  2. Donate ❤️: even 2€ / $2 / 350円 / 15元 / 200₽ per month is important
  3. Ask your company to donate (if needed we can exchange by email: info at golangci dot com)
  4. Help us by spreading the message:

If you want to know who I am: I'm Ludovic (aka LDEZ), I'm 44, and I'm living in a small city in France.

Me

cat with a keyboard

@ldez ldez added the proposal label Jan 6, 2025
@ldez ldez added this to the v2 milestone Jan 6, 2025
@ldez ldez pinned this issue Jan 6, 2025
@alexandear
Copy link
Member

alexandear commented Jan 8, 2025

Will we add a tool or command to facilitate migration from golangci-lint config v1 to v2?

Migrating the configuration from v1 to v2 is a significant challenge for users who are not familiar with golangci-lint. It requires manually reading the release notes, understanding the changes made, and updating the configuration accordingly. Even in v1, there are numerous deprecated settings such as run.skip-dirs, run.skip-files, output.uniq-by-line, and output.format. Additionally, users must manually delete deprecated linters and handle renaming (logrlint to loggercheck, gomnd to mnd, etc.)

To assist users in this migration, I propose creating a command, golangci-lint config migrate, that will handle most of the update process. This tool will streamline the transition and reduce the complexity involved in updating to the latest configuration version.

@ldez
Copy link
Member Author

ldez commented Jan 8, 2025

will we add a tool or command to facilitate migration from golangci-lint config v1 to v2?

Yes, this is already inside the issue description, in bold.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants