defmodule MoonWeb.Pages.HowToContributePage do @moduledoc false use MoonWeb, :live_view alias MoonWeb.Components.PageSection alias MoonWeb.Components.CodeSnippet alias MoonWeb.Components.Page data(breadcrumbs, :any, default: [ %{ to: "/contribute", name: "How to contribute" } ] ) def render(assigns) do ~F"""

How to contribute

Clone the repository:

git clone git@github.com:coingaming/moon.git

Start local development server by running:

run-locally-dev.sh

If ./run-locally-dev.sh is not working, try the following steps:

Install asdf and plugins:

asdf plugin add erlang asdf plugin add elixir asdf plugin add nodejs

Install all the tool versions specified in the .tool_versions file:

asdf install

Install assets dependencies:

cd assets && npm i && cd -

Try running local development server:

iex -S mix phx.server

Stop the command above, then try running:

run-locally-dev.sh

If you do see error in ElixirLS extension "no elixir command found", you'll need to:

cp .tool-versions ~

Install dependencies:

mix deps.get

The following script imports Figma assets and icons. You need to set the values in the .env file. Please make sure you have read access to the assets tool repo https://github.com/coingaming/assets .

run-auto-importers.sh mix assets.setup cd $root_dir/scripts/typescript/ npm install

Clone the repository:

git clone git@github.com:coingaming/assets.git cd assets git reset --hard HEAD git pull\nnpm install -g pnpm pnpm install pnpm run build export page=$(grep ICON_PAGE_NAME .env | cut -d '=' -f2) npm run figma --page=$page

Moon Design System follows headless design approach - we build smart, functional and reusable UI components.

To format your code, run:

mix format mix surface.format

All newly added components must come with tests. In order to run the tests:

mix test
""" end end