forked from apache/spark-website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
committers.html
709 lines (647 loc) · 26.3 KB
/
committers.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Committers | Apache Spark
</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&Courier+Prime:wght@400;700&display=swap" rel="stylesheet">
<link href="/css/custom.css" rel="stylesheet">
<!-- Code highlighter CSS -->
<link href="/css/pygments-default.css" rel="stylesheet">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
</head>
<body class="global">
<nav class="navbar navbar-expand-lg navbar-dark p-0 px-4" style="background: #1D6890;">
<a class="navbar-brand" href="/">
<img src="/images/spark-logo-rev.svg" alt="" width="141" height="72">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent"
aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse col-md-12 col-lg-auto pt-4" id="navbarContent">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/downloads.html">Download</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="libraries" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
Libraries
</a>
<ul class="dropdown-menu" aria-labelledby="libraries">
<li><a class="dropdown-item" href="/sql/">SQL and DataFrames</a></li>
<li><a class="dropdown-item" href="/streaming/">Spark Streaming</a></li>
<li><a class="dropdown-item" href="/mllib/">MLlib (machine learning)</a></li>
<li><a class="dropdown-item" href="/graphx/">GraphX (graph)</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="/third-party-projects.html">Third-Party Projects</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="documentation" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
Documentation
</a>
<ul class="dropdown-menu" aria-labelledby="documentation">
<li><a class="dropdown-item" href="/docs/latest/">Latest Release</a></li>
<li><a class="dropdown-item" href="/documentation.html">Older Versions and Other Resources</a></li>
<li><a class="dropdown-item" href="/faq.html">Frequently Asked Questions</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/examples.html">Examples</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="community" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
Community
</a>
<ul class="dropdown-menu" aria-labelledby="community">
<li><a class="dropdown-item" href="/community.html">Mailing Lists & Resources</a></li>
<li><a class="dropdown-item" href="/contributing.html">Contributing to Spark</a></li>
<li><a class="dropdown-item" href="/improvement-proposals.html">Improvement Proposals (SPIP)</a>
</li>
<li><a class="dropdown-item" href="https://issues.apache.org/jira/browse/SPARK">Issue Tracker</a>
</li>
<li><a class="dropdown-item" href="/powered-by.html">Powered By</a></li>
<li><a class="dropdown-item" href="/committers.html">Project Committers</a></li>
<li><a class="dropdown-item" href="/history.html">Project History</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="developers" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
Developers
</a>
<ul class="dropdown-menu" aria-labelledby="developers">
<li><a class="dropdown-item" href="/developer-tools.html">Useful Developer Tools</a></li>
<li><a class="dropdown-item" href="/versioning-policy.html">Versioning Policy</a></li>
<li><a class="dropdown-item" href="/release-process.html">Release Process</a></li>
<li><a class="dropdown-item" href="/security.html">Security</a></li>
</ul>
</li>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="apacheFoundation" role="button"
data-bs-toggle="dropdown" aria-expanded="false">
Apache Software Foundation
</a>
<ul class="dropdown-menu" aria-labelledby="apacheFoundation">
<li><a class="dropdown-item" href="https://www.apache.org/">Apache Homepage</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
<li><a class="dropdown-item"
href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/events/current-event">Event</a></li>
</ul>
</li>
</ul>
</div>
</nav>
<div class="container">
<div class="row mt-4">
<div class="col-12 col-md-9">
<h2>Current committers</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Organization</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sameer Agarwal</td>
<td>Facebook</td>
</tr>
<tr>
<td>Michael Armbrust</td>
<td>Databricks</td>
</tr>
<tr>
<td>Dilip Biswal</td>
<td>Adobe</td>
</tr>
<tr>
<td>Ryan Blue</td>
<td>Netflix</td>
</tr>
<tr>
<td>Joseph Bradley</td>
<td>Databricks</td>
</tr>
<tr>
<td>Matthew Cheah</td>
<td>Palantir</td>
</tr>
<tr>
<td>Felix Cheung</td>
<td>SafeGraph</td>
</tr>
<tr>
<td>Mosharaf Chowdhury</td>
<td>University of Michigan, Ann Arbor</td>
</tr>
<tr>
<td>Bryan Cutler</td>
<td>IBM</td>
</tr>
<tr>
<td>Jason Dai</td>
<td>Intel</td>
</tr>
<tr>
<td>Tathagata Das</td>
<td>Databricks</td>
</tr>
<tr>
<td>Ankur Dave</td>
<td>UC Berkeley</td>
</tr>
<tr>
<td>Aaron Davidson</td>
<td>Databricks</td>
</tr>
<tr>
<td>Thomas Dudziak</td>
<td>Facebook</td>
</tr>
<tr>
<td>Erik Erlandson</td>
<td>Red Hat</td>
</tr>
<tr>
<td>Robert Evans</td>
<td>NVIDIA</td>
</tr>
<tr>
<td>Wenchen Fan</td>
<td>Databricks</td>
</tr>
<tr>
<td>Huaxin Gao</td>
<td>Apple</td>
</tr>
<tr>
<td>Max Gekk</td>
<td>Databricks</td>
</tr>
<tr>
<td>Joseph Gonzalez</td>
<td>UC Berkeley</td>
</tr>
<tr>
<td>Thomas Graves</td>
<td>NVIDIA</td>
</tr>
<tr>
<td>Stephen Haberman</td>
<td>LinkedIn</td>
</tr>
<tr>
<td>Mark Hamstra</td>
<td>ClearStory Data</td>
</tr>
<tr>
<td>Seth Hendrickson</td>
<td>Cloudera</td>
</tr>
<tr>
<td>Herman van Hovell</td>
<td>Databricks</td>
</tr>
<tr>
<td>Liang-Chi Hsieh</td>
<td>Apple</td>
</tr>
<tr>
<td>Yin Huai</td>
<td>Databricks</td>
</tr>
<tr>
<td>Shane Huang</td>
<td>Intel</td>
</tr>
<tr>
<td>Dongjoon Hyun</td>
<td>Apple</td>
</tr>
<tr>
<td>Kazuaki Ishizaki</td>
<td>IBM</td>
</tr>
<tr>
<td>Xingbo Jiang</td>
<td>Databricks</td>
</tr>
<tr>
<td>Yikun Jiang</td>
<td>Huawei</td>
</tr>
<tr>
<td>Holden Karau</td>
<td>Apple</td>
</tr>
<tr>
<td>Shane Knapp</td>
<td>UC Berkeley</td>
</tr>
<tr>
<td>Cody Koeninger</td>
<td>Nexstar Digital</td>
</tr>
<tr>
<td>Andy Konwinski</td>
<td>Databricks</td>
</tr>
<tr>
<td>Hyukjin Kwon</td>
<td>Databricks</td>
</tr>
<tr>
<td>Ryan LeCompte</td>
<td>Quantifind</td>
</tr>
<tr>
<td>Haoyuan Li</td>
<td>Alluxio</td>
</tr>
<tr>
<td>Xiao Li</td>
<td>Databricks</td>
</tr>
<tr>
<td>Yinan Li</td>
<td>Google</td>
</tr>
<tr>
<td>Yuanjian Li</td>
<td>Databricks</td>
</tr>
<tr>
<td>Davies Liu</td>
<td>Juicedata</td>
</tr>
<tr>
<td>Cheng Lian</td>
<td>Databricks</td>
</tr>
<tr>
<td>Yanbo Liang</td>
<td>Facebook</td>
</tr>
<tr>
<td>Jungtaek Lim</td>
<td>Databricks</td>
</tr>
<tr>
<td>Sean McNamara</td>
<td>Oracle</td>
</tr>
<tr>
<td>Xiangrui Meng</td>
<td>Databricks</td>
</tr>
<tr>
<td>Xinrong Meng</td>
<td>Databricks</td>
</tr>
<tr>
<td>Mridul Muralidharan</td>
<td>LinkedIn</td>
</tr>
<tr>
<td>Andrew Or</td>
<td>Princeton University</td>
</tr>
<tr>
<td>Kay Ousterhout</td>
<td>LightStep</td>
</tr>
<tr>
<td>Sean Owen</td>
<td>Databricks</td>
</tr>
<tr>
<td>Tejas Patil</td>
<td>Facebook</td>
</tr>
<tr>
<td>Nick Pentreath</td>
<td>IBM</td>
</tr>
<tr>
<td>Attila Zsolt Piros</td>
<td>Cloudera</td>
</tr>
<tr>
<td>Anirudh Ramanathan</td>
<td>Rockset</td>
</tr>
<tr>
<td>Imran Rashid</td>
<td>Cloudera</td>
</tr>
<tr>
<td>Charles Reiss</td>
<td>University of Virginia</td>
</tr>
<tr>
<td>Josh Rosen</td>
<td>Stripe</td>
</tr>
<tr>
<td>Sandy Ryza</td>
<td>Remix</td>
</tr>
<tr>
<td>Kousuke Saruta</td>
<td>NTT Data</td>
</tr>
<tr>
<td>Saisai Shao</td>
<td>Tencent</td>
</tr>
<tr>
<td>Prashant Sharma</td>
<td>IBM</td>
</tr>
<tr>
<td>Gabor Somogyi</td>
<td>Apple</td>
</tr>
<tr>
<td>Ram Sriharsha</td>
<td>Databricks</td>
</tr>
<tr>
<td>Chao Sun</td>
<td>Apple</td>
</tr>
<tr>
<td>Maciej Szymkiewicz</td>
<td> </td>
</tr>
<tr>
<td>Jose Torres</td>
<td>Databricks</td>
</tr>
<tr>
<td>DB Tsai</td>
<td>Apple</td>
</tr>
<tr>
<td>Takuya Ueshin</td>
<td>Databricks</td>
</tr>
<tr>
<td>Marcelo Vanzin</td>
<td>Cloudera</td>
</tr>
<tr>
<td>Shivaram Venkataraman</td>
<td>University of Wisconsin, Madison</td>
</tr>
<tr>
<td>Gengliang Wang</td>
<td>Databricks</td>
</tr>
<tr>
<td>Yuming Wang</td>
<td>eBay</td>
</tr>
<tr>
<td>Zhenhua Wang</td>
<td>Huawei</td>
</tr>
<tr>
<td>Patrick Wendell</td>
<td>Databricks</td>
</tr>
<tr>
<td>Yi Wu</td>
<td>Databricks</td>
</tr>
<tr>
<td>Andrew Xia</td>
<td>Alibaba</td>
</tr>
<tr>
<td>Reynold Xin</td>
<td>Databricks</td>
</tr>
<tr>
<td>Weichen Xu</td>
<td>Databricks</td>
</tr>
<tr>
<td>Takeshi Yamamuro</td>
<td>NTT</td>
</tr>
<tr>
<td>Kent Yao</td>
<td>NetEase</td>
</tr>
<tr>
<td>Burak Yavuz</td>
<td>Databricks</td>
</tr>
<tr>
<td>Matei Zaharia</td>
<td>Databricks, Stanford</td>
</tr>
<tr>
<td>Ruifeng Zheng</td>
<td>Databricks</td>
</tr>
<tr>
<td>Shixiong Zhu</td>
<td>Databricks</td>
</tr>
</tbody>
</table>
<h3>Becoming a committer</h3>
<p>To get started contributing to Spark, learn
<a href="/contributing.html">how to contribute</a> –
anyone can submit patches, documentation and examples to the project.</p>
<p>The PMC regularly adds new committers from the active contributors, based on their contributions
to Spark. The qualifications for new committers include:</p>
<ol>
<li>Sustained contributions to Spark: Committers should have a history of major contributions to
Spark. An ideal committer will have contributed broadly throughout the project, and have
contributed at least one major component where they have taken an “ownership” role. An ownership
role means that existing contributors feel that they should run patches for this component by
this person.</li>
<li>Quality of contributions: Committers more than any other community member should submit simple,
well-tested, and well-designed patches. In addition, they should show sufficient expertise to be
able to review patches, including making sure they fit within Spark’s engineering practices
(testability, documentation, API stability, code style, etc). The committership is collectively
responsible for the software quality and maintainability of Spark. Note that contributions to
critical parts of Spark, like its core and SQL modules, will be held to a higher standard when
assessing quality. Contributors to these areas will face more review of their changes.</li>
<li>Community involvement: Committers should have a constructive and friendly attitude in all
community interactions. They should also be active on the dev and user list and help mentor
newer contributors and users. In design discussions, committers should maintain a professional
and diplomatic approach, even in the face of disagreement.</li>
</ol>
<p>The type and level of contributions considered may vary by project area – for example, we
greatly encourage contributors who want to work on mainly the documentation, or mainly on
platform support for specific OSes, storage systems, etc.</p>
<p>The PMC also adds new PMC members. PMC members are expected to carry out PMC
responsibilities as described in <a href="https://www.apache.org/dev/pmc.html#policy">Apache Guidance</a>, including
helping vote on releases, enforce Apache project trademarks, take responsibility for legal and license issues,
and ensure the project follows Apache project mechanics. The PMC periodically adds committers to the PMC
who have shown they understand and can help with these activities.</p>
<h3>Review process</h3>
<p>All contributions should be reviewed before merging as described in
<a href="/contributing.html">Contributing to Spark</a>.
In particular, if you are working on an area of the codebase you are unfamiliar with, look at the
Git history for that code to see who reviewed patches before. You can do this using
<code class="language-plaintext highlighter-rouge">git log --format=full <filename></code>, by examining the “Commit” field to see who committed each patch.</p>
<h3>When to commit/merge a pull request</h3>
<p>PRs shall not be merged during active, on-topic discussion unless they address issues such as critical security fixes of a public vulnerability. Under extenuating circumstances, PRs may be merged during active, off-topic discussion and the discussion directed to a more appropriate venue. Time should be given prior to merging for those involved with the conversation to explain if they believe they are on-topic.</p>
<p>Lazy consensus requires giving time for discussion to settle while understanding that people may not be working on Spark as their full-time job and may take holidays. It is believed that by doing this, we can limit how often people feel the need to exercise their veto.</p>
<p>All -1s with justification merit discussion. A -1 from a non-committer can be overridden only with input from multiple committers, and suitable time must be offered for any committer to raise concerns. A -1 from a committer who cannot be reached requires a consensus vote of the PMC under ASF voting rules to determine the next steps within the <a href="https://www.apache.org/foundation/voting.html">ASF guidelines for code vetoes</a>.</p>
<p>These policies serve to reiterate the core principle that code must not be merged with a pending veto or before a consensus has been reached (lazy or otherwise).</p>
<p>It is the PMC’s hope that vetoes continue to be infrequent, and when they occur, that all parties will take the time to build consensus prior to additional feature work.</p>
<p>Being a committer means exercising your judgement while working in a community of people with diverse views. There is nothing wrong in getting a second (or third or fourth) opinion when you are uncertain. Thank you for your dedication to the Spark project; it is appreciated by the developers and users of Spark.</p>
<p>It is hoped that these guidelines do not slow down development; rather, by removing some of the uncertainty, the goal is to make it easier for us to reach consensus. If you have ideas on how to improve these guidelines or other Spark project operating procedures, you should reach out on the dev@ list to start the discussion.</p>
<h3>How to merge a pull request</h3>
<p>Changes pushed to the master branch on Apache cannot be removed; that is, we can’t force-push to
it. So please don’t add any test commits or anything like that, only real patches.</p>
<h4>Setting up remotes</h4>
<p>To use the <code class="language-plaintext highlighter-rouge">merge_spark_pr.py</code> script described below, you
will need to add a git remote called <code class="language-plaintext highlighter-rouge">apache</code> at <code class="language-plaintext highlighter-rouge">https://github.com/apache/spark</code>,
as well as one called <code class="language-plaintext highlighter-rouge">apache-github</code> at <code class="language-plaintext highlighter-rouge">git://github.com/apache/spark</code>.</p>
<p>The <code class="language-plaintext highlighter-rouge">apache</code> (the default value of <code class="language-plaintext highlighter-rouge">PUSH_REMOTE_NAME</code> environment variable) is the remote used for pushing the squashed commits
and <code class="language-plaintext highlighter-rouge">apache-github</code> (default value of <code class="language-plaintext highlighter-rouge">PR_REMOTE_NAME</code>) is the remote used for pulling the changes.
By using two separate remotes for these two actions the result of the <code class="language-plaintext highlighter-rouge">merge_spark_pr.py</code> can be tested without pushing it
into the official Spark repo just by specifying your fork in the <code class="language-plaintext highlighter-rouge">PUSH_REMOTE_NAME</code> variable.</p>
<p>After cloning your fork of Spark you already have a remote <code class="language-plaintext highlighter-rouge">origin</code> pointing there. So if correct, your <code class="language-plaintext highlighter-rouge">git remote -v</code>
contains at least these lines:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apache [email protected]:apache/spark.git (fetch)
apache [email protected]:apache/spark.git (push)
apache-github [email protected]:apache/spark.git (fetch)
apache-github [email protected]:apache/spark.git (push)
origin [email protected]:[your username]/spark.git (fetch)
origin [email protected]:[your username]/spark.git (push)
</code></pre></div></div>
<p>For the <code class="language-plaintext highlighter-rouge">apache</code> repo, you will need to set up command-line authentication to GitHub. This may
include setting up an SSH key and/or personal access token. See:</p>
<ul>
<li>https://help.github.com/articles/connecting-to-github-with-ssh/</li>
<li>https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/</li>
</ul>
<p>To check whether the necessary write access are already granted please visit <a href="https://gitbox.apache.org/setup/">GitBox</a>.</p>
<p>Ask <code class="language-plaintext highlighter-rouge">[email protected]</code> if you have trouble with these steps, or want help doing your first merge.</p>
<h4>Merge script</h4>
<p>All merges should be done using the
<a href="https://github.com/apache/spark/blob/master/dev/merge_spark_pr.py">dev/merge_spark_pr.py</a>,
which squashes the pull request’s changes into one commit.</p>
<p>The script is fairly self explanatory and walks you through steps and options interactively.</p>
<p>If you want to amend a commit before merging – which should be used for trivial touch-ups –
then simply let the script wait at the point where it asks you if you want to push to Apache.
Then, in a separate window, modify the code and push a commit. Run <code class="language-plaintext highlighter-rouge">git rebase -i HEAD~2</code> and
“squash” your new commit. Edit the commit message just after to remove your commit message.
You can verify the result is one change with <code class="language-plaintext highlighter-rouge">git log</code>. Then resume the script in the other window.</p>
<p>Also, please remember to set Assignee on JIRAs where applicable when they are resolved. The script
can do this automatically in most cases. However where the contributor is not yet a part of the
Contributors group for the Spark project in ASF JIRA, it won’t work until they are added. Ask
an admin to add the person to Contributors at
https://issues.apache.org/jira/plugins/servlet/project-config/SPARK/roles .</p>
<p>Once a PR is merged please leave a comment on the PR stating which branch(es) it has been merged with.</p>
<h3>Policy on backporting bug fixes</h3>
<p>From <a href="https://www.mail-archive.com/[email protected]/msg10284.html"><code class="language-plaintext highlighter-rouge">pwendell</code></a>:</p>
<p>The trade off when backporting is you get to deliver the fix to people running older versions
(great!), but you risk introducing new or even worse bugs in maintenance releases (bad!).
The decision point is when you have a bug fix and it’s not clear whether it is worth backporting.</p>
<p>I think the following facets are important to consider:</p>
<ul>
<li>Backports are an extremely valuable service to the community and should be considered for
any bug fix.</li>
<li>Introducing a new bug in a maintenance release must be avoided at all costs. It over time would
erode confidence in our release process.</li>
<li>Distributions or advanced users can always backport risky patches on their own, if they see fit.</li>
</ul>
<p>For me, the consequence of these is that we should backport in the following situations:</p>
<ul>
<li>Both the bug and the fix are well understood and isolated. Code being modified is well tested.</li>
<li>The bug being addressed is high priority to the community.</li>
<li>The backported fix does not vary widely from the master branch fix.</li>
</ul>
<p>We tend to avoid backports in the converse situations:</p>
<ul>
<li>The bug or fix are not well understood. For instance, it relates to interactions between complex
components or third party libraries (e.g. Hadoop libraries). The code is not well tested outside
of the immediate bug being fixed.</li>
<li>The bug is not clearly a high priority for the community.</li>
<li>The backported fix is widely different from the master branch fix.</li>
</ul>
</div>
<div class="col-12 col-md-3">
<div class="news" style="margin-bottom: 20px;">
<h5>Latest News</h5>
<ul class="list-unstyled">
<li><a href="/news/spark-3-4-0-released.html">Spark 3.4.0 released</a>
<span class="small">(Apr 13, 2023)</span></li>
<li><a href="/news/spark-3-2-4-released.html">Spark 3.2.4 released</a>
<span class="small">(Apr 13, 2023)</span></li>
<li><a href="/news/spark-3-3-2-released.html">Spark 3.3.2 released</a>
<span class="small">(Feb 17, 2023)</span></li>
<li><a href="/news/spark-3-2-3-released.html">Spark 3.2.3 released</a>
<span class="small">(Nov 28, 2022)</span></li>
</ul>
<p class="small" style="text-align: right;"><a href="/news/index.html">Archive</a></p>
</div>
<div style="text-align:center; margin-bottom: 20px;">
<a href="https://www.apache.org/events/current-event.html">
<img src="https://www.apache.org/events/current-event-234x60.png" style="max-width: 100%;"/>
</a>
</div>
<div class="hidden-xs hidden-sm">
<a href="/downloads.html" class="btn btn-cta btn-lg d-grid" style="margin-bottom: 30px;">
Download Spark
</a>
<p style="font-size: 16px; font-weight: 500; color: #555;">
Built-in Libraries:
</p>
<ul class="list-none">
<li><a href="/sql/">SQL and DataFrames</a></li>
<li><a href="/streaming/">Spark Streaming</a></li>
<li><a href="/mllib/">MLlib (machine learning)</a></li>
<li><a href="/graphx/">GraphX (graph)</a></li>
</ul>
<a href="/third-party-projects.html">Third-Party Projects</a>
</div>
</div>
</div>
<footer class="small">
<hr>
Apache Spark, Spark, Apache, the Apache feather logo, and the Apache Spark project logo are either registered
trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
See guidance on use of Apache Spark <a href="/trademarks.html">trademarks</a>.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Copyright © 2018 The Apache Software Foundation, Licensed under the
<a href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="/js/lang-tabs.js"></script>
<script src="/js/downloads.js"></script>
</body>
</html>