GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||
GeezerVison is showing spark.apache.org — Versioning Policy | Apache Spark Versioning PolicyStarting with Spark 1.0.0, the Spark project will follow the semantic versioning guidelines with a few deviations. These small differences account for Spark’s nature as a multi-module project. Spark versionsEach Spark release will be versioned:
Alpha componentsWhen new components are added to Spark, they may initially be marked as “alpha”. Alpha components do not have to abide by the above guidelines, however, to the maximum extent possible, they should try to. Once they are marked “stable” they have to follow these guidelines. API compatibilityIn general, An API is any public class or interface documented in Spark, e.g., ScalaDoc. We try to guarantee both source compatibility and binary compatibility between releases. Note, however, that even for features “developer API” and “experimental”, we strive to maintain maximum compatibility. Code should not be merged into the project as “experimental” if there is a plan to change the API later, because users expect the maximum compatibility from all available APIs. Considerations when breaking APIsThe Spark project strives to avoid breaking APIs or silently changing behavior, even at major versions. While this is not always possible, the balance of the following factors should be considered before choosing to break an API. Cost of breaking an APIBreaking an API almost always has a non-trivial cost to the users of Spark. A broken API means that Spark programs need to be rewritten before they can be upgraded. However, there are a few considerations when thinking about what the cost will be:
Cost of maintaining an APIOf course, the above does not mean that we will never break any APIs. We must also consider the cost both to the project and to our users of keeping the API in question.
Alternatives to breaking an APIIn cases where there is a “Bad API”, but where the cost of removal is also high, there are alternatives that should be considered that do not hurt existing users but do address some of the maintenance costs.
Release cadenceStarting with Apache Spark 4.3.0 (the first quarterly feature release after 4.2.0), feature releases occur quarterly (every 3 months), containing new features, improvements, and bug fixes. Major releases occur annually (every 12 months), typically in a stable window once per year (subject to release discussion on the dev list), allowing breaking changes and dependency upgrades. Maintenance releases happen as needed in between for critical bug fixes and security patches. Spark 4.3 release window
Illustrative transition: 2026 and 2027The calendar below is an example to show how the community expects to bootstrap the faster cadence; exact dates stay subject to the usual release-discussion and voting process.
Maintenance releases and EOLWe plan to ship a release every 3 months. Every fourth release bumps the major version (x.0.0). Within each major line, the first release is the major release, the releases in between are feature releases, and the last release in the line is the LTS release. The following table summarizes the maintenance window for each release type:
Release branches other than LTS will, generally, be maintained with bug fix releases for a period of 6 months (see the Major and Feature rows in the table above). Under this cadence, the last release in each major line is designated as the LTS (Long-Term Support) release for that major line and is maintained for 18 months (for example Apache Spark 5.3.0 and 6.3.0). The x.0.0, x.1.0, and x.2.0 trains are maintained for 6 months each as usual. LTS releases provide a stable target for ecosystem projects and downstream vendors to standardize around. As an exception while the project transitions into this cadence, Spark 4.x still ships 4.3.0 as the first quarterly release on the new train, but the 4.x LTS will be Apache Spark 4.5.0 (the last planned 4.x release) rather than 4.3.0. 4.5.x therefore receives the 18-month LTS window in the same role as the last release on newer major lines. Critical security patches will be backported to all actively maintained branches. Critical bug fixes (e.g., correctness issues) that may introduce behavior changes will be evaluated by the community on a case-by-case basis. As an exception from the normal versioning policy, version 3.5.x has an “extended” LTS period to allow for migrations to be completed. This extended LTS period will end November 2027. During the 3.5.x extended LTS period, we will only include security fixes. This extended LTS only applies to the primary Apache Spark project/repo and does not apply to sub projects with separate repos/releases (namely: Spark Connect for Swift/Rust/Go and Spark Kubernetes operator). Additionally, as Java 8 support may be removed from other projects (including Hadoop), should a dependency have a security fix that is not backported to a Java 8 compatible version we may decide to mark that vulnerability as a won’t fix or release the new version without Java 8 support. Latest News
| ||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |