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

[ENH] BIDS software development guidelines appendix #227

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,6 @@ nav:
- MEG file formats: 99-appendices/06-meg-file-formats.md
- MEG systems: 99-appendices/07-meg-systems.md
- Coordinate-systems: 99-appendices/08-coordinate-systems.md
- BIDS software development guidelines: 99-appendices/09-software-guidelines.md
- Changelog: CHANGES.md
- The BIDS Starter Kit: https://github.com/bids-standard/bids-starter-kit
29 changes: 29 additions & 0 deletions src/99-appendices/09-software-guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Appendix IX: BIDS software development guidelines

This section RECOMMENDS some practices which could be adopted while developing
BIDS compatible software.

## Be consist with BIDS terminology

[Common Principles: Definitions](../02-common-principles.md#definitions) and
[Appendix IV: Entity table](04-entity-table.md) define some definitions and
terms which ideally be used in the UI of the tools to make tools easier to use
by BIDS-aware users.

## Be resilient and future-proofing

BIDS is an evolving standard, and although we strive to clearly and unambiguously
describe all entities and filenames convention, retain backward compatibility,
and version every release of the specification, some aspects could remain not
clarified and open for interpretation or future change. E.g., the set of
allowed characters in `<label>` might eventually change [ISSUE-226] or
[inheritance principle](../02-common-principles.md#the-inheritance-principle)
could be further formalized (see [ISSUE-102]).
It is RECOMMENDED that BIDS supporting applications are coded adhering
to [Postel's principle](https://en.wikipedia.org/wiki/Robustness_principle)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear what this means in the BIDS context

which is driving TCP implementations to *"be conservative in what you do, be
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the sake of clarity and minimising the nerd factor, I'd remove "driving TCP implementations"

liberal in what you accept from others."*


[ISSUE-226]: https://github.com/bids-standard/bids-specification/issues/226
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the role of these links... we reference issues inside the spec? Seems fragile.

[ISSUE-102]: https://github.com/bids-standard/bids-specification/issues/102