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

Add Guide for Setting Up Local Server to Contribute to Documentation #1832

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
48 changes: 29 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,48 @@
# How to Contribute to this repository #
# How to Contribute to this repository

We value contributions from the community and will do everything we
can to get them reviewed in a timely fashion. If you have code to send
our way or a bug to report:
We value contributions from the community and will do everything we can to get them reviewed in a
timely fashion. If you have code to send our way or a bug to report:

* **Contributing Code**: If you have new documentation, fork this
repo, create a logically-named branch, and [submit a PR against this
repo](https://github.com/helium/docs). Include a
write up of the PR with details on what it does.
- **Contributing Code**: If you have new documentation, fork this repo, create a logically-named
branch, and [submit a PR against this repo](https://github.com/helium/docs). Include a write up of
the PR with details on what it does.

* **Reporting Bugs**: Open an issue [against this
repo](https://github.com/helium/docs/issues) with as much
detail as you can. At the very least you'll include steps to
reproduce the problem.
- To contribute to the documentation by setting up a server locally, visit [Contribution Guide:
Setting Up Local Server for Documentation][local-server-guide].

# Contibuting a Helium Improvement Proposal (HIP) #
- **Reporting Bugs**: Open an issue [against this repo](https://github.com/helium/docs/issues) with
as much detail as you can. At the very least you'll include steps to reproduce the problem.

HIPs are modeled off Bitcoin Improvement Proposals (BIPs) and has become a standard in the crypto world for open source development on both technical and economic issues.
# Contibuting a Helium Improvement Proposal (HIP)

HIPs are modeled off Bitcoin Improvement Proposals (BIPs) and has become a standard in the crypto
world for open source development on both technical and economic issues.

HIPs serve several primary functions:

- To make architecture changes
- To make economic and token changes
- To address cheating and security issues
- To address meta-governance

HIPs are not:

- Funding requests to The Helium Foundation
- Foundation treasury management

* **How do I submit a HIP?**: Open a 'pull request' in the HIP repository. DO NOT create an 'issue'. Your pull request signifies a HIP in draft status. HIPs in draft status should be discussed in #hip-general in the [Helium Official Community](https://discord.gg/uTauMaJ2We). Draft HIPs will be addressed and managed by HIP editors. Please be sure to answer all of their questions appropriately. HIPs that do not work with HIP editors are seen as incomplete and are likely to be closed. Once your HIP is clear and has met all HIP requirements, HIPs are then open for deeper discussion with their own channels in the Official Helium Community. HIPs move to a vote after rough consensus that this HIP is appropriate for the community to vote on. There is never a guarantee your HIP will receive a channel or move to a vote.
* **How do I submit a HIP?**: Open a 'pull request' in the HIP repository. DO NOT create an 'issue'.
Your pull request signifies a HIP in draft status. HIPs in draft status should be discussed in
#hip-general in the [Helium Official Community](https://discord.gg/uTauMaJ2We). Draft HIPs will be
addressed and managed by HIP editors. Please be sure to answer all of their questions
appropriately. HIPs that do not work with HIP editors are seen as incomplete and are likely to be
closed. Once your HIP is clear and has met all HIP requirements, HIPs are then open for deeper
discussion with their own channels in the Official Helium Community. HIPs move to a vote after
rough consensus that this HIP is appropriate for the community to vote on. There is never a
guarantee your HIP will receive a channel or move to a vote.

This project is intended to be a safe, welcoming space for
collaboration, and contributors are expected to adhere to the
[Contributor Covenant Code of
Conduct](http://contributor-covenant.org/).
This project is intended to be a safe, welcoming space for collaboration, and contributors are
expected to adhere to the [Contributor Covenant Code of Conduct](http://contributor-covenant.org/).

Above all, thank you for taking the time to be a part of the Helium Community.

- [local-server-guide]: docs/home/faq/docs-installation.mdx
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Documentation for the Helium network.

## Installation

- [Installation Guide](https://docs.helium.com/home/faqdocs-installation/)
- [Installation Guide](./docs/home/faq/docs-installation.mdx)

## Contributing

Expand Down
172 changes: 60 additions & 112 deletions docs/home/faq/docs-installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,135 +8,83 @@ image: https://docs.helium.com/img/link-image.png
slug: /faq/docs-installation
---

# Helium Documentation Installation Guide
# Installation Guide: Running the Server Locally

Clone the docs repo from [Github](https://github.com/helium/docs).
#### Prerequisites:

```bash title="clone the repo"
$ git clone https://github.com/helium/docs.git
```

Navigate to the `docs` directory

```bash title="navigate to the docs directory"
$ cd docs/
```

---

## Prerequisites

### Install Node.js

Download and install the latest version of [Node.js](https://nodejs.org/en/download).
- Node.js installed on your machine. You can download it from
[the official Node.js website](https://nodejs.org/).
- Yarn package manager installed. You can install it by following the instructions below:

```bash title="Verify the installation."
$ node --version
v18.16.0
```

:::info
#### Steps (Assuming you have Node.js Installed):

Windows users installing Node.js do not need to install the `Compiler` nor `Chocolaty` dependencies.
1. **Install Yarn:**

:::
- Download and install Yarn by following the instructions on the
[Yarn website](https://classic.yarnpkg.com/lang/en/docs/install/).
- You can also install Yarn globally using npm:
```
npm install -g yarn
```
- After installing, you can verify the installation by running:
```
yarn --version
```
- This should display the installed Yarn version.

### Install Yarn
2. **Fork the Project Repository:**

After installing Node.js, npm will be installed and can be used to install Yarn.
- Fork the project repository to your GitHub account by clicking the "Fork" button at the top
right of the repository page.

```bash title="install yarn"
$ npm install -g yarn
> [email protected] preinstall /path/to/npm/node_modules/yarn
> :; (node ./preinstall.js > /dev/null 2>&1 || true)
```
3. **Clone the Project Repository:**

To upgrade the Yarn version to be >= 1.5, set the project directory to version `berry`.

```bash title="set yarn version to berry"
$ yarn set version berry
➤ YN0000: Retrieving https://repo.yarnpkg.com/3.5.1/packages/yarnpkg-cli/bin/yarn.js
➤ YN0000: Saving the new release in .yarn/releases/yarn-3.5.1.cjs
➤ YN0000: Done in 0s 430ms
```
- Clone the project repository to your local machine using Git:
```
git clone https://github.com/your-username/docs.git
```
- Change into the project's `docs/` folder:
```
cd docs/
```

### Install Dependencies

Install Yarn which will download and compile all the project module dependencies.

```bash title="install yarn and dependencies"
$ yarn install
➤ YN0070: Migrating from Yarn 1; automatically enabling the compatibility node-modules linker 👍

➤ YN0000: ┌ Resolution step
...
➤ YN0000: └ Completed in 4s 287ms
➤ YN0000: ┌ Fetch step
...
➤ YN0000: └ Completed in 9s 723ms
➤ YN0000: ┌ Link step
...
➤ YN0000: └ Completed in 8s 494ms
➤ YN0000: Done with warnings in 22s 635ms
```

Check the final version and confirm that it is >= 1.5

```bash title="verify yarn version"
$ yarn --version
3.5.1
```

---

## Local Development

```bash title="start the development server"
$ yarn start
[INFO] Starting the development server...
[SUCCESS] Docusaurus website is running at: http://localhost:3000/

✔ Client
Compiled successfully in 25.06s

client (webpack 5.76.3) compiled successfully

✔ Client
Compiled successfully in 542.45ms

client (webpack 5.76.3) compiled successfully
```

This command starts a local development server and open up a browser window. Most changes are
reflected live without having to restart the server.

### Auto Refresh

Each time a file is saved the site will get rebuilt and the pages refreshed on the fly, there is no
need to keep restarting Yarn.

---
4. **Install Dependencies:**

## Link Checking Before Creating a Pull Request
- Inside the `docs/` folder, install project dependencies and start the server using:
```
yarn && yarn start
```
- This command should install project dependencies and start the server, automatically opening
the project's documentation in your default web browser.

Checking links can be accomplished by using the `yarn build` command
5. **Access the Documentation:**
- The local server should now be running, and you can view the documentation by navigating to:
```
http://localhost:3000/
```
- This will open the documentation website locally, allowing you to browse and interact with the
project's documentation.

```bash title="make production build"
$ yarn build
[INFO] [en] Creating an optimized production build...
#### Start Contributing:

✔ Client
- After running the server, you can open the project in your preferred code editor, such as Visual
Studio Code.
- Make changes to the documentation files, and as you save them, you will see the updates reflected
in the browser window opened by the local server.

✔ Server
Compiled successfully in 30.22s
### Example Commands:

bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
```bash
# Clone the repository
git clone https://github.com/your-username/docs.git
cd docs/

✔ Client
# Install Yarn (if not already installed)
npm install -g yarn

● Server █████████████████████████ cache (99%) shutdown IdleFileCachePlugin
stored
# Install project dependencies
yarn

[SUCCESS] Generated static files in "build".
[INFO] Use `npm run serve` command to test your build locally.
# Start the local server
yarn start
```