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

OSS checklist #1

Open
51 tasks
jladuval opened this issue Apr 5, 2018 · 0 comments
Open
51 tasks

OSS checklist #1

jladuval opened this issue Apr 5, 2018 · 0 comments

Comments

@jladuval
Copy link
Member

jladuval commented Apr 5, 2018

OSS Project Checklist

A copy of the below checklist could be obtained from https://github.com/scriptnull/oss-checklist (Help us make it better!)

Pre-checks

  • Able to explain your project in a tweet ?
  • Choose a name for the project
  • Check if domain name / App name is available ?
  • List and learn tools required for the project
  • Prepare mock-up and one page design document, if needed to explain to collaborators
  • List previous / similar implementations and learn from them
  • Start a blog post to document the journey ( if time permits ) Mention idea + helpful resources.
  • Ask if project could be solved in a modular way by dividing into sub-problems and creating a separate project for the sub-problems.

Project Creation

  • Create a Repository in any of the Source Control Management sites
    • Github ( Free public repos )
    • Gitlab ( Free public and private repos + CI + docker registry )
    • Bitbucket ( Free public and private repos )
  • Create a README.md (check below for more)
  • Create a LICENSE file (choose one before)
  • Create a CODE_OF_CONDUCT.md
  • Create a CONTRIBUTING.md
  • Create a .gitignore
  • Create Gitter chatroom (if needed)

README.md Checklist

  • Title
  • Logo
  • Badges
  • Description
  • Prerequisite for using software ( if any )
  • Install
  • Example Usage
  • Screenshots and GIFs
    • For command line apps, try asciinema
    • For mac GUI screenshots, use [Cmd+Shift+3] or [Cmd+Shift+4] or [Cmd+Shift+4,SpaceBar]
    • For mac GUI GIF creation, try kap
    • For Ubuntu GUI Screenshots, use [Shift+PrintScr] or Shutter
    • For Ubuntu GUI GIF creation, try silentcast
  • Benchmarks
  • Contributors
  • Backers and Sponsors
  • Attributions ( mention 3rd party libs used etc. )
  • Security
    • Post maintainer's PGP fingerprint for reporting security vulnerabilities
    • Share keybase profile for making the reporting process easier.

Coding Phase

  • Install required developer tools
    • Compiler
    • Linter
    • Formatter
    • Build Tool
    • Other
  • Basic code complete
  • Write tests and keep watch on code coverage
  • Setup CI
    • AppVeyor - CI/CD for Windows developers.
    • CircleCI - Docker-based building with support of customized workflows.
    • Codefresh - Docker-native CI/CD.
    • Codeship - Continuous integration, delivery, and deployment.
    • continuousphp - CI/CD for PHP applications.
    • DeployHQ - Deployment automation.
    • Sauce Labs - Cross-browser testing, Selenium testing, and mobile testing.
    • Semaphore - Fast automated CI/CD.
    • Shippable - DevOps automation.
    • Travis-CI - Automated CI/CD for Open Source.
  • Host the documentation of the code somewhere if the project is a software library
  • Use Github issues ( or other tools ) for tracking backlogs
  • Encourage OSS culture by having labels like "help wanted" "easy-to-contribute" etc.
  • Contribute to other OSS projects on which the current project is dependent on ( if possible )
    • File bug reports
    • Improve docs
    • Suggest feature
    • Learn by reading code

Release Phase

  • Package software in CI or manually in local
  • Publish in registries (npm, docker hub etc.) or markets (Android store, App Store etc.)
  • Create the release version, description, link for downloading the release etc. in release page ( example: Github release page)

Post-release

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

1 participant