because WARNING versions of them were already released at some point.
The following declarations were not promoted and have to be promoted later:
- KmProperty.hasGetter, .hasSetter
- Deprecations from readStrict/readLenient/write() rework
#KT-63157 In progress
The `kotlin-test` dependencies are left untouched as changing them affects publications, thus these versions are independent from the used inside our build
#KTI-1349 In Progress
This helps to completely get rid of Visitors API during reading and writing
of the JVM metadata.
Note: Klib writers still use .accept and left for future refactorings.
See also #KT-59442
Rewrite Readers.kt and Writers.kt to avoid using
Visitors API
Align KotlinCommonMetadata/KotlinModuleMetadata API with
KotlinClassMetadata one (it is necessary for restructured reading/writing)
#KT-59442 In Progress
Most of the declarations are made public as-is, except for some reader implementation details
and MetadataExtensions.INSTANCES.
Also added missing delegation in KmDeclarationContainerVisitor.visitExtensions
#KT-59182 Fixed
Flag, Flag constants, Flags typealias, flagsOf() function, and
Flag accessors in nodes (such as KmClass.flags, KmClass.jvmFlags, KmProperty.setterFlags, etc)
#KT-59440
Introduce extensions for KmNodes to work with various modifiers instead of old Flags.SOMETHING.invoke(flags).
Provide Visibility, Modality, and Kind enums.
Introduce KmPropertyAccessorAttributes to replace KmProperty.getterFlags and KmProperty.setterFlags.
Deprecate nodes constructors which take flags but not flags itself (yet).
Adapt KotlinP to changes.
#KT-59440 Fixed
- Write now returns result (Metadata or ByteArray) directly without re-wrapping it;
- annotationData/bytes is private to avoid unsoundness if external client corrupts it;
- .toXxx() do not throw exceptions anymore and deprecated. Exceptions are thrown only from read/write;
- Instead of toXxx(), properties like .kmClass should be used instead. They're initialized eagerly and return a view without copying.
- KotlinClassMetadata.Unknown is now a data object, as no useful information is exposed
#KT-59365 Fixed
- Replace !! with requireNotNull()
- Add try/catch to wrap all other exceptions (mainly protobuf parser ones)
- Add tests for malformed input for both read and write
- Hide InconsistentMetadataException from public API
- Replace its external usages with IllegalArgumentException
Update changelog for kotlinx-metadata-jvm 0.6.0, add migration guide, and actualize ReadMe.md
Document releasing process
Co-authored-by: Alexander Udalov <Alexander.Udalov@jetbrains.com>
Merge-request: KT-MR-8206
Merged-by: Leonid Startsev <leonid.startsev@jetbrains.com>
To be cacheable relocated shadow jars should not include manifest with
build number. Instead, we repack relocated shadow jar in default jar
task with proper manifest.
- Add BCV to root project to commonize version
- Remove BCV from kotlinx-metadata-klib as it is not necessary for now
- Remove obsolete entry from kotlinx-metadata apiDump
- Add dependency from :kotlinx-metadata-jvm:check to :kotlinx-metadata:check so TC build can verify integrity of API dumps in both projects