diff --git a/.github/workflows/build_doc.yml b/.github/workflows/build_doc.yml new file mode 100644 index 000000000..c145f116e --- /dev/null +++ b/.github/workflows/build_doc.yml @@ -0,0 +1,56 @@ +name: Build documentation + +on: [push, pull_request] + +permissions: write-all + +env: + OCAML_DEFAULT_VERSION: 4.14.2 + # Add OPAMYES=true to the environment, this is usefill to replace `-y` option + # in any opam call + OPAMYES: true + +jobs: + build: + runs-on: ubuntu-latest + env: + OPAMWITHDOC: true + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Use OCaml ${{ env.OCAML_DEFAULT_VERSION }} + uses: ocaml/setup-ocaml@v3 + with: + ocaml-compiler: ${{ env.OCAML_DEFAULT_VERSION }} + dune-cache: true + + - name: Install dependencies + run: opam exec -- make deps + + - name: Build odoc documentation + run: opam exec -- dune build @doc + + - name: Build sphinx documentation + uses: ammaraskar/sphinx-action@master + with: + docs-folder: "docs/sphinx_docs/" + pre-build-command: "su runner" + build-command: "sphinx-build . -W -b html ../../_build/sphinx_docs" + + - name: Debug + run: | + ls -l _build/default/_doc/_html + ls -l _build/sphinx_docs + id + + - name: Copy odoc documentation + run: | + cp -Rf _build/default/_doc/_html/* _build/sphinx_docs/API + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: doc-artifact + path: ./_build/sphinx_docs diff --git a/.github/workflows/deploy_doc.yml b/.github/workflows/deploy_doc.yml new file mode 100644 index 000000000..5517cf5c3 --- /dev/null +++ b/.github/workflows/deploy_doc.yml @@ -0,0 +1,24 @@ +name: Deploy Documentation + +on: + push: + branches: + - next + +jobs: + deploy: + steps: + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: doc-artifact + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + publish_dir: doc-artifact + destination_dir: dev + enable_jekyll: true + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml deleted file mode 100644 index 390b46acd..000000000 --- a/.github/workflows/documentation.yml +++ /dev/null @@ -1,153 +0,0 @@ -name: Documentation - -# This workflow is divided in 3 jobs, ocaml_docs, sphinx_docs, deploy_docs. -# - The ocaml_docs build the ocaml documentation, it runs for every push, -# if it fails no more work is done -# - The sphinx_docs job build the sphinx documentation, it runs only if a PR -# is open. if it fails no more work is done -# - deploy_docs only run on the next branch when code is pushed. It retrieve -# the ocaml and sphinx documentation and deploy them on the gh-pages branch - -on: [push, pull_request] - -env: - OCAML_DEFAULT_VERSION: 4.10.0 - # Add OPAMYES=true to the environment, this is usefill to replace `-y` option - # in any opam call - OPAMYES: true - -jobs: - # For any push and PR, build the documentation from the ocaml comments - # If this build fails, the documentation workflow stops - # If it succeeds, an artifact is made with the generated documentation - # (html format only). This artifact is used in the deploying job - ocaml_docs: - name: OCaml documentation - - runs-on: ubuntu-latest - - env: - OPAMWITHDOC: true - - steps: - # Checkout the code of the current branch - - name: Checkout code - uses: actions/checkout@v4 - - # Update apt-get database - - name: Update apt-get database - run: sudo apt-get update - - # Get an OCaml environment with opam installed and the proper ocaml version - # opam will used opam cache environment if retrieved - - name: Use OCaml ${{ env.OCAML_DEFAULT_VERSION }} - uses: ocaml/setup-ocaml@v3 - with: - ocaml-compiler: ${{ env.OCAML_DEFAULT_VERSION }} - dune-cache: true - - # Install dependencies if the cache is not retrieved - # odoc is installed as deps with { with-doc } in opam files - - name: opam install deps - run: opam exec -- make deps - # if: steps.cache-opam.outputs.cache-hit != 'true' - - # Try to upgrade installed packages and fix dependencies if needed, - # when the cache is retrieved - # - run: opam upgrade --fixup - # if: steps.cache-opam.outputs.cache-hit == 'true' - - # Make the documentation - - name: Make OCaml documentation - run: opam exec -- make odoc - - # Create and upload an artifact `ocaml_doc` that contains the ocaml - # documentation in html format. - # This is only done if this workflow is triggered in a PR or on the - # following branches : next, main - - name: Upload ocaml documentation - uses: actions/upload-artifact@v4 - if: github.event_name == 'pull_request' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/main' - with: - name: ocaml_doc - path: _build/default/_doc/_html/ - - - # On PR, or push on next/main, build the sphinx general documentation - # If this build fails, the documentation workflow stops - # If it succeeds, an artifact is made with the generated documentation - # This artifact is used in the deploying job - sphinx_docs: - name: Sphinx documentation - - # We only run this if the ocaml documentation build is successful - needs: ocaml_docs - - # Sphinx documentation is only builded if a PR is open or when it's - # pushed on next or main - if: github.event_name == 'pull_request' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - - steps: - # Checkout the code of the current branch - - name: Checkout code - uses: actions/checkout@v4 - - # Build the sphinx documentation - # and automatically print any error or warning - - name: Build sphinx documentation - uses: ammaraskar/sphinx-action@master - with: - docs-folder: "docs/sphinx_docs/" - build-command: "sphinx-build -b html . _build" - - # Create and upload an artifact `sphinx_doc` that contains the sphinx - # documentation in html format. - - name: Upload sphinx documentation - uses: actions/upload-artifact@v4 - with: - name: sphinx_doc - path: docs/sphinx_docs/_build - - - # For every push on main, retrieve ocaml and sphinx documentation - # and publish them on gh-pages branch - deploy_docs: - name: Deploy documentation - - if: github.ref == 'refs/heads/main' - - needs: - - ocaml_docs - - sphinx_docs - - runs-on: ubuntu-latest - steps: - # Retrieve ocaml documentation artifact - - name: Download ocaml documentation - uses: actions/download-artifact@v4 - with: - name: ocaml_doc - path: _build/odoc/dev - - # Retrieve sphinx documentation artifact - - name: Download sphinx documentation - uses: actions/download-artifact@v4 - with: - name: sphinx_doc - path: _build - - - name: Add files to bypass nojekyll - run: | - touch _build/.nojekyll - touch _build/odoc/.nojekyll - touch _build/odoc/dev/.nojekyll - - # Deploy files contain in _build directory on gh-pages branch - - name: deploy-doc - uses: JamesIves/github-pages-deploy-action@3.6.2 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: _build - CLEAN: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 75ff2fd67..5c47dc079 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - name: Build the distribution archive run: opam exec -- dune-release distrib - - name: Upload the artefact + - name: Upload artifact uses: actions/upload-artifact@v4 with: name: alt-ergo-${{github.sha}}.tbz diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 49a79b248..807f098af 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,7 @@ The following terms apply to all such contributions: In addition to agreeing to the terms of the Alt-Ergo's [License], we ask our contributors to sign the [Contributor License Agreement (CLA)]. -[License]: ../About/licenses/index +[License]: ../About/index [Contributor License Agreement (CLA)]: https://www.ocamlpro.com/files/CLA-OCamlPro-corporate.txt ## Develop with Nix diff --git a/Makefile b/Makefile index 70a373d6e..648054c97 100644 --- a/Makefile +++ b/Makefile @@ -157,26 +157,15 @@ uninstall: packages # Documentation generation # ======================== -# Build the documentations -doc: odoc sphinx-doc - -# Build the sphinx documentation -sphinx-doc: - # cp LICENSE.md $(SPHINX_DOC_DIR)/About/license.md - # cp -r licenses $(SPHINX_DOC_DIR)/About - $(SPHINXBUILD) "$(SPHINX_DOC_DIR)" "$(SPHINX_BUILD_DIR)" - -# Build the odoc -odoc: +doc: + $(SPHINXBUILD) -W "$(SPHINX_DOC_DIR)" "$(SPHINX_BUILD_DIR)" $(DUNE) build $(DUNE_FLAGS) @doc + cp -rf $(DEFAULT_DIR)/_doc/_html/* $(SPHINX_BUILD_DIR)/API -# Open the html doc generated by sphinx and odoc in browser html: doc - mkdir -p $(SPHINX_BUILD_DIR)/odoc/dev - cp -r $(DEFAULT_DIR)/_doc/_html/* $(SPHINX_BUILD_DIR)/odoc/dev xdg-open $(SPHINX_BUILD_DIR)/index.html -.PHONY: doc sphinx-doc odoc html +.PHONY: doc html # ====================== # Javascript generation diff --git a/docs/gtk-lang/alt-ergo.lang b/docs/gtk-lang/alt-ergo.lang deleted file mode 100644 index 7103bd592..000000000 --- a/docs/gtk-lang/alt-ergo.lang +++ /dev/null @@ -1,228 +0,0 @@ - - - - - text/x-alt-ergo - - - (* - *) - - - -