Software Stewardship
Brendan Graetz

- How to be a good "maintainer" of your software project
- In the context of open source software
- Examples in NodeJs, and open source; but principles applicable
Services


- Linting
- Testing
- Coverage
- Documentation
Miscellaneous

- Badges
- Contribution Guidelines
- Publicising
Github

- Git host:
- Distributed Version Control
- Easy to use & fast
- Pull requests
- Sample: Profile
Travis

Coveralls

- Code coverage
- Display & tracking only
- Seamless integration with Travis
- Sample:
Project |
Report
Linting

- Enforcing a code style
- Use JsHint
- Try It
Testing

- Verifying that software works
- Detect regressions
- Use jasmine-node
- Documentation
Coverage

- Verify that tests touch all of the software
- Identify dead code
- Use Istanbul
- Sample:
Report
Documentation

- Generate reference for users
- Use YUIdoc
- Sample:
Published
Badges

- Display the status
- Build status: Travis
- Coverage status: Coveralls
- Package manager: nodei.co
- Sample:
Readme
Contribution Guidelines

- Instructions
- Expectations
- Make it easy for others to contribute
- Sample:
Readme
Licence
- Pick one
- tl;dr Legal for neat summaries
- Sample:
Readme |
GPLv3
Publicise

- Twitter
- Reddit
- HackerNews
- Sample:
Tweet
Roadblock

- Problem: ... but this will take too long.
- Solution: Iterate, iterate, iterate!
- smaller chunks
- reasonable goals
- maintain momentum
Crux

- Software quality
- Automation
- Users --> Contributors