SHIP IT








Robert Rouhani

SharpNav





My RCOS project
(with Samuel Yuan, RenJie Xie, Ryan Lin)

Version 1.0 shipping this weekend

Will It Suck?


Yes.





Why Ship It, Then?

Feedback From Users


Why is this important?



It allows us to focus our design on what users want.

Not what we think they want.

There's a difference.

But How Do I Get There?


Try to do all of the things in this presentation





If you don't have time, whatever!

There's always version 1.1

Linting





Document everything

Style your code consistently and enforce it as the project's style

Fix any glaring issues with your public API

Version Numbering


Go with what the language / framework uses
If there's no standard, use Semantic Versioning

Major.Minor.Patch[-PreRelease][+Metadata]

All valid semver:
1.0.0
2.3.139
3.1.5-beta
6.5.1-alpha+a1f2be19
3.6.2+12

GitHub Has It All


Release Tags
 git tag v1.0.0
 git push origin --tags
Tracked in user/repo/releases

Website
 git checkout --orphan gh-pages
 git rm -rf .
 echo "Hello, World!" > index.html
 git commit -a -m "Initial website commit"
 git push origin gh-pages
Available as user.github.io/repo

GitHub Wiki

One of the tabs on the side of every repo.

Uses git for versioning.
(what did you expect?)

Great for large projects that need guides, tutorials,
high level overviews, etc.

Can make it editable by anyone or collaborators-only.

Continuous Integration

A full compile for every push

TravisCI integrates well with GitHub,
supports numerous languages,
free for open-source projects

Will run your unit tests and email you
when someone broke the build

Use it to release for multiple targets simultaneously

Example TravisCI Configuration


 language: c
 compiler:
   - gcc
   - clang

 script:
   - ./configure && make && make test
  • Configures the project
  • Compiles the project
  • Runs the project's test suite

For both GCC and Clang
Every single time you push to GitHub

Package Managers


If your language / framework has a package manager, put your project on it.

The easiest way to get more users.

C# has NuGet

Tell People About It!


Post progress on programming forums

Search through StackOverflow for people with issues your library solves.

Make tutorial videos

Whatever you do, don't be spammy.
Nobody likes that.

Thanks


Dr. G
Professor Moorthy
Sean O' Sullivan
RCOS




Questions?

SHIP IT

By Robert Rouhani

SHIP IT

  • 1,453