Slashdot Mirror


Ask Slashdot: How Do You Track Bugs For Personal Software Projects?

An anonymous reader writes "One of my personal software projects grows bigger than I thought and the bugs becomes too many to just remember. I looked around for an open source bugs tracking system but found no ideal solutions. Ideally I wanted a simple system that does not need server setup and extra database setup, and can run under Mac OS X. Another option is a cloud service if it's affordable enough. Any suggestions from Slashdot?"

31 of 221 comments (clear)

  1. Mantis by Anonymous Coward · · Score: 5, Informative

    Been using Mantis for years, easy to install, easy to setup, easy to manage.

    1. Re:Mantis by cicatrix1 · · Score: 3, Informative
      --

      I know more than you drink.
  2. Lighthouse by Literaphile · · Score: 4, Informative

    They have a free plan - http://lighthouseapp.com/

  3. bugs.txt by Anonymous Coward · · Score: 5, Insightful

    check it in with your code, add and remove bugs as needed. 5 seconds of setup. Search and has a history.

    1. Re:bugs.txt by Rob+Kaper · · Score: 4, Interesting

      I wrote find-issues.sh, a script that extracts comments of a certain type within the code and then groups them by file. Downside: your code files change when you register a bug. Upside: when done right, your bug description is next to the code that needs fixing.

      Obviously won't work for distributed development, but for single-coder projects, it's really been useful to me.
      Note some assumptions and grep magic to exclude third-party files and other non-code files.

      #!/bin/sh

      LASTFILE=""
      egrep -ri "(WARNING|HACK|FIXME|TODO|BUG)" . | egrep -vi "(\.git|debug|/third-party|/locale|/prettify|doc/|/jquery-|lib/s3.php|/jwysiwyg/|^./(.*)\.(txt|conf|xml):(.*))" | while read LINE ; do
              FILE=`echo "${LINE}" | cut -d":" -f1`
              DATA=`echo "${LINE}" | cut -d":" -f2- | cut -d"/" -f3-`
              LEVEL=`echo "${DATA}" | cut -d":" -f1`
              COMMENT=`echo "${DATA}" | cut -d":" -f2-`

              if [ "x${LASTFILE}" != "x${FILE}" ]; then
                      if [ "x${LASTFILE}" != "x1" ]; then
                              echo
                      fi
                      printf "%s:\n" "${FILE}"
                      LASTFILE=${FILE}
              fi
              printf "%5s:%s\n" "${LEVEL}" "${COMMENT}"
      done

    2. Re:bugs.txt by gauauu · · Score: 3, Interesting

      Cool idea. What do you do when there's a bug but you don't know where in the code that it's caused?

  4. Try Trello by Anonymous Coward · · Score: 5, Interesting

    Try Trello, it is simple enough to use, free and cloud based.

    https://trello.com/

    1. Re:Try Trello by JonahsDad · · Score: 3

      Agree on this. We used trello for task managing and bug tracking for a small (2 person) work project and we were very happy with the results.

  5. Post a Press Release. by jellomizer · · Score: 5, Funny

    After every bug in my project you post a press release, discrediting the person who found the bug as some subversive agent, and explaining its uses of the bug in a positive light.

    After the press release is done, I like to go into a dark room with a rocking chair, plug my ears and go LA LA LA really loudly until someone else says there is an other bug.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  6. A text file by holophrastic · · Score: 3, Insightful

    I've got a few hundreds megs of perl code. I've got five text files of bugs / planned features / quirks.
    Not sure what features of a bug tracking system you seek. I need the file name, the function name, and a description. Text files are great, and far more portable and accessible than a spreadsheet.

    But I've never been one to like "proper" bug tracking systems. Of course, I'm not working with dozens of other developers.

  7. Dead project mining. by TheCycoONE · · Score: 4, Funny

    Find a dead project online, and hijack their bug tracker. Just as long as it's one where you can register without authorization and close your own bugs it should work brilliantly.

    1. Re:Dead project mining. by jellomizer · · Score: 4, Interesting

      Unless the project died from improperly managing bugs...

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:Dead project mining. by ckthorp · · Score: 3, Insightful

      Why bother with hijacking someone else system when you can just make a SourceForge project?

    3. Re:Dead project mining. by larry+bagina · · Score: 5, Funny

      sourceforge *is* a dead project.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

  8. Use unfuddle.com by Drake42 · · Score: 4, Informative

    I am not associated with them, nor employed by them. But I've used them for many projects now and been generally happy with the result.

    1. Re:Use unfuddle.com by strength_of_10_men · · Score: 3, Insightful

      Seconded. I use Unfuddle and am really satisfied. The basic/free service is great for personal or small team use and if your needs grow, you can upgrade to various paid levels.

  9. JIRA by rveldpau · · Score: 3, Informative

    How about JIRA? Used by Enterprises all over the place. You can get it OnDemand from Atlassian for $10 (which is actually just a donation to Room to Read). Check out http://www.atlassian.com/software/jira/overview

  10. highlighted comments in source by LodCrappo · · Score: 3, Insightful

    You say explicitly this is a personal project. That is why bug trackers aren't going to fit very well. Bug trackers are for teams of people to coordinate their efforts. They are mostly pointless if you're working alone.

    Just put your ideas, plans, comments, and bug notes right into the source. Most IDEs will let you easily flag sections so they stand out when desired, for instance Eclipse has the TODO: tag for exactly this purpose.

    Now your notes are seen every time you work on that section of code, and they benefit from versioning right along with the rest of the code (assuming you are using some sort of source control).

    --
    -Lod
    1. Re:highlighted comments in source by LodCrappo · · Score: 5, Insightful

      > What happens when you have more bugs than you have time to fix?

      You put a quick note in with a TODO tag

      > How do you choose which to work on first?

      You switch to a view that shows all your TODO tags and take your pick

      > How do you remember which ones lead to data loss, and which ones have a workaround?

      You type those details into the TODO tag

      > How do you remember how to reproduce each bug?

      See above

      > How do you manage patches?

      diff on commit = patch. no big deal.

      > How do you remember which patches are compatible with other patches?

      whatever man, you are really reaching here. make all patches compatible with all others, or pay the price. this is a personal project.

      > How do you track the number of reported occurrences of a bug so you can prioritize your fixes more intelligently?

      again, simply add this type of detail to your TODO tag

      --
      -Lod
  11. Redmine by Roadmaster · · Score: 4, Informative

    When I need to set up a self-hosted project and bug tracker, I normally use Redmine, which is very easy to use. It's written with Ruby on Rails, and so should be relatively easy to get a local SQLite-backed copy running on Mac OS using Rails' built-in mini web server.

    This post is overly complicated but some of its information may be useful:

    http://www.redmine.org/boards/2/topics/2768

  12. Fossil is the way to go. by Noryungi · · Score: 5, Informative

    Fossil (http://www.fossil-scm.org) is just great: it allows you to manage your code, documentation (wiki) and tickets (bugs).

    It's really small and lightweight, offers its own web interface and can be made to run on a central server with a CGI script. Oh, and it's free and open-source.

    It also scales very well: for instance the entire NetBSD code base has fossil repositories.

    I am currently re-starting some personal projects and I will be using fossil almost exclusively for these. It's simply fantastic.

    --
    The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
  13. Fog Bugz by mgreider · · Score: 3, Informative

    We use https://www.fogbugz.com/ and have been happy with it. It has more features than you'll need to a small project. They have free versions for single users.

    --
    -- Best Greetings Cards Ever :: www.sm-mancards.com
  14. Way Too Complicated by MyLongNickName · · Score: 4, Insightful

    Okay, first I'm not given a lot of info about what you are trying to do, so I am forced to make assumptions. First, you are doing this part-time. Second, you have a small amount of users. Third, I assume these users either email you or tell you about problems in person. Fourth, you don't have any need to formally update people on statuses.

    I have a great solution for you. It is called a spreadsheet. The positive is that is it free, easy to use and modify to suit your needs. No, it isn't flashy, but I find that folks tend to use software as a replacement for their own brain and creativity. I've used spreadsheets for a lot of different utilities from project management, to bug tracking to help desk support in small environments. Once the user base sees limitations, they can begin to see what they truly need and it helps immensely in determinng what the desired solution really is versus what the Microsoft shill^h^h^h^h^h consultant tells them they need.

    So, yes, use a spreadsheet. Heck, in your case it really sounds like a text editor would meet your needs.

    --
    See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
  15. Call me old fashioned, but... by JustAnotherIdiot · · Score: 3, Interesting

    ...I prefer to list out stuff like that in a journal using pen/paper.
    I get a great personal satisfaction drawing a line through fixed bugs over just deleting a line of text or checking a box.

    --
    What do I know, I'm just an idiot, right?
  16. Re:Why track? by dark12222000 · · Score: 3, Insightful

    That works great - when you only have a few hundred lines of simple code. However, when you have 200k lines, a couple hundred different files, and some very complex functionality, you need a more complex system.

    In addition, how do you manage multiple contributors? How do you deal with letting your users know when bugs are fixed? How do you deal with issues that only occur in a very small amount of edge cases?

    It's one thing to fix some code you fat fingered or to clean up some API calls. It's an entirely different thing to fix bugs in 200k lines of non-deterministic code that runs on 3+ platforms.

  17. Wait a second... by kid_wonder · · Score: 4, Funny

    I'm confused. You actually keep track of problems with your personal projects in the hopes of completing them one day?

    I must be doing it wrong because I start a project and as soon as i get to the first major design issue, or meal time, i quit.

    so i don't really ever have any bugs, per se. but i do have an svn with a sh*tload of half ass projects that i can let you have real cheap.

    --

    "Oh, you hate your job? There's a support group for that, it's called everyone, they meet at the bar."
  18. Re:Fix them by RustNeverSleeps · · Score: 3, Informative

    This is fine for small, truly personal projects, but once you have a product with other users (as I do), you end up having to prioritize bug fixes. You simply can't fix every single bug right when it's reported. Bug trackers are also good for keeping track of new features to be added in the future, refactoring you'd like to do, etc.

  19. Turnkey Redmine by PatDev · · Score: 4, Informative

    http://www.turnkeylinux.org/redmine Seriously. I had an issue tracker running in 5 minutes. By 15 minutes I had the settings the way I wanted it. They ship you a virtual machine image. You load it into VirtualBox and click start. The VM loads to a little screen that tells you what IP address the redmine is running at. It also has git i installed, and it was super quick to migrate my git repo into it. Since I use redmine with git, it's really handy because they are already integrated - when I put "refs #32" in my git commit message, it appears on ticket #32.

  20. Git + Unit Tests by Kergan · · Score: 3, Insightful

    Host your project on github or BitBucket, whatever. They all offer a bug tracker. Using an SCM allows to know when a bug has been introduced after writing the proper test.

    Speaking of which, and even more importantly: WRITE THOSE F*CKING UNIT TESTS!

    I cannot stress the last point enough. If you're introducing bugs in your releases, either you're not writing unit tests, or not writing the ones that count (aka the higher level ones), and not using every tool at your disposal to avoid bugs in the first place (test coverage, static analyzer, etc.). You should always strive for 100% test coverage and zero trivial bugs when releasing.

  21. Re:todo.txt by NevarMore · · Score: 5, Funny

    I file mine in my todo.txt, which also includes missing features. Since I don't do a release if there are *any* known outstanding bugs, "bugs" and "incomplete features" are essentially the same for me.

    So you never release?

  22. org-mode in emacs by hardaker · · Score: 3, Informative

    Emac's org-mode system is fantastic for things like this. It has TODO tracking with scheduling, etc, and you can put one file in each project or one global file for just you, or ... Your choice!

    --
    The next site to slashdot will be ready soon, but subscribers can beat the rush and start slashdotting it early!