Size
- The source code is more than 100 MB.
- If the source code also exceeds 100 MB when it is compressed
Source Control
- There is no publicly available source control (e.g. cvs, svn, bzr, git)
- There is publicly available source control, but:
- There is no web viewer for it
- There is no documentation on how to use it for new users
- You've written your own source control for this code
- You don't actually use the existing source control
Building From Source
- There is no documentation on how to build from source
- Documentation exists on how to build from source, but it doesn't work
- Your source is configured…
- …with a handwritten shell script
- …by editing flat text config files
- …by editing code header files manually
- Your source isn't configurable
- You source builds with…
- …something that isn't GNU Make
- …a third-party proprietary build tools
- …something you wrote for this code
Bundling
- Your source only comes with other code projects that it depends on
- Your source code cannot be built without first building the bundled code bits
- You have modified those other bundled code bits
Libraries
- Your code only builds static libraries
- Your code can build shared libraries, but only unversioned ones
- Your source does not try to use system libraries if present
System Install
- Your code tries to install into /opt or /usr/local without explicitly telling it to do so
- Your code has no "make install"
- Your code doesn't work outside of the source directory
Code Oddities
- Your code uses Windows line breaks ("DOS format" files)
- Your code depends on specific compiler feature functionality
- Your code depends on specific compiler bugs
- Your code depends on Microsoft Visual Anything
Communication
- Your project does not announce releases on a mailing list
- Your project does not have a mailing list
- Your project does not have a bug tracker
- Your project does not have a website
- Your project is sourceforge vaporware
Releases
- Your project does not do sanely versioned releases (Major, Minor)
- Your project does not do versioned releases
- Your project does not do releases
- Your project only does releases as attachments in web forum posts
- Your releases are only in
- .zip format
- OSX .zip format
- .rar format
- .arj format
- an encapsulation format that you invented
- Your release does not unpack into a versioned top-level directory (e.g.
glibc-2.4.2/
)
- Your release does not unpack into a top-level directory (e.g.
glibc/
)
- Your release unpacks into an absurd number of directories (e.g.
home/johndoe/glibc-svn/tarball/glibc/src/
)
History
- Your code is a fork of another project
- Your primary developers were not involved with the parent project
- Until open sourcing it, your code was proprietary for:
- 1-2 years
- 3-5 years
- 6-10 years
- 10+ years
Licensing
- Your code does not have per-file licensing
- Your code contains inherent license incompatibilities
- Your code does not have any notice of licensing intent
- Your code doesn't include a copy of the license text
- Your code doesn't have a license
Documentation
- Your code doesn't have a changelog
- Your code doesn't have any documentation
- Your website doesn't have any documentation