diff --git a/CHANGELOG.md b/CHANGELOG.md index d4c25ca55e1b..81f6e4de2ff7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,75 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.54.0 + +1. updated linters: + * `decorder`: from 0.2.3 to 0.4.0 + * `dupword`: from 0.0.11 to 0.0.12 + * `errorlint`: from 1.4.2 to 1.4.3 + * `exhaustruct`: from 2.3.0 to 3.1.0 + * `forbidigo`: from 1.5.3 to 1.6.0 + * `funlen`: from 0.0.3 to 0.1.0 + * `gci`: from 0.10.1 to 0.11.0 + * `ginkgolinter`: from 0.12.1 to 0.13.3 + * `go-critic`: from 0.8.1 to 0.8.2 + * `go-errorlint`: from 1.4.2 to 1.4.3 + * `go-exhaustruct`: from 2.3.0 to 3.1.0 + * `gocognit`: from 1.0.6 to 1.0.7 + * `gocritic`: from 0.8.1 to 0.8.2 + * `gofmt`: autofix missing newline at EOF + * `misspell`: 0.4.0 to 0.4.1 + * `musttag`: from 0.7.0 to 0.7.1 + * `paralleltest`: from 1.0.7 to 1.0.8 + * `tagalign`: from 1.2.2 to 1.3.2 + * `typecheck`: explain it and remove it from the linter list + * `zerologlint`: from 0.1.2 to 0.1.3 +2. misc. + * 🎉 go1.21 support + * plugin: include custom linters in `enable-all` + * plugin: allow to use settings for plugins +3. Documentation + * Add linter descriptions. + +#### Important + +`ruleguard` (a "rule" inside `gocritic`) is disabled, only with go1.21, due to a bug of `ruleguard` + +The Go version should be 1.21 inside `go.mod` or be defined inside the `run` section: + +
go.mod + +```go +module your/module/name + +go 1.21 + +// ... + +``` + +
+ +
.golangci.yml + +```yml +run: + go: '1.21' +``` + +
+ +
CLI flags + +```bash +--go=1.21 +``` + +
+ + +You can follow this topic by subscribing to the [issue #3933](https://github.com/golangci/golangci-lint/issues/3933). + ### v1.53.3 1. updated linters: diff --git a/README.md b/README.md index 1c0b366e1f88..1fe2b3fa3c5c 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ The Core Team has the following responsibilities: - + @@ -79,14 +79,14 @@ The Core Team has the following responsibilities: - + - + @@ -106,20 +106,20 @@ The Core Team has the following responsibilities: - +

Ludovic Fernandez

Ludovic Fernandez

Denis Isaev

Aleksandr Razumov

Andrew Shannon Brown

@golangci-releaser

Marat Reymers

sivchari

sivchari

Pierre Durand

Ryan Currah

Sebastien Rosset

@leonklingele

Sasha Melentyev

Sasha Melentyev

Anton Telyshev

Denis Tingaikin

Maik Schreiber

Steve Coffman

Mitsuo Heijo

Matouš Dzivjak

Nahshon Unna Tsameret
-And 417 more our team members +And 429 more our team members + - @@ -127,33 +127,33 @@ The Core Team has the following responsibilities: + - - + + - - + + - + - - + - + - + @@ -170,303 +170,312 @@ The Core Team has the following responsibilities: + + + + + - - - + + + - - - - - + + - - - + + - + - + - + - + - + + + + + - - + + - - - - - + + - - + + - - + + + + + - - + + - - - - - + + + + + - - - - - + + + + + - - + + - - + + - - - + + + + - - + + - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + + + - + @@ -475,7 +484,7 @@ The Core Team has the following responsibilities: - + @@ -514,7 +523,7 @@ The Core Team has the following responsibilities: - + @@ -543,111 +552,118 @@ The Core Team has the following responsibilities: + - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + - - - + + - - + + - - + + - - + + - - + + + + + + + diff --git a/assets/github-action-config.json b/assets/github-action-config.json index aa6a3750ba98..9aeb47c806c8 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.53.3", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.53.3/golangci-lint-1.53.3-linux-amd64.tar.gz" + "TargetVersion": "v1.54.0", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.54.0/golangci-lint-1.54.0-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -185,6 +185,10 @@ "TargetVersion": "v1.53.3", "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.53.3/golangci-lint-1.53.3-linux-amd64.tar.gz" }, + "v1.54": { + "TargetVersion": "v1.54.0", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.54.0/golangci-lint-1.54.0-linux-amd64.tar.gz" + }, "v1.6": { "Error": "golangci-lint version 'v1.6' isn't supported: we support only v1.14.0 and later versions" }, diff --git a/docs/template_data.state b/docs/template_data.state index a44026aa0e7d..48ee025dff66 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -d3c90b6991db0ac1ffadfe531526f8cc8556d6c7dc9701cd263b555709fa26a1 \ No newline at end of file +f6953a1ec4b7ec950c7647d8963d75b81a1472cfd3cca4580f031a692e13680b \ No newline at end of file diff --git a/go.mod b/go.mod index c5b465cde7e7..9968b5bd199a 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/fatih/color v1.15.0 github.com/firefart/nonamedreturns v1.0.4 github.com/fzipp/gocyclo v0.6.0 - github.com/go-critic/go-critic v0.8.2 + github.com/go-critic/go-critic v0.9.0 github.com/go-xmlfmt/xmlfmt v1.1.2 github.com/gofrs/flock v0.8.1 github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 @@ -166,7 +166,7 @@ require ( github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.32.1 // indirect github.com/prometheus/procfs v0.7.3 // indirect - github.com/quasilyte/go-ruleguard v0.3.19 // indirect + github.com/quasilyte/go-ruleguard v0.4.0 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect @@ -184,7 +184,7 @@ require ( go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/exp/typeparams v0.0.0-20230224173230-c95f2b4c22f2 // indirect + golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.11.0 // indirect diff --git a/go.sum b/go.sum index cabbd59497f6..b770d5986ebc 100644 --- a/go.sum +++ b/go.sum @@ -142,8 +142,8 @@ github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwV github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/go-critic/go-critic v0.8.2 h1:mekhZ9jw5NBEj3I8o/EywXw5zBfGAJuMo4VVVjtxF80= -github.com/go-critic/go-critic v0.8.2/go.mod h1:nZPlrtVfOuLOe8GpvWTfcMzfkG0QVZWAziAeXpivfQo= +github.com/go-critic/go-critic v0.9.0 h1:Pmys9qvU3pSML/3GEQ2Xd9RZ/ip+aXHKILuxczKGV/U= +github.com/go-critic/go-critic v0.9.0/go.mod h1:5P8tdXL7m/6qnyG6oRAlYLORvoXH0WDypYgAEmagT40= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -441,8 +441,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/quasilyte/go-ruleguard v0.3.19 h1:tfMnabXle/HzOb5Xe9CUZYWXKfkS1KwRmZyPmD9nVcc= -github.com/quasilyte/go-ruleguard v0.3.19/go.mod h1:lHSn69Scl48I7Gt9cX3VrbsZYvYiBYszZOZW4A+oTEw= +github.com/quasilyte/go-ruleguard v0.4.0 h1:DyM6r+TKL+xbKB4Nm7Afd1IQh9kEUKQs2pboWGKtvQo= +github.com/quasilyte/go-ruleguard v0.4.0/go.mod h1:Eu76Z/R8IXtViWUIHkE3p8gdH3/PKk1eh3YGfaEof10= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= @@ -619,8 +619,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20230224173230-c95f2b4c22f2 h1:J74nGeMgeFnYQJN59eFwh06jX/V8g0lB7LWpjSLxtgU= -golang.org/x/exp/typeparams v0.0.0-20230224173230-c95f2b4c22f2/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 h1:jWGQJV4niP+CCmFW9ekjA9Zx8vYORzOUH2/Nl5WPuLQ= +golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/pkg/golinters/gocritic.go b/pkg/golinters/gocritic.go index ffac384ed2e7..1319c72d9d42 100644 --- a/pkg/golinters/gocritic.go +++ b/pkg/golinters/gocritic.go @@ -283,20 +283,6 @@ func newGoCriticSettingsWrapper(settings *config.GoCriticSettings, logger loguti allCheckerMap[checkInfo.Name] = checkInfo } - if settings != nil && config.IsGreaterThanOrEqualGo121(settings.Go) { - var enabledChecks []string - for _, check := range settings.EnabledChecks { - if check == "ruleguard" { - logger.Warnf("%s: check %q is disabled for go1.21 https://github.com/golangci/golangci-lint/issues/3933", goCriticName, "ruleguard") - continue - } - - enabledChecks = append(enabledChecks, check) - } - - settings.EnabledChecks = enabledChecks - } - return &goCriticSettingsWrapper{ GoCriticSettings: settings, logger: logger, diff --git a/pkg/lint/lintersdb/custom_linters.go b/pkg/lint/lintersdb/custom_linters.go index bb1c61c0545f..d0eaa7905fb0 100644 --- a/pkg/lint/lintersdb/custom_linters.go +++ b/pkg/lint/lintersdb/custom_linters.go @@ -2,6 +2,7 @@ package lintersdb import ( "fmt" + "os" "path/filepath" "plugin" @@ -115,8 +116,11 @@ func (m *Manager) lookupAnalyzerPlugin(plug *plugin.Plugin) ([]*analysis.Analyze return nil, err } - m.log.Warnf("plugin: 'AnalyzerPlugin' plugins are deprecated, please use the new plugin signature: " + - "https://golangci-lint.run/contributing/new-linters/#create-a-plugin") + // TODO(ldez): remove this env var (but keep the log) in the next minor version (v1.55.0) + if _, ok := os.LookupEnv("GOLANGCI_LINT_HIDE_WARNING_ABOUT_PLUGIN_API_DEPRECATION"); !ok { + m.log.Warnf("plugin: 'AnalyzerPlugin' plugins are deprecated, please use the new plugin signature: " + + "https://golangci-lint.run/contributing/new-linters/#create-a-plugin") + } analyzerPlugin, ok := symbol.(AnalyzerPlugin) if !ok { diff --git a/test/fix_test.go b/test/fix_test.go index 12f54d0ad3f5..87dff82dbe3d 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -44,12 +44,6 @@ func TestFix(t *testing.T) { for _, input := range sources { input := input - // TODO(ldez): remove this limitation when gocritic/ruleguard will be fixed. - if filepath.Base(input) == "gocritic.go" { - t.Logf("skip gocritic because of a bug with ruleguard") - continue - } - t.Run(filepath.Base(input), func(t *testing.T) { t.Parallel() @@ -88,12 +82,6 @@ func TestFix_pathPrefix(t *testing.T) { for _, input := range sources { input := input - // TODO(ldez): remove this limitation when gocritic/ruleguard will be fixed. - if filepath.Base(input) == "gocritic.go" { - t.Logf("skip gocritic because of a bug with ruleguard") - continue - } - t.Run(filepath.Base(input), func(t *testing.T) { t.Parallel() diff --git a/test/linters_test.go b/test/linters_test.go index d76481b6608d..dd130db3e7db 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -62,13 +62,6 @@ func testSourcesFromDir(t *testing.T, dir string) { for _, source := range sources { source := source - - // TODO(ldez): remove this limitation when gocritic/ruleguard will be fixed. - if filepath.Base(source) == "gocritic.go" { - t.Logf("skip gocritic because of a bug with ruleguard") - continue - } - t.Run(filepath.Base(source), func(subTest *testing.T) { subTest.Parallel()

Matouš Dzivjak

Ville Skyttä

Will Dixon

Mateusz Gozdek

Michael Mulligan

Nahshon Unna Tsameret

Nuruddin Ashr

Joe Wilner

Soichiro Kashima

Peter Mescalchin

Lucas Bremgartner

Florian Bosdorff

Kir Kolyshkin

@alingse

Tim Heckman

Oleg Kovalov

Tim Heckman

Oleg Kovalov

James

Colin Arnott

Anton Zinovyev

Luke Shumaker

Anton Zinovyev

Luke T. Shumaker

Aleksey Bakin

Márk Sági-Kazár

Florian Bosdorff

Rski

Ryan Boehning

Gustavo Bazan

Eugene Simonov

Rski

Steven Hartland

Timon Wong

Aliaksandr Mianzhynski

Nate Finch

Nate Finch

Aliaksandr Mianzhynski

ferhat elmas

Leigh McCulloch

Leigh McCulloch

Tom

sonatard

ZhangYunHao

Viktoras

Fabian Holler

Yifei Liu

Agniva De Sarker

Adam Shannon

SystemGlitch

Henrik Johansson

Tom Arrell

Choko

John Starich

Adam Shannon

Koichi Shiraishi

Bart

Neha Viswanathan

Florent Viel

Lukas Malkmus

David Braley

Chris Bandy

Patrick Kuca

Viacheslav Poturaev

Florent Viel

Zik Aeroh

sylvia

Robert Liebowitz

Zeal Wierslee

Robert Liebowitz

Zeal Wierslee

Tim Kral

Hiroyuki Yagihashi

@kyoh86

Yifei Liu

Hiroyuki Yagihashi

Kyoh

Jiangnan Jia

Kunwardeep

Pierre R

Pierre R

Martin Desrumaux

Stephan Renatus

Ivan

tdakkota

Carlos Henrique Guardão Gandarez

Diego Pontoriero

Daniel Helfand

Daniel Helfand

Benjamin Wang

Adam Jones

Faisal Alam

Alex Collins

Ryo Nakao

Ryan Olds

Tommy Mühle

Tommy Mühle

Sebastiaan van Stijn

Sam Zaydel

Carlos Alexandro Becker

@Dominik-K

Craig Silverstein

Sindre Røkenes Myren

Bartłomiej Klimczak

Bartłomiej Klimczak

M. Ángel Jimeno

Jan Oopkaup

Chris Drew

Teiva Harsanyi

Brian Flad

Chris Suszynski

Kailun Qin

@chenfeining

Kailun Qin

Misha Gusarov

@Abirdcfly

Ariel Mashraki

Shulhan

Oscar

Denis Isaev

Dreamacro

Tom Payne

@fsouza

Koya IWAMURA

Hiroki Suezawa

Lauris BH

Sean McGinnis

Fabrice

Christoph Blecker

Mateusz Bilski

Jakub Chábek

Ben Ye

lufe

@sg0hsmt

Misha Gusarov

Stephanie Wilde-Hobbs

@sg0hsmt

Stephanie Wilde-Hobbs

Cory LaNou

Vitaly Isaev

Pete Wagner

Renato Suero

Buyanov Vladimir

Sven Anderson

Ben Wells

Sven Anderson

Ben Wells

Jonathan Chappelow

Siarhei Navatski

Yuki Okushi

hbc

WÁNG Xuěruì

Eric Wohltman

Borja Clemente

Eric Wohltman

Borja Clemente

Ethan Reesor

Mattias de Zalenski

@AlduLonghi

masibw

Sonia Hamilton

@black-06

Gianguido Sorà

Derek Perkins

Oksana Grishchenko

Berezhnoy Pavel

Henry

Aofei Sheng

jessetang

Maksym Pavlenko

Ivan Prisyazhnyy

@ngehrsitz

John Reese

Matthew Gabeler-Lee

James Lucktaylor

Dale Hui

Ondrej Fabry

Aris Tzoumas

Dale Hui

Ondrej Fabry

Aris Tzoumas

Gabor Javorszky

hori-ryota

Kishan B

proton

Eric Jain

Ghvst Code

Son Luong Ngoc

Markus

Sebastian Spaink

Andrew Lavery

Mark Fine

Rory Prendergast

Tariq Ibrahim

Peter Štibraný

Rory Prendergast

Tariq Ibrahim

Peter Štibraný

kaixiang zhong

@ced42

David Bariod

Stephen Benjamin

@kkHAIKE

Hsing-Yu (David) Chen

Batuhan Apaydın

过客龙门

Eldar Rakhimberdin

Toon Schoenmakers

Cezar Sá Espinola

Ben Paxton

Connor Adams

Draven

David Cuadrado

Max Riveiro

Martins Irbe

Yilong Li

Rodrigo Brito

@techknowlogick

takaya

Craig Furman

@ttys3

Mark Sart

Joshua Rubin

Joshua Rubin

Danil Ovchinnikov

Rafael Franco

Ksenia Rogova

Paul Vaughan

Linus Arver

Glen Mailer

Ian Howell

Chris K

Grigory Zubankov

@xxpxxxxp

subham sarkar

Ryan Leung

Donal Byrne

Yusuke Kadowaki

@ImprintNav

Jared Allard

Marko

Chris Lewis

Muhammad Ikhsan

Anton Braer

Jaegu Kim

David Gleich

Fata Nugraha

mattu

Dan Richelson

Denis Titusov

Terdunov Vyacheslav

Sean Chittenden

Hui Zhu

@Harsimran1

rinsuki

rinsuki

Anton Antonov

@hn8

Kevin Gillette

Milas Bowman

@credativ-dar

☃ Elliot Shepherd

@nvartolomei

Martin Etmajer

Fisher Xu

Matthew Poer

Cody Ley-Han

@darklore

@to6ka

@evalexpr

Collin Kreklow

Marcin Owsiany

C.J. Jameson

Jacek

paul fisher

@ofw

Rafik Draoui

Miles Delahunty

Anton Kachurin

Nico Ismaili

Benjamin Kane

@trajan0x

Philip Linell

Herman van Zyl

Jongwoo Han

Chaliy Roman Aleksandrovich

Ryo Sato

Eric Zimanyi

@bbernays

Ben Bernays

Boban Acimovic

Viktor Alenkov

Dima

David Hill

Troy Ronda

Florian Gessner

Osamu TONOMORI

Bo Liu

Steven Allen

Colin Arnott

Eran Levy

Roman Leventov

Hugo

Mathias Weber

Naveen

@maxsond

Maksim Meshkov

@raffepaffe

Dejan Benedik

Adam Bouqdib

Adam Bouqdib

Brandur Leach

Michael

Evgeniy Kulikov

Chris Nesbitt-Smith

Carl Henderson

Shintaro Ikeda

Shintaro Anazawa

Matt Braymer-Hayes

Arjen van der Ende

David Beitey

Takumasa Sakao

Ben Drucker

Stephen Brown II

Matthew Cobbing

Matthew Cobbing

@Darlez

Kirill Danshin

mook

Daniil Suvorov

Yuki Watanabe

Aisuko

Tung Bui (Leo)

Alexandre Vilain

Matias Lahti

Federico Guerinoni

Matias Lahti

Thirukumaran Vaseeharan

Matheus Macabu

Alessio Treglia

Alay Patel

Martin Hutchinson

Emanuel Bennici

Mayo

smantic

@connorszczepaniak-wk

Sebastian Crane

Alexander Else

@vladopajic

Lucas Ramage

Trim21

Catena cyber

Dejan Benedik

@CfirTsabari

Christian Clauss

Johanan Liebermann

Korjavin Ivan

Eng Zer Jun

Mateus Esdras

Devin Gunay

Hilário Coelho

Thomas Cave

Tibo Delor

@chainchad

Francois Parquet

Robert Kopaczewski

Marc Tudurí

@opennota

@pohang

Cyrille Meichel

neglect-yp

Felix

Adrien

Joe Bergevin

Axetroy

Guillaume JG

cnmade

Evan Cordell

靳灿奇

Nassos Kat

hitzhangjie

Matheus Macabu

Jesse Donat

Abhinav Gupta

KADOTA, Kyohei

Conor Evans

Anirudh Sylendranath

@jumpeiMano

Federico Guerinoni

Anirudh Sylendranath

@jumpeiMano

Alex Rodin

Oliver Gugger

Bryan Andrews

Wei Jian Gan

Tamás Gulácsi

Jack Wilsdon

Michał Suchwałko

Jack Wilsdon

Michał Suchwałko

Alexander Apalikov

Domas Tamašauskas

Stéphane Chausson

neo_sli

@srdhoni

@derekhuizhang

takaokanbe

@derekhuizhang

takaokanbe

Sean Schneeweiss

pprzekwas

@madflow

Arman Tarkhanian

John Adler

@licraft2019

@mlueckest

@licraft2019

@mlueckest

Malte Ehrlen

@golangaccount

Tyler Dorn

Enmanuel Moreira

@eiffel-fl

Sylvain Rabot

Piotr Persona

Sylvain Rabot

Piotr Persona

Han Gyoung-Su

Harry Tennent

Kamyar Mirzavaziri

Thomas Bonfort

Matthieu MOREL

Egor Kovetskiy

Jared Szechy