Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add guidance on the value of a good README #41

Open
pbchase opened this issue May 7, 2021 · 0 comments
Open

Add guidance on the value of a good README #41

pbchase opened this issue May 7, 2021 · 0 comments
Assignees

Comments

@pbchase
Copy link
Contributor

pbchase commented May 7, 2021

Add guidance on the value of a good README as well as a template for a README.md

In the text of the guide, we should tell me about the value of good documentation in making a module accessible to people who don't write code, don't have a place they can test modules, and insufficient time to test them all. We should talk about how REDCap will present their documentation and why a Markdown file is so much more valuable than other forms of documentation.

The template should include the most common elements of READMEs we respect. Here's a starter for the content that should be in it.

Every module README should have these sections:

  • Overview - The very first section needs to state what the modules does in 1-3 sentences. You might also want to state why the module exists in a second, short paragraph. I.e., explain enough about REDCap to show how this module fills a gap.
  • Prerequisites - at the very least state the minimum REDCap version number. this is redundant with config.json, but non-developers should not be asked to dig into code to answer such an important question.
  • Configuration - The redcap module configuration page does not lend itself to explanation. Do that here. You might need both a Global Configuration section and a Project Configuration section. Even if your module has no configuration steps, say it. It will help people understand what the module doesn't do.
  • Use if people will interact with features the module presents, describe that here. Show it in pictures. Crop the pictures carefully. Annotate the pictures with circles, arrows or text if that makes sense.
  • Limitations - no module implements every desire. You might have written it to implement one customer's on a limited budget. This is a place to say "This module does not support X, Y or Z". It's kinder than letting people's imagination run wild thinking that it will fix their problem when you never implemented that. This section might evolve as a response to questions and requests for features.

Consider adding the text above as the content in the template to explain what needs to go in each section. In so doing, the template could be self-documenting.

I think these READMEs are good examples to borrow content from or explain the common, but non universal needs in module documentation:

@ChemiKyle ChemiKyle self-assigned this May 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants