Releases: jspecify/jspecify
0.3.0
For an introduction to JSpecify, see our Start Here page.
We'll soon post more information about when different tools support our annotations, how to think about adopting the annotations, and what we'll be doing in the coming year.
Changes relative to version 0.3.0-alpha-3
- We have removed the old
org.jspecify.nullness
package in favor of the neworg.jspecify.annotations
package. If you need a release that contains both packages to ease your migration, you can use version 0.3.0-alpha-3.
Additional changes relative to version 0.2.0
- additional annotations:
- expanded Javadoc
- an additional
@Target
for@NullMarked
:MODULE
(#245)- Note that this change causes problems for users who build with the javac from JDK8 (#302), at least without workarounds. It is still always safe to build with a newer JDK with flags like
--release 8
, and it is generally safe to run under JDK8.
- Note that this change causes problems for users who build with the javac from JDK8 (#302), at least without workarounds. It is still always safe to build with a newer JDK with flags like
Artifacts:
- Javadoc
- Maven Central:
org.jspecify:jspecify
As always, you can reach us at jspecify-discuss@googlegroups.com.
0.3.0-alpha-3
All parts of the project remain under development, and any aspect of naming or design may change before 1.0.0. Do not release libraries using JSpecify annotations at this time.
We may follow this release with a non-alpha 0.3.0 before the holidays.
The only significant changes since version 0.3.0-alpha-2 are:
- Our module now exports both the old
org.jspecify.nullness
package and the neworg.jspecify.annotations
package. This multi-package release is still only a migration aid: We'll be removingorg.jspecify.nullness
before publishing a non-alpha 0.3.0 release. @NullUnmarked
is no longer applicable toMODULE
(since an unannotated module is treated as null-unmarked already).
Artifacts:
- Javadoc
- Maven Central:
org.jspecify:jspecify
As always, you can reach us at jspecify-discuss@googlegroups.com.
0.3.0-alpha-2
All parts of the project remain under development, and any aspect of naming or design may change before 1.0.0. Do not release libraries using JSpecify annotations at this time.
We may follow this release with a non-alpha 0.3.0 before the holidays.
The major user-visible changes since version 0.3.0-alpha-1 are:
- We've removed
@Implies
. - All remaining annotations are moving from
org.jspecify.nullness
toorg.jspecify.annotations
. For this release and the following 0.3.0-alpha-3 only, we're including deprecated copies of the annotations in the old location.
Artifacts:
- Javadoc
- Maven Central:
org.jspecify:jspecify
As always, you can reach us at jspecify-discuss@googlegroups.com.
0.3.0-alpha-1
All parts of the project remain under development, and any aspect of naming or design may change before 1.0.0. Do not release libraries using JSpecify annotations at this time. In particular, we are likely to change the package names before even making a non-alpha 0.3.0 release.
(We are currently making an effort to release a non-alpha 0.3.0 before the holidays.)
The major user-visible changes since version 0.2.0 are:
- additional annotations:
@NonNull
@NullUnmarked
@Implies
(note: subsequently removed in version 0.3.0-alpha-2)
- expanded Javadoc
- an additional
@Target
for@NullMarked
:MODULE
(#245)- Note that this change causes problems for users who build with the javac from JDK8 (#302), at least without workarounds. It is still always safe to build with a newer JDK with flags like
--release 8
, and it is generally safe to run under JDK8.
- Note that this change causes problems for users who build with the javac from JDK8 (#302), at least without workarounds. It is still always safe to build with a newer JDK with flags like
As always, you can reach us at jspecify-discuss@googlegroups.com.
PGP signing key: BAC30622339994C4
SHA256 for main jar: d6317cc571b531da1ec656c821948d57c782011330e155f8b8abc83d521a6066
0.2.0
All parts of the project remain under development, and any aspect of naming or design may change before 1.0. Do not release libraries using JSpecify annotations at this time.
(But please let us know if you'd like to release libraries that depend on JSpecify annotations! We want to finalize our annotations at just the right time: If we wait unnecessarily long, then users don't get the benefits as soon as they could. But if we don't wait long enough, then we don't give the community enough time to provide feedback. To make the right call, we need to know what different people need.)
Some tool authors and library owners have begun to experiment with JSpecify, including Kotlin support (started in 1.5.20, more heavily tested in 1.5.30).
The milestone contains drafts of:
- a user guide (or see a live version from the main branch, which is displayed with better formatting)
- a spec (live version)
- some sample inputs
- two annotations (Javadoc), available in Maven Central as
org.jspecify:jspecify:0.2.0
The major user-visible changes since version 0.1 are renames:
- Our Java package changed from
org.jspecify.annotations
toorg.jspecify.nullness
. - Our declaration annotation changed from
@DefaultNonNull
to@NullMarked
.
As always, you can reach us at jspecify-discuss@googlegroups.com.
PGP signing key: BAC30622339994C4
SHA256 for main jar: 7da399e8d2be9474406fe7c06904012880e8aa96833adab126119c8d10b7c0ae
0.1
This milestone omits some of the work we've already completed, and we have much more work underway and yet to come. Everything remains not set in stone, and we don't expect tool authors or library owners to adopt 0.1.
The milestone contains: