diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4dbf2bf3f..54f0f7024 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -31,7 +31,7 @@ stages: .docker_build: &docker_build script: - - docker build -t $LIGO_REGISTRY_IMAGE:latest -f ./docker/Dockerfile . + - docker build -t $LIGO_REGISTRY_IMAGE:next -f ./docker/Dockerfile . .before_script: &before_script before_script: @@ -105,8 +105,9 @@ stages: <<: *docker_build except: - master + - dev -# When a MR/PR is merged to master +# When a MR/PR is merged to dev # take the previous build and publish it to Docker Hub .build-and-publish-latest-docker-image: stage: build_and_deploy_docker @@ -114,9 +115,9 @@ stages: <<: *docker_build after_script: - docker login -u $LIGO_REGISTRY_USER -p $LIGO_REGISTRY_PASSWORD - - docker push $LIGO_REGISTRY_IMAGE:latest + - docker push $LIGO_REGISTRY_IMAGE:next only: - - master + - dev # Pages are deployed from both master & dev, be careful not to override 'next' diff --git a/gitlab-pages/.gitignore b/gitlab-pages/.gitignore index 3f87a979e..7f1f9860d 100644 --- a/gitlab-pages/.gitignore +++ b/gitlab-pages/.gitignore @@ -10,5 +10,7 @@ website/build/ website/yarn.lock website/node_modules website/i18n/* +website/versioned_docs/version-mock website/versioned_docs/version-next +website/versioned_sidebars/version-mock-sidebars.json website/versioned_sidebars/version-next-sidebars.json \ No newline at end of file diff --git a/gitlab-pages/Makefile b/gitlab-pages/Makefile deleted file mode 100644 index fab8d821f..000000000 --- a/gitlab-pages/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -up: - docker-compose up diff --git a/gitlab-pages/docs/contributors/documentation-and-releases.md b/gitlab-pages/docs/contributors/documentation-and-releases.md new file mode 100644 index 000000000..977c9a9c7 --- /dev/null +++ b/gitlab-pages/docs/contributors/documentation-and-releases.md @@ -0,0 +1,20 @@ +--- +id: documentation-and-releases +title: Documentation and releases +--- + + +## Documentation + +In case you'd like to contribute to the docs, you can find them at [`gitlab-pages/docs`]() in their raw markdown form. +Deployment of the docs/website for LIGO is taken care of within the CI, from `dev` and `master` branches. + +## Releases & versioning + +### Development releases (next) + +Development releases of Ligo are tagged as `next` and are built with each commit to the `dev` branch. Both the docker image & the website are published automatically. + +### Stable releases + +Releases tagged with version numbers `x.x.x` are built manually, both docs & the docker image. While deployment of the website is handled by the CI. diff --git a/gitlab-pages/docs/contributors/contributing/getting-started.md b/gitlab-pages/docs/contributors/getting-started.md similarity index 100% rename from gitlab-pages/docs/contributors/contributing/getting-started.md rename to gitlab-pages/docs/contributors/getting-started.md diff --git a/gitlab-pages/docs/setup-installation.md b/gitlab-pages/docs/setup-installation.md index a08db5e30..23b8caf19 100644 --- a/gitlab-pages/docs/setup-installation.md +++ b/gitlab-pages/docs/setup-installation.md @@ -5,22 +5,24 @@ title: Installation There are currently two ways to get started with Ligo, both of those will allow you to use the Ligo CLI with your contracts. You can choose to use either the Docker image, or to compile & build the Ligo CLI yourself. -## Docker +## Dockerized installation (recommended) > 🐳 You can find instructions on how to install Docker [here](https://docs.docker.com/install/). -Easiest way to use LIGO is through the Docker image available at [Docker Hub](https://hub.docker.com/r/stovelabs/granary-ligo). Sources for the image can be found on [Github](https://github.com/stove-labs/granary/blob/develop/docker/ligo/Dockerfile). +Easiest way to use LIGO is through the Docker image available at [Docker Hub](https://hub.docker.com/r/ligolang/ligo). Sources for the image can be found on [Gitlab](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile). You can either run the docker image yourself, or you can setup a global ligo executable as shown below. ### Setting up a globally available `ligo` executable -```zsh -wget https://gitlab.com/maht0rz/ligo-documentation/blob/master/ligo-docker.sh && \ -sudo cp ligo-docker.sh /usr/local/bin/ligo && \ -sudo chmod +x /usr/local/bin/ligo && \ -rm ligo-docker.sh -``` -> ⚠️ Please note that the **current docker image is quite chunky**, it may take a while to download depending on your internet connection. +> You can install additional ligo versions by replacing `next` with the required version number + +```zsh +# next (pre-release) +curl https://gitlab.com/ligolang/ligo/blob/master/scripts/installer.sh | bash "next" + +# e.g. 1.0.0 (stable) +curl https://gitlab.com/ligolang/ligo/blob/master/scripts/installer.sh | bash "1.0.0" +``` **Verify your ligo installation by running:** ```zsh @@ -28,9 +30,9 @@ ligo --help ``` -## Manual installation +## Manual installation (advanced) -For now, please refer to the steps described in the [Dockerfile](https://github.com/stove-labs/granary/blob/develop/docker/ligo/Dockerfile). +For now, please refer to the steps described in the [Dockerfile](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile). diff --git a/gitlab-pages/website/sidebars.json b/gitlab-pages/website/sidebars.json index 2f0f8b73f..281a5d720 100644 --- a/gitlab-pages/website/sidebars.json +++ b/gitlab-pages/website/sidebars.json @@ -5,7 +5,7 @@ "API": ["api-cli-commands"] }, "contributors-docs": { - "Introduction": ["contributors/origin", "contributors/philosophy"], + "Introduction": ["contributors/origin", "contributors/philosophy", "contributors/getting-started", "contributors/documentation-and-releases"], "Big Picture": [ "contributors/big-picture/overview", "contributors/big-picture/front-end", @@ -13,7 +13,6 @@ "contributors/big-picture/back-end", "contributors/big-picture/vendors" ], - "Road Map": ["contributors/road-map/short-term", "contributors/road-map/long-term"], - "Contributing": ["contributors/contributing/getting-started"] + "Road Map": ["contributors/road-map/short-term", "contributors/road-map/long-term"] } } diff --git a/gitlab-pages/website/versioned_docs/version-next/contributors/contributing/getting-started.md b/gitlab-pages/website/versioned_docs/version-next/contributors/contributing/getting-started.md deleted file mode 100644 index 25575476c..000000000 --- a/gitlab-pages/website/versioned_docs/version-next/contributors/contributing/getting-started.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: version-next-getting-started -title: Getting started -original_id: getting-started ---- - -## Where -As we’ve seen, LIGO is big, as such, it is easier to start focus on a specific part of LIGO. As very vague suggestions: -If you want to immediately see the result of your contributions, you might want to start with the Front-End. This is what most people will directly see of LIGO. -If you want to get into Programming Language Theory, you might want to start with the Middle-End. This is where the Type System and the Language Definition are (the closest thing so far that you’ll find in a research paper). -If you want to get into the nitty gritty details of compiling to special targets, you’ll want to focus on the Back-End. -If you want to develop tooling on top of LIGO (editor integration, for instance), you’ll want to look at `Ast_typed/types.ml`. This is where most information that is relevant to devs will be (for now). -If you really want to get a grasp of the whole pipeline, search for issues tagged with “Everything”, they’ll have you look at multiple parts of the code base. -## What -Likely, the first issues will be about: -Adding tests -Extending the languages by adding new operators -Adding tests -Refactoring -Writing documentation and tutorials for users -Adding tests -Writing internal documentation when you understand a part of the code base ->Tests are **really** important, we don’t have lots of them, and mostly regression ones. This can’t be stressed enough. Some features are missing not because we can’t add them, but because we don’t know so as no tests tell us they are missing. -## How -Issues will be added to the Gitlab, tagged with On-boarding and Front-End / Middle-End / Back-End / Everything. If you try to tackle one issue, and you have **any** problem, please tell us, by creating a new Gitlab issue, contacting us on Riot, Discord or even by mail! Problems might include: -Installing the repository or the tools needed to work on it -OCaml weirdness -Understanding undocumented parts of the code base -Documented parts of the code base too -**Anything really** - ---- - -## FAQ -### I don’t know much about OCaml, where should I start? What should I have in mind? -I’d suggesting going through Real World OCaml to get a feel for the language, to know what are its features, and to know what to Google when you’re lost. -Beyond that, I’d say, start hacking! Either on LIGO’s code base, or on any personal project. -There is a Discord server if you want real-time help (which makes things go way faster than waiting for an answer on stackoverflow or looking mindlessly at the monitor). -### I want to add [X] to LIGO! Where should I begin? -Trying to add a new feature from scratch instead of building upon one can be quite complicated. However, if you’re motivated, contact us! We’ll tell you what we see as the most likely plan to get the result you want to achieve. - diff --git a/gitlab-pages/website/versioned_docs/version-next/setup-installation.md b/gitlab-pages/website/versioned_docs/version-next/setup-installation.md index 94e809cbb..748f7b40e 100644 --- a/gitlab-pages/website/versioned_docs/version-next/setup-installation.md +++ b/gitlab-pages/website/versioned_docs/version-next/setup-installation.md @@ -6,22 +6,24 @@ original_id: setup-installation There are currently two ways to get started with Ligo, both of those will allow you to use the Ligo CLI with your contracts. You can choose to use either the Docker image, or to compile & build the Ligo CLI yourself. -## Docker +## Dockerized installation (recommended) > 🐳 You can find instructions on how to install Docker [here](https://docs.docker.com/install/). -Easiest way to use LIGO is through the Docker image available at [Docker Hub](https://hub.docker.com/r/stovelabs/granary-ligo). Sources for the image can be found on [Github](https://github.com/stove-labs/granary/blob/develop/docker/ligo/Dockerfile). +Easiest way to use LIGO is through the Docker image available at [Docker Hub](https://hub.docker.com/r/ligolang/ligo). Sources for the image can be found on [Gitlab](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile). You can either run the docker image yourself, or you can setup a global ligo executable as shown below. ### Setting up a globally available `ligo` executable -```zsh -wget https://gitlab.com/maht0rz/ligo-documentation/blob/master/ligo-docker.sh && \ -sudo cp ligo-docker.sh /usr/local/bin/ligo && \ -sudo chmod +x /usr/local/bin/ligo && \ -rm ligo-docker.sh -``` -> ⚠️ Please note that the **current docker image is quite chunky**, it may take a while to download depending on your internet connection. +> You can install additional ligo versions by replacing `next` with the required version number + +```zsh +# next (pre-release) +curl https://gitlab.com/ligolang/ligo/blob/master/scripts/installer.sh | bash "next" + +# e.g. 1.0.0 (stable) +curl https://gitlab.com/ligolang/ligo/blob/master/scripts/installer.sh | bash "1.0.0" +``` **Verify your ligo installation by running:** ```zsh @@ -29,11 +31,9 @@ ligo --help ``` -## Manual installation +## Manual installation (advanced) -For now, please refer to the steps described in the [Dockerfile](https://github.com/stove-labs/granary/blob/develop/docker/ligo/Dockerfile). +For now, please refer to the steps described in the [Dockerfile](https://gitlab.com/ligolang/ligo/blob/master/docker/Dockerfile). -## next-2 - diff --git a/gitlab-pages/website/versioned_sidebars/version-next-sidebars.json b/gitlab-pages/website/versioned_sidebars/version-next-sidebars.json index c3a53ecbc..cf527cf2b 100644 --- a/gitlab-pages/website/versioned_sidebars/version-next-sidebars.json +++ b/gitlab-pages/website/versioned_sidebars/version-next-sidebars.json @@ -16,7 +16,9 @@ "version-next-contributors-docs": { "Introduction": [ "version-next-contributors/origin", - "version-next-contributors/philosophy" + "version-next-contributors/philosophy", + "version-next-contributors/getting-started", + "version-next-contributors/documentation-and-releases" ], "Big Picture": [ "version-next-contributors/big-picture/overview", @@ -28,9 +30,6 @@ "Road Map": [ "version-next-contributors/road-map/short-term", "version-next-contributors/road-map/long-term" - ], - "Contributing": [ - "version-next-contributors/contributing/getting-started" ] } } diff --git a/gitlab-pages/website/versions.json b/gitlab-pages/website/versions.json index 27dbe6f91..0637a088a 100644 --- a/gitlab-pages/website/versions.json +++ b/gitlab-pages/website/versions.json @@ -1 +1 @@ -["0.0.1"] \ No newline at end of file +[] \ No newline at end of file diff --git a/scripts/installer.sh b/scripts/installer.sh index eb56165ca..948cabe92 100755 --- a/scripts/installer.sh +++ b/scripts/installer.sh @@ -3,10 +3,15 @@ # curl https://gitlab.com/ligolang/ligo/blob/master/scripts/installer.sh | bash # Make sure the marigold/ligo image is published at docker hub first set -euET -o pipefail -echo "Installing LIGO" +version=$1 +printf "\nInstalling LIGO ($version)\n\n" # Install the ligo.sh from master -wget https://gitlab.com/ligolang/ligo/blob/master/scripts/ligo.sh +wget https://gitlab.com/ligolang/ligo/raw/master/scripts/ligo.sh + + +# Overwrite LIGO version in the executable +sed -i '' "s/latest/$version/g" ligo.sh # Copy the exucutable to the appropriate directory sudo cp ligo.sh /usr/local/bin/ligo @@ -14,7 +19,7 @@ sudo chmod +x /usr/local/bin/ligo rm ligo.sh # Pull the docker image used by ligo.sh -docker pull ligolang/ligo:latest +docker pull "ligolang/ligo:$version" # Installation finished, try running 'ligo' from your CLI -echo "Installation successful, try to run 'ligo --help' now. \n" \ No newline at end of file +printf "\nInstallation successful, try to run 'ligo --help' now.\n" \ No newline at end of file