Portal/rdm/examples/oscar: Difference between revisions

From MaRDI portal
LKastner (talk | contribs)
LKastner (talk | contribs)
Add author section.
 
(4 intermediate revisions by 2 users not shown)
Line 8: Line 8:


==== 1. Data description ====
==== 1. Data description ====
The main datatype is the Julia code of Oscar.jl. Furthermore there are several
The main datatype is the [https://julialang.org/ Julia] code of [https://github.com/oscar-system/Oscar.jl Oscar.jl]. Furthermore there are several
subprojects developed by the TRR 195 that Oscar.jl depends on. These are
subprojects developed by the TRR 195 that Oscar.jl depends on. These are
GAP.jl, polymake.jl, Singular.jl and many more. We will focus on Oscar.jl here.
[https://github.com/oscar-system/GAP.jl GAP.jl], [https://github.com/oscar-system/Polymake.jl Polymake.jl], [https://github.com/oscar-system/Singular.jl/ Singular.jl], [https://github.com/thofma/Hecke.jl/ Hecke.jl] and many more. All dependencies are hosted on GitHub and part of the Julia ecosystem. Thus their archival is also secured by software heritage. In the following we will focus on Oscar.jl, though the RDMPs for the dependencies will look very similar.


==== 2. Documentation and data quality ====
==== 2. Documentation and data quality ====
The code is documented using the [https://documenter.juliadocs.org/ Documenter.jl] package, which is the Julia standard. The documentation is automatically deployed at [https://docs.oscar-system.org/stable/ https://docs.oscar-system.org/stable/] by GitHub actions.
The dependencies are tracked by the respective Project.toml files in the single
The dependencies are tracked by the respective Project.toml files in the single
repositories. Testing is done automatically in the github repositories using
repositories. Testing is done automatically in the GitHub repositories using
github actions. Compatibility is ensured with the current Julia release and the
Github actions. Compatibility is ensured with the current Julia release and the
currently maintained Julia LTS versions. Code coverage of the tests is
currently maintained Julia LTS versions. Code coverage of the tests is
monitored by the codecov app.
monitored by the Codecov app.
Oscar.jl adopts the standard github continuous integration approach. Code can
Oscar.jl adopts the standard Github continuous integration approach. Code can
only be merged to master after all the tests are passed.
only be merged to master after all the tests are passed.


==== 3. Storage and technical archiving the project ====
==== 3. Storage and technical archiving the project ====
The project is stored on github and via the git mechanism every developer
The project is stored on [https://docs.oscar-system.org/stable/ GitHub] and via the git mechanism every developer
retains a local copy as well. Furthermore the project and its dependencies are
retains a local copy as well. Furthermore the project and its dependencies are
archived already during runtime at [https://archive.softwareheritage.org/ softwareheritage.org], see e.g.
archived already during runtime at [https://archive.softwareheritage.org/ softwareheritage.org], see e.g.
Line 40: Line 42:
[https://www.mardi4nfdi.de MaRDI] guidelines on data management and how to
[https://www.mardi4nfdi.de MaRDI] guidelines on data management and how to
choose an appropriate repository.
choose an appropriate repository.
====== Author ======
This example was authored by [https://lkastner.github.io/ Lars Kastner] from Technische Universität Berlin. If you have questions, please do not hesitate to get in touch with us at the [https://www.mardi4nfdi.de/community/help-desk MaRDI helpdesk].

Latest revision as of 13:35, 16 May 2024

Example: A large software project in an SFB (OSCAR)

Project description

The OSCAR Computer algebra system is developed as the central software project of within the Collaborative Research Center TRR 195 of the German Research Foundation (DFG).

1. Data description

The main datatype is the Julia code of Oscar.jl. Furthermore there are several subprojects developed by the TRR 195 that Oscar.jl depends on. These are GAP.jl, Polymake.jl, Singular.jl, Hecke.jl and many more. All dependencies are hosted on GitHub and part of the Julia ecosystem. Thus their archival is also secured by software heritage. In the following we will focus on Oscar.jl, though the RDMPs for the dependencies will look very similar.

2. Documentation and data quality

The code is documented using the Documenter.jl package, which is the Julia standard. The documentation is automatically deployed at https://docs.oscar-system.org/stable/ by GitHub actions.

The dependencies are tracked by the respective Project.toml files in the single repositories. Testing is done automatically in the GitHub repositories using Github actions. Compatibility is ensured with the current Julia release and the currently maintained Julia LTS versions. Code coverage of the tests is monitored by the Codecov app. Oscar.jl adopts the standard Github continuous integration approach. Code can only be merged to master after all the tests are passed.

3. Storage and technical archiving the project

The project is stored on GitHub and via the git mechanism every developer retains a local copy as well. Furthermore the project and its dependencies are archived already during runtime at softwareheritage.org, see e.g. Oscar.jl at software heritage.

4. Legal obligations and conditions

The Oscar.jl source code is published under the GPLv3 as stated in the LICENSE file.

5. Data exchange and long-term data accessibility

All of the data is publicly available on GitHub and long term availability is guaranteed via software heritage.

6. Responsibilities and resources

The responsibility lies with the PIs of the B1 software project of the TRR 195. The necessary resources are provided by TU Berlin and RPTU Kaiserslautern.

In case we need to publish additional data, we will follow the MaRDI guidelines on data management and how to choose an appropriate repository.

Author

This example was authored by Lars Kastner from Technische Universität Berlin. If you have questions, please do not hesitate to get in touch with us at the MaRDI helpdesk.