Tag Archives: opensource

AI’s not the main character any more

I’m attending FOSSAsia in Bangkok this week. As always, it’s a fire hose of fantastic content and great conversations.

The last few events I’ve been at, AI has been the Main Character. Every talk was about AI, for the sake of AI, Yay AI. AI will change the world. All that usual hype. One grows weary of it.

But this event has been different, in a not very subtle way. Yes, every talk is still about AI, either explicitly, or because it comes up again and again. But what’s been interesting is that AI is now a tool. It’s just part of the toolchain. It’s not the main character.

This shift is very welcome to me, and one that I’ve been hoping to see.  The talks incorporate AI as a tool in accomplishing the actual important goal, rather than being the entire point of the talk.

I sincerely hope that this is a trend that we see continue at other events.

ASF releases, February 2026

In February, 2026, 54 projects made 208 releases

ACTIVEMQ:
– activemq-parent-5.19.2 on 2026-02-06
– activemq-parent-6.2.1 on 2026-02-12

AGE:
– apache-age-1.7.0 on 2026-02-04

AIRFLOW:
– airflow-1.19.0 on 2026-02-17
– airflow-chart-1.19.0 on 2026-02-17
– apache-airflow-2.11.1 on 2026-02-21
– apache_airflow-2.11.1 on 2026-02-21
– apache_airflow-3.1.7 on 2026-02-04
– apache_airflow_core-3.1.7 on 2026-02-04
– apache_airflow_ctl-0.1.2 on 2026-02-25
– apache_airflow_providers-2026-02-10 on 2026-02-14
– apache_airflow_providers_alibaba-3.3.4 on 2026-02-04
– apache_airflow_providers_amazon-9.21.0 on 2026-02-04
– apache_airflow_providers_apache_cassandra-3.9.2 on 2026-02-14
– apache_airflow_providers_apache_hdfs-4.11.3 on 2026-02-04
– apache_airflow_providers_apache_hive-9.2.5 on 2026-02-14
– apache_airflow_providers_apache_kafka-1.12.0 on 2026-02-14
– apache_airflow_providers_apache_livy-4.5.3 on 2026-02-04
– apache_airflow_providers_celery-3.16.0 on 2026-02-14
– apache_airflow_providers_cncf_kubernetes-10.12.4 on 2026-02-14
– apache_airflow_providers_cohere-1.6.2 on 2026-02-04
– apache_airflow_providers_common_compat-1.13.1 on 2026-02-14
– apache_airflow_providers_common_sql-1.31.0 on 2026-02-14
– apache_airflow_providers_databricks-7.9.1 on 2026-02-14
– apache_airflow_providers_dbt_cloud-4.6.4 on 2026-02-04
– apache_airflow_providers_edge3-3.0.2 on 2026-02-14
– apache_airflow_providers_elasticsearch-6.4.4 on 2026-02-04
– apache_airflow_providers_exasol-4.9.3 on 2026-02-14
– apache_airflow_providers_fab-1.5.4 on 2026-02-21
– apache_airflow_providers_fab-3.3.0 on 2026-02-14
– apache_airflow_providers_git-0.2.3 on 2026-02-14
– apache_airflow_providers_github-2.11.0 on 2026-02-14
– apache_airflow_providers_google-19.5.0 on 2026-02-04
– apache_airflow_providers_hashicorp-4.5.0 on 2026-02-14
– apache_airflow_providers_http-5.6.4 on 2026-02-04
– apache_airflow_providers_imap-3.11.0 on 2026-02-14
– apache_airflow_providers_keycloak-0.5.2 on 2026-02-14
– apache_airflow_providers_microsoft_azure-12.10.3 on 2026-02-04
– apache_airflow_providers_mysql-6.4.3 on 2026-02-14
– apache_airflow_providers_openlineage-2.10.2 on 2026-02-14
– apache_airflow_providers_opensearch-1.8.4 on 2026-02-04
– apache_airflow_providers_oracle-4.4.0 on 2026-02-14
– apache_airflow_providers_pagerduty-5.2.3 on 2026-02-04
– apache_airflow_providers_postgres-6.5.4 on 2026-02-14
– apache_airflow_providers_sftp-5.7.0 on 2026-02-04
– apache_airflow_providers_snowflake-6.9.1 on 2026-02-14
– apache_airflow_providers_ssh-4.3.1 on 2026-02-04
– apache_airflow_providers_standard-1.11.1 on 2026-02-14
– apache_airflow_providers_tableau-5.3.3 on 2026-02-14
– apache_airflow_providers_teradata-3.4.3 on 2026-02-14
– apache_airflow_providers_yandex-4.4.0 on 2026-02-14
– apache_airflow_providers_ydb-2.4.0 on 2026-02-14
– apache_airflow_task_sdk-1.1.7 on 2026-02-04

APISIX:
– apache-apisix-3.15.0 on 2026-02-05

ARROW:
– apache-arrow-23.0.1 on 2026-02-10
– apache-arrow-nanoarrow-0.8.0 on 2026-02-05
– apache-arrow-rs-58.0.0 on 2026-02-23

ARTEMIS:
– apache-artemis-2.51.0 on 2026-02-06

CAMEL:
– apache-camel-4.10.9 on 2026-02-12
– apache-camel-4.14.5 on 2026-02-13
– apache-camel-4.18.0 on 2026-02-17
– apache-camel-quarkus-3.32.0 on 2026-02-19
– camel-k-sources-2.9.1 on 2026-02-10
– camel-kamelets-sources-4.14.5 on 2026-02-16
– camel-kamelets-sources-4.18.0 on 2026-02-18
– camel-karaf-4.8.9 on 2026-02-18
– camel-upgrade-recipes-sources-4.18.0 on 2026-02-17

CASSANDRA:
– apache-cassandra-analytics-0.3.0 on 2026-02-12

COMMONS:
– commons-fileupload2-2.0.0-M5 on 2026-02-17
– commons-jexl-3.6.2 on 2026-02-09
– commons-parent-97 on 2026-02-26

CORDOVA:
– cordova-eslint-npm-6.0.1 on 2026-02-18
– cordova-eslint-source-6.0.1 on 2026-02-18

CXF:
– apache-cxf-3.6.10 on 2026-02-17
– apache-cxf-4.0.11 on 2026-02-17
– apache-cxf-4.1.5 on 2026-02-17
– apache-cxf-4.2.0 on 2026-02-17

DATAFUSION:
– apache-datafusion-python-52.0.0 on 2026-02-23
– apache-datafusion-sqlparser-rs-0.61.0 on 2026-02-07

DRUID:
– apache-druid-36.0.0 on 2026-02-06

FELIX:
– maven-bundle-plugin-6.0.2 on 2026-02-27
– org.apache.felix.http.jetty12-1.1.8 on 2026-02-27

FLINK:
– flink-connector-aws-6.0.0 on 2026-02-02
– flink-connector-parent-2.0.0 on 2026-02-04
– flink-kubernetes-operator-1.14.0 on 2026-02-03
– flink-kubernetes-operator-1.14.0-helm on 2026-02-03

FORY:
– apache-fory-0.15.0 on 2026-02-06

GRAILS:
– apache-grails-quartz-4.0.1 on 2026-02-11
– apache-grails-redis-5.0.1 on 2026-02-11
– apache-grails-spring-security-7.0.1 on 2026-02-12

HADOOP:
– hadoop-3.4.3 on 2026-02-13

HERTZBEAT:
– apache-hertzbeat-1.8.0 on 2026-02-04

HOP:
– apache-hop-2.17.0 on 2026-02-02
– apache-hop-client-2.17.0 on 2026-02-02

HTTPCOMPONENTS:
– httpcomponents-core-5.4.1 on 2026-02-10

INCUBATOR-IGGY:
– iggy-0.7.0-incubating on 2026-02-24

JACKRABBIT:
– jackrabbit-filevault-4.2.0 on 2026-02-23

KAFKA:
– kafka-3.9.2 on 2026-02-22
– kafka-4.2.0 on 2026-02-16
– kafka_2.12-3.9.2 on 2026-02-22
– kafka_2.13-3.9.2 on 2026-02-22
– kafka_2.13-4.2.0 on 2026-02-16

KARAF:
– apache-karaf-4.4.10 on 2026-02-10
– apache-karaf-integration-4.4.10 on 2026-02-10

KVROCKS:
– apache-kvrocks-2.15.0 on 2026-02-07

LIBCLOUD:
– apache-libcloud-3.9.0 on 2026-02-09

LOGGING:
– apache-log4net-binaries-3.3.0 on 2026-02-20
– apache-log4net-source-3.3.0 on 2026-02-20

LUCENE:
– lucene-10.4.0 on 2026-02-21

MAHOUT:
– qumat-0.5.0 on 2026-02-02

MAVEN:
– apache-resource-bundles-1.8 on 2026-02-24
– maven-dependency-analyzer-1.17.0 on 2026-02-02
– maven-dependency-plugin-3.10.0 on 2026-02-08
– maven-plugin-testing-3.5.1 on 2026-02-08
– maven-resolver-1.9.27 on 2026-02-23
– maven-resolver-2.0.16 on 2026-02-23
– surefire-3.5.5 on 2026-02-23

MYFACES:
– myfaces-tobago-6.9.1 on 2026-02-13

NETBEANS:
– netbeans-29 on 2026-02-19

NIFI:
– nifi-2.8.0 on 2026-02-12
– nifi-nar-maven-plugin-2.3.0 on 2026-02-24

NUTCH:
– apache-nutch-1.22 on 2026-02-12

OPENNLP:
– apache-opennlp-3.0.0-M1 on 2026-02-19

POLARIS:
– apache-polaris-1.3.0-incubating on 2026-02-25
– polaris-1.3.0-incubating on 2026-02-25

PULSAR:
– apache-pulsar-3.0.16 on 2026-02-09
– apache-pulsar-4.0.9 on 2026-02-16
– apache-pulsar-4.1.3 on 2026-02-16
– pulsar-4.5.0 on 2026-02-19
– pulsar-chart-4.5.0 on 2026-02-19
– pulsar-client-python-3.10.0 on 2026-02-02

RANGER:
– apache-ranger-2.8.0 on 2026-02-26
– ranger-2.8.0-admin on 2026-02-26
– ranger-2.8.0-atlas-plugin on 2026-02-26
– ranger-2.8.0-elasticsearch-plugin on 2026-02-26
– ranger-2.8.0-hbase-plugin on 2026-02-26
– ranger-2.8.0-hdfs-plugin on 2026-02-26
– ranger-2.8.0-hive-plugin on 2026-02-26
– ranger-2.8.0-kafka-plugin on 2026-02-26
– ranger-2.8.0-kms on 2026-02-26
– ranger-2.8.0-knox-plugin on 2026-02-26
– ranger-2.8.0-kylin-plugin on 2026-02-26
– ranger-2.8.0-migration-util on 2026-02-26
– ranger-2.8.0-ozone-plugin on 2026-02-26
– ranger-2.8.0-presto-plugin on 2026-02-26
– ranger-2.8.0-ranger-tools on 2026-02-26
– ranger-2.8.0-sample on 2026-02-26
– ranger-2.8.0-solr-plugin on 2026-02-26
– ranger-2.8.0-solr_audit_conf on 2026-02-26
– ranger-2.8.0-sqoop-plugin on 2026-02-26
– ranger-2.8.0-storm-plugin on 2026-02-26
– ranger-2.8.0-tagsync on 2026-02-26
– ranger-2.8.0-usersync on 2026-02-26
– ranger-2.8.0-yarn-plugin on 2026-02-26

RATIS:
– ratis-thirdparty-1.0.10 on 2026-02-08
– ratis-thirdparty-1.0.11 on 2026-02-08

ROCKETMQ:
– rocketmq-client-java-5.2.0 on 2026-02-02

SEDONA:
– apache-sedona-spatialbench-0.2.0 on 2026-02-23

SERVICECOMB:
– apache-servicecomb-java-chassis-distribution-2.8.30 on 2026-02-03
– apache-servicecomb-java-chassis-distribution-2.9.3 on 2026-02-03

SHARDINGSPHERE:
– apache-shardingsphere-5.5.3 on 2026-02-23

SHIRO:
– shiro-root-2.1.0 on 2026-02-07
– shiro-root-3.0.0-alpha-1 on 2026-02-23

SKYWALKING:
– apache-skywalking-java-agent-9.6.0 on 2026-02-16
– skywalking-banyandb-helm-0.6.0-rc3 on 2026-02-08

SLING:
– feature-launcher-maven-plugin-1.0.4 on 2026-02-20
– org.apache.sling.commons.log-6.0.4 on 2026-02-28
– org.apache.sling.engine-3.0.2 on 2026-02-27
– org.apache.sling.feature.extension.apiregions-2.1.2 on 2026-02-17
– org.apache.sling.models.impl-2.0.2 on 2026-02-28
– org.apache.sling.pipes-4.5.2 on 2026-02-23
– org.apache.sling.scripting.core-3.0.2 on 2026-02-28
– org.apache.sling.servlets.post-3.0.2 on 2026-02-28
– org.apache.sling.servlets.resolver-3.0.6 on 2026-02-28
– org.apache.sling.testing.jcr-mock-1.8.0 on 2026-02-16
– org.apache.sling.testing.sling-mock-3.6.0 on 2026-02-16
– org.apache.sling.testing.sling-mock-4.0.4 on 2026-02-16
– org.apache.sling.testing.sling-mock.core-3.6.0 on 2026-02-16
– org.apache.sling.testing.sling-mock.core-4.0.4 on 2026-02-16
– org.apache.sling.testing.sling-mock.junit4-3.6.0 on 2026-02-16
– org.apache.sling.testing.sling-mock.junit4-4.0.4 on 2026-02-16
– org.apache.sling.testing.sling-mock.junit5-3.6.0 on 2026-02-16
– org.apache.sling.testing.sling-mock.junit5-4.0.4 on 2026-02-16
– org.apache.sling.testing.sling-mock.parent-3.6.0 on 2026-02-16
– org.apache.sling.testing.sling-mock.parent-4.0.4 on 2026-02-16
– org.apache.sling.xss-2.4.10 on 2026-02-10
– sling-66 on 2026-02-26
– sling-bundle-parent-66 on 2026-02-26
– slingfeature-maven-plugin-1.9.4 on 2026-02-20

SPARK:
– SparkR_4.0.2 on 2026-02-02
– SparkR_4.2.0-preview2 on 2026-02-05
– pyspark-4.0.2 on 2026-02-02
– pyspark-4.2.0.dev2 on 2026-02-05
– pyspark_client-4.0.2 on 2026-02-02
– pyspark_client-4.2.0.dev2 on 2026-02-05
– pyspark_connect-4.0.2 on 2026-02-02
– pyspark_connect-4.2.0.dev2 on 2026-02-05
– spark-4.0.2 on 2026-02-02
– spark-4.2.0-preview2 on 2026-02-05

SYNCOPE:
– syncope-4.1.0-M0 on 2026-02-19

TOMCAT:
– tomcat-native-1.3.6 on 2026-02-06
– tomcat-native-2.0.13 on 2026-02-06

TRAFFICSERVER:
– trafficserver-10.1.1 on 2026-02-06
– trafficserver-9.2.12 on 2026-02-06

TVM:
– apache-tvm-ffi-v0.1.9 on 2026-02-27
– apache-tvm-v0.23.0 on 2026-02-07

WAYANG:
– apache-wayang-1.1.1 on 2026-02-11

YUNIKORN:
– apache-yunikorn-1.8.0 on 2026-02-04

 

New ASF PMC members, February 2026

In February, 2026, 12 projects added a total of 63 new PMC members. 46 of those are part of newly-established projects

ALLURA:
– Daniel Castillo (danielcastillothe) on 2026-02-24

CASSANDRA:
– Francisco Guerrero (frankgh) on 2026-02-09

CLOUDSTACK:
– Fabricio Duarte Junior (fabricio) on 2026-02-27
– Kiran Chavala (kiranchavala) on 2026-02-27

DATAFUSION:
– Adrian Garcia Badaracco (adriangb) on 2026-02-02

DRUID:
– Jesse Tuğlu (tuglu) on 2026-02-16

FLINK:
– Ferenc Csaky (fcsaky) on 2026-02-10
– Gabor Somogyi (gaborgsomogyi) on 2026-02-10

GLUTEN 🎉 (New Project):
– Chang Chen (changchen) on 2026-02-18
– Chengcheng Jin (chengchengjin) on 2026-02-18
– Felix Cheung (felixcheung) on 2026-02-18
– Binwei Yang (felixybw) on 2026-02-18
– Hongze Zhang (hongze) on 2026-02-18
– Junqing Li (jackylee) on 2026-02-18
– Ke Jia (kejia) on 2026-02-18
– Liang JiaBiao (lgbo) on 2026-02-18
– Jiayi Liu (liujiayi771) on 2026-02-18
– Neng Liu (liuneng) on 2026-02-18
– Yu Li (liyu) on 2026-02-18
– Shuai Li (loneylee) on 2026-02-18
– Hongbin Ma (mahongbin) on 2026-02-18
– Rong Ma (marong) on 2026-02-18
– Philo He (philo) on 2026-02-18
– Rui Mo (rui) on 2026-02-18
– Shao Feng Shi (shaofengshi) on 2026-02-18
– Taiyang Li (taiyangli) on 2026-02-18
– XiDuo You (ulyssesyou) on 2026-02-18
– Weiting Chen (weitingchen) on 2026-02-18
– Yang Zhang (yangzy) on 2026-02-18
– Kent Yao (yao) on 2026-02-18
– Yuan Zhou (yuanzhou) on 2026-02-18
– ZhiBiao Zhang (zhanglistar) on 2026-02-18
– Zhichao Zhang (zhangzc) on 2026-02-18
– Zhao Kuo (zhaokuo) on 2026-02-18
– Zhen Li (zhli) on 2026-02-18
– Keyong Zhou (zhouky) on 2026-02-18

ICEBERG:
– Prashant Singh (singhpk234) on 2026-02-24
– Sung Yun (sungwy) on 2026-02-24

KAFKA:
– Christo Lolov (clolov) on 2026-02-23
– Kamal Chandraprakash (kamalcph) on 2026-02-22
– Lianet Magrans (lianetm) on 2026-02-21
– Andrew Schofield (schofielaj) on 2026-02-23
– Viktor Somogyi-Vass (viktor) on 2026-02-23

POLARIS 🎉 (New Project):
– Alexandre Dutra (adutra) on 2026-02-18
– Anoop Johnson (anoop) on 2026-02-18
– Ashvin Agrawal (ashvin) on 2026-02-18
– Ryan Blue (blue) on 2026-02-18
– Michael Collado (collado) on 2026-02-18
– Dennis Huo (dhuo) on 2026-02-18
– Dmitri Bourlatchkov (dimas) on 2026-02-18
– Francois Papon (fpapon) on 2026-02-18
– Holden Karau (holden) on 2026-02-18
– Jack Ye (jackye) on 2026-02-18
– Jean-Baptiste Onofré (jbonofre) on 2026-02-18
– Russell Spitzer (russellspitzer) on 2026-02-18
– Robert Stupp (snazy) on 2026-02-18
– Tyler Akidau (takidau) on 2026-02-18
– John Roesler (vvcephei) on 2026-02-18
– Kent Yao (yao) on 2026-02-18
– Yufei Gu (yufei) on 2026-02-18
– Yong Zheng (yzheng) on 2026-02-18

SYSTEMDS:
– Christina Dionysio (cdionysio) on 2026-02-10

XERCES:
– Gary D. Gregory (ggregory) on 2026-02-28

New ASF Committers, February 2026

In February, 2026, 18 projects added a total of 21 new committers

ALLURA:
– Daniel Castillo (danielcastillothe) on 2026-02-24

AMBARI:
– Sandeep Kumar (sandeepk) on 2026-02-23

CALCITE:
– Weihua Zhang (zwh) on 2026-02-04

CAMEL:
– Luigi De Masi (ldemasi) on 2026-02-26

CASBIN:
– Xiangwen Meng (cit110) on 2026-02-26
– Yang Luo (hsluoyz) on 2026-02-23
– Hanyang Xia (xhy5000) on 2026-02-27

DAFFODIL:
– Ryan Cover (coverryan) on 2026-02-02

DORIS:
– Si Wu (seawinde) on 2026-02-25
– Zhang Dong (zddr) on 2026-02-26

GRAPHAR:
– Jinye Wu (jinyewu) on 2026-02-04

ICEBERG:
– Drew Gallardo (dru) on 2026-02-23

KVROCKS:
– Xiaojun Yuan (sryanyuan) on 2026-02-23

NUTTX:
– Chengdong Wang (chengdong) on 2026-02-25

PAIMON:
– Hongbo Xiao (hope) on 2026-02-23

PINOT:
– Shaurya Chaturvedi (shauryachats) on 2026-02-23

POLARIS:
– Danica Fine (danica) on 2026-02-26

SEATA:
– Rongye Wang (lokidundun) on 2026-02-08

SHENYU:
– Siheng Yu (sihengyu) on 2026-02-23

SOLR:
– Rahul Goswami (rahulgoswami) on 2026-02-08

SUPERSET:
– Rafael Benitez (rbenitez) on 2026-02-02

 

Mentoring and recruiting in open source

Most of the talks that I attended at Open Source Summit last week in Denver were in the general category of recruting and mentoring of new contributors. This is a bit of a brain dump of that content.

The first talk I want to highlight was a panel session featuring Dawn Foster, Ruth Ikegah, Matt Denny, and Suah Khan, titled “First PR to lifelong impact” What particularly stood out to me here was the following:

Clearly identifying a specific skill, or goal, for which you are trying to recruit is so much more valuable than just saying “Come help us!” It can be very intimidating to be asked to simply look around and find something to do, but when you’re asked to do a specific thing, there’s none of that initial confusion as to where you’re going to be useful. If you want to help a project recruit, have informal conversations with various people about where they could use help, or what isn’t getting done.

Don’t underestimate the value of recognition. Saying thank you, publicly as well as privately, is what keeps people around. List contributors in your release notes, even if they only did something small.

Present your information in multiple formats. Just because you prefer to learn by reading doesn’t mean that’s the “right” way. Short format videos are more appealing to (some) younger people. Provide a prominent “Prefer video?” link on your text content, and vice versa. Some people just want the facts. Some people want to talk to you, while some prefer to never have to talk to anyone. The more formats you can provide content in, the better, but there’s definitely a tradeoff with maintenance costs.

The next two things that I went to are a lot to summarize.

I went to Emily Shaffer’s talk “Nowcomer … but not new”, which was one of the most valuable presentations I’ve been to in ages. She does a lot of what I do – mentoring experienced programmers who are new to open source. Her notes/slides are HERE. I will post the video here once it’s available. Her practical tips about teaching people how to do the weird uncomfortable things that open source requires were just fantastic, and I can’t really do them justice. The main thing for me, though, was trying to get folks to understand that their internal goals and deadlines are completely uninteresting to open source projects, and trying to use those as motivation won’t work – you have to find ways to appeal to *all* users, not just yours.

I also attended a mentoring unconference. The notes from that are HERE. The section on mentoring non-code contributors was particularly valuable, with lots of practical tips about how to motiviate people to contribute to open source even if they don’t much care about software. In particular, more clearly communicating what problems your software solves, and for whom, was a recurring theme. And helping, say, a lawyer understand the kind of impact that their work would have, helping *millions* of people rather than the handful their daily work reaches, can be powerful motivator.

Open Source Glossary

When discussing open source with colleagues, I tend to assume that they already know the basics. But, as open source becomes a standard part of all software development, and the number of people working with open source grows, this has become less and less true.

What follows is a minimal viable vocabulary, which I’m posting here so that I can link to it elsewhere when having these conversations, and attempting to assume a lingua franca.

Open Source

Open source refers to software which is developed and released under an OSI (Open Source Initiative) approved license. Open source licenses are those that comply with the Open Source Definition, which sets forth ten tenets which are mandatory components of a compliant license.

Within these tenets, there is a lot of room for variation, and thus there are many licenses that qualify as open source licenses, ranging from extremely permissive (“Do whatever you want with this code.”) to much more restrictive (“You must do these things with the code.”)

While, strictly speaking, “open source” is a legal definition of the license under which software is released, it also implies a project which is run under the guidelines of the Four Opens – Open Source, Open Design, Open Development, and Open Community. In reality, most projects fall short of that ideal in some way, but it is an ideal to be striven for.

Fork

A fork is a copy of an open source project, for the purpose of making changes to the source code. Usually, this is done with the intention of offering those changes back to the original (“upstream”) project for inclusion in future versions (See “PR/MR/Patch”)

A private fork is when this copy is made privately, inside a particular company or organization, without visibility to the upstream.

A public fork, as the name indicates, is done in public where everyone on the project can see what changes are being proposed. This is always preferable, as it allows the project community to comment and participate in these changes, rather than them being a surprise.

A hostile fork is when a project is forked with no intention to ever contribute back, but, rather, to continue to run a competing project indefinitely. This should be considered only in the most extreme of situations.

PR/MR/Patch

A PR (Pull Request), MR (Merge Request) or Patch, are all terms for offering a change back to the originating project (“upstream”), for inclusion in future versions of that project. The terms indicate different ways that the change may be submitted, but all refer to essentially the same thing – a proposed change.

A PR is the desired end-game on any fork. Forks should be short-lived, and have a specific proposed change in mind, rather than being long-running or permanent artifacts.

Upstream

An upstream project refers to the open source project from which you are building. That implies the existence of a downstream – a project, product, or service which inherits some or all of its code from that upstream. For example, Apache Kafka is the upstream for Amazon Managed Streaming for Apache Kafka (MSK). (Which, of course, implies that MSK is the downstream from Apache Kafka.)

The upstream/downstream relationship is symbiotic. That is, a project relies on users, and a product or service relies on the upstream’s health and sustainability. As such, a downstream product or service should do everything in its power to support and sustain the project which it depends on. And project, in their turn, should listen to customers and users, and be responsive to them.

Maintainer

A maintainer is someone empowered to make changes to an open source project, and/or to make releases of that project. Ideally, a healthy project will have multiple maintainers, and there will be healthy discussion and debate around changes that go into a project.

Single-maintainer projects, or single-vendor projects (ie, where all maintainers come from the same vendor/company/organization) pose a risk to the sustainability of that project, since the change in direction from one source can result in the user community being suddenly disenfranchised or surprised. Thus, it is an ideal of open community that there be a diversity of inputs in the pool of maintainers, to ensure that all voices are equally heard when changes are made.

Upcoming events (June and beyond)

I’m about to head out for a few events again, and I’m in the process of planning several other events.

First, I’ll be in Berlin for FOSS Backstage , Berlin Buzzwords , and the Apache EU RoadShow. This is a trifecta of open source events happening at the Kulturbrauerei in Berlin. I’ll be speaking at Backstage about mentoring in open source, which, you might know, is something I’m passionate about. I’ll also be doing interviews for Feathercast, so if you’re going to be there, find me and do an interview.

I’ll be home for a week, and then I’ll be attending the ISC-HPC Supercomputing event in Frankfurt. This is the second time I’ll attend this event, which was my introduction to Supercomputing last year. I’ve learned so much since then, but I’m still an HPC newbie. While there, I hope to spend most of my time speaking with the EDUs and research orgs that are present, and doing interviews with the student supercomputing teams that are participating in the Student Cluster Competition.

Beyond that, I’m planning several events, where I’ll be representing CentOS.

In August, I’ll be attending DevConf.us in Boston, and on the day before DevConf, we’ll be running a CentOS Dojo at Boston University. The call for papers for that event is now open, so if you’re doing anything interesting around CentOS, please submit a paper and come hang out with us.

Later in August, I will (maybe? probably?) be going to Vancouver for Open Source Summit North America (formerly Linuxcon) to represent CentOS.

In September, I’ll be at ApacheCon North America in Montreal. The schedule for this event is published, and registration is open. You should really come. ApacheCon is something I’ve been involved with for 20 years now, and I’d love to share it with you.

October is going to be very full.

CentOS is proudly sponsoring Ohio LinuxFest, which apparently I last attended in 2011! (That can’t be right, but that’s the last one I have photographic evidence for.) We (CentOS) will be sharing our booth/table space with Fedora, and possibly with some of the project that use the CentOS CI infrastructure for their development process. More details as we get closer to the event. That’s October 12th – 13th in Columbus.

Then, on October 19th, we’ll be at CERN, in Meyrin, Switzerland, for the second annual Cern CentOS Dojo. Details, and the call for papers, for that event, are on the event website at http://cern.ch/centos.

Immediately after that, I’ll be going (maybe? probably?) to Edinburgh for Open Source Summit Europe. This event was in Edinburgh a few years ago, and it was a great location.

Finally, in November, I plan to attend SuperComputing 18 in Dallas, which is the North American version of the HPC event in Frankfurt, although it tends to be MUCH bigger. Last year, at the event in Denver, I walked just over 4 miles one day on the show floor, visiting the various organizations presenting there.

So, that’s it for me, for the rest of the year, as far as I know. I would love to see you if you’ll be at, or near, any of these venues.

Event report: OpenStack PTG

Last week I attended the second OpenStack PTG, in Denver. The first one was held in Atlanta back in February.

This is not an event for everyone, and isn’t your standard conference. It’s a working meeting – a developers’ summit at which the next release of the OpenStack software is planned. The website is pretty blunt about who should, and should not, attend. So don’t sign up without knowing what your purpose is there, or you’ll spend a lot of time wondering why you’re there.

I went to do the second installment of my video series, interviewing the various project teams about what they did in the just-released version, and what they anticipate coming in the next release.

The first of these, at the PTG in Atlanta, featured only Red Hat engineers. (Those videos are HERE.) However, after reflection, I decided that it would be best to not limit it, but to expand it to the entire community, focusing on cross-company collaboration, and trying to get as many projects represented as I could.

So, in Denver I asked the various project PTL (project technical leads) to do an interview, or to assemble a group of people from the project to do interviews. I did 22 interviews, and I’m publishing those on the RDO YouTube channel – http://youtube.com/RDOCommunity – just as fast as I can get them edited.

I also hosted an RDO get-together to celebrate the Pike release, and we had just over 60 people show up for that. Thank you all so much for attending! (Photos and video from that coming soon to a blog near you!)

So, watch my YouTube channel, and hopefully by the end of next week I’ll have all of those posted.

I love working with the OpenStack community because they remind me of Open Source in the old days, when developers cared about the project and the community at least as much, and often more, than about the company that happens to pay their paycheck. It’s very inspiring to listen to these brilliant men and women talking about their projects.

Three best features of open source events

As part of Stormy’s ongoing blog challenge, here’s my take on “Three best features of open source events.”

1. The hackathon

While there is considerable evidence that the term “hackathon” should be avoided (No, I can’t find the article right now. I’ll keep looking), the collaborative space at an event is, in my opinion, the most important part of an open source event.

Open source events are educational, of course. You can attend a talk and learn things. But most of the information that you need to learn is available, free, online. So to me the most important part of an event is the opportunity to meet and collaborate with the other people on the project.

Defining a specific space for this is critical to get people to sit down and play along. Signs identifying project teams or topics is even more welcoming. Having a white board where people can identify specifically what they are working on gives a way for introverts to be overtly welcoming of other people with similar interests.

Publicizing the collaborative space well in advance of  the event gives the opportunity for people to discuss what they might work on, and gives some people the added incentive to show up at all.

2. The after-party

While it’s indeed a cliche (because it’s true!) that open source events have too much alcohol, having an after-event, with or without food and/or drinks, is a critical part of the event. It gives a specific time and place for your community to get to know one another in a less formal atmosphere, and talk about something other than code. These kinds of community bonds will simply never happen on the mailing list, which is by design focused on the project, the code, the design, and so on, rather than on the personalities.

Open source communities fail because of personality issues at least as often as they do because of code issues. Providing a specific time and space to address these issues saves communities. As we say at Apache, Community > Code.

3. The keynotes

Picking good keynotes is really hard, because keynotes should be inspiring. As such, they don’t always have to be directly related to the topic of the event, but should be, in some way, of interest to the audience.

A keynote should be delivered by someone who is engaging and eloquent. And it should have some kind of call to action, or end on a note that inspires the audience to go do something.

I’ve been attending technical conferences for 20 years, and I remember only a handful of keynotes. I remember Douglas Adams because he was funny. I remember Hugh Howie because I got to sit on stage with him and grill him about the process of being an author and engaging your fans. I remember an OSCon keynote about maps, and one by a guy from WETA about the making of the Lord of the Rings movies. I remember Gema Parreño talking about using data to save the earth from collision with space objects. And most recently, Sandra Matz talking about what your social media profile says about you.

But there have also been a lot of clunkers, and a lot of product pitches, and a lot of Hey Look At Me talks. I can do without those.

Oh, and if you have any suggestions for great keynotes, please let me know. 🙂

No, Apache did not send you spam

Today, the ASF received yet another complaint from a distraught individual who had, in their opinion, received spam from the Apache Software Foundation. This time, via our Facebook page. As always, this is because someone sent email, and in that email is a link to a website – in this case, www125.forcetwo.men , which is displaying a default (ie, incorrectly configured) Apache web server, running on CentOS.

This distraught individual threatened legal action against the ASF, and against CentOS, under FBI, Swedish, and International law, for sending them spam.

No, Apache didn’t send you spam. Not only that, but Apache software wasn’t used to send you spam. Unfortunately, the spammer happened to be running a misconfigured copy of software we produced. That’s the extent of the connection. Also, they aren’t even compentent enough to correctly configure their web server.

It would be like holding  a shovel company liable because someone dug a hole in your yard.

Or, better yet, holding a shovel company liable because someone crashed into your car, and also happened to have a shovel in their trunk at the time.

We get these complaints daily, to various email addresses at the Foundation, and via various websites and twitter accounts. While I understand that people are irritated at receiving spam, there’s absolutely nothing we can do about it.

And, what’s more, it’s pretty central to the philosophy of open source that we don’t put restrictions on what people use our software for – even if they *had* used our software to send that email. Which they didn’t.

So stop it.