Skip to content

Commit

Permalink
got rid of the citation sections and adding tools from and to the iho…
Browse files Browse the repository at this point in the history
…w_to_make_a_good_readme.md
  • Loading branch information
shoaibsufi committed Dec 19, 2024
1 parent 5738a36 commit a5490ef
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 38 deletions.
8 changes: 8 additions & 0 deletions _data/tool_and_resource_list.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@
# url: the homepage of the tool/resource
# qualityIndicator: Research Software Quality indicator (see indicators.yaml in this folder) associated with this tool. More than one quality indicator may be declared per tool (in a list)

- description: Python is an interpreted, high-level, object-oriented programming language known for its dynamic typing, readability, and extensive standard library, making it ideal for rapid development and modular, reusable code.
id: python
name: Python
url: https://www.python.org/
- description: Java is a versatile, object-oriented programming language designed to be platform-independent, with its “write once, run anywhere” capability enabled by the Java Virtual Machine (JVM).
id: java
name: Java
url: https://www.java.com/en/
- description: Docker is a software for the execution of applications in virtualized environments called containers. It is linked to DockerHub, a library for sharing container images
id: docker
name: Docker
Expand Down
3 changes: 0 additions & 3 deletions pages/your_tasks/codemeta.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ But how to create a `codemeta.json` file?
* Manually, by using the following [template](https://github.com/codemeta/codemeta/blob/master/codemeta.json) as a reference. JSON-LD files can be validated with services like the {% tool "jasonldvalidator" %}.
* Copy the file in your source code root directory.

## How to cite this page <!-- do not delete this heading and write your text below it -->
TO DO.

## References <!-- do not delete this heading and write your text below it -->
<!--If work has been inspired or derived from other content (e.g., pages in RDMKit) make sure to reference it here. -->
TO DO.
Expand Down
4 changes: 0 additions & 4 deletions pages/your_tasks/creating_readthedocs.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,5 @@ After a successful build, the documentation will be published and publicly acces

**For further information, please refer to the [Read the Docs tutorial](https://docs.readthedocs.io/en/stable/tutorial/index.html). Additionally, check out [our page on software documentation](software_documentation) for more insights.**


## How to cite this page
TO DO.

## References
* [Read the Docs tutorial](https://docs.readthedocs.io/en/stable/tutorial/index.html)
4 changes: 0 additions & 4 deletions pages/your_tasks/environmental_sustainability.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,6 @@ Similarly, the GREENER software principles ([https://www.nature.com/articles/s43
* {% tool "greenspectorstudio" %} measures energy usage and resource efficiency in web and mobile applications.
* {% tool "ecograder" %} evaluates website sustainability based on design and operational efficiency.


## How to cite this page <!-- do not delete this heading and write your text below it -->
TO DO.

## References <!-- do not delete this heading and write your text below it -->
TO DO.

41 changes: 14 additions & 27 deletions pages/your_tasks/how_to_make_a_good_readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,11 @@ description: How to make a good README document for research software projects
contributors: ["Esteban González", "Aleksandra Nenadic", "Daniel Garijo"]
page_id: good_README
related_pages: []
# More information on which page id you can use can be found at https://rdmkit.elixir-europe.org/website_overview
training:
- name:
registry:
url:
# More information on how to fill in this metadata section can be found here https://rdmkit.elixir-europe.org/page_metadata
---
<!-- Please take in mind our style guide https://rdmkit.elixir-europe.org/style_guide when writing the content of this page. -->

## Why is it important to have a good README file? <!-- example: how to version control my code? -->
## Why is it important to have a good README file?

### Description <!-- do not delete this heading and write your text below it -->
### Description

The README file is the entry point to the documentation associated with a software. The main purpose of the README is to:
* Describe the structure of the project and its purpose.
Expand All @@ -28,15 +21,15 @@ In the case of research software, additional features must be taken into account
* Relation with other research outputs such as publications, datasets, etc. These research outputs can be in the repository or in external repositories.


### Considerations <!-- do not delete this heading and write your text below it -->
### Considerations
* A good README favours the use of your software[^1].
* A good README increments the transparency of your research.
* A good README will help you to maintain the software during the software lifecycle.


## Which sections should be addressed in a good README? <!-- example: how to name a software release? -->
## Which sections should be addressed in a good README?

### Description <!-- do not delete this heading and write your text below it -->
### Description
A README file is the first document that a researchers read when they are interested on using a software. For this reason, should contain all the relevant information to install and to execute it. It includes references to additional information such as API documentation, specifications, scientific publications related, tutorials, guidelines, etc.

A basic software documentation emphasises these aspects[^2] :
Expand All @@ -46,14 +39,14 @@ A basic software documentation emphasises these aspects[^2] :

These aspects should be addressed in different sections of the README.

### Considerations <!-- do not delete this heading and write your text below it -->
### Considerations
* A good README should describe the purpose and the features of the software.
* A good README should describe how to execute and to use the code.
* In a research context, a good README should indicate how the software should be cited.
* In a research context, a good README should indicate the funding agency and the proper acknowledgements.
* In the context of a scientific experiment, a good README should facilitate its reproducibility.

### Solutions <!-- do not delete this heading and write your text below it -->
### Solutions

The following sections can be included in the README to facilitate the use of the software and to allow its citation.

Expand All @@ -63,12 +56,12 @@ In this section, you will have to describe the purpose and the features of your

**Requirements**

In this section, you can include the requirements needed to install and to execute the software. These requirements can be software (e.g. operative system) or hardware (e.g. CPU, memory, etc.). There is no need to include low level requirements like language library dependencies. These requirements must be provided with the appropriate mechanism of each language. For example, in Python by using the requirements.txt file.
In this section, you can include the requirements needed to install and to execute the software. These requirements can be software (e.g. operative system) or hardware (e.g. CPU, memory, etc.). There is no need to include low level requirements like language library dependencies. These requirements must be provided with the appropriate mechanism of each language. For example, in {% tool "python" %} by using the requirements.txt file.

This is a non exhaustive list of requirements categories that you can consider:
- Operating system version
- Operating system libraries version
- Version of the interpreter (e.g. Python 3.9, Java 7, etc.)
- Version of the interpreter (e.g. {% tool "python" %} 3.9, {% tool "java" %} 7, etc.)
- Additional software needed to execute the software. For example, a database, a workflow engine, etc.
- Infrastructure requirements (e.g. number of CPUs, memory, disk, etc.)

Expand All @@ -78,7 +71,7 @@ In this section, you can describe the installation steps needed to install the s

In case you need to install additional software, like a Java Virtual Machine or a database, you will have to add a link to additional information that describes how to install it.

If you have multiple options for installing the software (e.g. installing a library, docker, script) you should describe them.
If you have multiple options for installing the software (e.g. installing a library, {% tool "docker" %}, script) you should describe them.

**Configuration**

Expand All @@ -104,25 +97,19 @@ All funders of the research software should be mentioned in the README - check t

Citation is fundamental in a research context. In this section, you can add how you want your software to be cited in a publication. It is a common practice to add this information in a `CITATION.cff` file but it is a recommended practice to add it to the README file too (e.g., in Bibtex format).

Remember that you can include badges in your README file to add visual information about your software project. You can see a list of them used to make your project more fair in the [Howfairis project](https://github.com/fair-software/howfairis).
Remember that you can include badges in your README file to add visual information about your software project. You can see a list of them used to make your project more fair in {% tool "howfairis" %}.

**License**

Software without a license cannot be reused in other applications. While having a [license file](https://everse.software/RSQKit/licensing_software) is a common practice in code repositories, you may also add this information explicitly as a section of your README file. For more information, see [our guidelines](https://everse.software/RSQKit/licensing_software) on how to select an appropriate license.


## How to cite this page <!-- do not delete this heading and write your text below it -->
<!--González E., [URL](https://everse.software/RSQKit/good_README). October, 16th 2024-->
TO DO


## Tools and resources <!-- do not delete this heading and write your text below it -->
## Further guidance
* [README best practices](https://tilburgsciencehub.com/topics/collaborate-share/share-your-work/content-creation/readme-best-practices/)
* [Guidelines for creating a README file](https://data.4tu.nl/s/documents/Guidelines_for_creating_a_README_file.pdf)
* [SOMEF](https://github.com/KnowledgeCaptureAndDiscovery/somef). SOMEF is a tool to extract information from README files. It is not an assessment tool for README files, but can be used for detecting missing parts of a README file.
* [Howfairis](https://github.com/fair-software/howfairis)
* {% tool "somef" %} is a tool to extract information from README files. It is not an assessment tool for README files, but can be used for detecting missing parts of a README file.

## References <!-- do not delete this heading and write your text below it -->
## References
[^1]:Wang, T., Wang, S., & Chen, T. H. P. (2023). Study the correlation between the readme file of GitHub projects and their popularity. Journal of Systems and Software, 205, 111806.
[^2]: Mao, A., Garijo, D., & Fakhraei, S. (2019, December). SoMEF: A framework for capturing scientific software metadata from its documentation. In 2019 IEEE International Conference on Big Data (Big Data) (pp. 3032-3037). IEEE.

Expand Down

0 comments on commit a5490ef

Please sign in to comment.