diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..887a2c1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# SCM syntax highlighting & preventing 3-way merges +pixi.lock merge=binary linguist-language=YAML linguist-generated=true diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index a6ed419..6395d2c 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,57 +1,59 @@ -# Sample workflow for building and deploying a Jekyll site to GitHub Pages name: Deploy DIRAC Web Site on: # Runs on pushes targeting the default branch push: branches: ["main"] + # Check that the site builds for pull requests, without deploying + pull_request: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write +permissions: {} # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: - group: "pages" + group: "pages-${{ github.event_name }}-${{ github.ref }}" cancel-in-progress: false jobs: # Build job build: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 with: - python-version: '3.11' - - name: Installing dependencies - run: | - python -m pip install \ - mkdocs \ - mkdocs-material \ - BeautifulSoup4 + persist-credentials: false + - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + with: + environments: mkdocs + locked: true - name: Build Pages - run: | - make build + run: pixi run -e mkdocs mkdocs-build - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + if: github.event_name != 'pull_request' + uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1 + with: + path: site # Deployment job deploy: + if: github.event_name != 'pull_request' environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build + # Allow the GITHUB_TOKEN to deploy to GitHub Pages + permissions: + pages: write + id-token: write steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 - + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23d882b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.pixi/ +site/ +.cache/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..db1309c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,49 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +default_install_hook_types: + - pre-commit + - commit-msg + +default_stages: [pre-commit] + +# Third-party assets vendored from the HTML5 UP template used by the landing page +exclude: ^docs/assets/(css|js|sass|webfonts)/ + +repos: + - repo: https://github.com/compilerla/conventional-pre-commit + rev: v4.4.0 + hooks: + - id: conventional-pre-commit + stages: [commit-msg] + args: ["--verbose"] + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + args: ["--unsafe"] + - id: check-added-large-files + exclude: pixi\.lock$ + + - repo: https://github.com/hukkin/mdformat + rev: 1.0.0 + hooks: + - id: mdformat + args: ["--number"] + additional_dependencies: + - mdformat-mkdocs + - mdformat-gfm + + - repo: https://github.com/codespell-project/codespell + rev: v2.4.3 + hooks: + - id: codespell + args: ["-w"] + exclude: pixi\.lock$ + + - repo: https://github.com/zizmorcore/zizmor-pre-commit + rev: v1.30.1 + hooks: + - id: zizmor diff --git a/Makefile b/Makefile deleted file mode 100644 index 8611853..0000000 --- a/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -.PHONY: build test clean - -build: clean - mkdocs build -f docs/mkdocs.yml - cp -r docs/images _site - cp docs/index.html _site - cp -r docs/assets _site - -test: clean - mkdocs build --strict --verbose -f docs/mkdocs.yml - cp -r docs/images _site - cp docs/index.html _site - cp -r docs/assets _site - -clean: - rm -rf _site/* - diff --git a/README.md b/README.md index 39f1a00..db32360 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,12 @@ # dirac-site + The repository contains all the sources from the DIRAC project web site + +## Building + +The site is built with [MkDocs Material](https://squidfunk.github.io/mkdocs-material/) using [pixi](https://pixi.sh): + +```bash +pixi run mkdocs # Serve the site locally with live reload +pixi run mkdocs-build # Build the site into site/ +``` diff --git a/docs/code.md b/docs/code.md index 5ee7ae8..57d3e18 100644 --- a/docs/code.md +++ b/docs/code.md @@ -1,4 +1,3 @@ - The DIRAC is hosted in the [GitHub repository](https://github.com/DIRACGrid). The code is open source and it is released under the [GPL v3 license](https://github.com/DIRACGrid/DIRAC/blob/integration/LICENSE). -In the repository, there are several projects corresponding to the DIRAC and DiracX subsystems. +In the repository, there are several projects corresponding to the DIRAC and DiracX subsystems. diff --git a/docs/consortium.md b/docs/consortium.md index e085c6d..e33387f 100644 --- a/docs/consortium.md +++ b/docs/consortium.md @@ -1,28 +1,27 @@ - -##DIRAC Consortium +## DIRAC Consortium The Consortium was created in February 2014 to support development and promotion of the DIRAC software. Currently, the Consortium members are - - CNRS, France - - CERN, Switzerland - - IHEP, China - - KEK, Japan - - Imperial College, UK +- CNRS, France +- CERN, Switzerland +- IHEP, China +- KEK, Japan +- Imperial College, UK The Consortium members hold the copyright for the DIRAC software released under the GPLv3 license The Consortium is directed by : - - **Andrei Tsaregorodtsev** – Coordinator, atsareg@cppm.in2p3.fr - - **Federico Stagni** – Technical Coordinator, federico.stagni@cern.ch +- **Andrei Tsaregorodtsev** – Coordinator, atsareg@cppm.in2p3.fr +- **Federico Stagni** – Technical Coordinator, federico.stagni@cern.ch The Consortium Board members: - - **Vanessa Hamar**, CNRS - - **André Sailer**, CERN - - **Xiaomei Zhan**, IHEP - - **I Ueda**, KEK - - **Daniela Bauer**, Imperial College +- **Vanessa Hamar**, CNRS +- **André Sailer**, CERN +- **Xiaomei Zhan**, IHEP +- **I Ueda**, KEK +- **Daniela Bauer**, Imperial College The Consortium documents: @@ -30,4 +29,4 @@ The Consortium documents: [Amendment 1](assets/files/Amendment1.pdf) -[Amendment 2](assets/files/Amendment2.pdf) \ No newline at end of file +[Amendment 2](assets/files/Amendment2.pdf) diff --git a/docs/contacts.md b/docs/contacts.md index 3150ac3..9ad0fe3 100644 --- a/docs/contacts.md +++ b/docs/contacts.md @@ -1,10 +1,9 @@ - For any question related to the use of the DIRAC system, bug reports, request for new functionalities and so on, please use the Github discussions area: - - [DIRAC forum](https://github.com/DIRACGrid/DIRAC/discussions) - - [DiracX forum](https://github.com/DIRACGrid/diracx/discussions) +- [DIRAC forum](https://github.com/DIRACGrid/DIRAC/discussions) +- [DiracX forum](https://github.com/DIRACGrid/diracx/discussions) For question about the possible use of the DIRAC software and service by your experiment and/or institution, please contact the DIRAC Consortium Coordinators: - - **Andrei Tsaregorodtsev** – Coordinator, atsareg@cppm.in2p3.fr - - **Federico Stagni** – Technical Coordinator, federico.stagni@cern.ch +- **Andrei Tsaregorodtsev** – Coordinator, atsareg@cppm.in2p3.fr +- **Federico Stagni** – Technical Coordinator, federico.stagni@cern.ch diff --git a/docs/dirac.md b/docs/dirac.md index 5b559ec..aeb64e7 100644 --- a/docs/dirac.md +++ b/docs/dirac.md @@ -1,26 +1,23 @@ - ## In the beginning ... -The DIRAC project started as a tool for massive production of modeling data for the [**LHCb**](http://lhcb.cern.ch) experiment at CERN. +The DIRAC project started as a tool for massive production of modeling data for the [**LHCb**](http://lhcb.cern.ch) experiment at CERN. In order to exploit efficiently the distributed computing grid resources, DIRAC introduced the workload management architecture based on pilot jobs. The new architecture improved significantly the success rate of the jobs running in the LHC Computing Grid (LCG) and was adopted by other LHC -experiments. +experiments. !!! note "Pilot jobs" - Pilot jobs are sent to the grid sites as soon as there are user jobs submitted the DIRAC's central Task Queue. When started running - on a worker node, the pilot job checks the execution environment, collects its parameters and presents the computing resource description to - the DIRAC Matcher service. The Matcher selects a job from the Task Queue suitable for running on the proposed resource taking into account the job - priority and other policies. The pilot job then ensures the user's job execution, monitoring its status and uploading the results + Pilot jobs are sent to the grid sites as soon as there are user jobs submitted the DIRAC's central Task Queue. When started running + on a worker node, the pilot job checks the execution environment, collects its parameters and presents the computing resource description to + the DIRAC Matcher service. The Matcher selects a job from the Task Queue suitable for running on the proposed resource taking into account the job + priority and other policies. The pilot job then ensures the user's job execution, monitoring its status and uploading the results After the successful demonstration of its potential, the DIRAC system was deployed for some other High Energy Physics experiments and research groups. The code was largely refactored for better scalability and performance but also for support of multi-comunity installations. The extension mechanism allowed -easy customization of the DIRAC components to the needs of a particular communities. +easy customization of the DIRAC components to the needs of a particular communities. Now, the DIRAC Interware Project provides software and a large set of ready to use components to build distributed computing systems of arbitrary complexity. It ensures access to various types of computing and storage resources with a single intuitive user interface. Both Workload and Data Management subsystems are available which provides a complete solution for creating computing systems for multiple research user communities. - ![DIRAC Overview](assets/images/DIRAC_overview.jpg) - -DIRAC is used by multiple large [**scientific collaborations**](users.md). The services based on the DIRAC interware are also provided by several large national and international grid infrastructures. \ No newline at end of file +DIRAC is used by multiple large [**scientific collaborations**](users.md). The services based on the DIRAC interware are also provided by several large national and international grid infrastructures. diff --git a/docs/documentation.md b/docs/documentation.md index 43d44ff..016a3aa 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -1,15 +1,14 @@ - The DIRAC project is undergoing a major revision and the new generation of the DIRAC software is called DiracX. You can find here links to the original DIRAC and the new DiracX software documentation below: [**DIRAC documentation**](https://dirac.readthedocs.io/en/latest/) [**DiracX documentation**](https://diracx.diracgrid.org/) -The DIRAC documentaiton is partitioned in several guides. +The DIRAC documentation is partitioned in several guides. The [**User Guide**](https://dirac.readthedocs.io/en/latest/UserGuide/index.html) contains all the necessary instructions to install or get access to the DIRAC client software and configure it in order to access a preferred DIRAC service. The guide describes the user interfaces – command line and Web. It also provides a complete list of DIRAC commands. A number of tutorials demonstrate step by step the operations to be performed to set up the client and perform most of the common operations. Finally, a set of How-To items provide answers to commonly asked questions. All the necessary information for developing new DIRAC components is provided by the [**Developer Guide**](https://dirac.readthedocs.io/en/latest/DeveloperGuide/index.html). It contains an overview of the DIRAC architecture, describes general code management procedures as well as building and distributing DIRAC releases. You will find out how to set up the development environment, how to write codes that can be tested together with the other components in an automated way. The Code Documentation provides a detailed description of the DIRAC APIs that can be used for developing new user interfaces and server-side components. -The [**Administrator Guide**](https://dirac.readthedocs.io/en/latest/AdministratorGuide/index.html) provides instructions on how to install and setup DIRAC services and web portals, how to configure them providing description of users and resources. It describes the tools to monitor DIRAC installations and perform day-to-day operations. Several tutorials are provided in order walk the new administrators through procedures to setup new installations. \ No newline at end of file +The [**Administrator Guide**](https://dirac.readthedocs.io/en/latest/AdministratorGuide/index.html) provides instructions on how to install and setup DIRAC services and web portals, how to configure them providing description of users and resources. It describes the tools to monitor DIRAC installations and perform day-to-day operations. Several tutorials are provided in order walk the new administrators through procedures to setup new installations. diff --git a/docs/events.md b/docs/events.md index d161f13..f3e84d3 100644 --- a/docs/events.md +++ b/docs/events.md @@ -1,6 +1,5 @@ -##11th DIRAC User's Workshop +## 11th DIRAC User's Workshop -The next DIRAC User's Workshop will take place in IHEP, Beijing, on the 17th-20th September. The workshop will be devoted to the information exchange between the Dirac(X) developers, service administrators and users. Reports on the Dirac(x) ongoing and planned developments, service management tools will be included into the agenda together with the users reporting their experience. You are welcome to suggest your items to the [workshop agenda](https://indico.cern.ch/event/1433941/). You can also register there if you are planning to participate in person. +The next DIRAC User's Workshop will take place in IHEP, Beijing, on the 17th-20th September. The workshop will be devoted to the information exchange between the Dirac(X) developers, service administrators and users. Reports on the Dirac(x) ongoing and planned developments, service management tools will be included into the agenda together with the users reporting their experience. You are welcome to suggest your items to the [workshop agenda](https://indico.cern.ch/event/1433941/). You can also register there if you are planning to participate in person. ![Poster](assets/images/Poster_1.0.png) - diff --git a/docs/index.html b/docs/index.html index 3d6e2f7..d71c281 100644 --- a/docs/index.html +++ b/docs/index.html @@ -92,8 +92,8 @@

Batteries included

Open source

- DIRAC is a open source project with the code repository and documentation publicly available. - It has got controbutions from dozens of developers from all over the world. + DIRAC is a open source project with the code repository and documentation publicly available. + It has got contributions from dozens of developers from all over the world.

@@ -103,7 +103,7 @@

Battle proven

DIRAC is actively used by a large number of small and large scientific communities. DIRAC services - are provided by several large scale grid infrastructures. + are provided by several large scale grid infrastructures.

@@ -123,7 +123,7 @@

Solid basis

The DIRAC Consortium unites five world-class scientific institutions working together to - develop and promote the DIRAC software. + develop and promote the DIRAC software.

@@ -137,11 +137,11 @@

Solid basis

Get in touch

Drop us a mail

- + - +