• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Export Word
    • Attachments
    • Page Information

    • About
    • Adoption
    • Amber
    • Build
    • Code Tools
    • Coin
    • Compatibility & Specification Review
    • Compiler
    • Device I/O
    • Graal
    • HotSpot
    • JDK 7u
    • JDK 8
    • JDK 8u
    • JDK Updates
    • Kulla
    • Loom
    • Memory Model Update
    • Mission Control
    • Multi-Language VM
    • Nashorn
    • OpenJFX
    • Port: AArch64
    • Port: BSD
    • Port: MacOSX
    • Port: PowerPC/AIX
    • Port: s390x
    • Portola
    • Quality
    • Shenandoah
    • Sumatra
    • Type Annotations
    • Valhalla
    • ZGC
  1. Dashboard
  2. Compatibility & Specification Review
  3. Main

Main

Skip to end of metadata
  • Created by Iris Clark, last modified by Joe Darcy on Dec 12, 2018
Go to start of metadata

Welcome to the Compatibility & Specification Review (CSR) Group!

The Compatibility & Specification Review (CSR) Group is empowered to review interface changes proposed within active JDK Release Projects.

A dashboard of active CSR requests is maintained in JBS, the JDK bug system.

CSR Background and Overview

The Java platform enjoys both breadth of use and longevity; over two decades after its introduction, it remains one of the most popular programming platforms. A core tenet of the Java platform has been the importance of high-quality specifications, specifications favoring precision, explicitness, and completeness. The Java language, virtual machine, and API specifications are foundational documents for the Java ecosystem. The precision of these specifications, combined with a strong commitment to cross-release compatibility, allows applications and libraries to generally "just work" across releases.

A key component to ensuring and maintaining the quality of the specifications was the "CCC" process, originated at Sun Microsystems, which was dedicated to looking after compatibility and specification concerns, aiming to balance stability with progress to help keep Java vibrant. The role played by the CCC process has now been transferred to the Compatibility & Specification Review (CSR) OpenJDK Group, providing transparency and ensuring wider community input.

The primary role of the CSR Group is to review all changes to the JDK's exported interfaces. The term "interfaces" in this case meaning not only Java programming language interface types, but more generally the protocols between the JDK and users of the JDK. This review typically focuses on specification changes. However, implementation-only changes may also merit review if they have sufficiently large or broad behavioral compatibility impact. Secondarily, the CSR is also a resource to provide feedback to engineers working on Java platform APIs. The CSR process fulfills an archival function as well, keeping stand-alone records of API and interface changes.

General JDK Compatibility Policy

The general compatibility policy for exported APIs implemented in the JDK is:

  • Don't break binary compatibility (as defined in the Java Language Specification) without sufficient cause.
  • Avoid introducing source incompatibilities.
  • Manage behavioral compatibility changes.

One sufficient cause for breaking binary compatibility is removing a an API deprecated for removal in an earlier release, as described in the enhanced deprecation policy. The different kinds of compatibility can be subtle and are discussed in detail elsewhere. Analogous versions of the policy apply to non-API parts of the platform.

Kinds of Compatibility

FAQs

Resources

  • Members
  • Mailing list
    • csr-discuss
    • csr-discuss Archives

Recent space activity

    • Joe Darcy
    • CSR FAQs updated Jan 24, 2019 view change
    • Main updated Dec 12, 2018 view change
    • Fields of a CSR Request updated Dec 12, 2018 view change
    • David Holmes
    • CSR FAQs commented Aug 09, 2017
    • Philip Race
    • CSR FAQs updated Jun 02, 2017 view change
Show More Please wait

Space contributors

{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":31850534}


Overview
Content Tools
ThemeBuilder
  • No labels

Terms of Use • License: GPLv2 • Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to Oracle Corporation. Evaluate Confluence today.

  • Adaptavist ThemeBuilder Powered by Atlassian Confluence 6.10.1
  • Adaptavist ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Adaptavist ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 357, "requestCorrelationId": "bdd61994d1c01c29"}