-
Notifications
You must be signed in to change notification settings - Fork 0
Simple Release Candidate Validation
Once a release candidate is out, it is good practice to make sure that all artifacts are correctly upload and set up. Here, we propose a simple form of validation, but clearly there are more sophisticated ways of doing. This proposal is to help new and occasional contributors with understanding what is expected from an RC validation.
A release candidate will be listed here. It will typically be the last entry, although you should double-check the release candidate information for the release you are looking into validating. Here is an example of a release candidate:
https://github.com/pravega/pravega/releases/tag/v0.5.1-rc0
The basic points you should pay attention to and exercise are the following:
- Read the release candidate description and make sure it is coherent and well written.
- Download the artifacts including the digests (e.g., md5, sha1). Verify that the digests match the corresponding artifact.
- From the main
pravega
bundle, run Pravega standalone and make sure you observe no error. Consider running samples to validate behavior.
You may want to try with different versions of Java (e.g., JDK 8 and 11) by setting the Java home accordingly.
These are the artifacts that will be pushed to Maven Central once the release candidate is accepted. With the candidate information, we publish the URL for the staging artifacts, e.g.:
https://oss.sonatype.org/content/repositories/iopravega-1035
Note that this URL may no longer work once we complete the corresponding release, so don't be surprised if you get an error. The correct URL to use is shared with the release candidate information, which we typically make available on our public slack (pravega-io.slack.com).
The main validation to perform here is that an application wanting to use the artifacts will be able to resolve the dependencies correctly. To test it, one simple way is to use a simple Maven pom.xml
file such as:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>pravega</groupId>
<artifactId>streaming</artifactId>
<version>0.0</version>
<repositories>
<repository>
<id>sonatype</id>
<name>Sonatype</name>
<url>https://oss.sonatype.org/content/repositories/iopravega-1035</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.pravega</groupId>
<artifactId>pravega-client</artifactId>
<version>0.5.1</version>
<type>pom</type>
</dependency>
</dependencies>
</project>
Run mvn dependency:resolve
and make sure that it downloads the dependencies and resolve all of them correctly.
A more sophisticated validation would be to write a simple application to fully exercise Pravega.
Have fun validating RCs!
Pravega - Streaming as a new software defined storage primitive
- Contributing
- Guidelines for committers
- Testing
-
Pravega Design Documents (PDPs)
- PDP-19: Retention
- PDP-20: Txn timeouts
- PDP-21: Protocol revisioning
- PDP-22: Bookkeeper based Tier-2
- PDP-23: Pravega Security
- PDP-24: Rolling transactions
- PDP-25: Read-Only Segment Store
- PDP-26: Ingestion Watermarks
- PDP-27: Admin Tools
- PDP-28: Cross routing key ordering
- PDP-29: Tables
- PDP-30: Byte Stream API
- PDP-31: End-to-end Request Tags
- PDP-32: Controller Metadata Scalability
- PDP-33: Watermarking
- PDP-34: Simplified-Tier-2
- PDP-35: Move controller metadata to KVS
- PDP-36: Connection pooling
- PDP-37: Server-side compression
- PDP-38: Schema Registry
- PDP-39: Key-Value Tables
- PDP-40: Consistent order guarantees for storage flushes
- PDP-41: Enabling Transport Layer Security (TLS) for External Clients
- PDP-42: New Resource String Format for Authorization
- PDP-43: Large Events
- PDP-44: Lightweight Transactions
- PDP-45: Healthcheck
- PDP-46: Read Only Permissions For Reading Data
- PDP-47: Pravega Message Queues