• Stars
    star
    1,130
  • Rank 41,185 (Top 0.9 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 11 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Check your project for common sources of contributor friction.

Flint

Check your project for common sources of contributor friction.

For the Non-Developer

Flint checks if your project's folder contains the proper files and structure to allow potential contributors to understand: 1) the project's goals, 2) how to contribute, 3) usage guidelines, and 4) how to install the project.

Install

If you've got Go installed, you can install flint with Go's command line interface:

go get github.com/pengwynn/flint

If you don't have Go installed, you can download a prebuilt binary for your platform, optionally renaming it to "flint" for convenience.

If you are on macOS and are using Homebrew as package manager you can install flint with:

brew install flint-checker

You can test your installation by running flint --version from any folder.

Usage

Run flint from your project root to check for some common ways to improve the experience for potential contributors. Here's the output for a blank folder to show the full gamut of suggestions:

~/projects/dream
โฏ flint
[ERROR] README not found
[INFO] Every project begins with a README. http://bit.ly/1dqUYQF
[ERROR] CONTRIBUTING guide not found
[INFO] Add a guide for potential contributors. http://git.io/z-TiGg
[ERROR] LICENSE not found
[INFO] Add a license to protect yourself and your users. http://choosealicense.com/
[WARNING] Bootstrap script not found
[INFO] A bootstrap script makes setup a snap. http://bit.ly/JZjVL6
[WARNING] Test script not found
[INFO] Make it easy to run the test suite regardless of project type. http://bit.ly/JZjVL6
[CRITICAL] Some critical problems found.

You can also run this in older projects which were created by lazy you, or by younger, less wise you.

If you want to check a remote GitHub repository, you can now do so without cloning:

โฏ flint --github pengwynn/dotfiles
[ERROR] CONTRIBUTING guide not found
[INFO] Add a guide for potential contributors. http://git.io/z-TiGg
[WARNING] Test script not found
[INFO] Make it easy to run the test suite regardless of project type. http://bit.ly/JZjVL6
[CRITICAL] Some critical problems found.

Passing the -h flag will show full usage options:

โฏ flint -h
NAME:
   flint - Check a project for common sources of contributor friction

USAGE:
   flint [global options] command [command options] [arguments...]

VERSION:
   0.0.4

COMMANDS:
   help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --skip-readme        skip check for README
   --skip-contributing  skip check for contributing guide
   --skip-license       skip check for license
   --skip-bootstrap     skip check for bootstrap script
   --skip-test-script   skip check for test script
   --skip-scripts       skip check for all scripts
   --no-color           skip coloring the terminal output
   --github, -g         GitHub repository as owner/repo
   --token, -t          GitHub API access token [$FLINT_TOKEN]
   --help, -h           show help
   --version, -v        print the version

Philosophy

If you want people to use and contribute to your project, you need to start by answering their most basic questions. Flint is a command line script that will check your project for common answers to these questions.

What is this?

Since it is so important, GitHub founder Tom Preston-Werner suggests you should write the README before you write a single line of code. A well crafted README includes:

  • A description of problems your project solves.
  • The philosophy behind your project.
  • Basic usage and getting started instructions.
  • A list of comparable projects that inspired yours or would be suitable alternatives.

How am I allowed to use it?

Providing the source to your project isn't enough. While you don't have to provide a license, doing so will make it clear to users and potential contributors how they can legally use your software and what happens to contributions they make. Choose A License can help you pick the right license for your project.

How do I contribute?

You'll want to tell folks about your development workflow so they'll know how to submit patches for bugfixes and new features. When you add CONTRIBUTING guidelines to your project, GitHub will make those available at the top of every new Pull Request screen.

How do I get up and running in development?

A bootstrap script is a thoughtful way to let new users (and future versions of yourself on new hardware) get up and running quickly. A good bootstrap script detects and installs all project dependencies. Don't make your less technical users learn devops. Make it as easy as running script/bootstrap.

How do I make sure my new features didn't break old functionality?

Good software projects have test suites that ensure the code works as advertised. Even within language communities, there can be a myriad of test frameworks. You can make it easy to run the test suite with a platform agnostic script/test executable.

Maintainers

@pengwynn

Copyright 2014 Wynn Netherland.

More Repositories

1

dotfiles

$HOME sweet ~/
Shell
378
star
2

grc

Mirror of Radovan Garabรญk's - Generic Colourizer for terminal apps
JavaScript
136
star
3

rdio-cli

CLI for Rdio on Mac
Ruby
101
star
4

fumblr

Stop fumbling with your Tumblr theme development - mashup of my own process with Thimblr
Ruby
98
star
5

compass-wordpress

Compass plugin for creating WordPress themes using Sass
Ruby
89
star
6

compass_formalize

Compass and Sass port of Nathan Smith's Formalize project
JavaScript
84
star
7

octonaut

Simple CLI for GitHub
Ruby
70
star
8

chargify

Ruby wrapper for the chargify.com SAAS and billing API
Ruby
61
star
9

gowalla

Ruby wrapper for the Gowalla API.
Ruby
57
star
10

sass-and-compass-in-action

Code samples for Sass and Compass in Action
CSS
50
star
11

topsy

Ruby wrapper for the Topsy.com Otter API
Ruby
33
star
12

pingwynn

Questions, feedback, suggestions, etc. ๐Ÿง
28
star
13

presto

Padrino + NestaCMS
Ruby
26
star
14

athena-cli

CLI for Amazon Athena, powered by JRuby
Ruby
24
star
15

groupon

Ruby wrapper for the Groupon API
Ruby
20
star
16

transparency-data

Wrapper for the Sunlight Transparency Data API
Ruby
19
star
17

chunky-baconfile

Tasty wrapper for the Baconfile API
Ruby
14
star
18

plancast

Wrapper for the unpublished Plancast API
Ruby
13
star
19

ujs_sort_helper

Unobtrusive sort helper for Rails
JavaScript
12
star
20

readernaut

Ruby wrapper for the Readernaut social reading site API
Ruby
11
star
21

formstack

Ruby wrapper for the Formstack API
Ruby
9
star
22

dallasrb-shell

Ruby
7
star
23

buzzsprout

Ruby wrapper for the ghost Buzzsprout API
Ruby
6
star
24

nesta-plugin-sluggable

Sluggable posts for Nesta CMS
Ruby
6
star
25

authentic_jobs

Find your next gig from the console. Ruby wrapper for the Authentic Jobs API
Ruby
5
star
26

nesta-plugin-linkable

Easy link posts for Nesta CMS
Ruby
5
star
27

backtweets_helper

Rails helper for Backtweets widgets
Ruby
5
star
28

thor-tasks

Utility thor scripts
Ruby
4
star
29

nextstop

Ruby wrapper for the Nextstop.com API
Ruby
4
star
30

giact

Ruby wrapper for the Giact POST API
Ruby
3
star
31

textmate-themes

My TextMate themes
3
star
32

titanium-toolbox

WIP Ti boilerplate across several projects
3
star
33

octokit-sandbox

Play area for experimenting with Octokit
2
star
34

pengwynn.github.com

HTML
2
star
35

nesta-plugin-project-meta

Plugin for Nesta CMS to show Github, Rubygems data for projects
Ruby
2
star
36

an-test

1
star
37

bleikamp.github.com

Personal site of Internet celebrity Ben Bleikamp
1
star
38

ti-vim-snippet

`ti` snippets for writing `coffescript` and `sass`
1
star