diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 0000000000..64d183d6ad --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,1389 @@ +{ + "projectName": "processing4-carbon-aug-19", + "projectOwner": "processing", + "files": [ + "README.md" + ], + "imageSize": 120, + "contributorsPerLine": 6, + "commit": true, + "contributors": [ + { + "login": "benfry", + "name": "Ben Fry", + "avatar_url": "https://avatars.githubusercontent.com/u/1623101?v=4", + "profile": "https://fathom.info", + "contributions": [ + "code", + "ideas", + "infra", + "mentoring", + "maintenance", + "content", + "talk" + ] + }, + { + "login": "REAS", + "name": "Casey Reas", + "avatar_url": "https://avatars.githubusercontent.com/u/677774?v=4", + "profile": "http://reas.com", + "contributions": [ + "code", + "ideas", + "infra", + "mentoring", + "content", + "talk", + "tutorial" + ] + }, + { + "login": "codeanticode", + "name": "codeanticode", + "avatar_url": "https://avatars.githubusercontent.com/u/62246?v=4", + "profile": "http://andrescolubri.net/", + "contributions": [ + "code" + ] + }, + { + "login": "Manindra29", + "name": "Manindra Moharana", + "avatar_url": "https://avatars.githubusercontent.com/u/1686425?v=4", + "profile": "http://mkmoharana.com/", + "contributions": [ + "code" + ] + }, + { + "login": "JakubValtar", + "name": "Jakub Valtar", + "avatar_url": "https://avatars.githubusercontent.com/u/3177098?v=4", + "profile": "https://jakubvaltar.com/", + "contributions": [ + "code" + ] + }, + { + "login": "sampottinger", + "name": "A Samuel Pottinger", + "avatar_url": "https://avatars.githubusercontent.com/u/110391?v=4", + "profile": "http://gleap.org/", + "contributions": [ + "code" + ] + }, + { + "login": "gohai", + "name": "Gottfried Haider", + "avatar_url": "https://avatars.githubusercontent.com/u/4945451?v=4", + "profile": "http://twitter.com/mrgohai", + "contributions": [ + "code" + ] + }, + { + "login": "Akarshit", + "name": "Akarshit Wal", + "avatar_url": "https://avatars.githubusercontent.com/u/7762605?v=4", + "profile": "https://github.com/Akarshit", + "contributions": [ + "code" + ] + }, + { + "login": "peskal", + "name": "Peter Kalauskas", + "avatar_url": "https://avatars.githubusercontent.com/u/1523978?v=4", + "profile": "https://github.com/peskal", + "contributions": [ + "code" + ] + }, + { + "login": "shiffman", + "name": "Daniel Shiffman", + "avatar_url": "https://avatars.githubusercontent.com/u/191758?v=4", + "profile": "https://thecodingtrain.com/", + "contributions": [ + "code" + ] + }, + { + "login": "joelmoniz", + "name": "Joel Moniz", + "avatar_url": "https://avatars.githubusercontent.com/u/4526417?v=4", + "profile": "http://joelmoniz.com/", + "contributions": [ + "code" + ] + }, + { + "login": "lonnen", + "name": "Lonnen", + "avatar_url": "https://avatars.githubusercontent.com/u/21467?v=4", + "profile": "https://github.com/lonnen", + "contributions": [ + "code" + ] + }, + { + "login": "fjenett", + "name": "Florian Jenett", + "avatar_url": "https://avatars.githubusercontent.com/u/59608?v=4", + "profile": "http://bezier.de/", + "contributions": [ + "code" + ] + }, + { + "login": "scotthmurray", + "name": "Scott Murray", + "avatar_url": "https://avatars.githubusercontent.com/u/1034002?v=4", + "profile": "https://github.com/scotthmurray", + "contributions": [ + "code" + ] + }, + { + "login": "federicobond", + "name": "Federico Bond", + "avatar_url": "https://avatars.githubusercontent.com/u/138426?v=4", + "profile": "https://federicobond.com/", + "contributions": [ + "code" + ] + }, + { + "login": "pvrs12", + "name": "pvrs12", + "avatar_url": "https://avatars.githubusercontent.com/u/6956401?v=4", + "profile": "https://github.com/pvrs12", + "contributions": [ + "code" + ] + }, + { + "login": "GKFX", + "name": "George Bateman", + "avatar_url": "https://avatars.githubusercontent.com/u/5357642?v=4", + "profile": "https://github.com/GKFX", + "contributions": [ + "code" + ] + }, + { + "login": "mckennapsean", + "name": "Sean McKenna", + "avatar_url": "https://avatars.githubusercontent.com/u/1406149?v=4", + "profile": "http://mckennapsean.com/", + "contributions": [ + "code" + ] + }, + { + "login": "kfeuz", + "name": "kfeuz", + "avatar_url": "https://avatars.githubusercontent.com/u/2780385?v=4", + "profile": "https://github.com/kfeuz", + "contributions": [ + "code" + ] + }, + { + "login": "sansumbrella", + "name": "David Wicks", + "avatar_url": "https://avatars.githubusercontent.com/u/81553?v=4", + "profile": "https://sansumbrella.com/", + "contributions": [ + "code" + ] + }, + { + "login": "wirsing", + "name": "Wilm Thoben", + "avatar_url": "https://avatars.githubusercontent.com/u/938075?v=4", + "profile": "https://github.com/wirsing", + "contributions": [ + "code" + ] + }, + { + "login": "Anadroid", + "name": "Ana", + "avatar_url": "https://avatars.githubusercontent.com/u/1826278?v=4", + "profile": "https://github.com/Anadroid", + "contributions": [ + "code" + ] + }, + { + "login": "AmnonOwed", + "name": "Amnon Owed", + "avatar_url": "https://avatars.githubusercontent.com/u/4075846?v=4", + "profile": "http://vimeo.com/amnon", + "contributions": [ + "code" + ] + }, + { + "login": "galsasson", + "name": "Gal Sasson", + "avatar_url": "https://avatars.githubusercontent.com/u/3430521?v=4", + "profile": "https://github.com/galsasson", + "contributions": [ + "code" + ] + }, + { + "login": "scollovati", + "name": "scollovati", + "avatar_url": "https://avatars.githubusercontent.com/u/20740642?v=4", + "profile": "https://github.com/scollovati", + "contributions": [ + "code" + ] + }, + { + "login": "ybakos", + "name": "Yong Joseph Bakos", + "avatar_url": "https://avatars.githubusercontent.com/u/5502?v=4", + "profile": "https://yongbakos.com/", + "contributions": [ + "code" + ] + }, + { + "login": "crazymaster", + "name": "Kenichi Ito", + "avatar_url": "https://avatars.githubusercontent.com/u/1528093?v=4", + "profile": "https://github.com/crazymaster", + "contributions": [ + "code" + ] + }, + { + "login": "Efratror", + "name": "Efratror", + "avatar_url": "https://avatars.githubusercontent.com/u/19653269?v=4", + "profile": "https://github.com/Efratror", + "contributions": [ + "code" + ] + }, + { + "login": "aengelke", + "name": "Alexis Engelke", + "avatar_url": "https://avatars.githubusercontent.com/u/4236689?v=4", + "profile": "https://github.com/aengelke", + "contributions": [ + "code" + ] + }, + { + "login": "tyfkda", + "name": "tyfkda", + "avatar_url": "https://avatars.githubusercontent.com/u/7347125?v=4", + "profile": "https://tyfkda.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "juniperoserra", + "name": "Simon Greenwold", + "avatar_url": "https://avatars.githubusercontent.com/u/125713?v=4", + "profile": "https://github.com/juniperoserra", + "contributions": [ + "code" + ] + }, + { + "login": "runemadsen", + "name": "Rune Skjoldborg Madsen", + "avatar_url": "https://avatars.githubusercontent.com/u/192021?v=4", + "profile": "https://github.com/runemadsen", + "contributions": [ + "code" + ] + }, + { + "login": "inkwellsiesta", + "name": "Leslie Watkins", + "avatar_url": "https://avatars.githubusercontent.com/u/6732005?v=4", + "profile": "https://github.com/inkwellsiesta", + "contributions": [ + "code" + ] + }, + { + "login": "rzats", + "name": "Rostyslav Zatserkovnyi", + "avatar_url": "https://avatars.githubusercontent.com/u/13783592?v=4", + "profile": "https://www.linkedin.com/in/rostyslav-zatserkovnyi/", + "contributions": [ + "code" + ] + }, + { + "login": "trikaphundo", + "name": "Dan", + "avatar_url": "https://avatars.githubusercontent.com/u/24832650?v=4", + "profile": "https://github.com/trikaphundo", + "contributions": [ + "code" + ] + }, + { + "login": "dhowe", + "name": "Daniel Howe", + "avatar_url": "https://avatars.githubusercontent.com/u/737638?v=4", + "profile": "https://github.com/dhowe", + "contributions": [ + "code" + ] + }, + { + "login": "joshgiesbrecht", + "name": "Josh Giesbrecht", + "avatar_url": "https://avatars.githubusercontent.com/u/3434564?v=4", + "profile": "https://github.com/joshgiesbrecht", + "contributions": [ + "code" + ] + }, + { + "login": "liquidev", + "name": "liquidex", + "avatar_url": "https://avatars.githubusercontent.com/u/16415678?v=4", + "profile": "https://liquidex.house/", + "contributions": [ + "code" + ] + }, + { + "login": "bgc", + "name": "bgc", + "avatar_url": "https://avatars.githubusercontent.com/u/516129?v=4", + "profile": "https://github.com/bgc", + "contributions": [ + "code" + ] + }, + { + "login": "omerjerk", + "name": "Mohammad Umair", + "avatar_url": "https://avatars.githubusercontent.com/u/3191547?v=4", + "profile": "https://umair.io/", + "contributions": [ + "code" + ] + }, + { + "login": "mtsio", + "name": "T Michail", + "avatar_url": "https://avatars.githubusercontent.com/u/8008901?v=4", + "profile": "https://github.com/mtsio", + "contributions": [ + "code" + ] + }, + { + "login": "ohommos", + "name": "ohommos", + "avatar_url": "https://avatars.githubusercontent.com/u/3680307?v=4", + "profile": "https://twitter.com/omarhommos", + "contributions": [ + "code" + ] + }, + { + "login": "google-feinberg", + "name": "Jonathan Feinberg", + "avatar_url": "https://avatars.githubusercontent.com/u/2643627?v=4", + "profile": "https://github.com/google-feinberg", + "contributions": [ + "code" + ] + }, + { + "login": "davidfokkema", + "name": "David Fokkema", + "avatar_url": "https://avatars.githubusercontent.com/u/917137?v=4", + "profile": "https://github.com/davidfokkema", + "contributions": [ + "code" + ] + }, + { + "login": "liquidzym", + "name": "liquid", + "avatar_url": "https://avatars.githubusercontent.com/u/51957?v=4", + "profile": "https://github.com/liquidzym", + "contributions": [ + "code" + ] + }, + { + "login": "kisarur", + "name": "Kisaru Liyanage", + "avatar_url": "https://avatars.githubusercontent.com/u/23295399?v=4", + "profile": "https://github.com/kisarur", + "contributions": [ + "code" + ] + }, + { + "login": "boubpopsyteam", + "name": "BouB", + "avatar_url": "https://avatars.githubusercontent.com/u/3597918?v=4", + "profile": "https://github.com/boubpopsyteam", + "contributions": [ + "code" + ] + }, + { + "login": "5atk6", + "name": "atk", + "avatar_url": "https://avatars.githubusercontent.com/u/8381460?v=4", + "profile": "https://twitter.com/ijkxy", + "contributions": [ + "code" + ] + }, + { + "login": "xranby", + "name": "Xerxes Rånby", + "avatar_url": "https://avatars.githubusercontent.com/u/1233011?v=4", + "profile": "http://twitter.com/xranby", + "contributions": [ + "code" + ] + }, + { + "login": "WillRabalais04", + "name": "Will Rabalais", + "avatar_url": "https://avatars.githubusercontent.com/u/69363495?v=4", + "profile": "https://github.com/WillRabalais04", + "contributions": [ + "code" + ] + }, + { + "login": "iamutkarshtiwari", + "name": "Utkarsh Tiwari", + "avatar_url": "https://avatars.githubusercontent.com/u/6258810?v=4", + "profile": "https://github.com/iamutkarshtiwari", + "contributions": [ + "code" + ] + }, + { + "login": "Prince-Polka", + "name": "Prince-Polka", + "avatar_url": "https://avatars.githubusercontent.com/u/29307694?v=4", + "profile": "https://github.com/Prince-Polka", + "contributions": [ + "code" + ] + }, + { + "login": "jamesjgrady", + "name": "jamesjgrady", + "avatar_url": "https://avatars.githubusercontent.com/u/2600893?v=4", + "profile": "https://github.com/jamesjgrady", + "contributions": [ + "code" + ] + }, + { + "login": "SableRaf", + "name": "Raphaël de Courville", + "avatar_url": "https://avatars.githubusercontent.com/u/290261?v=4", + "profile": "https://github.com/SableRaf", + "contributions": [ + "code" + ] + }, + { + "login": "satoshiokita", + "name": "Satoshi Okita", + "avatar_url": "https://avatars.githubusercontent.com/u/16870334?v=4", + "profile": "https://github.com/satoshiokita", + "contributions": [ + "code" + ] + }, + { + "login": "rocha", + "name": "Carlos Andrés Rocha", + "avatar_url": "https://avatars.githubusercontent.com/u/51551?v=4", + "profile": "https://github.com/rocha", + "contributions": [ + "code" + ] + }, + { + "login": "vijnv", + "name": "Vincent Vijn", + "avatar_url": "https://avatars.githubusercontent.com/u/1311387?v=4", + "profile": "https://github.com/vijnv", + "contributions": [ + "code" + ] + }, + { + "login": "dzaima", + "name": "dzaima", + "avatar_url": "https://avatars.githubusercontent.com/u/5551338?v=4", + "profile": "https://github.com/dzaima", + "contributions": [ + "code" + ] + }, + { + "login": "mingness", + "name": "mingness", + "avatar_url": "https://avatars.githubusercontent.com/u/5671413?v=4", + "profile": "https://github.com/mingness", + "contributions": [ + "infra" + ] + }, + { + "login": "doradocodes", + "name": "Dora Do", + "avatar_url": "https://avatars.githubusercontent.com/u/140831752?v=4", + "profile": "https://doradocodes.com/", + "contributions": [ + "infra" + ] + }, + { + "login": "Stefterv", + "name": "Stef Tervelde", + "avatar_url": "https://avatars.githubusercontent.com/u/4988953?v=4", + "profile": "https://steftervel.de/", + "contributions": [ + "code" + ] + }, + { + "login": "allcontributors[bot]", + "name": "allcontributors[bot]", + "avatar_url": "https://avatars.githubusercontent.com/in/23186?v=4", + "profile": "https://github.com/apps/allcontributors", + "contributions": [ + "code" + ] + }, + { + "login": "datguy", + "name": "Dave", + "avatar_url": "https://avatars.githubusercontent.com/u/131480?v=4", + "profile": "http://www.linkedin.com/in/davidtregay/", + "contributions": [ + "code" + ] + }, + { + "login": "TN8001", + "name": "TN8001", + "avatar_url": "https://avatars.githubusercontent.com/u/28250188?v=4", + "profile": "https://github.com/TN8001", + "contributions": [ + "code" + ] + }, + { + "login": "Sardtok", + "name": "Sigmund Hansen", + "avatar_url": "https://avatars.githubusercontent.com/u/613667?v=4", + "profile": "https://github.com/Sardtok", + "contributions": [ + "code" + ] + }, + { + "login": "rbonifacio", + "name": "Rodrigo Bonifácio", + "avatar_url": "https://avatars.githubusercontent.com/u/1269433?v=4", + "profile": "http://rbonifacio.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "Plastix", + "name": "Aidan Pieper", + "avatar_url": "https://avatars.githubusercontent.com/u/1526881?v=4", + "profile": "https://github.com/Plastix", + "contributions": [ + "code" + ] + }, + { + "login": "Minimaximize", + "name": "Liam James", + "avatar_url": "https://avatars.githubusercontent.com/u/12061276?v=4", + "profile": "https://www.minimaximize.com/", + "contributions": [ + "code" + ] + }, + { + "login": "kazimuth", + "name": "james gilles", + "avatar_url": "https://avatars.githubusercontent.com/u/555667?v=4", + "profile": "https://github.com/kazimuth", + "contributions": [ + "code" + ] + }, + { + "login": "prisonerjohn", + "name": "Elie Zananiri", + "avatar_url": "https://avatars.githubusercontent.com/u/119702?v=4", + "profile": "http://www.prisonerjohn.com/", + "contributions": [ + "code" + ] + }, + { + "login": "cosimoc", + "name": "Cosimo Cecchi", + "avatar_url": "https://avatars.githubusercontent.com/u/13906?v=4", + "profile": "http://blogs.gnome.org/cosimoc", + "contributions": [ + "code" + ] + }, + { + "login": "liam-middlebrook", + "name": "Liam Middlebrook", + "avatar_url": "https://avatars.githubusercontent.com/u/3920942?v=4", + "profile": "https://github.com/liam-middlebrook", + "contributions": [ + "code" + ] + }, + { + "login": "myrjola", + "name": "Martin Yrjölä", + "avatar_url": "https://avatars.githubusercontent.com/u/36122?v=4", + "profile": "https://github.com/myrjola", + "contributions": [ + "code" + ] + }, + { + "login": "urbanskimichal", + "name": "Michał Urbański", + "avatar_url": "https://avatars.githubusercontent.com/u/18449680?v=4", + "profile": "https://tajnyprojekt.com/", + "contributions": [ + "code" + ] + }, + { + "login": "pacoelayudante", + "name": "Paco", + "avatar_url": "https://avatars.githubusercontent.com/u/9141115?v=4", + "profile": "https://github.com/pacoelayudante", + "contributions": [ + "code" + ] + }, + { + "login": "pjryan93", + "name": "Patrick Ryan", + "avatar_url": "https://avatars.githubusercontent.com/u/7769635?v=4", + "profile": "https://github.com/pjryan93", + "contributions": [ + "code" + ] + }, + { + "login": "qiubit", + "name": "Paweł Goliński", + "avatar_url": "https://avatars.githubusercontent.com/u/8190751?v=4", + "profile": "https://mimotaurs.pl/", + "contributions": [ + "code" + ] + }, + { + "login": "rupeshkumar22", + "name": "Rupesh Kumar", + "avatar_url": "https://avatars.githubusercontent.com/u/46577873?v=4", + "profile": "https://iamrupesh.me/", + "contributions": [ + "code" + ] + }, + { + "login": "suheb", + "name": "Suhaib Khan", + "avatar_url": "https://avatars.githubusercontent.com/u/4609293?v=4", + "profile": "https://suhaibkhan.com/", + "contributions": [ + "code" + ] + }, + { + "login": "yblake", + "name": "Yves BLAKE", + "avatar_url": "https://avatars.githubusercontent.com/u/9674161?v=4", + "profile": "https://github.com/yblake", + "contributions": [ + "code" + ] + }, + { + "login": "ernestum", + "name": "M. Ernestus", + "avatar_url": "https://avatars.githubusercontent.com/u/1250234?v=4", + "profile": "https://github.com/ernestum", + "contributions": [ + "code" + ] + }, + { + "login": "francisli", + "name": "Francis Li", + "avatar_url": "https://avatars.githubusercontent.com/u/140766?v=4", + "profile": "https://github.com/francisli", + "contributions": [ + "code" + ] + }, + { + "login": "PARAG00991", + "name": "Parag Jain", + "avatar_url": "https://avatars.githubusercontent.com/u/8044561?v=4", + "profile": "https://github.com/PARAG00991", + "contributions": [ + "code" + ] + }, + { + "login": "rouxpz", + "name": "roopa vasudevan", + "avatar_url": "https://avatars.githubusercontent.com/u/1497519?v=4", + "profile": "http://roopavasudevan.com/", + "contributions": [ + "code" + ] + }, + { + "login": "kiwistrongis", + "name": "kiwistrongis", + "avatar_url": "https://avatars.githubusercontent.com/u/2838640?v=4", + "profile": "https://github.com/kiwistrongis", + "contributions": [ + "code" + ] + }, + { + "login": "alranel", + "name": "Alessandro Ranellucci", + "avatar_url": "https://avatars.githubusercontent.com/u/594957?v=4", + "profile": "https://www.linkedin.com/in/alessandro-ranellucci/", + "contributions": [ + "code" + ] + }, + { + "login": "villares", + "name": "Alexandre B A Villares", + "avatar_url": "https://avatars.githubusercontent.com/u/3694604?v=4", + "profile": "https://abav.lugaralgum.com/", + "contributions": [ + "code" + ] + }, + { + "login": "Arty2", + "name": "Heracles", + "avatar_url": "https://avatars.githubusercontent.com/u/3519269?v=4", + "profile": "http://heracl.es/", + "contributions": [ + "code" + ] + }, + { + "login": "Arya-Gupta", + "name": "Arya Gupta", + "avatar_url": "https://avatars.githubusercontent.com/u/84087089?v=4", + "profile": "https://github.com/Arya-Gupta", + "contributions": [ + "code" + ] + }, + { + "login": "ddf", + "name": "Damien Quartz", + "avatar_url": "https://avatars.githubusercontent.com/u/141640?v=4", + "profile": "https://github.com/ddf", + "contributions": [ + "code" + ] + }, + { + "login": "GABBAR1947", + "name": "Shubham Rathore", + "avatar_url": "https://avatars.githubusercontent.com/u/9786291?v=4", + "profile": "https://rathoresaab.wordpress.com/", + "contributions": [ + "code" + ] + }, + { + "login": "gtitaev", + "name": "Grigoriy Titaev", + "avatar_url": "https://avatars.githubusercontent.com/u/6291442?v=4", + "profile": "https://github.com/gtitaev", + "contributions": [ + "code" + ] + }, + { + "login": "guilhermesilveira", + "name": "Guilherme Silveira", + "avatar_url": "https://avatars.githubusercontent.com/u/51391?v=4", + "profile": "https://www.alura.com.br/", + "contributions": [ + "code" + ] + }, + { + "login": "HectorCarral", + "name": "Héctor López Carral", + "avatar_url": "https://avatars.githubusercontent.com/u/26223377?v=4", + "profile": "https://hectorcarral.com/", + "contributions": [ + "code" + ] + }, + { + "login": "jeremydouglass", + "name": "Jeremy Douglass", + "avatar_url": "https://avatars.githubusercontent.com/u/798570?v=4", + "profile": "http://jeremydouglass.com/", + "contributions": [ + "code" + ] + }, + { + "login": "whackashoe", + "name": "Jett LaRue", + "avatar_url": "https://avatars.githubusercontent.com/u/855581?v=4", + "profile": "https://jettlarue.com/", + "contributions": [ + "code" + ] + }, + { + "login": "hx2A", + "name": "Jim", + "avatar_url": "https://avatars.githubusercontent.com/u/4044283?v=4", + "profile": "https://github.com/hx2A", + "contributions": [ + "code", + "bug" + ] + }, + { + "login": "jperals", + "name": "Joan Perals", + "avatar_url": "https://avatars.githubusercontent.com/u/1257272?v=4", + "profile": "https://perals.io/", + "contributions": [ + "code" + ] + }, + { + "login": "oseph", + "name": "Josh Holinaty", + "avatar_url": "https://avatars.githubusercontent.com/u/23200117?v=4", + "profile": "https://github.com/oseph", + "contributions": [ + "code" + ] + }, + { + "login": "cathiecode", + "name": "Keito Takeda", + "avatar_url": "https://avatars.githubusercontent.com/u/74973441?v=4", + "profile": "https://catherine.superneko.net/", + "contributions": [ + "code" + ] + }, + { + "login": "vepo", + "name": "Victor Osório", + "avatar_url": "https://avatars.githubusercontent.com/u/353569?v=4", + "profile": "https://github.com/vepo", + "contributions": [ + "code" + ] + }, + { + "login": "letorbi", + "name": "Torben", + "avatar_url": "https://avatars.githubusercontent.com/u/1268015?v=4", + "profile": "https://letorbi.com/", + "contributions": [ + "code" + ] + }, + { + "login": "TobiPristupin", + "name": "Tobias Pristupin", + "avatar_url": "https://avatars.githubusercontent.com/u/22137035?v=4", + "profile": "https://github.com/TobiPristupin", + "contributions": [ + "code" + ] + }, + { + "login": "thomasleplus", + "name": "Thomas Leplus", + "avatar_url": "https://avatars.githubusercontent.com/u/1929743?v=4", + "profile": "https://www.leplus.org/", + "contributions": [ + "code" + ] + }, + { + "login": "arnoudvanderleer", + "name": "Arnoud van der Leer", + "avatar_url": "https://avatars.githubusercontent.com/u/6382058?v=4", + "profile": "https://github.com/arnoudvanderleer", + "contributions": [ + "code" + ] + }, + { + "login": "knupel", + "name": "Stanislas Marçais / Knupel", + "avatar_url": "https://avatars.githubusercontent.com/u/3332269?v=4", + "profile": "http://knupel.art/", + "contributions": [ + "code" + ] + }, + { + "login": "DarkPrince304", + "name": "Sanchit Kapoor", + "avatar_url": "https://avatars.githubusercontent.com/u/9005407?v=4", + "profile": "https://github.com/DarkPrince304", + "contributions": [ + "code" + ] + }, + { + "login": "hazmatsuitor", + "name": "Miles Fogle", + "avatar_url": "https://avatars.githubusercontent.com/u/6372134?v=4", + "profile": "https://github.com/hazmatsuitor", + "contributions": [ + "code" + ] + }, + { + "login": "mvaladas", + "name": "Miguel Valadas", + "avatar_url": "https://avatars.githubusercontent.com/u/120122?v=4", + "profile": "https://github.com/mvaladas", + "contributions": [ + "code" + ] + }, + { + "login": "mglst", + "name": "Maximilien Tirard", + "avatar_url": "https://avatars.githubusercontent.com/u/13157227?v=4", + "profile": "https://github.com/mglst", + "contributions": [ + "code" + ] + }, + { + "login": "Clarvel", + "name": "Matthew Russell", + "avatar_url": "https://avatars.githubusercontent.com/u/4959627?v=4", + "profile": "https://github.com/Clarvel", + "contributions": [ + "code" + ] + }, + { + "login": "dcuartielles", + "name": "dcuartielles", + "avatar_url": "https://avatars.githubusercontent.com/u/40865?v=4", + "profile": "https://github.com/dcuartielles", + "contributions": [ + "code" + ] + }, + { + "login": "jaysonkh", + "name": "Jayson Haebich", + "avatar_url": "https://avatars.githubusercontent.com/u/1037665?v=4", + "profile": "https://github.com/jaysonkh", + "contributions": [ + "code" + ] + }, + { + "login": "jordirosa-p5", + "name": "jordirosa", + "avatar_url": "https://avatars.githubusercontent.com/u/4674664?v=4", + "profile": "https://github.com/jordirosa-p5", + "contributions": [ + "code" + ] + }, + { + "login": "jshrake", + "name": "Justin Shrake", + "avatar_url": "https://avatars.githubusercontent.com/u/3046816?v=4", + "profile": "https://github.com/jshrake", + "contributions": [ + "code" + ] + }, + { + "login": "kevinstadler", + "name": "Kevin", + "avatar_url": "https://avatars.githubusercontent.com/u/7602414?v=4", + "profile": "https://github.com/kevinstadler", + "contributions": [ + "code" + ] + }, + { + "login": "kgtkr", + "name": "kgtkr", + "avatar_url": "https://avatars.githubusercontent.com/u/17868838?v=4", + "profile": "https://kgtkr.net/", + "contributions": [ + "code" + ] + }, + { + "login": "markluffel", + "name": "Mark Luffel", + "avatar_url": "https://avatars.githubusercontent.com/u/13292?v=4", + "profile": "https://github.com/markluffel", + "contributions": [ + "code" + ] + }, + { + "login": "nking07049925", + "name": "Никита Король", + "avatar_url": "https://avatars.githubusercontent.com/u/11886663?v=4", + "profile": "https://github.com/nking07049925", + "contributions": [ + "code" + ] + }, + { + "login": "montardon", + "name": "raguenets", + "avatar_url": "https://avatars.githubusercontent.com/u/238749?v=4", + "profile": "https://github.com/montardon", + "contributions": [ + "code" + ] + }, + { + "login": "robog-two", + "name": "robog-two", + "avatar_url": "https://avatars.githubusercontent.com/u/77205106?v=4", + "profile": "https://github.com/robog-two", + "contributions": [ + "code" + ] + }, + { + "login": "teddywing", + "name": "teddywing", + "avatar_url": "https://avatars.githubusercontent.com/u/342964?v=4", + "profile": "https://github.com/teddywing", + "contributions": [ + "code" + ] + }, + { + "login": "tiwawan", + "name": "chikuwa", + "avatar_url": "https://avatars.githubusercontent.com/u/4486076?v=4", + "profile": "https://github.com/tiwawan", + "contributions": [ + "code" + ] + }, + { + "login": "QazCetelic", + "name": "ಠ_ಠ", + "avatar_url": "https://avatars.githubusercontent.com/u/51381523?v=4", + "profile": "https://github.com/QazCetelic", + "contributions": [ + "code" + ] + }, + { + "login": "hamoid", + "name": "Abe Pazos", + "avatar_url": "https://avatars.githubusercontent.com/u/108264?v=4", + "profile": "https://hamoid.com/", + "contributions": [ + "code" + ] + }, + { + "login": "sashashura", + "name": "Alex", + "avatar_url": "https://avatars.githubusercontent.com/u/93376818?v=4", + "profile": "https://github.com/sashashura", + "contributions": [ + "code" + ] + }, + { + "login": "alexanderghurst", + "name": "Alexander Hurst", + "avatar_url": "https://avatars.githubusercontent.com/u/34695105?v=4", + "profile": "https://github.com/alexanderghurst", + "contributions": [ + "code" + ] + }, + { + "login": "Xwhn", + "name": "Anıl", + "avatar_url": "https://avatars.githubusercontent.com/u/8299732?v=4", + "profile": "https://github.com/Xwhn", + "contributions": [ + "code" + ] + }, + { + "login": "setanarut", + "name": "Barış", + "avatar_url": "https://avatars.githubusercontent.com/u/36481442?v=4", + "profile": "https://github.com/setanarut", + "contributions": [ + "code" + ] + }, + { + "login": "bsapozhnikov", + "name": "Brian Sapozhnikov", + "avatar_url": "https://avatars.githubusercontent.com/u/5421484?v=4", + "profile": "https://github.com/bsapozhnikov", + "contributions": [ + "code" + ] + }, + { + "login": "charlesbones", + "name": "Carlos Mario Rodriguez Perdomo", + "avatar_url": "https://avatars.githubusercontent.com/u/3228784?v=4", + "profile": "https://github.com/charlesbones", + "contributions": [ + "code" + ] + }, + { + "login": "CyberFlameGO", + "name": "CyberFlame", + "avatar_url": "https://avatars.githubusercontent.com/u/24910512?v=4", + "profile": "https://github.com/CyberFlameGO", + "contributions": [ + "code" + ] + }, + { + "login": "dhruv13J", + "name": "Dhruv Jawali", + "avatar_url": "https://avatars.githubusercontent.com/u/4868174?v=4", + "profile": "https://github.com/dhruv13J", + "contributions": [ + "code" + ] + }, + { + "login": "FlorisVO", + "name": "FlorisVO", + "avatar_url": "https://avatars.githubusercontent.com/u/29863403?v=4", + "profile": "https://github.com/FlorisVO", + "contributions": [ + "code" + ] + }, + { + "login": "frankleonrose", + "name": "Frank Leon Rose", + "avatar_url": "https://avatars.githubusercontent.com/u/1261725?v=4", + "profile": "https://github.com/frankleonrose", + "contributions": [ + "code" + ] + }, + { + "login": "atduskgreg", + "name": "Greg Borenstein", + "avatar_url": "https://avatars.githubusercontent.com/u/165?v=4", + "profile": "http://gregborenstein.com/", + "contributions": [ + "code" + ] + }, + { + "login": "libasoles", + "name": "Guillermo Perez", + "avatar_url": "https://avatars.githubusercontent.com/u/8009070?v=4", + "profile": "https://github.com/libasoles", + "contributions": [ + "code" + ] + }, + { + "login": "hkiel", + "name": "Henning Kiel", + "avatar_url": "https://avatars.githubusercontent.com/u/9904830?v=4", + "profile": "https://github.com/hkiel", + "contributions": [ + "code" + ] + }, + { + "login": "jdeisenberg", + "name": "J David Eisenberg", + "avatar_url": "https://avatars.githubusercontent.com/u/160096?v=4", + "profile": "http://catcode.com/", + "contributions": [ + "code" + ] + }, + { + "login": "JEphron", + "name": "Jordan Ephron", + "avatar_url": "https://avatars.githubusercontent.com/u/1817241?v=4", + "profile": "https://github.com/JEphron", + "contributions": [ + "code" + ] + }, + { + "login": "therewasaguy", + "name": "Jason Sigal", + "avatar_url": "https://avatars.githubusercontent.com/u/504124?v=4", + "profile": "https://jasonsigal.cc/", + "contributions": [ + "code" + ] + }, + { + "login": "jordanorelli", + "name": "Jordan Orelli", + "avatar_url": "https://avatars.githubusercontent.com/u/400255?v=4", + "profile": "https://orel.li/", + "contributions": [ + "code" + ] + }, + { + "login": "karlre", + "name": "Kalle", + "avatar_url": "https://avatars.githubusercontent.com/u/22083320?v=4", + "profile": "https://github.com/karlre", + "contributions": [ + "code" + ] + }, + { + "login": "kamedin", + "name": "Laureano López", + "avatar_url": "https://avatars.githubusercontent.com/u/5443113?v=4", + "profile": "https://github.com/kamedin", + "contributions": [ + "code" + ] + }, + { + "login": "LesleyWagner", + "name": "Lesley Wagner", + "avatar_url": "https://avatars.githubusercontent.com/u/33584486?v=4", + "profile": "https://github.com/LesleyWagner", + "contributions": [ + "code" + ] + }, + { + "login": "mcslee", + "name": "Mark Slee", + "avatar_url": "https://avatars.githubusercontent.com/u/597850?v=4", + "profile": "http://mcslee.com/", + "contributions": [ + "code" + ] + }, + { + "login": "martinleopold", + "name": "MARTIN LEOPOLD GROEDL", + "avatar_url": "https://avatars.githubusercontent.com/u/1692826?v=4", + "profile": "https://groedl.xyz/", + "contributions": [ + "code" + ] + }, + { + "login": "monkstone", + "name": "Martin Prout", + "avatar_url": "https://avatars.githubusercontent.com/u/86850?v=4", + "profile": "https://monkstone.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "hbs", + "name": "Mathias Herberts", + "avatar_url": "https://avatars.githubusercontent.com/u/236594?v=4", + "profile": "https://github.com/hbs", + "contributions": [ + "code" + ] + }, + { + "login": "diyaayay", + "name": "Diya Solanki", + "avatar_url": "https://avatars.githubusercontent.com/u/110971977?v=4", + "profile": "http://www.diyasolanki.com", + "contributions": [ + "infra" + ] + }, + { + "login": "neilcsmith-net", + "name": "Neil C Smith", + "avatar_url": "https://avatars.githubusercontent.com/u/3975960?v=4", + "profile": "https://www.codelerity.com/", + "contributions": [ + "infra" + ] + } + ], + "repoType": "github", + "repoHost": "https://github.com", + "skipCi": true, + "commitConvention": "angular", + "commitType": "docs" +} diff --git a/.github/ARM32.md b/.github/ARM32.md new file mode 100644 index 0000000000..c0801efd6e --- /dev/null +++ b/.github/ARM32.md @@ -0,0 +1,42 @@ +# Processing 32-bit Linux + +For the Raspberry Pi 3 and older we'd need to create an 32-bit arm version of +processing. + +Github Actions do not support creating 32 bit runners so we need to host one +ourselves. + +## Instructions + +### Gathering your Tools + +You will need: + +- A Raspberry Pi +- A micro SD card +- An SD card reader +- A computer + +### Flashing the SD Card +1. Install and open [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) on your computer +2. In **Raspberry Pi Imager**: + - Select your Raspberry Pi model + - Select "Raspberry PI OS lite (32bit)" as the OS (you may need to look into the sub-menus) + - Select your SD card + - Click NEXT +3. Edit the OS settings: + - Set a hostname (e.g. `processing.local`) + - Set a username and password + - Go to the SERVICES tab and enable SSH with password authentication + - Click SAVE and Apply the OS customisation settings + +### Configuring the Raspberry Pi +1. Take the written SD card and put it into the Raspberry PI +2. Power it up and wait for it to boot +3. SSH into the Raspberry Pi using the hostname, username, and password you set earlier +4. Follow Github's [instructions on how to set up a self-hosted runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners). _Note: In the `./config.sh` setup step, you will be prompted to enter a name and other settings. Use default settings by pressing ENTER for each prompt._ +5. Verify that the new runner appears in the list of runners on GitHub. +6. Quit the the runner in the terminal (we will set it up to run automatically on boot). +7. Use Github [instructions to setup the runner as a services](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service) so it runs on boot. + +Done. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 0153d5fc49..42fdd39f45 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,4 @@ -blank_issues_enabled: false +blank_issues_enabled: true contact_links: - name: 🌐 Processing Website Issues url: https://github.com/processing/processing-website/issues diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f2d641203..29e165a392 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,17 +1,17 @@ -name: Build -on: [push] +name: Pre-releases +on: + push: + paths-ignore: + - '**/*.md' + - '.all-contributorsrc' jobs: test: runs-on: ubuntu-latest name: Run Tests steps: - - name: Checkout + - name: Checkout Repository uses: actions/checkout@v4 - - name: Update apt - run: yes | sudo apt-get update - - name: Install rsync - run: yes | sudo apt-get install rsync - name: Install Java uses: actions/setup-java@v4 with: @@ -21,89 +21,56 @@ jobs: - name: Build run: > cd build; - ant clean; - ant build - - name: Test - run: > - cd build; - ant test - linux: - runs-on: ubuntu-latest - name: Build Linux - needs: [test] + ant -noinput build test; + build: + name: Create Pre-release for ${{ matrix.os_prefix }} (${{ matrix.arch }}) + needs: test + runs-on: ${{ matrix.os }} + permissions: + contents: write + strategy: + matrix: + include: + # compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit) + - os: self-hosted + os_prefix: linux + arch: arm + - os: ubuntu-latest + os_prefix: linux + arch: x64 + - os: windows-latest + os_prefix: windows + arch: x64 + - os: macos-latest + os_prefix: macos + arch: x64 + - os: macos-latest + os_prefix: macos + arch: aarch64 + - os: macos-latest + os_prefix: linux + arch: aarch64 steps: - - name: Checkout + - name: Checkout Repository uses: actions/checkout@v4 - - name: Update apt - run: yes | sudo apt-get update - - name: Install rsync - run: yes | sudo apt-get install rsync - - name: Install Java - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - architecture: x64 - - name: Build linux - run: > - cd build; - ant clean; - ant build - - name: Add artifact - uses: actions/upload-artifact@v3 - if: ${{ github.ref == 'ref/head/main' }} - with: - name: linux - path: ./build/linux/work - mac: - runs-on: macos-latest - name: Build Mac - needs: [test] - steps: - - name: Checkout + - name: Checkout Examples Repository uses: actions/checkout@v4 - - name: Install brew - run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - - name: Install rsync - run: brew install rsync - - name: Install Java - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - architecture: x64 - - name: Build mac - run: > - cd build; - ant clean; - ant build - - name: Add artifact - uses: actions/upload-artifact@v3 - if: ${{ github.ref == 'ref/head/main' }} with: - name: macos - path: ./build/macos/work - windows: - runs-on: windows-latest - name: Build Windows - needs: [test] - steps: - - name: Checkout - uses: actions/checkout@v4 + repository: processing/processing-examples + path: processing-examples - name: Install Java uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - architecture: x64 - - name: Build - run: > - cd build; - ant clean; - ant build + architecture: ${{ matrix.arch }} + - name: Setup Ant + uses: cedx/setup-ant@v3 + - name: Build Release + run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}" - name: Add artifact - uses: actions/upload-artifact@v3 - if: ${{ github.ref == 'ref/head/main' }} + uses: actions/upload-artifact@v4 with: - name: windows - path: ./build/windows/work + name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }} + path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-* + retention-days: 1 diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml new file mode 100644 index 0000000000..08ae3c8c5d --- /dev/null +++ b/.github/workflows/pull_request.yml @@ -0,0 +1,64 @@ +name: Pull Requests +on: + pull_request: + paths-ignore: + - '**/*.md' + branches: + - main + +jobs: + build: + name: Create Pull Request Build for ${{ matrix.os_prefix }} (${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + permissions: + pull-requests: write + contents: read + strategy: + matrix: + include: + # compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit) + - os: self-hosted + os_prefix: linux + arch: arm + - os: ubuntu-latest + os_prefix: linux + arch: x64 + - os: windows-latest + os_prefix: windows + arch: x64 + - os: macos-latest + os_prefix: macos + arch: x64 + - os: macos-latest + os_prefix: macos + arch: aarch64 + - os: macos-latest + os_prefix: linux + arch: aarch64 + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Install Java + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + architecture: ${{ matrix.arch }} + - name: Setup Ant + uses: cedx/setup-ant@v3 + - name: Build Release + run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ github.sha }}" + - name: Add artifact + uses: actions/upload-artifact@v3 + id: upload + with: + name: processing-${{github.sha}}${{ matrix.os_prefix }}-${{ matrix.arch }} + path: ./build/${{ matrix.os_prefix }}/processing-${{github.sha}}-${{ matrix.os_prefix}}-* + retention-days: 5 + # TODO: Merge into one comment and fix the link + # - uses: mshick/add-pr-comment@v2 + # with: + # message-id: "build-artifact ${{ matrix.os_prefix }} ${{ matrix.arch }}" + # message: | + # Build artifacts for ${{ matrix.os_prefix }} (${{ matrix.arch }}) have been created. + # Download the artifacts [here](${{ steps.upload.outputs.artifact-id }}). diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..76c98cd57d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,83 @@ +name: Releases +on: + release: + types: [published] + push: + tags: + - processing-* + +jobs: + version: + runs-on: ubuntu-latest + outputs: + build_number: ${{ steps.tag_info.outputs.build_number }} + version: ${{ steps.tag_info.outputs.version }} + steps: + - name: Extract version and build number + id: tag_info + shell: bash + run: | + TAG_NAME="${GITHUB_REF#refs/tags/}" + BUILD_NUMBER=$(echo "$TAG_NAME" | cut -d'-' -f2) + VERSION=$(echo "$TAG_NAME" | cut -d'-' -f3) + + # Set outputs for use in later jobs or steps + echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT + echo "version=$VERSION" >> $GITHUB_OUTPUT + build: + name: Publish Release for ${{ matrix.os_prefix }} (${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + needs: version + permissions: + contents: write + strategy: + matrix: + include: + # compiling for arm32 needs a self-hosted runner on Raspi OS (32-bit) + - os: self-hosted + os_prefix: linux + arch: arm + - os: ubuntu-latest + os_prefix: linux + arch: x64 + - os: windows-latest + os_prefix: windows + arch: x64 + - os: macos-latest + os_prefix: macos + arch: x64 + - os: macos-latest + os_prefix: macos + arch: aarch64 + - os: macos-latest + os_prefix: linux + arch: aarch64 + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Install Java + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + architecture: ${{ matrix.arch }} + - name: Setup Ant + uses: cedx/setup-ant@v3 + - name: Install Certificates for Code Signing + if: ${{ matrix.os_prefix == 'macos' }} + uses: apple-actions/import-codesign-certs@v3 + with: + p12-file-base64: ${{ secrets.CERTIFICATES_P12 }} + p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }} + - name: Build Release + run: ant -noinput -buildfile build/build.xml ${{ matrix.os_prefix }}-dist -Dversion="${{ needs.version.outputs.version }}" + env: + PROCESSING_APP_PASSWORD: ${{ secrets.PROCESSING_APP_PASSWORD }} + PROCESSING_APPLE_ID: ${{ secrets.PROCESSING_APPLE_ID }} + PROCESSING_TEAM_ID: ${{ secrets.PROCESSING_TEAM_ID }} + - name: Upload binaries to release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ./build/${{ matrix.os_prefix }}/processing-${{ needs.version.outputs.version }}-${{ matrix.os_prefix}}-* + file_glob: true diff --git a/.gitignore b/.gitignore index 8c37b714f1..dde7936ffd 100644 --- a/.gitignore +++ b/.gitignore @@ -94,6 +94,10 @@ bin-test .project .vscode/ +# Processing examples +processing-examples + +# Maven ignores .gradle core/build/ gradlew diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md index 517eea276a..2ce63905ac 100644 --- a/CODE-OF-CONDUCT.md +++ b/CODE-OF-CONDUCT.md @@ -6,7 +6,7 @@ Processing is a flexible software sketchbook and a language for learning how to We make room for people to get involved in the project at any point they wish. This means that we: -* Welcome contributors at any stage of their programming journey, from newcomers to professionals; +* Welcome contributors at any stage of their journey, from newcomers to professionals; * Do not assume knowledge or imply there are things that somebody should know; * Understand that people are the experts of their own experiences, and bring a variety of valid perspectives to the development of open source projects; * Know that contribution is not just limited to code, and can also include working on documentation, filing issues and bug reports, and other important forms of input; @@ -14,7 +14,7 @@ We make room for people to get involved in the project at any point they wish. T ## Our Standards -All developers who contribute to the Processing project agree to abide by the following code of conduct. +All contributors to the Processing project agree to abide by the following code of conduct. ### Respect other people diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6af6e5b702..8676bf662b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,15 @@ ## Welcome to Processing! +Thanks for your interest in contributing to Processing! Processing is a collaborative project with contributions from many volunteers. Our community is always looking for contributors and appreciates involvement in all forms. We acknowledge that not everyone has the capacity, time, or financial means to participate actively or in the same ways. We want to expand the meaning of the word “contributor.” Whether you're an experienced developer or just starting out, we value your involvement. Your unique perspectives, skills, and experiences enrich our community, and we encourage you to get involved in a way that works for you. It includes documentation, teaching, writing code, making art, writing, design, activism, organizing, curating, or anything else you might imagine. The [p5.js contribute page](https://p5js.org/contribute/) gives a great overview of different ways to get involved and contribute. + +The Processing project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification, recognizing all types of contributions, not just code. We use the @all-contributors bot to handle adding people to the README.md file. You can ask the @all-contributors bot to add you in an issue or PR comment like so: + +``` +@all-contributors please add @[your GitHub handle] for [your contribution type] +``` + +We usually add contributors automatically after merging a PR, but feel free to request addition yourself by commenting on [this issue](https://github.com/processing/processing4-carbon-aug-19/issues/839). + ## Found a Bug? First, please visit our [troubleshooting](https://github.com/processing/processing/wiki/Troubleshooting) page for common issues—you might find the answer there! @@ -8,11 +18,7 @@ For coding questions or help getting started, our [online forum](https://discour If your issue remains unresolved after exploring these options, we'd appreciate it if you could [file a bug report](https://github.com/processing/processing4/issues). Your feedback is crucial as it helps us address issues we might not be aware of yet. -Remember, Processing is a labor of love, run by volunteers and offered free of charge. We're here because we believe in this community and genuinely enjoy contributing to it. We always welcome constructive feedback—just keep it friendly and helpful, please! For more tips on how to communicate within the project, take a peek at our Code of Conduct (coming soon). - -## Interested in Contributing? - -We're glad to hear that! [Our team is small](https://github.com/processing/processing4/graphs/contributors), and with the large number of users, every extra hand makes a big difference! Here’s how you can start: +## Making Your First Contribution * **Help Wanted** – Most [issues marked help wanted](https://github.com/processing/processing4/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) are a good place to start. Issues are marked with this tag when: diff --git a/README.md b/README.md index 2ea2ad584b..b74d6d49d2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + + + Processing is a flexible software sketchbook and a programming language designed for learning how to code. @@ -12,19 +15,24 @@ If you're interested in *using* Processing, head over to the [download page](htt For assistance with your own sketches, projects, or code, please post your question on the Processing forum: https://discourse.processing.org/. Our community is full of experienced developers and knowledgeable users who are eager to help. Before you post, please take a moment to read the [guidelines on asking questions](https://discourse.processing.org/t/guidelines-asking-questions/2147) to make sure you get the best possible help. We’re incredibly grateful for the support and knowledge shared by everyone on the forum over the years. ## Contributing to Processing -If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! +We welcome new contributors. If you want to fix a bug that's been bothering you or want to give back to the project, you're in the right place! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to contribute. + +## Building Processing -To get started, clone this repository to your machine and build the code. For instructions, check out our guide on [How to Build Processing](build/README.md). +Building Processing locally on your machine will let you troubleshoot and make sure your contributions work as intended before submitting them to this repository. It also gives you the flexibility to experiment and learn more about how Processing is structured. -We welcome new contributors. The work on Processing 4.0 was done by a [tiny number of people](https://github.com/processing/processing4/graphs/contributors?from=2019-10-01&to=2022-08-09&type=c). Every contribution helps! +For a quick start: +1. Fork and clone the repository. +1. Open it in IntelliJ IDEA. +1. Install the required [Ant plugin](https://plugins.jetbrains.com/plugin/23025-ant). +1. Hit Run. -### Structure of the Repository -The Processing software consists of two main parts: +For more information and detailed instructions, follow our [How to Build Processing](build/README.md) guide. -1. **The Core Library:** This includes essential components such as the graphics renderer, event handling, input/output (I/O) functions, and mathematical utilities. -2. **The Processing Development Environment (PDE):** This includes a text editor, a pre-processor, a contributions manager, and other tools to assist with writing and managing code. +## Expected Behavior +Remember, Processing is a labor of love, run in large part by volunteers, and offered free of charge. We're here because we believe in this community and genuinely enjoy contributing to it. We always welcome constructive feedback. Just keep it friendly and helpful, please! For more tips on how to communicate within the project, take a peek at our [Code of Conduct](https://github.com/processing/processing4-carbon-aug-19?tab=coc-ov-file). -### About the Processing 4.0 release +## About the Processing 4.0 release We've moved to a new repository for the 4.0 release so that we could cull a lot of the accumulated mess of the last 20 years. This made `git clone` (and most other `git` operations) a lot faster. @@ -37,10 +45,14 @@ With any luck, many changes should be transparent to most users, in spite of how As with all releases, we did [everything possible](https://twitter.com/ben_fry/status/1426282574683516928) to avoid breaking API. However, there were still tweaks that we had to make. We tried to keep them minor. Our goal is stability, and keeping everyone's code running. ## Contact Information -For more details about Processing itself, feel free to reach out to us. Here are the best ways to contact us: +For technical support or troubleshooting with your project, please post on the [Processing Forum](https://discourse.processing.org/). + +For bug reports or feature requests, please [create an issue](https://github.com/processing/processing4/issues). -- **Email**: For inquiries about the Processing software, contact [hello@processing.org](mailto:hello@processing.org). -- **Processing Foundation**: For anything else, please reach out to [foundation@processingfoundation.org](mailto:foundation@processingfoundation.org). +For non-technical inquiries, here’s how to get in touch: + +- For press inquiries, general information about the Processing software, or other non-technical questions, contact [hello@processing.org](mailto:hello@processing.org). +- For anything related to the Processing Foundation or broader topics beyond the software, please reach out to [foundation@processingfoundation.org](mailto:foundation@processingfoundation.org). ## License & Copyright @@ -53,3 +65,223 @@ For complete licensing information about the Processing core library and softwar For licensing information about the Processing website see the [processing-website README](https://github.com/processing/processing-website/blob/main/README.md#licenses). Copyright (c) 2015-now The Processing Foundation + +## Contributors + +Add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ben Fry
Ben Fry

💻 🤔 🚇 🧑‍🏫 🚧 🖋 📢
Casey Reas
Casey Reas

💻 🤔 🚇 🧑‍🏫 🖋 📢
codeanticode
codeanticode

💻
Manindra Moharana
Manindra Moharana

💻
Jakub Valtar
Jakub Valtar

💻
A Samuel Pottinger
A Samuel Pottinger

💻
Gottfried Haider
Gottfried Haider

💻
Akarshit Wal
Akarshit Wal

💻
Peter Kalauskas
Peter Kalauskas

💻
Daniel Shiffman
Daniel Shiffman

💻
Joel Moniz
Joel Moniz

💻
Lonnen
Lonnen

💻
Florian Jenett
Florian Jenett

💻
Scott Murray
Scott Murray

💻
Federico Bond
Federico Bond

💻
pvrs12
pvrs12

💻
George Bateman
George Bateman

💻
Sean McKenna
Sean McKenna

💻
kfeuz
kfeuz

💻
David Wicks
David Wicks

💻
Wilm Thoben
Wilm Thoben

💻
Ana
Ana

💻
Amnon Owed
Amnon Owed

💻
Gal Sasson
Gal Sasson

💻
scollovati
scollovati

💻
Yong Joseph Bakos
Yong Joseph Bakos

💻
Kenichi Ito
Kenichi Ito

💻
Efratror
Efratror

💻
Alexis Engelke
Alexis Engelke

💻
tyfkda
tyfkda

💻
Simon Greenwold
Simon Greenwold

💻
Rune Skjoldborg Madsen
Rune Skjoldborg Madsen

💻
Leslie Watkins
Leslie Watkins

💻
Rostyslav Zatserkovnyi
Rostyslav Zatserkovnyi

💻
Dan
Dan

💻
Daniel Howe
Daniel Howe

💻
Josh Giesbrecht
Josh Giesbrecht

💻
liquidex
liquidex

💻
bgc
bgc

💻
Mohammad Umair
Mohammad Umair

💻
T Michail
T Michail

💻
ohommos
ohommos

💻
Jonathan Feinberg
Jonathan Feinberg

💻
David Fokkema
David Fokkema

💻
liquid
liquid

💻
Kisaru Liyanage
Kisaru Liyanage

💻
BouB
BouB

💻
atk
atk

💻
Xerxes Rånby
Xerxes Rånby

💻
Will Rabalais
Will Rabalais

💻
Utkarsh Tiwari
Utkarsh Tiwari

💻
Prince-Polka
Prince-Polka

💻
jamesjgrady
jamesjgrady

💻
Raphaël de Courville
Raphaël de Courville

💻
Satoshi Okita
Satoshi Okita

💻
Carlos Andrés Rocha
Carlos Andrés Rocha

💻
Vincent Vijn
Vincent Vijn

💻
dzaima
dzaima

💻
mingness
mingness

🚇
Dora Do
Dora Do

🚇
Stef Tervelde
Stef Tervelde

💻
allcontributors[bot]
allcontributors[bot]

💻
Dave
Dave

💻
TN8001
TN8001

💻
Sigmund Hansen
Sigmund Hansen

💻
Rodrigo Bonifácio
Rodrigo Bonifácio

💻
Aidan Pieper
Aidan Pieper

💻
Liam James
Liam James

💻
james gilles
james gilles

💻
Elie Zananiri
Elie Zananiri

💻
Cosimo Cecchi
Cosimo Cecchi

💻
Liam Middlebrook
Liam Middlebrook

💻
Martin Yrjölä
Martin Yrjölä

💻
Michał Urbański
Michał Urbański

💻
Paco
Paco

💻
Patrick Ryan
Patrick Ryan

💻
Paweł Goliński
Paweł Goliński

💻
Rupesh Kumar
Rupesh Kumar

💻
Suhaib Khan
Suhaib Khan

💻
Yves BLAKE
Yves BLAKE

💻
M. Ernestus
M. Ernestus

💻
Francis Li
Francis Li

💻
Parag Jain
Parag Jain

💻
roopa vasudevan
roopa vasudevan

💻
kiwistrongis
kiwistrongis

💻
Alessandro Ranellucci
Alessandro Ranellucci

💻
Alexandre B A Villares
Alexandre B A Villares

💻
Heracles
Heracles

💻
Arya Gupta
Arya Gupta

💻
Damien Quartz
Damien Quartz

💻
Shubham Rathore
Shubham Rathore

💻
Grigoriy Titaev
Grigoriy Titaev

💻
Guilherme Silveira
Guilherme Silveira

💻
Héctor López Carral
Héctor López Carral

💻
Jeremy Douglass
Jeremy Douglass

💻
Jett LaRue
Jett LaRue

💻
Jim
Jim

💻 🐛
Joan Perals
Joan Perals

💻
Josh Holinaty
Josh Holinaty

💻
Keito Takeda
Keito Takeda

💻
Victor Osório
Victor Osório

💻
Torben
Torben

💻
Tobias Pristupin
Tobias Pristupin

💻
Thomas Leplus
Thomas Leplus

💻
Arnoud van der Leer
Arnoud van der Leer

💻
Stanislas Marçais / Knupel
Stanislas Marçais / Knupel

💻
Sanchit Kapoor
Sanchit Kapoor

💻
Miles Fogle
Miles Fogle

💻
Miguel Valadas
Miguel Valadas

💻
Maximilien Tirard
Maximilien Tirard

💻
Matthew Russell
Matthew Russell

💻
dcuartielles
dcuartielles

💻
Jayson Haebich
Jayson Haebich

💻
jordirosa
jordirosa

💻
Justin Shrake
Justin Shrake

💻
Kevin
Kevin

💻
kgtkr
kgtkr

💻
Mark Luffel
Mark Luffel

💻
Никита Король
Никита Король

💻
raguenets
raguenets

💻
robog-two
robog-two

💻
teddywing
teddywing

💻
chikuwa
chikuwa

💻
ಠ_ಠ
ಠ_ಠ

💻
Abe Pazos
Abe Pazos

💻
Alex
Alex

💻
Alexander Hurst
Alexander Hurst

💻
Anıl
Anıl

💻
Barış
Barış

💻
Brian Sapozhnikov
Brian Sapozhnikov

💻
Carlos Mario Rodriguez Perdomo
Carlos Mario Rodriguez Perdomo

💻
CyberFlame
CyberFlame

💻
Dhruv Jawali
Dhruv Jawali

💻
FlorisVO
FlorisVO

💻
Frank Leon Rose
Frank Leon Rose

💻
Greg Borenstein
Greg Borenstein

💻
Guillermo Perez
Guillermo Perez

💻
Henning Kiel
Henning Kiel

💻
J David Eisenberg
J David Eisenberg

💻
Jordan Ephron
Jordan Ephron

💻
Jason Sigal
Jason Sigal

💻
Jordan Orelli
Jordan Orelli

💻
Kalle
Kalle

💻
Laureano López
Laureano López

💻
Lesley Wagner
Lesley Wagner

💻
Mark Slee
Mark Slee

💻
MARTIN LEOPOLD GROEDL
MARTIN LEOPOLD GROEDL

💻
Martin Prout
Martin Prout

💻
Mathias Herberts
Mathias Herberts

💻
Diya Solanki
Diya Solanki

🚇
Neil C Smith
Neil C Smith

🚇
+ + + + + diff --git a/build/CODESIGNING.md b/build/CODESIGNING.md new file mode 100644 index 0000000000..0230aa2151 --- /dev/null +++ b/build/CODESIGNING.md @@ -0,0 +1,52 @@ +# CODESIGNING + +To sign Processing on Mac OS we need a Apple Developer account and involves two steps: + +Signing the Processing.app and the included JRE + +This happens either by running `ant macos-dist` or in the Github actions + +## Setup Github Actions +To setup the Github Actions you need to be the role Account Holder on your Apple Developer team. + +### Application Signing +We start by creating a .p12 file following the tutorial on the CodeSigning Action +https://github.com/Apple-Actions/import-codesign-certs + +Currently this consists of following this tutorial with one step altered below: + +https://calvium.com/how-to-make-a-p12-file/ + +In the create new certificate section, select `Developer ID Application` this allows the certificate to distribute outside the Mac App Store + +Then take the certificate generated by the tutorial above and copy it to your clipboard as +```bash +$ base64 -i CertificateFile.p12 | pbcopy +``` + +and set the secrets `CERTIFICATES_P12` and `CERTIFICATES_P12_PASSWORD` into the Github Repository. + +This will allow the action to sign Processing and the JRE +### Notarisation + +To prevent the *this application is not recognised by Mac OS* error we need to setup the Github Action to upload the release to Apple for Notarisation + +Go to https://developer.apple.com/account to find the team id in the membership details section and apply it to the `PROCESSING_TEAM_ID` secret + +Enter an apple id email in the `PROCESSING_APPLE_ID` secret, this account does **not** need to have an Account Holder role, ideally it is not anyone's personal apple id as the password to the apple id will be included into the repositories secrets. + +Follow these instructions https://support.apple.com/en-us/102654 to setup an app-specific password for the apple id and enter that as `PROCESSING_APP_PASSWORD` + +### Release + +Finally create a release to test the signing actions +## Sign locally + +- Be on a MacOS computer +- Be logged into your Apple ID +- Setup and Log into XCode +- cd into the repository + +```bash +$ PROCESSING_TEAM_ID=... PROCESSING_APPLE_ID=... PROCESSING_APP_PASSWORD=... ant macos-dist +``` diff --git a/build/README.md b/build/README.md index d352eb81ef..e6afadba36 100644 --- a/build/README.md +++ b/build/README.md @@ -202,23 +202,6 @@ ant linux-dist Regardless, the distributable ends up in `build/{os}/work` where `{os}` is the target OS. - -### Code Signing - -Mac builds require code signing, due to [Apple requirements](https://support.apple.com/en-us/HT202491) issue. This is not executed by default by `ant dist` or `ant macosx-dist`. One can sign the resulting `.app` file though via: - -``` -/usr/bin/codesign --force --sign "Developer ID Application: Certificate Common Name" Processing.app/Contents/PlugIns/jdk-... -/usr/bin/codesign --force --sign "Developer ID Application: Certificate Common Name" Processing.app -``` - -Note that one will need to complete the `jdk-...` string to be something like `jdk-17.0.2+8` depending on the build. Anyway, this will require an [Apple Developer ID](https://developer.apple.com/developer-id/). - -This is not strictly required especially if you are using your own app build. - -Eventually we'll want to sign [Windows releases](https://github.com/processing/processing4/issues/25), and [exported applications](https://github.com/processing/processing4/issues/173). If you have experience with this, please help! - - ## Using an IDE for development (Eclipse or IntelliJ) ### Eclipse diff --git a/build/build.xml b/build/build.xml index 4a22952d46..4d873869bb 100644 --- a/build/build.xml +++ b/build/build.xml @@ -28,7 +28,7 @@ + location="../processing-examples" /> @@ -510,7 +510,7 @@ name="Processing" displayName="Processing" executableName="Processing" - identifier="org.processing.four" + identifier="org.processing.app" signature="Pde4" icon="macos/processing.icns" copyright="© The Processing Foundation" @@ -811,7 +811,16 @@ --> - + + + + + + + + + + @@ -853,14 +862,20 @@ --> - + + + + - + + + + diff --git a/done.txt b/done.txt index 5023280358..97a0ea8e9d 100644 --- a/done.txt +++ b/done.txt @@ -1,4 +1,14 @@ 1293 (4.3) + +*************************************************************** +IMPORTANT: This file is left here for historical reference only. + +For contributors, please refer to the CONTRIBUTING guidelines +and check the open issues list for actionable items. If anything +here sparks interest, consider opening a new issue to discuss +its current relevance. +*************************************************************** + o ' appearing in code with Copy as HTML X could not reproduce / Cannot load any user language files for i18n diff --git a/todo.txt b/todo.txt index b43c9304f5..e23bdbcfe9 100755 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,20 @@ 1294 (4.3.1) +^^^^^^^^^^^^ +NOTE: The first line in this file is the source for the current +revision of Processing for the build system. + +*************************************************************** +IMPORTANT: The rest of this file is left here for historical +reference and should not be used as a guide for current tasks +or priorities. Many items in this list are outdated or no longer +relevant. + +For contributors, please refer to the CONTRIBUTING guidelines +and check the open issues list for actionable items. If anything +here sparks interest, consider opening a new issue to discuss +its current relevance. +*************************************************************** + X add an extra note about the Ant version X https://github.com/processing/processing4/pull/783