โœจ Contributors

Thanks goes to these wonderful people (emoji key):


0xflotus

๐Ÿ’ป ๐Ÿ›

1henni

๐Ÿ›

ALiNew

๐Ÿ›

ASBrouwers

๐Ÿ’ป

Abhijit Sarkar

๐Ÿ›

Abhishek Kumar

๐Ÿ›

Adam

๐Ÿ›

Adam Carroll

๐Ÿ›

Adam Obuchowicz

๐Ÿ›

Adrian Price

๐Ÿ›

Adrien Lecharpentier

๐Ÿ›

Aidan Harding

๐Ÿ›

Akshat Bahety

๐Ÿ’ป ๐Ÿ›

Akshay Thapa

๐Ÿ›

Alan Buttars

๐Ÿ›

Alan Hohn

๐Ÿ›

Alberto Fernรกndez

๐Ÿ’ป ๐Ÿ›

Alex

๐Ÿ’ป

Alex

๐Ÿ›

Alex Rentz

๐Ÿ›

Alex Saveau

๐Ÿ›

Alex Shesterov

๐Ÿ’ป ๐Ÿ›

Alexey Markevich

๐Ÿ›

Alexey Naumov

๐Ÿ›

Alexey Yudichev

๐Ÿ›

Alix

๐Ÿ›

Alix

๐Ÿ›

Amish Shah

๐Ÿ›

Amit Prasad

๐Ÿ›

Amitosh Swain Mahapatra

๐Ÿ›

Anand Subramanian

๐Ÿ’ป ๐Ÿ›

Anatoly Trosinenko

๐Ÿ’ป ๐Ÿ›

Andi Pabst

๐Ÿ’ป ๐Ÿ›

Andrea

๐Ÿ›

Andrea Aime

๐Ÿ›

Andreas Dangel

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง

Andreas Deininger

๐Ÿ“–

Andreas Markussen

๐Ÿ›

Andreas Schmid

๐Ÿ›

Andreas Turban

๐Ÿ›

Andrei Paikin

๐Ÿ›

Andrew

๐Ÿ›

Andrew Green

๐Ÿ›

Andrey Fomin

๐Ÿ›

Andrey Hitrin

๐Ÿ›

Andrey Mochalov

๐Ÿ’ป ๐Ÿ›

Andro72

๐Ÿ›

Andrwyw

๐Ÿ›

Andrรฉs Catalรกn

๐Ÿ›

Andy Pattenden

๐Ÿ›

Andy Ray

๐Ÿ›

Andy Robinson

๐Ÿ›

Andy-2639

๐Ÿ›

Ankush Somani

๐Ÿ›

Anmol Kumar

๐Ÿ›

Anthony Whitford

๐Ÿ›

AnthonyKot

๐Ÿ›

Aravind Hegde

๐Ÿ›

Arda Aslan

๐Ÿ›

Ari Fogel

๐Ÿ›

Arnaud Jeansen

๐Ÿ’ป ๐Ÿ›

Arpit Koolwal

๐Ÿ›

Artem

๐Ÿ’ป ๐Ÿ›

Artem

๐Ÿ›

Artem Sheremet

๐Ÿ›

Artur

๐Ÿ›

Artur Bosch

๐Ÿ›

Artur Dryomov

๐Ÿ›

Artur Ossowski

๐Ÿ›

AshTheMash

๐Ÿ›

Ashish Rana

๐Ÿ›

Atul Kaushal

๐Ÿ›

August Boland

๐Ÿ›

Aurel Hudec

๐Ÿ›

Austin

๐Ÿ›

Austin Shalit

๐Ÿ›

Austin Tice

๐Ÿ›

Ayoub Kaanich

๐Ÿ›

BBG

๐Ÿ’ป ๐Ÿ“– ๐Ÿ›

Bailey Tjiong

๐Ÿ’ป

Barthรฉlemy L.

๐Ÿ›

Basavaraj K N

๐Ÿ›

Basil Peace

๐Ÿ›

Belle

๐Ÿ›

Ben Lerner

๐Ÿ›

Ben Manes

๐Ÿ›

Ben McCann

๐Ÿ›

Bendegรบz Nagy

๐Ÿ›

Bennet S Yee

๐Ÿ›

Benoit Lacelle

๐Ÿ›

Bernardo Macรชdo

๐Ÿ›

Bernd Farka

๐Ÿ›

Betina Cynthia Mamani

๐Ÿ›

Bhanu Prakash Pamidi

๐Ÿ’ป ๐Ÿ›

Bhargav Thanki

๐Ÿ›

Binu R J

๐Ÿ›

Bjรถrn Kautler

๐Ÿ’ป ๐Ÿ›

Blightbuster

๐Ÿ›

Bo Zhang

๐Ÿ›

Bob "Wombat" Hogg

๐Ÿ›

Bobby Wertman

๐Ÿ›

Bolarinwa Saheed Olayemi

๐Ÿ’ป ๐Ÿ›

Boris Petrov

๐Ÿ›

Brad Kent

๐Ÿ›

Brandon Mikeska

๐Ÿ›

Brian Batronis

๐Ÿ›

Brian Johnson

๐Ÿ›

Brice Dutheil

๐Ÿ’ป ๐Ÿ›

Bruno Ferreira

๐Ÿ›

Bruno Ritz

๐Ÿ›

Cameron Donaldson

๐Ÿ›

Carlos Macasaet

๐Ÿ›

Carsten Otto

๐Ÿ›

Charlie Housh

๐Ÿ›

Charlie Jonas

๐Ÿ›

Chas Honton

๐Ÿ›

Chen Yang

๐Ÿ›

Chotu

๐Ÿ›

Chris Smith

๐Ÿ›

Chris Toomey

๐Ÿ›

Christian Hujer

๐Ÿ›

Christian Pontesegger

๐Ÿ›

ChristianWulf

๐Ÿ›

Christofer Dutz

๐Ÿ’ป

Christoffer Anselm

๐Ÿ›

Christophe Vidal

๐Ÿ›

Christopher Dancy

๐Ÿ›

Clemens Prill

๐Ÿ›

Clint Chester

๐Ÿ’ป ๐Ÿ›

Clรฉment Fournier

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง

Codacy Badger

๐Ÿ›

Code-Nil

๐Ÿ›

ColColonCleaner

๐Ÿ›

Colin Ingarfield

๐Ÿ›

Craig Andrews

๐Ÿ›

Craig Muchinsky

๐Ÿ›

Cyril

๐Ÿ’ป ๐Ÿ›

Dale

๐Ÿ’ป

Damien Jiang

๐Ÿ›

Dan Berindei

๐Ÿ›

Dan Rollo

๐Ÿ›

Dan Ziemba

๐Ÿ›

Daniel Gredler

๐Ÿ’ป ๐Ÿ›

Daniel Jipa

๐Ÿ›

Daniel Paul Searles

๐Ÿ’ป

Daniel Reigada

๐Ÿ›

Danilo Pianini

๐Ÿ›

Darko

๐Ÿ›

David

๐Ÿ›

David Atkinson

๐Ÿ›

David Burstrรถm

๐Ÿ’ป ๐Ÿ›

David Goatรฉ

๐Ÿ›

David Golpira

๐Ÿ›

David Kovaล™รญk

๐Ÿ›

David M. Karr (fullname at gmail.com)

๐Ÿ›

David Renz

๐Ÿ’ป ๐Ÿ›

David Renz

๐Ÿ›

Deleted user

๐Ÿ›

Dell Green

๐Ÿ›

Dem Pilafian

๐Ÿ›

Den

๐Ÿ›

Denis Borovikov

๐Ÿ’ป ๐Ÿ›

Dennie Reniers

๐Ÿ’ป ๐Ÿ›

Dennis Kieselhorst

๐Ÿ›

Derek P. Moore

๐Ÿ›

Dichotomia

๐Ÿ›

Dionisio Cortรฉs Fernรกndez

๐Ÿ’ป ๐Ÿ›

Dmitri Bourlatchkov

๐Ÿ›

Dmitriy Kuzmin

๐Ÿ›

Dmytro Dashenkov

๐Ÿ›

Drew Hall

๐Ÿ›

Dumitru Postoronca

๐Ÿ›

Dylan Adams

๐Ÿ›

Eden Hao

๐Ÿ›

Edward Klimoshenko

๐Ÿ› ๐Ÿ’ป

Egor Bredikhin

๐Ÿ›

Elan P. Kugelmass

๐Ÿ›

Elder S.

๐Ÿ›

Eldrick Wega

๐Ÿ“–

Emile

๐Ÿ›

Eric

๐Ÿ›

Eric Kintzer

๐Ÿ›

Eric Perret

๐Ÿ›

Eric Squires

๐Ÿ›

Erich L Foster

๐Ÿ›

Erik Bleske

๐Ÿ›

Ernst Reissner

๐Ÿ›

Ewan Tempero

๐Ÿ›

F.W. Dekker

๐Ÿ›

FSchliephacke

๐Ÿ›

Facundo

๐Ÿ›

Federico Giust

๐Ÿ›

Fedor Sherstobitov

๐Ÿ›

Felix Lampe

๐Ÿ›

Filip Golonka

๐Ÿ›

Filipe Esperandio

๐Ÿ’ป ๐Ÿ›

Filippo Nova

๐Ÿ›

Francesco la Torre

๐Ÿ›

Francisco Duarte

๐Ÿ›

Frieder Bluemle

๐Ÿ›

Frits Jalvingh

๐Ÿ’ป ๐Ÿ›

G. Bazior

๐Ÿ›

Gabe Henkes

๐Ÿ›

Gary Gregory

๐Ÿ›

Genoud Magloire

๐Ÿ›

Geoffrey555

๐Ÿ›

Georg Romstorfer

๐Ÿ›

Gio

๐Ÿ›

Gol

๐Ÿ›

Gonzalo Exequiel Ibars Ingman

๐Ÿ’ป ๐Ÿ›

GooDer

๐Ÿ›

Gregor Riegler

๐Ÿ›

Grzegorz Olszewski

๐Ÿ›

Gunther Schrijvers

๐Ÿ’ป ๐Ÿ›

Gustavo Krieger

๐Ÿ›

Guy Elsmore-Paddock

๐Ÿ›

Gรถrkem Mรผlayim

๐Ÿ›

Hanzel Godinez

๐Ÿ›

Haoliang Chen

๐Ÿ›

Harsh Kukreja

๐Ÿ›

Heber

๐Ÿ›

Henning Schmiedehausen

๐Ÿ’ป ๐Ÿ›

Henning von Bargen

๐Ÿ’ป

Hervรฉ Boutemy

๐Ÿ›

Himanshu Pandey

๐Ÿ›

Hokwang Lee

๐Ÿ›

Hooperbloob

๐Ÿ’ป

Hung PHAN

๐Ÿ›

IDoCodingStuffs

๐Ÿ’ป ๐Ÿ›

Iccen Gan

๐Ÿ›

Ignacio Mariano Tirabasso

๐Ÿ›

Igor Melnichenko

๐Ÿ›

Igor Moreno

๐Ÿ›

Intelesis-MS

๐Ÿ›

Iroha_

๐Ÿ›

Ishan Srivastava

๐Ÿ›

Ivano Guerini

๐Ÿ›

Ivar Andreas Bonsaksen

๐Ÿ›

Ivo ล mรญd

๐Ÿ›

JJengility

๐Ÿ›

Jake Hemmerle

๐Ÿ›

James Harrison

๐Ÿ› ๐Ÿ’ป

Jan

๐Ÿ›

Jan Aertgeerts

๐Ÿ’ป ๐Ÿ›

Jan Brรผmmer

๐Ÿ›

Jan Tล™รญska

๐Ÿ›

Jan-Lukas Else

๐Ÿ›

Jason Qiu

๐Ÿ’ป ๐Ÿ“–

Jason Williams

๐Ÿ›

Jean-Paul Mayer

๐Ÿ›

Jean-Simon Larochelle

๐Ÿ›

Jeff Bartolotta

๐Ÿ’ป ๐Ÿ›

Jeff Hube

๐Ÿ’ป ๐Ÿ›

Jeff Jensen

๐Ÿ›

Jeff May

๐Ÿ›

Jens Gerdes

๐Ÿ›

Jeroen Borgers

๐Ÿ› ๐Ÿ’ป ๐Ÿ“ข

Jeroen van Wilgenburg

๐Ÿ“–

Jerome Russ

๐Ÿ›

JerritEic

๐Ÿ’ป ๐Ÿ“– ๐Ÿ›

Jiri Pejchal

๐Ÿ›

Jithin Sunny

๐Ÿ›

Jiล™รญ ล korpil

๐Ÿ›

Joao Machado

๐Ÿ›

Jochen Krauss

๐Ÿ›

Johan Hammar

๐Ÿ›

John Karp

๐Ÿ›

John Zhang

๐Ÿ›

John-Teng

๐Ÿ’ป ๐Ÿ›

Jon Moroney

๐Ÿ’ป ๐Ÿ›

Jonas Geiregat

๐Ÿ›

Jonathan Wiesel

๐Ÿ’ป ๐Ÿ›

Jordan

๐Ÿ›

Jordi Llach

๐Ÿ›

Jorge Solรณrzano

๐Ÿ›

JorneVL

๐Ÿ›

Jose Palafox

๐Ÿ›

Jose Stovall

๐Ÿ›

Joseph

๐Ÿ’ป

Joseph Heenan

๐Ÿ›

Josh Feingold

๐Ÿ’ป ๐Ÿ›

Josh Holthaus

๐Ÿ›

Joshua S Arquilevich

๐Ÿ›

Joรฃo Ferreira

๐Ÿ’ป ๐Ÿ›

Joรฃo Pedro Schmitt

๐Ÿ›

Juan Martรญn Sotuyo Dodero

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง

Juan Pablo Civile

๐Ÿ›

Julian Voronetsky

๐Ÿ›

Julien

๐Ÿ›

Julius

๐Ÿ›

JustPRV

๐Ÿ›

Jรถrn Huxhorn

๐Ÿ›

KThompso

๐Ÿ›

Kai Amundsen

๐Ÿ›

Karel Vervaeke

๐Ÿ›

Karl-Andero Mere

๐Ÿ›

Karl-Philipp Richter

๐Ÿ›

Karsten Silz

๐Ÿ›

Kazuma Watanabe

๐Ÿ›

Kev

๐Ÿ›

Keve Mรผller

๐Ÿ›

Kevin Guerra

๐Ÿ’ป

Kevin Jones

๐Ÿ›

Kevin Wayne

๐Ÿ›

Kieran Black

๐Ÿ›

Kirill Zubov

๐Ÿ›

Kirk Clemens

๐Ÿ’ป ๐Ÿ›

Klaus Hartl

๐Ÿ›

Koen Van Looveren

๐Ÿ›

Kris Scheibe

๐Ÿ’ป ๐Ÿ›

Kunal Thanki

๐Ÿ›

LaLucid

๐Ÿ’ป

Larry Diamond

๐Ÿ’ป ๐Ÿ›

Lars Knickrehm

๐Ÿ›

Leo Gutierrez

๐Ÿ›

LiGaOg

๐Ÿ’ป

Lintsi

๐Ÿ›

Linus Fernandes

๐Ÿ›

Lixon Lookose

๐Ÿ›

Logesh

๐Ÿ›

Lorenzo Gabriele

๐Ÿ›

Loรฏc Ledoyen

๐Ÿ›

Lucas Silva

๐Ÿ›

Lucas Soncini

๐Ÿ’ป ๐Ÿ›

Luis Alcantar

๐Ÿ’ป

Lukasz Slonina

๐Ÿ›

Lukebray

๐Ÿ›

Lynn

๐Ÿ’ป ๐Ÿ›

Lyor Goldstein

๐Ÿ›

MCMicS

๐Ÿ›

Macarse

๐Ÿ›

Machine account for PMD

๐Ÿ’ป

Maciek Siemczyk

๐Ÿ›

Maikel Steneker

๐Ÿ’ป ๐Ÿ›

Maksim Moiseikin

๐Ÿ›

Manfred Koch

๐Ÿ›

Manuel Moya Ferrer

๐Ÿ’ป ๐Ÿ›

Manuel Ryan

๐Ÿ›

Marat Vyshegorodtsev

๐Ÿ›

Marcel Hรคrle

๐Ÿ›

Marcello Fialho

๐Ÿ›

Marcin Rataj

๐Ÿ›

Mark Adamcin

๐Ÿ›

Mark Hall

๐Ÿ’ป ๐Ÿ›

Mark Kolich

๐Ÿ›

Mark Pritchard

๐Ÿ›

Markus Rathgeb

๐Ÿ›

Marquis Wang

๐Ÿ›

MartGit

๐Ÿ›

Martin Feldsztejn

๐Ÿ›

Martin Lehmann

๐Ÿ›

Martin Spamer

๐Ÿ›

Martin Tarjรกnyi

๐Ÿ›

MatFl

๐Ÿ›

Mateusz Stefanski

๐Ÿ›

Mathieu Gouin

๐Ÿ›

MatiasComercio

๐Ÿ’ป ๐Ÿ›

Matt Benson

๐Ÿ›

Matt De Poorter

๐Ÿ›

Matt Hargett

๐Ÿ’ป ๐Ÿ’ต

Matt Harrah

๐Ÿ›

Matt Nelson

๐Ÿ›

Matthew Amos

๐Ÿ›

Matthew Duggan

๐Ÿ›

Matthew Hall

๐Ÿ›

Matรญas Fraga

๐Ÿ’ป ๐Ÿ›

Maxime Robert

๐Ÿ’ป ๐Ÿ›

MetaBF

๐Ÿ›

Michael

๐Ÿ›

Michael Bell

๐Ÿ›

Michael Bernstein

๐Ÿ›

Michael Clay

๐Ÿ›

Michael Dombrowski

๐Ÿ›

Michael Hausegger

๐Ÿ›

Michael Hoefer

๐Ÿ›

Michael Mรถbius

๐Ÿ›

Michael N. Lipp

๐Ÿ›

Michael Pellegrini

๐Ÿ›

Michal Kordas

๐Ÿ›

Michaล‚ Borek

๐Ÿ›

Michaล‚ Kuliล„ski

๐Ÿ›

Miguel Nรบรฑez Dรญaz-Montes

๐Ÿ›

Mihai Ionut

๐Ÿ›

Mirek Hankus

๐Ÿ›

Mladjan Gadzic

๐Ÿ›

MrAngry52

๐Ÿ›

Muminur Choudhury

๐Ÿ›

Mykhailo Palahuta

๐Ÿ’ป ๐Ÿ›

Nagendra Kumar Singh

๐Ÿ›

Nahuel Barrios

๐Ÿ›

Nathan Braun

๐Ÿ›

Nathan Reynolds

๐Ÿ›

Nathan Reynolds

๐Ÿ›

Nathanaรซl

๐Ÿ›

Naveen

๐Ÿ’ป

Nazdravi

๐Ÿ›

Neha-Dhonde

๐Ÿ›

Nicholas Doyle

๐Ÿ›

Nick Butcher

๐Ÿ›

Nico Gallinal

๐Ÿ›

Nicola Dal Maso

๐Ÿ›

Nicolas Filotto

๐Ÿ’ป

Nicolas Vervelle

๐Ÿ›

Nicolas Vuillamy

๐Ÿ“–

Nikita Chursin

๐Ÿ›

Niklas Baudy

๐Ÿ›

Nikolas Havrikov

๐Ÿ›

Nilesh Virkar

๐Ÿ›

Nimit Patel

๐Ÿ›

Niranjan Harpale

๐Ÿ›

Noah Sussman

๐Ÿ›

Noah0120

๐Ÿ›

Noam Tamim

๐Ÿ›

Noel Grandin

๐Ÿ›

Olaf Haalstra

๐Ÿ›

Oleg Andreych

๐Ÿ’ป ๐Ÿ›

Oleg Pavlenko

๐Ÿ›

Oleksii Dykov

๐Ÿ’ป ๐Ÿ›

Oliver Eikemeier

๐Ÿ›

Oliver Siegmar

๐Ÿ’ต

Olivier Parent

๐Ÿ’ป ๐Ÿ›

Ollie Abbey

๐Ÿ’ป ๐Ÿ›

OverDrone

๐Ÿ›

Ozan Gulle

๐Ÿ’ป ๐Ÿ›

PUNEET JAIN

๐Ÿ›

Parbati Bose

๐Ÿ›

Paul Berg

๐Ÿ›

Pavel Bludov

๐Ÿ›

Pavel Miฤka

๐Ÿ›

Pedro Nuno Santos

๐Ÿ›

Pedro Rijo

๐Ÿ›

Pelisse Romain

๐Ÿ’ป ๐Ÿ“– ๐Ÿ›

Per Abich

๐Ÿ’ป

Pete Davids

๐Ÿ›

Peter Bruin

๐Ÿ›

Peter Chittum

๐Ÿ’ป ๐Ÿ›

Peter Cudmore

๐Ÿ›

Peter Kasson

๐Ÿ›

Peter Kofler

๐Ÿ›

Peter Paul Bakker

๐Ÿ’ป

Pham Hai Trung

๐Ÿ›

Philip Graf

๐Ÿ’ป ๐Ÿ›

Philip Hachey

๐Ÿ›

Philippe Ozil

๐Ÿ›

Phinehas Artemix

๐Ÿ›

Phokham Nonava

๐Ÿ›

Piotr Szymaล„ski

๐Ÿ›

Piotrek ลปygieล‚o

๐Ÿ’ป ๐Ÿ› ๐Ÿ“–

Pranay Jaiswal

๐Ÿ›

Prasad Kamath

๐Ÿ›

Prasanna

๐Ÿ›

Presh-AR

๐Ÿ›

Puneet1726

๐Ÿ›

Rafael Cortรชs

๐Ÿ›

RaheemShaik999

๐Ÿ›

RajeshR

๐Ÿ’ป ๐Ÿ›

Ramachandra Mohan

๐Ÿ›

Ramel0921

๐Ÿ›

Raquel Pau

๐Ÿ›

Ravikiran Janardhana

๐Ÿ›

Reda Benhemmouche

๐Ÿ›

Renato Oliveira

๐Ÿ’ป ๐Ÿ›

Rich DiCroce

๐Ÿ›

Riot R1cket

๐Ÿ›

Rishabh Jain

๐Ÿ›

RishabhDeep Singh

๐Ÿ›

Robbie Martinus

๐Ÿ’ป ๐Ÿ›

Robert Henry

๐Ÿ›

Robert Mihaly

๐Ÿ›

Robert Painsi

๐Ÿ›

Robert Russell

๐Ÿ›

Robert Sรถsemann

๐Ÿ’ป ๐Ÿ“– ๐Ÿ“ข ๐Ÿ›

Robert Whitebit

๐Ÿ›

Robin Richtsfeld

๐Ÿ›

Robin Stocker

๐Ÿ’ป ๐Ÿ›

Robin Wils

๐Ÿ›

RochusOest

๐Ÿ›

Rodolfo Noviski

๐Ÿ›

Rodrigo Casara

๐Ÿ›

Rodrigo Fernandes

๐Ÿ›

Roman Salvador

๐Ÿ’ป ๐Ÿ›

Ronald Blaschke

๐Ÿ›

Rรณbert Papp

๐Ÿ›

Saikat Sengupta

๐Ÿ›

Saksham Handu

๐Ÿ›

Saladoc

๐Ÿ›

Salesforce Bob Lightning

๐Ÿ›

Sam Carlberg

๐Ÿ›

Satoshi Kubo

๐Ÿ›

Scott Kennedy

๐Ÿ›

Scott Wells

๐Ÿ› ๐Ÿ’ป

Scrsloota

๐Ÿ’ป

Sebastian Bรถgl

๐Ÿ›

Sebastian Schuberth

๐Ÿ›

Sebastian Schwarz

๐Ÿ›

Sergey Gorbaty

๐Ÿ›

Sergey Kozlov

๐Ÿ›

Sergey Yanzin

๐Ÿ’ป ๐Ÿ›

Seth Wilcox

๐Ÿ’ป

Shubham

๐Ÿ’ป ๐Ÿ›

Simon Abykov

๐Ÿ’ป ๐Ÿ›

Simon Xiao

๐Ÿ›

Srinivasan Venkatachalam

๐Ÿ›

Stanislav Gromov

๐Ÿ›

Stanislav Myachenkov

๐Ÿ’ป

Stefan Birkner

๐Ÿ›

Stefan Bohn

๐Ÿ›

Stefan Endrullis

๐Ÿ›

Stefan Klรถss-Schuster

๐Ÿ›

Stefan Wolf

๐Ÿ›

Stephan H. Wissel

๐Ÿ›

Stephen

๐Ÿ›

Stephen Friedrich

๐Ÿ›

Steve Babula

๐Ÿ’ป

Stexxe

๐Ÿ›

Stian Lรฅgstad

๐Ÿ›

StuartClayton5

๐Ÿ›

Supun Arunoda

๐Ÿ›

Suren Abrahamyan

๐Ÿ›

Suvashri

๐Ÿ“–

SwatiBGupta1110

๐Ÿ›

SyedThoufich

๐Ÿ›

Szymon Sasin

๐Ÿ›

T-chuangxin

๐Ÿ›

TERAI Atsuhiro

๐Ÿ›

TIOBE Software

๐Ÿ’ป ๐Ÿ›

Taylor Smock

๐Ÿ›

Techeira Damiรกn

๐Ÿ’ป ๐Ÿ›

Ted Husted

๐Ÿ›

TehBakker

๐Ÿ›

The Gitter Badger

๐Ÿ›

Theodoor

๐Ÿ›

Thiago Henrique Hรผpner

๐Ÿ›

Thibault Meyer

๐Ÿ›

Thomas Gรผttler

๐Ÿ›

Thomas Jones-Low

๐Ÿ›

Thomas Smith

๐Ÿ’ป ๐Ÿ›

ThrawnCA

๐Ÿ›

Thunderforge

๐Ÿ’ป ๐Ÿ›

Tim van der Lippe

๐Ÿ›

Tobias Weimer

๐Ÿ’ป ๐Ÿ›

Tom Copeland

๐Ÿ› ๐Ÿ’ป ๐Ÿ“–

Tom Daly

๐Ÿ›

Tomer Figenblat

๐Ÿ›

Tomi De Lucca

๐Ÿ’ป ๐Ÿ›

Torsten Kleiber

๐Ÿ›

TrackerSB

๐Ÿ›

Tyson Stewart

๐Ÿ›

Ullrich Hafner

๐Ÿ›

Utku Cuhadaroglu

๐Ÿ’ป ๐Ÿ›

Valentin Brandl

๐Ÿ›

Valeria

๐Ÿ›

Valery Yatsynovich

๐Ÿ“–

Vasily Anisimov

๐Ÿ›

Vibhor Goyal

๐Ÿ›

Vickenty Fesunov

๐Ÿ›

Victor Noรซl

๐Ÿ›

Vincent Galloy

๐Ÿ’ป

Vincent HUYNH

๐Ÿ›

Vincent Maurin

๐Ÿ›

Vincent Privat

๐Ÿ›

Vishhwas

๐Ÿ›

Vitaly

๐Ÿ›

Vitaly Polonetsky

๐Ÿ›

Vojtech Polivka

๐Ÿ›

Vsevolod Zholobov

๐Ÿ›

Vyom Yadav

๐Ÿ’ป

Wang Shidong

๐Ÿ›

Waqas Ahmed

๐Ÿ›

Wayne J. Earl

๐Ÿ›

Wchenghui

๐Ÿ›

Will Winder

๐Ÿ›

William Brockhus

๐Ÿ’ป ๐Ÿ›

Wilson Kurniawan

๐Ÿ›

Wim Deblauwe

๐Ÿ›

Woongsik Choi

๐Ÿ›

XenoAmess

๐Ÿ’ป ๐Ÿ›

Yang

๐Ÿ’ป

YaroslavTER

๐Ÿ›

Yasar Shaikh

๐Ÿ’ป

Young Chan

๐Ÿ’ป ๐Ÿ›

YuJin Kim

๐Ÿ›

Yuri Dolzhenko

๐Ÿ›

Yurii Dubinka

๐Ÿ›

Zoltan Farkas

๐Ÿ›

Zustin

๐Ÿ›

aaronhurst-google

๐Ÿ› ๐Ÿ’ป

alexmodis

๐Ÿ›

andreoss

๐Ÿ›

andrey81inmd

๐Ÿ’ป ๐Ÿ›

anicoara

๐Ÿ›

arunprasathav

๐Ÿ›

asiercamara

๐Ÿ›

astillich-igniti

๐Ÿ’ป

avesolovksyy

๐Ÿ›

avishvat

๐Ÿ›

avivmu

๐Ÿ›

axelbarfod1

๐Ÿ›

b-3-n

๐Ÿ›

balbhadra9

๐Ÿ›

base23de

๐Ÿ›

bergander

๐Ÿ›

berkam

๐Ÿ’ป ๐Ÿ›

breizh31

๐Ÿ›

caesarkim

๐Ÿ›

carolyujing

๐Ÿ›

cbfiddle

๐Ÿ›

cesares-basilico

๐Ÿ›

chrite

๐Ÿ›

cobratbq

๐Ÿ›

coladict

๐Ÿ›

cosmoJFH

๐Ÿ›

cristalp

๐Ÿ›

crunsk

๐Ÿ›

cwholmes

๐Ÿ›

cyberjj999

๐Ÿ›

cyw3

๐Ÿ›

d1ss0nanz

๐Ÿ›

dalizi007

๐Ÿ’ป

danbrycefairsailcom

๐Ÿ›

dariansanity

๐Ÿ›

darrenmiliband

๐Ÿ›

davidburstrom

๐Ÿ›

dbirkman-paloalto

๐Ÿ›

deepak-patra

๐Ÿ›

dependabot[bot]

๐Ÿ’ป ๐Ÿ›

dinesh150

๐Ÿ›

diziaq

๐Ÿ›

dreaminpast123

๐Ÿ›

duanyanan

๐Ÿ›

dutt-sanjay

๐Ÿ›

dylanleung

๐Ÿ›

dzeigler

๐Ÿ›

ekkirala

๐Ÿ›

emersonmoura

๐Ÿ›

fairy

๐Ÿ›

filiprafalowicz

๐Ÿ’ป

foxmason

๐Ÿ›

frankegabor

๐Ÿ›

frankl

๐Ÿ›

freafrea

๐Ÿ›

fsapatin

๐Ÿ›

gracia19

๐Ÿ›

guo fei

๐Ÿ›

gurmsc5

๐Ÿ›

gwilymatgearset

๐Ÿ’ป ๐Ÿ›

haigsn

๐Ÿ›

hemanshu070

๐Ÿ›

henrik242

๐Ÿ›

hongpuwu

๐Ÿ›

hvbtup

๐Ÿ’ป ๐Ÿ›

igniti GmbH

๐Ÿ›

ilovezfs

๐Ÿ›

itaigilo

๐Ÿ›

jakivey32

๐Ÿ›

jbennett2091

๐Ÿ›

jcamerin

๐Ÿ›

jkeener1

๐Ÿ›

jmetertea

๐Ÿ›

johnra2

๐Ÿ’ป

josemanuelrolon

๐Ÿ’ป ๐Ÿ›

kabroxiko

๐Ÿ’ป ๐Ÿ›

karwer

๐Ÿ›

kaulonline

๐Ÿ›

kdaemonv

๐Ÿ›

kenji21

๐Ÿ’ป ๐Ÿ›

kfranic

๐Ÿ›

khalidkh

๐Ÿ›

koalalam

๐Ÿ›

krzyk

๐Ÿ›

lasselindqvist

๐Ÿ›

lgemeinhardt

๐Ÿ›

lihuaib

๐Ÿ›

lonelyma1021

๐Ÿ›

lpeddy

๐Ÿ›

lujiefsi

๐Ÿ’ป

lukelukes

๐Ÿ’ป

lyriccoder

๐Ÿ›

marcelmore

๐Ÿ›

matchbox

๐Ÿ›

matthiaskraaz

๐Ÿ›

meandonlyme

๐Ÿ›

mikesive

๐Ÿ›

milossesic

๐Ÿ›

mohan-chinnappan-n

๐Ÿ’ป

mriddell95

๐Ÿ›

mrlzh

๐Ÿ›

msloan

๐Ÿ›

mucharlaravalika

๐Ÿ›

mvenneman

๐Ÿ›

nareshl119

๐Ÿ›

nicolas-harraudeau-sonarsource

๐Ÿ›

noerremark

๐Ÿ›

novsirion

๐Ÿ›

oggboy

๐Ÿ›

oinume

๐Ÿ›

orimarko

๐Ÿ’ป ๐Ÿ›

pacvz

๐Ÿ’ป

pallavi agarwal

๐Ÿ›

parksungrin

๐Ÿ›

patpatpat123

๐Ÿ›

patriksevallius

๐Ÿ›

pbrajesh1

๐Ÿ›

phoenix384

๐Ÿ›

piotrszymanski-sc

๐Ÿ’ป

plan3d

๐Ÿ›

poojasix

๐Ÿ›

prabhushrikant

๐Ÿ›

pujitha8783

๐Ÿ›

r-r-a-j

๐Ÿ›

raghujayjunk

๐Ÿ›

rajeshveera

๐Ÿ›

rajeswarreddy88

๐Ÿ›

recdevs

๐Ÿ›

reudismam

๐Ÿ’ป ๐Ÿ›

rijkt

๐Ÿ›

rillig-tk

๐Ÿ›

rmohan20

๐Ÿ’ป ๐Ÿ›

rnveach

๐Ÿ›

rxmicro

๐Ÿ›

ryan-gustafson

๐Ÿ’ป ๐Ÿ›

sabi0

๐Ÿ›

scais

๐Ÿ›

sebbASF

๐Ÿ›

sergeygorbaty

๐Ÿ’ป

shilko2013

๐Ÿ›

shiomiyan

๐Ÿ“–

simeonKondr

๐Ÿ›

snajberk

๐Ÿ›

sniperrifle2004

๐Ÿ›

snuyanzin

๐Ÿ› ๐Ÿ’ป

sratz

๐Ÿ›

stonio

๐Ÿ›

sturton

๐Ÿ’ป ๐Ÿ›

sudharmohan

๐Ÿ›

suruchidawar

๐Ÿ›

svenfinitiv

๐Ÿ›

tashiscool

๐Ÿ›

test-git-hook

๐Ÿ›

testation21

๐Ÿ’ป ๐Ÿ›

thanosa

๐Ÿ›

tiandiyixian

๐Ÿ›

tobwoerk

๐Ÿ›

tprouvot

๐Ÿ› ๐Ÿ’ป

trentchilders

๐Ÿ›

triandicAnt

๐Ÿ›

trishul14

๐Ÿ›

tsui

๐Ÿ›

winhkey

๐Ÿ›

witherspore

๐Ÿ›

wjljack

๐Ÿ›

wuchiuwong

๐Ÿ›

xingsong

๐Ÿ›

xioayuge

๐Ÿ›

xnYi9wRezm

๐Ÿ’ป ๐Ÿ›

xuanuy

๐Ÿ›

xyf0921

๐Ÿ›

yalechen-cyw3

๐Ÿ›

yasuharu-sato

๐Ÿ›

zenglian

๐Ÿ›

zgrzyt93

๐Ÿ’ป ๐Ÿ›

zh3ng

๐Ÿ›

zt_soft

๐Ÿ›

ztt79

๐Ÿ›

zzzzfeng

๐Ÿ›

รrpรกd Magosรกnyi

๐Ÿ›

ไปป่ดตๆฐ

๐Ÿ›

่Œ…ๅปถๅฎ‰

๐Ÿ’ป

Previous Contributors

These are collected contributors before we moved to github.

Founders

According to the book PMD Applied the following people are the founders of PMD:

  • Tom Copeland (@tcopeland) - PMD core, lead developer, JDeveloper plugin, initial Gel plugin, initial jEdit plugin, IDEAJ integration, BlueJ extension
  • David Dixon-Peugh - PMD core, much of the early work on the grammar, initial Emacs plugin
  • David Craine - JBuilder plugin

Committers

  • Philippe Herlin - Eclipse plugin, fixed bugs in RuleSetFactory
  • Nascif Abousalh Neto - Emacs plugin
  • Jiger Patel - jEdit plugin
  • Alan Ezust - jEdit plugin
  • Ole-Martin Mork - NetBeans plugin
  • Miguel Griffa - PMD core, over a dozen rules, lots of documentation, and other improvements all over the place
  • Allan Caplan - PMD core, six rules, lots of bugfixes and improvements to the PMD core
  • Radim Kubacki - Netbeans plugin, OptimizableToArrayCallRule suggestion, bug reports
  • Tomasz Slota - Netbeans plugin
  • Andrey Lumyanski - Gel plugin
  • Johan Nagels - PMD core, JSP support
  • Brian Remedios - PMD core, properties subsystem, lots of CPD UI improvements, Eclipse plugin improvements
  • Xavier Le Vourch - PMD core, numerous bug fixes, UselessStringValueOf, UnnecessaryWrapperObjectCreation, SimplifyBooleanAssertion
  • Sven Jacob - DFA subsystem, Eclipse plugin
  • Wouter Zelle - Lots of bugfixes and cleanups, JUnit test XML design, introduced java.util.logging, BrokenNullCheck, NonThreadSafeSingleton, DefaultPackage rule, UselessOverridingMethod, ProperLogger, AvoidPrintStackTrace, SimplifyConditional
  • Ryan Gustafson - PMD core, assists with Eclipse plugin
  • Torsten Kleiber - JDeveloper plugin
  • Romain Pelisse - Various bugfix patches, restructured CPD tokenizers, patch to remove redundant rule, added Fortran tokenizer, DoNotExtendJavaLangError, JspEncoding, MDBAndSessionBeanNamingConvention, RemoteSessionInterfaceNamingConvention, LocalInterfaceSessionNamingConvention, LocalHomeNamingConvention, RemoteInterfaceNamingConvention, AvoidFinalLocalVariable, ClassWithOnlyPrivateConstructorsShouldBeFinal, TooManyStaticImports, DoNotCallSystemExit, StaticEJBFieldShouldBeFinal

Committers emeritus

  • Gunnlaugur Thor Briem - NetBeans plugin, Maven build script fixes, bug report on JavaCC parserโ€™s use of java.lang.Error
  • Tom Burke - Eclipse plugin
  • Alex Chaffee - various bugfixes and features
  • Siegfried Goeschl - original Maven plugin, various bugfixes and features
  • Don Leckie - The PMD GUI
  • Rich Kilmer - logo design
  • Paul Kendall - various bugfixes and features
  • Colin Wilson-Salt - NetBeans plugin team
  • Brant Gurganus - JCreator integration, Swing GUI work

Significant contributors

  • Pieter Vanraemdonck - JSP grammar/integration/documentation, DontNestJsfInJstlIteration, NoLongScripts, NoScriptlets, NoInlineStyleInformation, NoClassAttribute, NoJspForward
  • Raik Schroeder - data flow analysis layer, YAHTMLRenderer
  • Steve Hawkins - rewrite of CPD based on Karp-Rabin string matching
  • Daniel Sheppard - XPath engine integration concept and implementation, advice on Jaxen extension function naming
  • Brian Ewins - complete rewrite of CPD based on the Burrows-Wheeler transform, fixed DocumentNavigator bug

Contributors

  • Andy Throgmorton - New XPath getCommentOn function, new rule DontCallThreadRun, fix for rule UseArraysAsList
  • Nicolas Dordet - Fixed an issue on CloseResource
  • Juan Jesรบs Garcรญa de Soria - Rework CPD algorithm
  • Sergey Pariev - Fixed an ugly ArrayIndexOutOfBoundsException in CPD for Ruby
  • Chris Heister - Reported and noted proper fix for bug in IDEAJ renderer operations
  • Ralf Wagner - Reported bug in UselessOperationOnImmutable, reported and noted proper fix for broken XSLT
  • Caroline Rioux - Reported bug in ImmutableField
  • Miroslav ล ulc - Reported bug in CloneMethodMustImplementCloneable
  • Thomas Steininger - Noticed redundant rule
  • Thomas Leplus - Contributed new rules LogicInversion, ExtendsObject, UselessParentheses, EmptyInitializer, EmptyStatementBlock, CheckSkipResult.Rewrote UselessStringValueOf, nice patch for ClassCastExceptionWithToArray
  • Paul Sundling - A nice documentation patch for ruleset links
  • Matt Koch - Added more detail to PMD XML report
  • Richard Hands - Fixed CPD symlink confusion
  • Oleg Skrypnyuk - reported a Java 1.5 grammar bug
  • Jeff Campbell - Found bug and suggested fix for problem with XMLRenderer and SuppressWarnings(โ€œPMDโ€) annotations
  • Kris Jurka - CPD patch to accept โ€œ.Cโ€ as a filename extension for C/C++ files
  • Florian Deissenboeck - reported several Java 1.5 grammar bugs
  • Maarten ter Huurne - BooleanGetMethodName, AddEmptyString, Noticed misspelling in AvoidArrayLoops rule
  • Lukas Theussl - Patch to bring Maven configuration files up to date
  • Jason Bennett - Rewrite of annotation-based warning suppression to allow for rule-specific suppression, noticed useless line in XSLT scripts, fix for UnnecessaryLocalBeforeReturn, wrote NPathComplexity rule, patches to improve CyclomaticComplexity rule, Implemented: UseCollectionIsEmpty, NcssTypeCount, NcssMethodCount, NcssConstructor, Patch to detect comparison with new Object
  • Brent Fisher - Fixed report backslash bug, SummaryHTML report improvements
  • Larry Brigman - Reported symlink bug in CPD
  • Harald Rohan - Reported bug in CPD GUI
  • Stephan Classens - Patch for file closing bug, noted missing varargs setting in ASTFormalParameter
  • piair - Implemented StringBufferInstantiationWithChar, AvoidUsingOctalValues
  • Christopher Eagan - Reported bug in VariableNamingConventions
  • Fabio Insaccanebbia - Improvement for UseArraysAsList, UnusedNullCheckInEquals, MisplacedNullCheck, UselessOperationOnImmutable, AvoidArrayLoops, UseArraysAsList, AvoidConstantsInterface, AvoidDecimalLiteralsInBigDecimalConstructor, ClassCastExceptionWithToArray, BigIntegerInstantiation
  • Stefan Seidel - Reported Java 1.5 parsing bug
  • Aaron Optimizer Digulla - Tweaks to pmd.bat
  • Peter Van de Voorde - Rewrote the โ€˜create rule XMLโ€™ functionality in the designer utility
  • Josh Devins - Reported bug with annotation parsing
  • Alan Berg - Reported bug in Ant task
  • George Thomas - Wrote AvoidRethrowingException rule, new AvoidLosingExceptionInformation rule
  • Robert Simmons - Reported bug in optimizations package along with suggestions for fix
  • Brian Remedios - display cleanup of CPD GUI, code cleanup of StringUtil and various rules, cleanup of rule designer, code cleanup of net.sourceforge.pmd.ant.Formatter.java, code improvements to Eclipse plugin, created AbstractPoorMethodCall and refactored UseIndexOfChar
  • Max Tardiveau - A nice XML to HTML stylesheet for CPD.
  • Ernst Reissner - reported IdempotentOperations bug, reported CloneThrowsCloneNotSupportedException bug, reported Java 1.5 parsing bug, suggested InstantiationToGetClass, bug reports for UnusedPrivateField/CloseConnectionRule/ConstructorCallsOverridableMethodRule, and bug report and documentation suggestions for UseSingletonRule
  • Maarten Coene - bug report for UnnecessaryConversionTemporary
  • Jorn Stampehl - Reported bug in UnusedModifier, reported and fixed bugs in JUnitTestsShouldContainAsserts/CyclomaticComplexity/TooManyFields, noticed redundancy of ExplicitCallToFinalize, reported bug in AvoidCallingFinalize, reported bug in JUnitAssertionsShouldIncludeMessage, reported bug in bug report on JUnitTestsShouldContainAsserts
  • Ulrich Kriegel - reported Ant task documentation bug
  • Jarkko Hietaniemin - rewrote most of cpd.sh, many C grammar improvements, several CPD documentation suggestions, noted missing CPD scripts in binary release
  • Adam Zell - Reported bug in UselessOverridingMethod
  • Daniel Serodio - Reported bug in ExceptionSignatureDeclaration
  • John Redford - Reported bug in AvoidProtectedFieldInFinalClass
  • Dโ€™Arcy Smith - Reported bug in UncommentedEmptyConstructor, reported missing RuleViolation methods
  • Paul Field - Fixed bug in MissingBreakInSwitch, reported a bug in DontImportJavaLang
  • Attila Korompai - A nice patch to add messages to the NOPMD feature
  • Levent Gurses - Suggested JSP support for the copy/paste detector
  • Neil Cafferkey - Reported a typo in AssignmentInOperand
  • Noel Grandin - bug report for ImmutableField, bug report for MissingStaticMethodInNonInstantiatableClass, bug report for MissingBreakInSwitch, EqualsNull rule, bug report for IfElseStmtsMustUseBracesRule
  • Olaf Heimburger - wrote the UseProperClassLoader rule, code changes to get JDeveloper plugin working under JDev 10.1.3 EA, reported a possible NPE in ReportTree
  • Mohammad Farooq - Reported new JavaNCSS URL
  • Jeff Jensen - Reported missing XML schema references in documentation, wrote new XML schema, reported missing schema refs in example rulesets, suggested posting XML schema on PMD site, discussion of โ€˜comments in catch blockโ€™ feature, suggested description attribute in property element
  • Christopher Stach - bug report for VariableNamingConventions, bug report for CallSuperInConstructor, many bug reports for rules that didnโ€™t handle Java 1.5 constructs
  • Matthew Harrah - noticed missing element in UseCorrectExceptionLogging definition, script bug report
  • Mike Kaufman - Reported abug in UnnecessaryCaseChange
  • Elliotte Rusty Harold - reported bug in UseAssertSameInsteadOfAssertTrue, suggested creating a new ruleset containing rules in each release, UncommentedEmptyConstructor suggestions, noted missed case for UnusedFormalParameter, documentation suggestions, reported mistake in UnnecessaryLocalBeforeReturn message, bug report 1371757 for misleading AvoidSynchronizedAtMethodLevel example, bug report 1293277 for duplicated rule messages, bug report for ConstructorCallsOverridableMethod, suggestion for improving command line interface, misspelling report, suggestion for improving Designer startup script, โ€œhow to make a rulesetโ€ documentation suggestions, noticed outdated Xerces jars, script renaming suggestions, UseLocaleWithCaseConversions rule suggestion
  • David Karr - reported stale XPath documentation
  • Dawid Weiss - Reported bug in UnusedPrivateMethod
  • Shao Lo - Reported bug in CPD
  • Mathieu Champlon - Added language support to the CPD Ant task
  • Uroshnor - Reported bug in UseNotifyAllInsteadOfNotify
  • Jan Koops - Noted missing data in MemberValuePair nodes, bug report for JBuilder plugin
  • Will Sargent - Implemented AvoidThreadGroup, AvoidThrowingCertainExceptionTypesRule, AvoidCatchingNPERule, ExceptionAsFlowControlRule, URL updates for โ€˜Similar projectsโ€™ page
  • Benoit Xhenseval - noted Maven plugin bug (http://jira.codehaus.org/browse/MPPMD-24), bug report for UnusedPrivateMethod, suggestion to add elapsed time to XML report, bug report for ImmutableField, many bug reports (with good failure cases!), Ant task patch and bug report, XSLT patch, suggestion for improving XML report
  • Barak Naveh - Reported and fixed bug in CallSuperInConstructor
  • Bhatia Saurabh - Reported a grammar bug, reported a bug in UseStringBufferLength
  • Chris Erskine - found bad link, documentation suggestions
  • mhilpert - Reported bugs in UseIndexOfChar and LoggerIsNotStaticFinal
  • David Corley - Priority filtering XSLT, reported release packaging problem, implemented nifty Javascript folding for XML report, demo is here, suggestion for min priority on the command line
  • Jon Doh - Reported parser bug
  • Brian R - suggestions for improving UseIndexOfChar, documentation suggestion
  • Didier Duquennoy - bug reports for InefficientStringBuffering/ConsecutiveLiteralAppends/AppendCharacterWithChar, several bug reports for InefficientStringBuffering, bug report for ImmutableField, suggestions for improving Benchmark utility, bug report for InefficientStringBuffering, bug report for AvoidConcateningNonLiteralsInStringBuffer, reported a missed hit for EqualsNull, bug report for MissingStaticMethodInNonInstantiatableClass, pmd-netbeans feedback
  • Paul Smith - patch to fix Ant task โ€˜minimum priorityโ€™ attribute
  • Erik Thauvin - reported IDEA integration problem
  • John Kenny - reported bug in ConsecutiveLiteralAppends
  • Tom Judge - patch for fix to C/C++ multiline literal support for CPD, patch for including .cc files in C++ CPD checks, patch for JDK compatibility problems
  • Sean Mountcastle - reported documentation bug
  • Greg Broderick - provided patch for โ€˜minimum priorityโ€™ support
  • George Sexton - Bug report 1379701 for CompareObjectsWithEquals, suggested new rule for Additional String Concatenation Warnings in StringBuffer.
  • Johan Stuyts - improvements to UncommentedEmptyConstructor, nice patch for UncommentedEmptyConstructor and UncommentedEmptyMethod, patch to allow empty catch blocks with comments in them, patch to clean up build environment
  • Bruce Kelly - bug report 1378358 for StringInstantiation, bug report 1376756 for UselessOverridingMethod, bug report 1376760 for InefficientStringBuffering
  • Isaac Babsky - tweak for pmd.bat
  • Hendrik Maryns - reported bug 1375290 for SuppressWarnings facility
  • Wim Deblauwe - suggested UseAssertNullInsteadOfAssertTrue, bug report 1373510 for UseAssertSameInsteadOfAssertTrue, suggested putting property names/values in generated docs, UselessOverridingMethod, reported bug in JUnitTestsShouldContainAsserts, front page and โ€œhow to make a rulesetโ€ patches, noted problems with web site rule index, bug report for JUnitTestsShouldContainAsserts, Clover license coordination and implementation, UseCorrectExceptionLogging, coordinated and coded a much nicer asXML() implementation, suggested cleanup of UnusedFormalParameter, Javadoc patch, SystemPrintln bug report, helped get Ant task and CLI squared away with Java 1.5 params, Java 1.5-specific bug reports, suggested improvements for ExceptionSignatureDeclaration
  • Sean Montgomery - bug report 1371980 for InefficientStringBuffering
  • Jean-Marc Vanel - suggested enhancements to the PMD scoreboard
  • Andriy Rozeluk - suggested UseStringBufferLength, bug report 1306180 for AvoidConcatenatingNonLiteralsInStringBuffer, reported bug 1293157 for UnusedPrivateMethod, suggested UnnecessaryCaseChange, bug report for SimplifyConditional, suggested UnnecessaryLocalBeforeReturn, suggestions for improving BooleanInstantiation, UnnecessaryReturn, AvoidDuplicateLiterals RFEs and bug reports, various other RFEs and thoughtful discussions as well
  • Bruno Juillet - suggested reporting suppressed warnings, bug report for missing package/class/method names, patch for Ant taskโ€™s excludeMarker attribute, bug report on ruleset overrides
  • Derek Hofmann - suggestion for adding โ€“skip-duplicate-files option for CPD, bug report for CPD skipping header files when in C/C++ mode
  • Mark Holczhammer - bug report for InefficientStringBuffering
  • Raja Rajan - 2 bug reports for CompareObjectswithEquals
  • Jeff Chamblee - suggested better message for UnnecessaryCaseChange, bug report for CompareObjectsWithEquals
  • Dave Brosius - suggested MisleadingVariableName rule, a couple of nice patches to clean up some string handling inefficiencies, non-static class usages, and unclosed streams/readers - found with Findbugs, I daresay :-)
  • Chris Grindstaff - fixed SWTException when Eclipse plugin is run on a file with syntax error
  • Eduard Naum - fixed JDK 1.3 runtime problems in Eclipse plugin
  • Jacques Lebourgeois - fix for UTF8 characters in Eclipse plugin
  • dvholten - suggestions for improving OverrideBothEqualsAndHashcode, formatting suggestions for HTML report, test cases for ConstructorCallsOverridableMethod, reported several NullAssignment bugs
  • Brian Duff - helped get Oracle JDeveloper plugin working
  • Sivakumar Mambakkam - bug report 1314086 for missing name in SimpleRuleSetNameMapper
  • Rodrigo Ruiz - bug report 1312723 for FieldDeclaration nodes inside interfaces, bug report 1312754 for pmd.bat option handling, bug report 1312720 (and code fix!) for DefaultPackage, bug report 1309235 for TooManyFields
  • Lori Olson - JBuilder plugin suggestions and prerelease tests, found copy/paste bug in rule descriptions
  • Thomas Dudziak - bug report 1304739 for StringInstantiation
  • Pieter Bloemendaal - reported JDK 1.3 parsing bug 1292609, command line docs bug report, bug report for UnusedPrivateMethod, found typo in ArrayIsStoredDirectly, bug report for AvoidReassigningParametersRule
  • shawn2005 - documentation bug report
  • Andrew Taylor - bug report for StringInstantiation
  • S. David Pullara - bug report for AvoidConcateningNonLiteralsInStringBuffer, bug report for ImmutableField
  • Maarten Bodewes - bug report for ImmutableField
  • Peter Frandsen - PackageCase rule, NoPackage rule
  • Noureddine Bekrar - French translation of some PMD documentation
  • Martin Jost - bug report for JDeveloper plugin
  • Guillaume Boudreau - patches to fix problems with CPDโ€™s FileFinder and NTFS and SCCS
  • Sylvain Veyrie - bug report for MethodReturnsInternalArray
  • Randy Ray - bug report for ArrayIsStoredDirectly
  • Klaus - Suggestion for improving UseSingleton
  • Nicolai Czempin - Bug report for UnnecessaryParentheses, various rule suggestions, additional PMD backronyms
  • Kevin Routley - reported Ant task dependency problem, reported problems with RuleSetFactory unit tests
  • Dennis Klemann - noted that errors were missing from text report, reported Java 1.5 parsing bug with ExceptionSignatureDeclaration, reported fix for pmd.bat problem
  • Tor Norbye - Suggested CompareObjectsWithEquals
  • Thomas Skariah - bug reports for MethodArgumentCouldBeFinal and AvoidReassigningParameters
  • Tom Parker - bug report for MethodReturnsInternalArray, found missed case in NullAssignment, suggested addition to UnnecessaryBooleanAssertion, suggested splitting up AvoidThrowingCertainExceptionTypes, AvoidInstantiatingObjectsInLoops bug report, AtLeastOneConstructor bug report
  • Ian Flanigan - reported CPD JNLP breakage
  • Glen Cordrey - Reported bug involved JavaCC string handling
  • Oto โ€˜tapikโ€™ Buchta - Patched XMLRenderer for UTF8 support
  • Arent-Jan Banck - Reported bug with Java 1.5 annotation handling
  • Fred Hartman - Reported exact location of bug in TooManyFields, fixed bug in UnnecessaryBooleanAssertion
  • Andreas Ehn - Reported bug with Java 1.5 generics parsing
  • Eric Olander - SingularField, SimplifyConditional fix, UseStringBufferForStringAppends, CollapsibleIfStatements, AvoidInstanceofChecksInCatchClause, AssignmentToNonFinalStatic rule, nice patch for DFAPanel cleanup, AvoidProtectedFieldInFinalClass, ImmutableFieldRule, noticed missing image in Postfix nodes
  • Tomas Gustavsson - reported pmd-web breakage
  • Payal Subhash - Tweaks to CSVRenderer
  • Christophe Mourette - Reported JDK 1.3 problem with XMLRenderer
  • Alex Givant - caught documentation bug
  • Luke Francl - suggested UnnecessaryParentheses rule, numerous high quality feature suggestions and bug reports
  • David Hovemeyer - reported missing labelled stmt images, a nice patch to let PMD process code in jar/zip files
  • Peter โ€˜Brunoโ€™ Kofler - reported bug #1146116 for JUnitTestsShouldIncludeAssert
  • Zev Blut - nice patch to add Ruby support to CPD
  • Christopher Judd - a nice patch to the XSLT that adds a summary
  • John Meagher - suggested the rule โ€˜MissingSerialVersionUIDโ€™ and provided the implementation for it
  • John Austin - patch to fix mispeling in Eclipse plugin message
  • Paddy Fagan - reported bug in StatisticalRule
  • Leszek Migdal - reported documentation mistake for Eclipse plugin
  • Hakan Civelek - an order-of-magnitude optimization to the SystemOutPrintln rule
  • John Heintz - Added โ€œany languageโ€ support to CPD.
  • Harald Gurres - cleaned up the symbol table code with a very nice patch
  • Matthias Kerkhoff - CPD suggestions, several bug reports
  • Chris Riesbeck - identified some dead code in RuleSet
  • Lars Gregori - reported a bug in the Ant task docs
  • Todd Wright - reported bug in EmptyStatementNotInLoop, XPath port of AtLeastOneConstructorRule, ConfusingTernaryExpression rule, reported missing ASTUnaryExpressionNotPlusMinus nodes
  • Conrad Roche - UnusedModifier bug report, other bug reports
  • Mike Thome - NOPMD implementation concept, BadComparisonRule suggestion
  • Ken Foskey - C++ parser bug report, cpd.sh
  • ehowe - a nice patch to include rule priority in the XML report
  • aryanto - reported a broken reference in the โ€˜favoritesโ€™ ruleset.
  • Archimedes Trajano - suggested SimpleDateFormatNeedsLocale
  • Joerg Kurt Wegner - bug report for UnusedLocalVariable
  • Bruno - Reported bug with TooManyFields, SuspiciousEqualsMethodName
  • Philippe Couton - bug report for ExceptionAsFlowControl, OverrideBothEqualsAndHashcodeRule bug report, UseSingletonRule improvements, JUnitStaticSuiteRule improvements
  • Paul Rowe - suggestion for improving MethodWithSameNameAsEnclosingClass, bug reports for SimplifyBooleanExpressions and UnusedLocalVariable
  • Enno Derksen - enhancements to VariableNamingConventionsRule
  • Michael Haggerty - bug reports for FinalizeDoesNotCallSuperFinalize and UnusedModifier
  • Phil Shaw - documentation suggestions
  • Sreenivasa Viswanadha - reminded me to use BufferedInputStreams, grammar cleanup for Ctrl-Z problem
  • Austin Moore - Integration with Omnicoreโ€™s CodeGuide IDE
  • Matt Inger - CloneMethodMustImplementCloneable, CloneThrowsCloneNotSupportedException
  • Morgan Schweers - Javascript highlighter for the PMD scoreboard
  • Brandon Franklin - bug report for BeanMembersShouldSerializeRule, many PMD scoreboard ideas
  • Bertrand Mollinier Toublet - Bug report which led to platform character set encoding enhancement
  • Choi Ki Soo - Found bug in XMLRenderer
  • Gero Wedemann - Found bug in RuleSetFactory XPath message variable substitution
  • Adrian Papari - Wrote the PapariTextRenderer
  • Curt Cox - some additions to the โ€˜Similar Projectsโ€™ page
  • Michael Griffel - bug fix for XMLRenderer
  • Doug Tillman - correction to finalizers.xml examples
  • Luis Alberto Domรญnguez Ruiz - bug report for IfElseStmtsMustUseBracesRule
  • Chad Loder - SuspiciousOctalEscapeRule, EmptyStatementNotInLoop, SuspiciousHashcodeMethodName, NonCaseLabelInSwitchStatement, DefaultLabelNotLastInSwitchStmt, NonStaticInitializer, ExplicitCallToFinalize, MethodWithSameNameAsEnclosingClassRuleTest, FinalizeDoesNotCallSuperFinalize, FinalizeOverloaded, FinalizeOnlyCallsSuperFinalize, UnconditionalIfStatement, AvoidDollarSigns, EmptyStaticInitializer, EmptyFinalizerMethod rule, DontImportSun rule, improvements to ASTBooleanLiteral
  • Maik Schreiber - AccessNode bug report, other bug reports
  • Lokesh Gupta - improvements to the AST viewer
  • Jesse Glick - improvements to VariableNamingConventionsRule, patch for UnusedModifierRule, bug fix for VariableNameDeclarations rule, an excellent discussion on the UnnecessaryConstructorRule
  • Nicolas Liochon - CloneShouldCallSuperCloneRule implementation
  • Slava Pestov - Suggestions for jEdit plugin enhancements.
  • Olivier Menguรฉ - Diagnosed and patched XML report character encoding problems
  • Hariolf Hรคfele - PMD-JDeveloper plugin bug reports
  • Vladimir Bossicard - suggested AbstractNamingRule, test package organization suggestions, VBHTMLRenderer, numerous feature requests and bug reports, several rule suggestions derived from JUnit-Addons, evangelism :-)
  • Ken Foskey - noticed bad link
  • Stephan Janssen - promoted PMD for JJGuidelines
  • Ron Sidi - bug reports
  • David Koontz - suggestions for tweaking PMD command line options
  • Jeff Epstein - TextPad integration and tests
  • Gabe Johnson - CloseConnectionRule
  • Roelof Vuurboom - posted report of QStudio analysis of PMD
  • Jeff Anderson - node finding utility code
  • Boris Gruschko - regression test suites, nifty AST/XPath viewer
  • Trevor Harmon - rewrote XSLT script
  • Vadim Nasardinov - xdocs cleanup, run.sh cleanup
  • Sigiswald Madou - bug report
  • Dan Tullis - bug report
  • George Menhorn - CPD bug reports and suggestions
  • Paul Roebuck - Ant build improvement, several bug reports
  • Jon A. Maxwell - Bug report
  • Erik Lee - Bug report
  • Joerg K. Wegner - PMD scoreboard suggestions
  • Chris Webster - fix (and test) for UnnecessaryConstructorRule, BooleanInstantiation rule
  • Colin Simmonds - detailed bug reports
  • Trond Andersen - AvoidCatchingThrowable, ExceptionSignatureDeclaration, ExceptionTypeChecking
  • Bernd Jansen - grammar modification
  • Jarle Naess - bug report
  • Jeff Anderson - VariableNamingConventionsRule, MethodNamingConventionsRule, ClassNamingConventionsRule
  • Frank van Puffelen - documentation suggestions
  • mcclain looney - patch for CPD GUI, bug reports
  • Ralf Hauser - Various documentation suggestions, cygwin-run.sh
  • Pablo Casado - Bug report for UseSingletonRule
  • Frank Hardisty - BeanMembersShouldSerializeRule
  • Randall Schulz - bug report for LooseCouplingRule
  • Wim Bervoets - bug report for the PMD Ant task
  • Niels Peter Strandberg - various tweaks to the PMD Swing UI
  • Ian Shef - documentation updates, bug reports on the Gel IDE plugin
  • Astro Jetson Jr - a tweak for the ShortVariableNameRule
  • Paul King - a complete rewrite of the Gel plugin
  • Gael Marziou - โ€œexcludeโ€ rule feature request, bug reports
  • Philippe Tโ€™Seyen - refactoring and cleanup of the CPD Ant task, an XML renderer (with unit tests!) for CPD
  • Michael Montuori - bug reports on the Gel IDE plugin
  • Michael Hosier - bug reports on the Gel IDE plugin
  • Richard Jenson - CPD on Win32 troubleshooting
  • Daniel Bruguier - CPD on Win32 troubleshooting
  • Mario Claerhout - CPD optimizations and suggestions
  • Sameer Nanda - CPD Ant task bug report
  • Nanne Baars - grammar suggestions, rule suggestions
  • Adam Nemeth - bug fixes for UnnecessaryConstructorRule
  • Andrew Glover - the CPDTask, ExcessivePublicCountRule, CouplingBetweenObjectsRule, ExcessiveImportsRule, documentation tweaks
  • Robert Leland - bug report
  • Carl Gilbert - AccessorClassGenerationRule, DoubleCheckedLockingRule, ConstructorCallsOverridableMethodRule, bug reports, feature requests, and documentation improvements
  • Dave Fuller - improved resource loading code (packaged in a nice diff, too!)
  • David Whitmore - parser bug report
  • David Campbell - detailed bugs reports, Ant task refactoring, documentation tweaks
  • Michael Sutherland - bug report in IfStmtMustUseBracesRule
  • Egon Willighagen - PMD scoreboard suggestion
  • Adam Nemeth - bug report on missing final attribute for local variable declarations
  • Frederic Harper - bug report and subsequent troubleshooting
  • Mats Henricson - an XSLT script and several bug reports
  • Martin Cooper - feature suggestions
  • Bruce Mayhew - feedback on the jEdit plugin
  • Juergen Ebert - feature suggestions and pmd-netbeans feedback
  • J.D. Fagan - feature suggestions
  • William McArthur - ForLoopShouldBeWhileLoop rule
  • Ales Bukovsky - pmd-netbeans feedback
  • Stefan Bodewig - bug report
  • Sean Sullivan - rule suggestions
  • Dale Vissar - rule suggestions
  • Alina Copeland - PMD scoreboard formulas, pmd-dcpd optimizations
  • Vincent Massol - bug reports, design suggestions, feature suggestions, Maven guidance
  • Peter Donald - design suggestions
  • Liam Holohan - bug reports
  • Ralph Schaer - bug reports and verification
  • Damian Oโ€™Neill - Ant task patches
  • Sebastian Raffel - Great job on the Eclipse PMD perspective, new views and dataflow analysis support
  • Ebu - Eclipse smoothed icons
  • Jacques Lebourgeois - Eclipse fix malformed UTF-8 characters
  • Chris Grindstaff - Eclipse fix SWTException when PMD is run on a file with syntax error
  • jmichelberger - wrote Byte/Short/Long Instantiation migration rules
  • Edwin Chan - Support for -auxclasspath for use with Type Resolution
  • Jared Bunting - Patch to add ASTAnnotationMethodDeclaration to Java AST
  • Lucian Ciufudean - RedundantFieldInitializerRule
  • Andreas Dangel - GodClass and LawOfDemeter rules, several bugfixes and cleanup
  • Riku Nykanen - patch improving TooManyMethods rule
  • Tammo van Lessen - new rule GuardDebugLogging for Jakarta Commons Logging ruleset.
  • Steven Christou - patch improving DoNotCallSystemExit rule
  • Cd-Man - patch to improve CPD performance
  • Suresh - new rule DontUseFloatTypeForLoopIndices
  • Dinesh Bolkensteyn and SonarSource - Java 7 grammar support
  • Tom Wheeler - contribute a launch script for CPD GUI
  • Remi Delmas - change CPD CLI to return a non null value when code duplication is found.
  • Victor Bucutea - Improved JSP parser to be less strict with not valid XML documents (like HTML).
  • Prabhjot Singh - Fixed bug 3484404: Invalid NPath calculation in return statement.
  • Roman - Fixed bug 3546093: Type resolution very slow for big project.
  • Florian Bauer - Add C# support for CPD.
  • Matthew Short - Support in CPD for IgnoreAnnotations and SuppressWarnings(โ€œCPD-STARTโ€).
  • Simon Gijsen - contributing a PMD logo with a modern look.
  • Yiannis Paschalidis - Fixed bug #968 Issues with JUnit4 @Test annotation with expected exception
  • Jaroslav Snajberk - Make the comment required rule working.
  • Mat Booth - #1109 Patch to build with Javacc 5.0
  • Stuart Turton - for PLSQL support. See also pldoc
  • Andrey Utis - for adding Apache Velocity as a new language and writing up a howto for adding new languages JavaCC.
  • Alan Hohn - for adding Standard and modified cyclomatic complexity rules
  • Jan van Nunen - for adding CPD support for Matlab, Objective-C, Python, Scala and various bug fixes
  • Juan Martรญn Sotuyo Dodero - for many bugfixes/pull requests improving Java grammar and performance

Organizations

MicroDoc for sponsoring PMD development. MicroDoc is a software business serving an international customer base. Since 1991 MicroDoc has grown into a technology oriented software engineering and professional services company. Our focus on complex software technology and software infrastructure made us a well respected partner for large corporations and even for other software businesses.
AE for the JSP integration and especially for writing the JSP grammar.
DARPA for funding the Ultra*Log and Cougaar effort which spawned PMD.
SourceForge for providing hosting services for PMD.
RefactorIT for letting their software be used free-of-charge on PMD code (OpenSource Community License)
QA-Systems for sending in some handy utilities for PMD and shipping PMD inside their QStudio product
Vanward Technologies for using PMD inside their Convergence product
Cenqua for giving us a free Clover license and doing a nice FishEye run.
YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.
Bijzonder Bezig for giving the PMD logo a modern look.