<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
Hi Tom,
<div><br>
</div>
<div>What's your end goal here? Is it to become an active member of the OpenJDK community or do you have a specific enhancement that you want to deliver? If it's the former, working on bug fixes will be a faster path forward since those are more likely to be
 accepted and appreciated. If it's the later, then simply find the correct mailing list and start a thread about your enhancement to see what the rest of the community thinks about it.</div>
<div><br>
</div>
<div>There are many, many more things to consider when evaluating any change to the JDK than just its API. Too many to try to cover in an email thread, which is why it's all documented in the OpenJDK Developers' Guide (<a href="https://openjdk.org/guide/">https://openjdk.org/guide/</a>)
 which all developers should read before engaging in OpenJDK development. Please do so.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>/Jesper<br id="lineBreakAtBeginningOfMessage">
<div><br>
<blockquote type="cite">
<div>On 1 Nov 2024, at 15:39, Chen Liang <chen.l.liang@oracle.com> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Hi Tom,</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Still, I recommend first sending to area mailing lists announcing that you have an enhancement proposal.  To your upset, but what determines the success of an enhancement is its API, especially its usages, such as its callers and overrides (user implementations);
 tests and implementations and comments can always be refurbished later.</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
The problem with challenging enhancements is usually not related to the implementations or tests, but more around the API designs, especially about reducing complexity.  Should we enhance this existing API or should we plan to nuke it and offer a new one because
 of the critical shortcomings?  Is this undocumented behavior relied on by a lot of users that we should promote it to official, or is it safe for us to simply change it silently?  Should we make this subroutine a new API like the main one, or should we keep
 it hidden in the implementation?  These are the more important questions than having robust testing or implementation.</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Given these situations, I don't think it's a good idea to attempt "challenging enhancements" from "small enhancements" as they are of distinct nature from the bugs.</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div class="elementToProof" style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Chen</div>
<div id="appendonsend" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
</div>
<hr tabindex="-1" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; display: inline-block; width: 827.109375px;">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;"></span>
<div id="divRplyFwdMsg" dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<font face="Calibri, sans-serif" style="font-size: 11pt;"><b>From:</b><span class="Apple-converted-space"> </span>Tom Mooney <<a href="mailto:Tom.Mooney@bjss.com">Tom.Mooney@bjss.com</a>><br>
<b>Sent:</b><span class="Apple-converted-space"> </span>Friday, November 1, 2024 9:29 AM<br>
<b>To:</b><span class="Apple-converted-space"> </span>Chen Liang <<a href="mailto:chen.l.liang@oracle.com">chen.l.liang@oracle.com</a>><br>
<b>Subject:</b><span class="Apple-converted-space"> </span>[External] : Re: Enhancements</font>
<div> </div>
</div>
<div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<div class="x_elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Thanks for your reply Chen, would having a clear definition of done (that i could email as an excel spreadsheet so every step I completed could be checked)  and QA evidence of the correctness etc of the enhancement be useful so that you can see every effort
 was taken to make the most well tested, correct and flexible implementation possible? I can understand that if an enhancement touches a lot of points in the JDK its high risk as its an immensely complex project but I was think about attempting small/minor
 enhancements when they pop up and when I get more experience contributing to slowly and safely taking on more challenging enhancements. Does that sound alright?</div>
<div class="x_elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div class="x_elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Ta</div>
<div class="x_elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Tom</div>
<div class="x_elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div class="x_elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div id="x_appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<hr style="display: inline-block; width: 827.109375px;">
<div dir="ltr" id="x_divRplyFwdMsg"><span style="font-family: Calibri, sans-serif; font-size: 11pt;"><b>From:</b> Chen Liang <chen.l.liang@oracle.com><br>
<b>Sent:</b> 01 November 2024 14:23<br>
<b>To:</b> Tom Mooney <Tom.Mooney@bjss.com>; jdk-dev@openjdk.org <jdk-dev@openjdk.org><br>
<b>Subject:</b> Re: Enhancements</span>
<div> </div>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Hello Tom,</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Yes, the JDK project and the OpenJDK organization do accept enhancements.  However, they are usually less likely to be accepted compared to bug fixes, due to that they often need long-term maintenance and may become a "peak of complexity solution" (like finalization
 and security manager) in the future.  The addition of an enhancement is much easier than the removal of one, especially for core libraries.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
In the core libraries, enhancements are mainly feasible due to their motivation, even though we would love to see these test coverage and nice implementation and specification.  A positive example is the recent addition of Reader::of(CharSequence)<span class="Apple-converted-space"> </span><a href="https://bugs.openjdk.org/browse/JDK-8341566" id="OWA82788b92-b418-c867-9ee5-2f0397feb33d" class="x_OWAAutoLink" data-auth="NotApplicable">https://bugs.openjdk.org/browse/JDK-8341566</a> which
 is nicely motivated because a Reader is "for reading character streams" and there are immediate (no synchronization as in StringReader) and future (potential to immediately support future batch-copy methods on CharSequence) benefits to such an API.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Since the advantage and the long term implications of enhancements (especially new library APIs, as we won't be able to remove them easily) are not always clear, we strongly recommend sending to mailing lists before creating an issue on the JBS or bugs.java.com. 
 Meanwhile, we usually wish to settle down the API signature before moving on to review the implementation, so there's a suggestion for people to send the APIs implemented with throw UOE, so people can first focus on the basis (the API signatures) before moving
 on the implementation details to avoid waste of review efforts.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Regards.</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Chen Liang</div>
<div id="x_x_appendonsend"></div>
<hr style="direction: ltr; display: inline-block; width: 827.109375px;">
<div dir="ltr" id="x_x_divRplyFwdMsg"><span style="font-family: Calibri, sans-serif; font-size: 11pt;"><b>From:</b> jdk-dev <jdk-dev-retn@openjdk.org> on behalf of Tom Mooney <Tom.Mooney@bjss.com><br>
<b>Sent:</b> Friday, November 1, 2024 9:08 AM<br>
<b>To:</b> jdk-dev@openjdk.org <jdk-dev@openjdk.org><br>
<b>Subject:</b> Enhancements</span>
<div> </div>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Hi</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Does OpenJDK accept enhancements from contributors at all? It was suggested previously to prefer fixing bugs over enhancements but if the enhancements aren't too risky and on the smaller side of medium in size and not too risky are they likely to be accepted
 if you provide excellent test coverage, clean implementation and clear complete documentation that you'd done everything you need too. Is it good to define a general Definition of Done for this project so we can just work through a set of tasks to complete
 a ticket to maximise the chances our contributions will be accepted?</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
<br>
</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Ta</div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt;">
Tom</div>
<div style="direction: ltr;"><br>
</div>
<div style="margin-top: 0px; margin-bottom: 0px; direction: ltr;"><span style="font-family: Arial, sans-serif; font-size: 8pt;">The information included in this email and any files transmitted with it may contain information that is confidential and it must
 not be used by, or its contents or attachments copied or disclosed to, persons other than the intended addressee. If you have received this email in error, please notify BJSS. In the absence of written agreement to the contrary BJSS' relevant standard terms
 of contract for any work to be undertaken will apply. Please carry out virus or such other checks as you consider appropriate in respect of this email. BJSS does not accept responsibility for any adverse effect upon your system or data in relation to this
 email or any files transmitted with it. BJSS Limited, a company registered in England and Wales (Company Number 2777575), VAT Registration Number 613295452, Registered Office Address, 1 Whitehall Quay, Leeds, LS1 4HR</span></div>
<br>
<div style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size: 8pt; font-family: Arial, sans-serif;">The information included in this email and any files transmitted with it may contain information that is confidential and it must not be used by,
 or its contents or attachments copied or disclosed to, persons other than the intended addressee. If you have received this email in error, please notify BJSS. In the absence of written agreement to the contrary BJSS' relevant standard terms of contract for
 any work to be undertaken will apply. Please carry out virus or such other checks as you consider appropriate in respect of this email. BJSS does not accept responsibility for any adverse effect upon your system or data in relation to this email or any files
 transmitted with it. BJSS Limited, a company registered in England and Wales (Company Number 2777575), VAT Registration Number 613295452, Registered Office Address, 1 Whitehall Quay, Leeds, LS1 4HR</span></div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</body>
</html>