1.0.0
-----
 * Support multiple Cassandra versions with integration tests using Kubernetes (CASSANDRA-23)
 * RESTEasy integration with dynamically generated Swagger OpenAPI, Swagger UI and JAX-RS (CASSANDRASC-22)
 * Set up asciidoc based documentation (CASSANDRASC-15)
 * Gradle can now generate Deb packages, RPMs and Docker containers (CASSANDRASC-14)
 * Security patch to fix incorrect usage of yaml configuration (CASSANDRASC-12)
 * Build and Test with both Java 8 & 11 in Circle CI (CASSANDRA-15611)
 * Upgraded Gradle and replaced FindBugs with SpotBugs (CASSANDRA-15610)
 * Improving local HealthCheckTest reliability (CASSANDRA-15615)
 * Read sidecar.yaml from sidecar.config System Property instead of classpath (CASSANDRA-15288)
 * Add integration tests task (CASSANDRA-15031)
 * Add support for SSL and bindable address (CASSANDRA-15030)
 * Autogenerate API docs for sidecar (CASSANDRA-15028)
 * C* Management process (CASSANDRA-14395)
