Skip to content

Commit

Permalink
docs(build): add text build steps for Mac
Browse files Browse the repository at this point in the history
Primary Changes
----------------
1. Updated BUILD.md to include Mac OS specific installation instruction
2. Added placeholders for Linux and Windows specific instructions.
 
Fixes #1963

Signed-off-by: ashnashahgrover <as19@williams.edu>
  • Loading branch information
ashnashahgrover authored and petermetz committed Jul 31, 2024
1 parent 9c4d9be commit 7621db7
Showing 1 changed file with 43 additions and 22 deletions.
65 changes: 43 additions & 22 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
- [Hyperledger Cactus Build Instructions](#hyperledger-cactus-build-instructions)
- [Hyperledger Cacti Build Instructions](#hyperledger-cacti-build-instructions)
- [Fast Developer Flow / Code Iterations](#fast-developer-flow--code-iterations)
- [Getting Started](#getting-started)
- [Random Windows specific issues not covered here](#random-windows-specific-issues-not-covered-here)
- [MacOS](#macos)
- [Linux](#linux)
- [Windows](#windows)
- [Random Windows specific issues not covered here](#random-windows-specific-issues-not-covered-here)
- [Configure Cacti](#configure-cacti)
- [Build Script Decision Tree](#build-script-decision-tree)
- [Configuring SSH to use upterm](#configuring-ssh-to-use-upterm)

## Hyperledger Cactus Build Instructions
## Hyperledger Cacti Build Instructions

This is the place to start if you want to give Cactus a spin on your local
machine or if you are planning on contributing.
Expand Down Expand Up @@ -35,29 +39,52 @@ The `npm run watch` script in action:
![Fast Developer Flow / Code Iterations](./docs/hyperledger-cactus-watch-script-tutorial-2021-03-06.gif)

## Getting Started

### MacOS

_Unless explicitly stated otherwise, each bullet will apply to both Intel and ARM Macs. In bullets where there is a difference in the installation process it will be noted._

* Use preset environment:
* [VSCode docker container](./.devcontainer)
* ... or install OS level dependencies manually:
* Windows Only
* WSL2 or any virtual machine running Ubuntu 20.04 LTS
* Or install OS level dependencies manually:
* Git
* https://github.com/git-guides/install-git#install-git-on-mac
* NodeJS v18.19.0, npm v10.2.3 (we recommend using the Node Version Manager (nvm) if available for your OS)
```
nvm install 18.19.0
nvm use 18.19.0
```
* [Download nvm using script](https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script)
* _See the Section "Macs with Apple Silicon Chips" under [macOS Troubleshooting](https://github.com/nvm-sh/nvm?tab=readme-ov-file#macos-troubleshooting) for ARM Mac specific instructions_
* [Download nvm using homebrew](https://sukiphan.medium.com/how-to-install-nvm-node-version-manager-on-macos-d9fe432cc7db)
* Using nvm install and use specific version of node:
```
nvm install 18.19.0
nvm use 18.19.0
```
* Yarn
* `npm run enable-corepack` (from within the project directory)
* [Docker Engine](https://docs.docker.com/engine/install/ubuntu/). Make sure that Docker is working and running, for example, running ``docker ps -aq``
* [Docker Engine is available on Mac OS through Docker Engine](https://docs.docker.com/desktop/install/mac-install/).
* _See the difference in system requirements for Docker Desktop for Intel and ARM Macs under System Requirements on the page above._
* Docker Compose
* Installing Docker Desktop on Mac will include Docker Compose
* OpenJDK (Corda support Java 8 JDK but do not currently support Java 9 or higher)
* `sudo apt install openjdk-8-jdk-headless`
* [Follow instructions for Mac here](https://github.com/supertokens/supertokens-core/wiki/Installing-OpenJDK-for-Mac-and-Linux)
* Indy SDK (optional)
* [Installing the SDK](https://github.com/hyperledger/indy-sdk#installing-the-sdk)
* [Build the SDK from source](https://github.com/hyperledger/indy-sdk#how-to-build-indy-sdk-from-source)
* [Build the SDK from source](https://github.com/hyperledger-archives/indy-sdk/blob/main/docs/build-guides/mac-build.md)
* Go
* [Installing Go](https://go.dev/)
* [Adding Environment Variable and Go extensions](https://www.geeksforgeeks.org/how-to-install-golang-in-vscode/)
* [Installing Go for Mac](https://go.dev/dl/)
* _Under featured downloads on the page above choose between the ARM64 or x86-64 option based on your machine._
* [Adding Environment Variable and Go extensions](https://code.visualstudio.com/docs/languages/go)

### Linux
* Insert Linux instructions here

### Windows
* Insert Linux instructions here

### Random Windows specific issues not covered here

We recommend that you use WSL2 or any Linux VM (or bare metal).
We test most frequently on Ubuntu 20.04 LTS

### Configure Cacti

* Clone the repository

Expand Down Expand Up @@ -148,12 +175,6 @@ At this point, with the running API server, you can
* Develop your own applications against it with the `Cactus API Client(s)`
* Create and test your own plugins


#### Random Windows specific issues not covered here

We recommend that you use WSL2 or any Linux VM (or bare metal).
We test most frequently on Ubuntu 20.04 LTS

## Build Script Decision Tree

The `npm run watch` script should cover 99% of the cases when it comes to working
Expand Down

0 comments on commit 7621db7

Please sign in to comment.