[ 
https://issues.apache.org/jira/browse/CASSANDRA-18035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17649490#comment-17649490
 ] 

Paulo Motta commented on CASSANDRA-18035:
-----------------------------------------

I've updated the quick start development guide with more detailed macOS setup 
instructions and common troubleshooting tips.

I've tested the quick start guide with a few internal users and they were able 
to set up their environments and test local changes in a docker container 
within a few minutes. I believe this will improve the onboarding experience of 
new developers.

I plan to keep this guide updated as more users test it and report any issues 
with the instructions.

[~mck] [~stefan.miklosovic]  [~edimitrova] Would you be interested/have cycles 
to review this?

Summary of changes to reviewers:
 * Add new ant targets to manipulate a local Cassandra build container:
 ** [ant 
docker-build|https://github.com/pauloricardomg/cassandra/blob/CASSANDRA-18035/build.xml#L2007]:
 Builds a local "cassandra-test" image - this does not publish the image as it 
is initially intended for local development only.
 ** [ant 
docker-start|https://github.com/pauloricardomg/cassandra/blob/CASSANDRA-18035/build.xml#L2046]:
 Starts a local container based on the "cassandra-test" image
 ** [ant 
docker-stop|https://github.com/pauloricardomg/cassandra/blob/CASSANDRA-18035/build.xml#L2061]:
 Stops a local "cassandra-test" container
 ** Docker manifest and scripts are located in 
[.build/docker|https://github.com/pauloricardomg/cassandra/tree/CASSANDRA-18035/.build/docker]
 * Add quick start development guide to project's 
[README|https://github.com/pauloricardomg/cassandra/tree/CASSANDRA-18035#quick-start-development-guide],
 with the following sections:
 ** [Installing 
pre-requisites|https://github.com/pauloricardomg/cassandra/tree/CASSANDRA-18035#installing-pre-requisites]
 ** [Setting up 
IDE|https://github.com/pauloricardomg/cassandra/tree/CASSANDRA-18035#setting-up-ide]
 ** [Running a local Cassandra build in 
Docker|https://github.com/pauloricardomg/cassandra/tree/CASSANDRA-18035#running-a-local-cassandra-build-in-docker]
 ** [Testing local changes with 
docker|https://github.com/pauloricardomg/cassandra/tree/CASSANDRA-18035#testing-local-changes-with-docker]
 ** This in-tree guide provides an complement to the more extensive 
[Contributing to 
Cassandra|https://cassandra.apache.org/_/development/index.html] guide, which 
is still the authoritative source of information for development/contribution 
guides.

I plan to eventually extend the ant docker targets to support launching 
multi-node clusters with Docker-compose, and perhaps allow in-tree [cqlsh 
tests|https://github.com/apache/cassandra/tree/trunk/pylib] to use this image, 
which could eliminate the ccm dependency for these tests.

> Add quick start development guide and docker ant targets
> --------------------------------------------------------
>
>                 Key: CASSANDRA-18035
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18035
>             Project: Cassandra
>          Issue Type: Task
>          Components: Documentation
>            Reporter: Paulo Motta
>            Assignee: Paulo Motta
>            Priority: Normal
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> I propose adding a new {{QUICKSTART.md}} guide that provides instructions to 
> beginner contributors on how to:
> a) Setup a development environment and IDE from scratch on WSL/Ubuntu/Debian 
> environments
> b) Run a simple unit test from the IDE
> c) Create a simple patch that prints "Hello World" during Cassandra 
> initialization
> d) Test the patch on a local docker instance
> A new {{docker/}} directory is added along with the guide with the following 
> utilities:
> a) Dockerfile: unoptimized vanilla docker image manifest suitable only for 
> local dev testing.
> b) build.sh: build a cassandra artifact and cassandra-test image.
> c) start.sh: start local cassandra-test container.
> d) stop.sh: stop local-cassandra test container.
> A couple of follow-up improvements that come to mind:
>  - Add ant targets to build/start/stop cassandra-test container.
>  - Add OSX instructions.
>  - More IDE setup instructions (ie. Eclipse/VScode).
>  - A more involved Hello World example, perhaps creating a dummy VirtualTable 
> with unit/dtests.
>  - Update Dockerfile to point to build/ instead of creating an artifact.
> A DEV mailing list message was sent to gather community feedback on this 
> proposal: https://lists.apache.org/thread/gmb0q5yb2bzbs0cjw7mlcz1vwk2l23g2



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to