diff --git a/.github/workflows/releaseDeploy.yml b/.github/workflows/releaseDeploy.yml index 32747583..87f64391 100644 --- a/.github/workflows/releaseDeploy.yml +++ b/.github/workflows/releaseDeploy.yml @@ -146,6 +146,15 @@ jobs: ${{github.workspace}}/build/RAYX-*.tar.gz if-no-files-found: error + - name: Extract version from tag + id: get_version + run: echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV + + - name: Archive source code + run: | + git archive HEAD --format=zip --output=${{github.workspace}}/build/RAYX-source-v${{env.version}}.zip + + release: name: Create Release needs: build-and-release @@ -176,5 +185,6 @@ jobs: ${{github.workspace}}/artifacts/ubuntu-artifacts/*.deb ${{github.workspace}}/artifacts/ubuntu-artifacts/*.rpm ${{github.workspace}}/artifacts/ubuntu-artifacts/*.tar.gz + ${{github.workspace}}/artifacts/ubuntu-artifacts/RAYX-source-v${{env.version}}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CMakeLists.txt b/CMakeLists.txt index d2b259a8..f9b724f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.25.2 FATAL_ERROR) # ---- Project ---- -project(RAYX VERSION 0.21.41) +project(RAYX VERSION 0.21.3) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CUDA_STANDARD 20) diff --git a/docs/src/Introduction/05-How-to-build.md b/docs/src/Introduction/02-How-to-build.md similarity index 100% rename from docs/src/Introduction/05-How-to-build.md rename to docs/src/Introduction/02-How-to-build.md diff --git a/docs/src/Introduction/02-How-to-install.md b/docs/src/Introduction/02-How-to-install.md new file mode 100644 index 00000000..f0088250 --- /dev/null +++ b/docs/src/Introduction/02-How-to-install.md @@ -0,0 +1,132 @@ +# How to Install + +Welcome to the installation guide for RAYX! This section is a work in progress as we refine our release distribution. If you encounter any issues, we're here to help. Please open an issue on GitHub [here](https://github.com/hz-b/rayx/issues/new/choose). Your feedback helps us improve our documentation and installers based on real user experiences. + +## Releases + +You can find the latest releases of RAYX [here](https://github.com/hz-b/rayx/releases/tag/v0.21.2). Each release includes: + +- **rayx-core**: The core library binary. +- **rayx**: Command-Line Interface (CLI) application. +- **rayx-ui**: Graphical User Interface (GUI) application. +- **Data Files**: Includes necessary data, shader, and font files. + +## Dependencies + +There are some dependencies that might not be handled by every distributed package, installer or archive. We give a general overview of missing dependencies you might encounter here. + +### rayx-core + +- [HDF5 Library](https://www.hdfgroup.org/download-hdf5/) for faster I/O operations. + +### rayx-ui + +- GPU driver from AMD, Intel, or NVIDIA. + +## Installation Instructions + +### Windows + +We provide the following options for Windows: + +- **Portable Version (.zip)**: No installation required. Just unzip and run. +- **Installer (.exe)**: An NSIS installer that guides you through the setup process. + +**Note:** You may need to install the [Microsoft Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170). + +### Linux + +We offer several packages for Linux distributions: + +- **Debian Package (.deb)**: For Debian-based systems like Ubuntu. +- **RPM Package (.rpm)**: For Red Hat-based systems like Fedora. +- **Tarball (.tar.gz)**: For other Linux systems. Intended for experienced users comfortable with manual installations. + +#### Ubuntu (Debian-based Systems) + +To install RAYX on Ubuntu: + +1. **Download** the `.deb` package from the [releases page](https://github.com/hz-b/rayx/releases/tag/v0.21.2). + +2. **Install** the package using: + + ```bash + sudo apt install ./rayx-ui__amd64.deb + ``` + + Replace `` with the actual version number. + +3. **Install Dependencies**: + + ```bash + sudo apt-get install libhdf5-dev + ``` + +#### Fedora (Red Hat-based Systems) + +To install RAYX on Fedora: + +1. **Download** the `.rpm` package from the [releases page](https://github.com/hz-b/rayx/releases/tag/v0.21.2). + +2. **Install** the package using: + + ```bash + sudo dnf install rayx-ui-.rpm + ``` + + Replace `` with the actual version number. + +3. **Install Dependencies**: + + ```bash + sudo dnf install hdf5 + ``` + +#### Arch Linux + +While we don't provide a native package for Arch Linux, you can use the tarball or build from source. + +**Install Dependencies**: + +```bash +sudo pacman -S hdf5 +``` + +--- + +### Installing from Tarball (.tar.gz) + +The tarball is intended for experienced users who prefer manual installation or are using a Linux distribution not directly supported by our `.deb` or `.rpm` packages. + +**Steps**: + +1. **Download** the `.tar.gz` file from the [releases page](https://github.com/hz-b/rayx/releases) or use the provided tarball. + +2. **Extract** the tarball: + + ```bash + tar -xzf RAYX--Linux.tar.gz + ``` + + This will create a directory named `RAYX--Linux`. + +3. **Move** the extracted files to a directory of your choice (e.g., `/opt/rayx`): + + ```bash + sudo mv RAYX--Linux /opt/rayx + ``` + +4. **Add to PATH** (optional): + + ```bash + echo 'export PATH=/opt/rayx/bin:$PATH' >> ~/.bashrc + source ~/.bashrc + ``` + +5. **Run RAYX** from the installation directory or after adding it to your PATH. + +**Note:** Installing from a tarball does not handle dependencies automatically. You need to ensure all required dependencies are present on your system. Look at the previous sections for guidance. + +--- + +If you have any questions or run into issues during installation, please don't hesitate to [open an issue on GitHub](https://github.com/hz-b/rayx/issues/new/choose). Your input is invaluable in helping us enhance our tools and documentation. \ No newline at end of file diff --git a/docs/src/Introduction/02-Getting-Started.md b/docs/src/Introduction/03-Getting-Started.md similarity index 100% rename from docs/src/Introduction/02-Getting-Started.md rename to docs/src/Introduction/03-Getting-Started.md diff --git a/docs/src/Introduction/03-How-to-use-rayx.md b/docs/src/Introduction/05-How-to-use-rayx.md similarity index 100% rename from docs/src/Introduction/03-How-to-use-rayx.md rename to docs/src/Introduction/05-How-to-use-rayx.md diff --git a/docs/src/Introduction/07-Literature.md b/docs/src/Introduction/06-Literature.md similarity index 100% rename from docs/src/Introduction/07-Literature.md rename to docs/src/Introduction/06-Literature.md diff --git a/docs/src/Introduction/06-Style-Guide.md b/docs/src/Introduction/07-Style-Guide.md similarity index 100% rename from docs/src/Introduction/06-Style-Guide.md rename to docs/src/Introduction/07-Style-Guide.md diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 37aa8997..507dc62b 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -2,12 +2,14 @@ - [Introduction](./Introduction/01-Introduction.md) - - [Getting Started](./Introduction/02-Getting-Started.md) - - [RAYX Commands](./Introduction/03-How-to-use-rayx.md) + - [How to Build](./Introduction/02-How-to-build.md) + - [How to Build](./Introduction/02-How-to-install.md) + - [Getting Started](./Introduction/03-Getting-Started.md) - [How to use RAYX-UI](./Introduction/04-How-to-use-rayx-ui.md) - - [How to Build](./Introduction/05-How-to-build.md) - - [Style Guide](./Introduction/06-Style-Guide.md) - - [Literature](./Introduction/07-Literature.md) + - [RAYX Commands](./Introduction/05-How-to-use-rayx.md) + - [Literature](./Introduction/06-Literature.md) + - [Style Guide](./Introduction/07-Style-Guide.md) + - [Model](./Model/Model.md) - [Beamline Objects](./Model/BeamlineObjects/BeamlineObjects.md) - [Optical Elements](./Model/BeamlineObjects/OpticalElements/OpticalElements.md)