A project to illustrate the use of development tools and their automation with GitHub Actions
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
The development of open-source software for numerical simulation is becoming an increasingly important part of the research process. It enables numerical methods to be validated, new algorithms to be developed and methods to be appropriated and enriched by anyone. Opening up our research codes is also part of the open science approach, and it's not a question of "just" putting an archive with the sources on a web page.
The philosophy and structure of a piece of software emanate from its precursors and evolve as different contributions are made. However, to ensure that this architecture does not collapse at the slightest change, a framework is necessary. Setting up such a framework is a constraint. It's a question of supporting contributors in these new practices and finding the compromise between a restrictive framework and giving free rein to creativity.
During the development process, many tasks are repetitive and can be the source of errors or application regressions. These include unit testing, code formatting, errors that may be revealed during static analysis, documentation generation and the creation of new versions when the application is distributed via packaging systems (pypi, conda, vcpkg, spack, nix, guix, etc.).
This directory is the end result of a workshop describing each of the tools that can greatly facilitate the development process and interaction with all the players involved in an open-source project. It also describes a development framework that is validated using GitHub Actions.
The workshop is here: https://github.com/gouarin/dev_env_and_automatisation
We're going to use a ready-to-use C++ code that creates generative art from the equation of a circle and splines. This program displays renderings of the following type
The basic idea comes from inconvergent website.
If you want to try locally this project, you have to install pixi.
If you are on linux or macos
curl -fsSL https://pixi.sh/install.sh | bash
if you are on Windows
iwr -useb https://pixi.sh/install.ps1 | iex
- Clone the repo
git clone https://github.com/gouarin/splinart-cpp.git
- Install the dependencies
pixi install
- Build and run
pixi run start
- Create a new environment
pixi init
- Add
gouarin
channel in thepixi.toml
file - Install
splinart-cpp
pixi add splinart-cpp
- Run
splinart-cpp
Once the project is installed on your system, you have access to the splinart-cpp program. This has several options for modifying the final rendering.
-
Print help
splinart-cpp --help
-
Choose the number of circles
splinart-cpp --nb-circles 10
-
Random colors
splinart-cpp --random-color
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please read our contribution guidelines, and thank you for being involved!
Distributed under the MIT License. See LICENSE
for more information.
Loic Gouarin - @lgouarin - loic.gouarin@gmail.com
Projects Link: https://github.com/gouarin