Skip to content

Commit 1200a77

Browse files
committed
major website update, esp. re. Musikgrupe
1 parent 0ebb9f0 commit 1200a77

15 files changed

+374
-277
lines changed

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ footer_icons:
5454
header_pages:
5555
- project.md
5656
- process.md
57+
- guide/community-workflow-overview.md
5758
- partners.md
5859
- get-involved.md
5960

assets/codecheck.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,16 @@ footer {
4444
margin-bottom: 2rem;
4545
}
4646

47+
#nav-menu a {
48+
border-top: 5px solid #d0e7d9;
49+
font-weight: bold;
50+
}
51+
52+
#nav-menu a:hover {
53+
border-top: 4px solid #008033;
54+
color: #008033;
55+
}
56+
4757
#site-footer {
4858
margin-top: 2rem;
4959
}

guide/community-workflow-author.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
layout: page
3+
title: CODECHECK community workflow guide for authors
4+
---
5+
6+
See also the [CODECHECK community workflow overview](/guide/community-workflow-overview) and [discuss your issues](https://github.com/orgs/codecheckers/discussions).
7+
8+
## Author tasks
9+
10+
### tl;dr
11+
12+
**Have a `README`: everything else is details.** <span style="color: grey;">*</span>
13+
14+
<span style="font-size: 60%; color: grey;">Inspired by Greg Wilson's first rule of <a href="http://teachtogether.tech/" title="Teaching Tech Together">Teaching Tech Together</a>.</span>
15+
16+
### Background
17+
18+
The author must provide a _[preproducible](https://doi.org/10.1038/d41586-018-05256-0) workflow_:
19+
all data and code files necessary to reproduce the results are provided in a way that allows fellow researchers to follow and execute the steps.
20+
Often this workflow includes the generation of key figures from the article based on data.
21+
22+
Making current code reproducible with the **awareness** of the challenges is possible.
23+
See [this interesting article](https://www.nature.com/articles/d41586-020-02462-7) for challenges of reproducing old code, measures taken, and lessons learned.
24+
The article also includes a [_reproducibility checklist_](https://doi.org/10.1038/d41586-020-02462-7) that can help you to prepare your work for a CODECHECK.
25+
It is worth taking a look around for such checklists for your discipline or method, e.g., [Papers with Code](https://paperswithcode.com/)'s [Machine Learning Code Completeness Checklist](https://medium.com/paperswithcode/ml-code-completeness-checklist-e9127b168501).
26+
27+
From our experience, **documentation** is the key.
28+
A typical measure for a good level of documentation is to provide at least so much information as the author would themselves need after a longer period of time, e.g., one year, to run the analysis again.
29+
Any researcher, even if not familiar with the software stack, should be able to run the workflow and find out if the code works.
30+
Structured information about the computing environment, such as a _colophon_ or _reproducibility receipt_ are very helpful, see the [CODECHECK bundle guide](/guide/bundle).
31+
32+
Common sense shall be applied to decide about the suitable amount of data and to handle big datasets, sensitive datasets with privacy concerns, and long execution times.
33+
For example, data may be deposited depending on community practices in remote repositories, synthetic data may be used, subsets or preprocessed data may be included, or protected access to information may be provided (e.g. cloud-based data enclaves).
34+
35+
### Requirements
36+
37+
The minimal set of files, besides all required data and code, to implement a CODECHECK process are the following ones (`.` is the project root directory, which could be for example, `/home/username/research-project/2020/great-paper`).
38+
Ideally, the author supplies first versions of these three files, though they might also be jointly created in collaboration with the codechecker.
39+
In case of the README, a codechecker's feedback can improve the README file's content.
40+
In case of the metadata, parts of the metadata will be provided by the codechecker or the CODECHECK editor.
41+
42+
1. **`./README` file** with instructions how to execute the workflow (must be plain text, may have suitable extension, e.g., `.txt`, `.md`, `.markdown`)
43+
1. **`./codecheck.yml` file** with basic metadata and a list of output files created by the workflow, the so called manifest; these files must be created by the workflow and are the basis for validating a successful CODECHECK; see the [latest CODECHECK configuration file specification]({{ 'spec/config/latest' | absolute_url }}) for the required and optional contents and start with the [_minimal example for authors_]({{ 'spec/config/1.0/#tldr-for-authors' | absolute_url }})
44+
1. **`./LICENSE` file** with information about licenses for all submitted material, e.g. code license for scripts and data licenses for used datasets; see [The Turing Way](https://book.the-turing-way.org/reproducible-research/licensing.html) on licensing for guidance
45+
46+
### Publication
47+
48+
The required files and the workflow code and data are published in a dedicated self-contained repository in the [codecheckers organisation on GitHub](https://github.com/codecheckers/).
49+
This happens by [forking](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the authors repository, if one already exist.
50+
If the repository is on GitLab(.com), the [cdchck organisation on GitLab](https://gitlab.com/cdchck) can be used.
51+
After the CODECHECK, authors may transfer the improvements and certificate back to their own repository.
52+
53+
### Extras
54+
55+
Beyond the minimally required files to run a workflow, any additional configuration and information is extremely helpful, of course, and can greatly improve the smoothness of the CODECHECK process.
56+
Some hints as to what this can entail are given by the codechecker's tasks below - it is worth taking the checker's perspective to improve your submission.
57+
58+
Furthermore, the concept of a _research compendium_ to package all building blocks of a research project together is very useful.
59+
You can find examples and best practices for using research compendia on [https://research-compendium.science/](https://research-compendium.science/).
60+
You can make the codechecker's task a lot easier if you provide some kind of dependency management or environment specification file.
61+
These are too many to mention here, and different tools exist for different programming languages.
62+
Check the documentation of your language of choice how to best to "pin" the versions of used packages.
63+
64+
Ideally, you make your repository "Binder-ready", which means that you define all the software your workflow needs in [common file formats for specifying dependencies and projects](https://mybinder.readthedocs.io/en/latest/howto/languages.html) (i.e., the dependency/environment configurations mentioned above) so that you and others can open your repository on [MyBinder.org](https://mybinder.org/).
65+
Note that there are resource limitations to this free instance of [BinderHub](https://mybinder.readthedocs.io/en/latest/).
66+
Alternatively, you may create an [Executable Research Compendium](https://doi.org/10.1045/january2017-nuest) using the [o2r online demo for publishing executable research](https://o2r.info/results/).
67+
68+
Feel free to inquire in the [CODECHECK discussion forum](https://github.com/orgs/codecheckers/discussions) how you can best handle your specific case of sensitive or big data.
69+
70+
A great way to learn what a good way to meaningfully package your research for others to inspect, understand, and reproduce is to participate in a [ReproHack](https://reprohack.github.io/reprohack-hq/) and take on the reader/codechecker perspective.
71+
72+
### Submission
73+
74+
When your workflow is ready to be CODECHECKed, open an issue on the [CODECHECK register](https://github.com/codecheckers/register/issues/new/choose).
75+
76+
### During submission/preprint stage
77+
78+
After the publication of the CODECHECK certificate, add a reference to the certificate in your paper, e.g., in a section describing your workflow or in the acknowledgements:
79+
80+
> _A CODECHECK certificate is available confirming that [all of the, a (significant) part of the, the] computations underlying this article could be independently executed:_ `DOI of the certificate here`.
81+
82+
------
83+
84+
## Examples
85+
86+
See the [CODECHECK register](/register) for a full list of codechecks, including direct links to the certificates.
87+
Take a look at existing checks for your discipline or community to get an impression on how CODECHECKs work.
88+
89+
_Is your scientific dispipline missing?_ Time to **[get involved!](/get-involved)**.
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
---
2+
layout: page
3+
title: CODECHECK community workflow for codecheckers
4+
permalink: guide/community-workflow
5+
---
6+
7+
See also the [CODECHECK community workflow overview](/guide/community-workflow-overview) and [discuss your issues](https://github.com/orgs/codecheckers/discussions).
8+
This guide has two main parts - a _short community workflow list of steps_, and an _extended version_ which may be used as a reference.
9+
_Are you checking a paper with CHECK-NL?_ See their [workflow for in-person events}(/nl/workflow/).
10+
11+
## Codechecker tasks - short version
12+
13+
Before you start, an author created a pre-producible workflow: all data and code, plus a README file detailing the content, a manifest file detailing the output [in the CODECHECK configuration file specification](https://codecheck.org.uk/spec/config/1.0/), and a license file; this is ideally bundled in a single repository or archive file and accompanied by a (pre-published) paper.
14+
The author then created a new issue in the [CODECHECK register](https://github.com/codecheckers/register/issues/new/choose) to request a new community CODECHECK.
15+
Now it's your turn.
16+
17+
1. Accept codechecking invitation by commenting on the issue
18+
1. Create a repository in the CODECHECK GitHub organization, either by forking existing repository or creating new one and uploading materials
19+
1. Create a new directory in that repository where all new files will go
20+
1. Create a new document to write the CODECHECK certificate and *start documenting the ongoing codecheck now*
21+
The exact form of a codechecking procedure and form of documentation vary greatly, but there are some tools, such as [an R package](https://github.com/codecheckers/codecheck) to automate some steps, including [an Rmd template](https://github.com/codecheckers/codecheck/blob/master/inst/extdata/templates/codecheck/codecheck.Rmd); all of that is optional, as long as the final report contains the mandatory information
22+
1. Open the manuscript and follow the instructions to reproduce a workflow
23+
1. During the CODECHECK, contact the authors in case of problems; keep in mind the general [CODECHECK principles](/project/#the-codecheck-principles), especially “the codechecker records but does not fix” – unless it is a very trivial bug like pathnames; the authors can provide updated versions of code and documentation; however, the entire procedure should not be much more time-intensive than a normal peer review of a paper and not involve more than a few code revisions; the codechecker can always stop the process after a reasonable effort and close the issue as not successfully reproduced.
24+
1. Summarize the process and outcomes in your certificate and upload it as PDF to [Zenodo](https://zenodo.org/) or [OSF](https://osf.io/); add edited files and intemediary as well as output files as you see fit; the certifiate must at least contain the information on who checked what and how; the ambition should be to document for future self and other researchers; have a look at the available reports.
25+
1. Adds a pull request to original repository for the CODECHECK badge (optional)
26+
1. Notify the editor in the GitHub issue about the completion
27+
28+
------
29+
30+
## Codechecker tasks - extended version
31+
32+
### Prerequisites
33+
34+
The codechecker in general is not there to fix things, but to document how far they got.
35+
The result is either is a completed CODECHECK, or a documentation why the check was found impossible to complete (see _[principle 1](/)_).
36+
Codecheckers should give feedback to the author and definetely allow workflows to be fixed.
37+
It is very hard to put a precise number on the amount of work you should put into a CODECHECK.
38+
You're not expected to spend more time on a CODECHECK than you would on peer-reviewing a manuscript.
39+
You should take advantage of the fact that you can _talk to the author_ and feel free to reach out early and often, when you think that issues can be resolved quickly.
40+
Depending on your familiarity with the used programming language and specific tools at hand, a very rough experience value could be 30 minutes of reading documentation, downloading and installing software, and another 30 minutes to write up the CODECHECK report.
41+
The time in between for running the actual workflow will vary greatly, from minutes to hours, and hopefully can be run in the background.
42+
In case the computations run longer than your regular working day, consider asking the author to prepare a subset of the workflow.
43+
44+
However, a codechecker may, for example out of personal interest in the research at hand, invest additional efforts.
45+
In any case, the overall goal is to _leave the workflow repository in the same or better condition_.
46+
47+
Some further tips:
48+
49+
- Every CODECHECK is unique, just as the associated research article. If this guide feels like it doesn't work for your case, you are likely still on the right track.
50+
- Reach out to fellow codecheckers in the [public discussion forum](https://github.com/orgs/codecheckers/discussions) if you face any problems.
51+
- A familiarity with `make` is helpful to provide an easy entrypoint and build up useful code snippets for your CODECHECKs, see <https://book.the-turing-way.org/reproducible-research/make> and <https://swcarpentry.github.io/make-novice/reference>
52+
53+
## CODECHECK steps
54+
55+
1. Comment on the issue in the CODECHECK register repository to notify author and editor that you're accepting (and starting) the CODECHECK.
56+
1. Fork the author's repository to the codecheckers GitHub.com or GitLab.com organisation, or, if the code is not on GitHub/GitLab, create a new repository with the naming scheme `Lastname-YYYY` using the family name of the corresponding author. Please take care to follow the terms and conditions of the workspace's licenses; stop your CODECHECK if the licensing is unclear and contact the author to fix the documentation.
57+
1. Create a directory `codecheck` to not interfere with original files.
58+
This is the _check directory_.
59+
You can use `.codecheck` if `codecheck` exists in submission for some reason.
60+
_All files created by you go into this directory._
61+
The exception are files that the author could have used and which you suggest the author transfers into her own repository after the check (see "leave in a better condition" above).
62+
1. **Write a `Makefile`** to re-run the workflow based on provided documentation, i.e., recreate all files listed in the manifest by runnign the command `make codecheck`.
63+
This target should run the whole or most suitable subset of the workflow and create the report.
64+
1. **Optional contents** of the check directory.
65+
- Document the used computing environment, see [CODECHECK bundle guide](/guide/bundle).
66+
- Create a notebook as the basis for the report (see below), e.g. `codecheck.Rmd`.
67+
- Make the repository [Binder-ready](https://mybinder.readthedocs.io/); put all Binder-related files into `.binder/` directory to separate them from the author's content.
68+
1. **Write the CODECHECK report** and save it as a PDF file named **`codecheck.pdf`** in the check directory.
69+
The report should cover at least _WHO_ checked _WHAT_, and _HOW_.
70+
Imagine the report as a reminder for future you so you will be to re-check the workflow in two years time - what help would you need to do that?
71+
Take a look at the [example CODECHECKs](#examples) for existing reports to serve as templates.
72+
1. **Optional report sections** depending on interest, time, and skills:
73+
- _How to cite the report?_ Your CODECHECK is a valuable contribution to science, and you should add a short note on how to cite your report (see below for reserving the DOI).
74+
- Do the generated outputs match the ones in the original manuscript? Are the differences relevant or not?
75+
- Are there any parts of the workflow where the author could improve the code?
76+
- How long did it take you to conduct the CHECK, and where did you struggle?
77+
- Are used pieces of software and data properly CITED and publicly DEPOSITED und suitable LICENSES?
78+
- Are open formats (text-based etc.) used for input and output data?
79+
- Is the data and [software](https://content.iospress.com/articles/data-science/ds190026) FAIR?
80+
1. Add **mandatory codechecker-contributed information** to the **`codecheck.yml`** file, see [spec](/spec/config/latest)
81+
1. Wait for the article DOI.
82+
1. **Deposit the CODECHECK report on _Zenodo_** using your own Zenodo account
83+
- _Files_
84+
- `codecheck.pdf` (mandatory)
85+
- Optional: You can add any material to this record that you see fit, especially things that helped you with your reproduction, i.e., the [CODECHECK bundle](/guide/bundle)
86+
- _Communities_: Search for "codecheck" to add the record to the [CODECHECK community on Zenodo](https://zenodo.org/communities/codecheck)
87+
- _Authors_: Add all codecheckers as authors
88+
- _Title_: `"CODECHECK Certificate YYYY-NNN"` (certificate number issued via the register ticket above)
89+
- _License_: Use `Creative Commons Attribution 4.0 International` if you only upload the CODECHECK report, otherwise use `Other (Open)` or `Other (Attribution)` and document the licensing in the "Additional notes" field.
90+
- _Reserve a DOI_
91+
- Add the DOI to the `codecheck.yml` file
92+
- Mention the DOI to the `codecheck.pdf` CODECHECK report, e.g. as a subtitle
93+
- Use _other fields_ as you see fit (Description, Version, Language, Keywords)
94+
- _Contributors_: Add the original authors as contributors (see Zendo Metadata form section "Contributors (optional)") with a suitable role (e.g., "Researcher")
95+
- _Optionally_, add extra metadata
96+
- connect the Zenodo record to the GitHub repository with a "Relate/alternate identifier"
97+
- connect the Zenodo record to the article/preprint with a "Relate/alternate identifier"
98+
1. If the check was conducted for a piece of software for the first time or resulted in important lessons learned, consider adding it to the list of examples below.
99+
1. If possible, add the [CODE WORKS badge](https://github.com/codecheckers/website/tree/master/badges) <img src="/img/codeworks-badge.svg" alt="CODECHECK badge" height="16" style="margin-top: -4px;" /> to the article or the original software repository, e.g., by sending a pull request. The badge should link directly to the Zenodo record _via the DOI_.
100+
The following snippet should work in Markdown:
101+
102+
```md
103+
[![CODECHECK](https://codecheck.org.uk/img/codeworks-badge.svg)](https://doi.org/<DOI HERE>)
104+
```
105+
106+
1. If the check material is published on `github.com/codecheckers`, add the [`codecheck` topic](https://github.com/search?q=topic%3Acodecheck+fork%3Atrue+org%3Acodecheckers&type=Repositories) to the project.

0 commit comments

Comments
 (0)