Advertisement Β· 728 Γ— 90

Posts by Fernandez Ludovic

Don't get me wrong, I love what I do, but to say that this is challenging is an understatement.

I will continue in 2026, still trying to do my best, because I still have a lot of work to do, some new ideas, and hope.

2 months ago 0 0 0 0

Despite all this work, I live under the poverty threshold.

This is 2026 and maintaining OSS projects used by thousands of people is still a sustainability challenge.

I'm not alone in this situation, a lot of maintainers are struggling with it too.

2 months ago 2 0 1 0

I'm maintaining a large number of OSS projects with different sizes.

All my work is totally free and open source, and often invisible to the public.

This year, I have worked every day, no vacations, no weekends.

2 months ago 1 0 1 0

I reached the number of 180+ DNS providers supported inside `go-acme/lego`.
I created two new projects (`ldez/gomodcachesize` and `ldez/structtags`).
I reviewed hundreds of PRs, and answered to even more issues.

2 months ago 0 0 1 0

The review of my year 2025:

I created 533 PRs (1.5 PRs/day AVG).
I created golangci-lint v2.
I have fully revamped the golangci-lint documentation.
I revived golines, and made it 14 times faster.

2 months ago 1 0 1 0
ttl - bool - It can be set to the following values (number of seconds): 3600, 14400, 28800, 57600, 86400

ttl - bool - It can be set to the following values (number of seconds): 3600, 14400, 28800, 57600, 86400

#FunWithAPIs This is the story of a boolean that can only be a integer.

2 months ago 0 0 0 0
POST List DNS Records
POST Add DNS Record
POST Update DNS Record
POST Delete DNS Record(s)
POST Reset Record

POST List DNS Records POST Add DNS Record POST Update DNS Record POST Delete DNS Record(s) POST Reset Record

#FunWithAPIs When an API is from the same family as Groot.

What HTTP methods are you using?
> I am POST!

OK... Do you know GET, DELETE, PUT?
> I am POST!

OK, I will use POST.

2 months ago 0 0 0 0

Perhaps you remember that we had a domain squatting.

I've been monitoring this domain for 2 years, and for the past 2 weeks, I've been checking it twice a day while waiting for the deletion period to end so I can reclaim it.
Today was the end of that period, and guess what?

3 months ago 4 3 1 0
Video

We often focus on binary size, but do you know the size of the files inside the module cache for your project?
On a CI, this may lead you to "no space left on device"
I created a small tool to calculate module cache size for a module.

github.com/ldez/gomodca...

#golang

11 months ago 0 0 0 0
Advertisement
Post image

BREAKING.

From a reliable source. MITRE support for the CVE program is due to expire tomorrow. The attached letter was sent out to CVE Board Members.

11 months ago 679 414 36 200
Preview
Welcome to golangci-lint v2 I am thrilled to announce the release of v2! I hope is that these features will enhance your development experience.

I am thrilled to announce the release of golangci-lint v2!

ldez.github.io/blog/2025/03...

#golang #golangcilint

1 year ago 11 3 1 1
Golangci-lint financial report.

January 2025

Golangci-lint financial report. January 2025

Golangci-lint financial report.

github.com/golangci/gol...

#golang #golangcilint

1 year ago 2 1 0 1
Preview
πŸͺ© It's time to create a v2 πŸš€ Β· Issue #5300 Β· golangci/golangci-lint There are at least 6 years since the idea of a v2 is here, we should pass this step now. ImportantThe focus will be on structural configuration changes and default values changes only (and removing...

It's time for a v2 of golangci-lint!

github.com/golangci/gol...

#golang #golangcilint

1 year ago 8 4 0 0
Preview
Changelog | golangci-lint Fast Go linters runner golangci-lint.

Happy New Year πŸŽ‰
New release (v1.63.0) of golangci-lint!

What's new?
golangci-lint.run/product/chan...

#golang #golangci-lint

1 year ago 10 4 0 0
Video

πŸ€” maybe It works but it need to be uploaded with video button.

1 year ago 1 0 0 0
run with

run with

Post image

I missed that gif doesn't work on Bluesky

1 year ago 0 0 1 0
Post image linters:
  enable:
    - usetesting

linters-settings:
  usetesting:
    # Detects usage of `os.Chdir()`
    # Disabled if Go < 1.24.
    os-chdir: true

    # Detects usage of `context.Background()`
    # Disabled if Go < 1.24.
    context-background: true

    # Detects usage of `context.TODO()`
    # Disabled if Go < 1.24.
    context-todo: true

linters: enable: - usetesting linters-settings: usetesting: # Detects usage of `os.Chdir()` # Disabled if Go < 1.24. os-chdir: true # Detects usage of `context.Background()` # Disabled if Go < 1.24. context-background: true # Detects usage of `context.TODO()` # Disabled if Go < 1.24. context-todo: true

Bonus: this linter is go1.24 ready ✨

1 year ago 0 0 1 0
> ./golangci-lint run example_test.go:41:18: os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestSample (usetesting) tmpFile, err := os.CreateTemp("", pattern) example_test.go:46:17: os.MkdirTemp() could be replaced by t.TempDir() in TestSample (usetesting) tmpDir, err := os.MkdirTemp("", pattern) example_test.go:51:17: os.TempDir() could be replaced by t.TempDir() in TestSample (usetesting) otherTmpDir := os.TempDir() >

> ./golangci-lint run example_test.go:41:18: os.CreateTemp("", ...) could be replaced by os.CreateTemp(t.TempDir(), ...) in TestSample (usetesting) tmpFile, err := os.CreateTemp("", pattern) example_test.go:46:17: os.MkdirTemp() could be replaced by t.TempDir() in TestSample (usetesting) tmpDir, err := os.MkdirTemp("", pattern) example_test.go:51:17: os.TempDir() could be replaced by t.TempDir() in TestSample (usetesting) otherTmpDir := os.TempDir() >

linters:
  enable:
    - usetesting

linters-settings:
  usetesting:
    # Detects usage of `os.CreateTemp("", ...)`
    os-create-temp: true

    # Detects usage of `os.MkdirTemp()`
    os-mkdir-temp: true

    # Detects usage of `os.TempDir()`
    os-temp-dir: true

linters: enable: - usetesting linters-settings: usetesting: # Detects usage of `os.CreateTemp("", ...)` os-create-temp: true # Detects usage of `os.MkdirTemp()` os-mkdir-temp: true # Detects usage of `os.TempDir()` os-temp-dir: true

I created a new linter to detect calls which can be replaced by methods from the testing package.
github.com/ldez/usetest...

This new linter will be available in the next version of golangci-lint (v1.63).

Support my work: bento.me/ldez

#golang #golangcilint

1 year ago 6 2 1 0
Preview
Discrepancy between what's in GitHub and what's been published to PyPI for v8.3.41 Β· Issue #18027 Β· ultralytics/ultralytics Bug Code in the published wheel 8.3.41 is not what's in GitHub and appears to invoke mining. Users of ultralytics who install 8.3.41 will unknowingly execute an xmrig miner. Examining the file util...

in computer news: lol, lmao

github.com/ultralytics/...

it looks like github actions got tricked into running bash through a malicious branch name

which was used to ship mining malware inside python packages

incredible

1 year ago 117 33 3 5
Advertisement

Great! My PR about publishing AUR from sources (not '-bin') has been merged into #GoReleaser, I can't wait to be able to use it, this will save me time and simplify the release processes.
Thank you @caarlos0.dev ❀️

1 year ago 2 1 0 1
> go mod edit -go=1.22
> ./golangci-lint run
go.mod:3:1: go directive (1.22) doesn't match the pattern '\d\.\d+\.0$' (gomoddirectives) go 1.22
> go mod edit -go=1.22.3
> ./golangci-lint run
go.mod:3:1: go directive (1.22.3) doesn't match the pattern '\d\.\d+\.0$' (gomoddirectives) go 1.22.3
> go mod edit -go=1.22.0
> ./golangci-lint run

> go mod edit -go=1.22 > ./golangci-lint run go.mod:3:1: go directive (1.22) doesn't match the pattern '\d\.\d+\.0$' (gomoddirectives) go 1.22 > go mod edit -go=1.22.3 > ./golangci-lint run go.mod:3:1: go directive (1.22.3) doesn't match the pattern '\d\.\d+\.0$' (gomoddirectives) go 1.22.3 > go mod edit -go=1.22.0 > ./golangci-lint run

linters:
  enable:
    - gomoddirectives

linters-settings:
  gomoddirectives:
    # Defines a pattern to validate `go` directive.
    go-version-pattern: '\d\.\d+\.0$'

linters: enable: - gomoddirectives linters-settings: gomoddirectives: # Defines a pattern to validate `go` directive. go-version-pattern: '\d\.\d+\.0$'

I added an option to the `gomoddirectives` linter: it forces the usage of patch 0 (ex: 1.22.0) or go family (ex 1.22) as min go version.

github.com/ldez/gomoddi...

This feature will be available in the next version of golangci-lint (v1.63).

Support my work: bento.me/ldez

#golang #golangcilint

1 year ago 2 2 0 0
Output of the golangci-lint command

Output of the golangci-lint command

Example of linter configuration:

linters:
  enable:
    - tagliatelle

linters-settings:
  tagliatelle:
    case:
      rules:
        json: camel
      overrides:
        # Ignore a package.
        - pkg: my/pkg
          ignore: true
        # Use different rules by package.
        - pkg: my/otherpkg
          rules:
            json: snake

Example of linter configuration: linters: enable: - tagliatelle linters-settings: tagliatelle: case: rules: json: camel overrides: # Ignore a package. - pkg: my/pkg ignore: true # Use different rules by package. - pkg: my/otherpkg rules: json: snake

I updated `tagliatelle` linter, you can now define the naming rules of struct tags by package.

github.com/ldez/tagliat...

This new feature will be available in the next version of golangci-lint (v1.63).

Sponsor my work: bento.me/ldez

#golang #golangcilint

1 year ago 0 1 0 0

merci

1 year ago 0 0 0 0

thank you

1 year ago 1 0 0 0


If you are using some of the projects I maintain, then click on the link bento.me/ldez πŸ™
Each donation is important to me ❀️
Please, RT this message.

1 year ago 0 0 0 0

Starting today, my only source of revenue is community sponsoring for my OSS work.

Currently, it is far from enough to live on.
The next months will be difficult, but I need to do it.

My main focus will be on golangci-lint and go-acme/lego, I want to add new features.

1 year ago 9 4 4 0
Advertisement

A few months ago a user alerted us to the existence of a weird website: a domain squatting website but with a really weird approach.

Maybe you can help us.

1/5

1 year ago 1 1 1 0

I learned something today: I was interacting with a Chinese contributor, and he was using "~" at the end of some sentences.
I thought it was related to a translation tool, but not at all.
The tilde is used at the end of sentences to convey a light, playful, or casual tone.

1 year ago 2 0 0 0
Preview
Changelog | golangci-lint Fast Go linters runner golangci-lint.

πŸŽ‰ New release (v1.62) of golangci-lint!
What's new?
golangci-lint.run/product/chan...
#golang #golangci-lint
πŸ‘‡

1 year ago 1 2 1 0
Preview
How I published links inside the pkg.go.dev documentation of my module While hunting down a package on https://pkg.go.dev, I stumbled upon a delightful surprise in the β€œLinks” section: there are custom links!! What is this magic?

How I published links (and emojis) inside the pkg.go.dev documentation of my module / The missing documentation of pkg.go.dev

ldez.github.io/blog/2024/10...

#go #golang

1 year ago 0 0 0 0