Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve build instructions #315

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ Don't forget to indicate your Java, Maven and GraalVM version.

## Before you contribute

To contribute, use Github Pull Requests.
To contribute, use Github Pull Requests, from your **own** fork.

### Code reviews

All submissions, including submissions by project members, require review.
All submissions, including submissions by project members, need to be reviewed before being merged.

### Continuous Integration

Expand Down Expand Up @@ -50,13 +50,31 @@ If you have not done so on this machine, you need to:
* Otherwise `sudo apt-get install libz-dev`
* macOS
* `xcode-select --install`
* Set `GRAALVM_HOME` to your GraalVM Home directory e.g. `/opt/graalvm` on Linux or `$location/JDK/GraalVM/Contents/Home` on macOS
* Set `GRAALVM_HOME` to your GraalVM Home directory e.g. `/opt/graalvm` on Linux or `$location/JDK/GraalVM/Contents/Home` on macOS
* To build Shamrock, you also need Docker running. Check [the installation guide](https://docs.docker.com/install/), and [the MacOS installation guide](https://docs.docker.com/docker-for-mac/install/)
* If you just install docker, be sure that your current user can run a container (no root required).
On Linux, check [the post-installation guide](https://docs.docker.com/install/linux/linux-postinstall/)

## Build

* Clone the repository
* Clone the repository: `git clone https://github.com/jbossas/protean-shamrock.git`
* Navigate to the directory: `cd protean-shamrock`
* Invoke `mvn clean install` from the root directory

```bash
git clone https://github.com/jbossas/protean-shamrock.git
cd protean-shamrock
mvn clean install
# Wait... success!
```

The default build will create two different native images, which is quite time consuming. You can skip this
by disabling the `native-image` profile: `mvn install -Dno-native`.

By default the build will use the native image server. This speeds up the build, but can cause problems due to the cache
not being invalidated correctly in some cases. To run a build with a new instance of the server you can use
`mvn install -Dnative-image.new-server=true`.

## The small print

This project is an open source project, please act responsibly, be nice, polite and enjoy!
22 changes: 1 addition & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,27 +61,7 @@ At the moment is has the following features:

### How to build Shamrock

* Install platform C developer tools:
* Linux
* Make sure headers are available on your system (you'll hit 'Basic header file missing (<zlib.h>)' error if they aren't).
* On Fedora `sudo dnf install zlib-devel`
* Otherwise `sudo apt-get install libz-dev`
* macOS
* `xcode-select --install`
* Install GraalVM (minimum RC10)
* Set `GRAALVM_HOME` to your GraalVM Home directory e.g. `/opt/graalvm` on Linux or `/Users/emmanuel/JDK/GraalVM/Contents/Home` on macOS
* `git clone https://github.com/jbossas/protean-shamrock.git`
* `cd protean-shamrock`
* `mvn install`

The default build will create two different native images, which is quite time consuming. You can skip this
by disabling the `native-image` profile: `mvn install -Dno-native`.

Wait. Success!

By default the build will use the native image server. This speeds up the build, but can cause problems due to the cache
not being invalidated correctly in some cases. To run a build with a new instance of the server you can use
`mvn install -Dnative-image.new-server=true`.
The build instructions are available in the [contribution guide](CONTRIBUTING.md).

### Architecture Overview

Expand Down