My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

NEPTUNER - Code-Base Management Suite

Featuring UBoat Code Navigator

Neptuner is a codebase management suite. It puts together a set of tools to simplify and enable easier maintenance of source code. The tool-suite includes programs for: browsing, commenting/review, reformatting, enforcing coding standards, beautification, generating unit-test/boilerplate code, refactoring etc.

The current release is 0.30. Download the release from

View screenshots from http://code.google.com/p/neptuner/wiki/screenshots! Or, check out http://neptuner.googlecode.com/files/demo_uboat_neptuner_0_30.zip for a quick look at some Neptuner UBoat output.

Neptuner 0.30 includes tools that enable you to -

  • Create browse-packs out of your codebase. Share your codebase with ease. With Neptuner UBoat browse-packs, people can browse through and comment/review your code, using just a web-browser...no need to install anything! (UBoat)
  • Gather complexity information about your codebase - LoC, Nesting etc(Submarine)
  • Reformat your source-code (Torpedo)
Neptuner (as of 0.30) includes UBoat, a program which enables you to share browseable versions of your codebase. The Show me the code! step of Open Source is easier to do now! UBoat lets you easily browse/annotate/bookmark your codebase, without requiring you to install/run/configure stuff. Read more at UboatQuickStart.

RELEASE

Highlights of 0.30 are:

  • Linux builds
  • Export functionality
  • Code review report generation

Uncompress the file and you are ready to go! More details in info.txt in the released package or at http://code.google.com/p/neptuner/wiki/Neptuner_0_20.

The latest tag for the Neptuner is 0.30, which has been released. Latest builds of the trunk can be made from http://code.google.com/p/neptuner/source/browse/codebase#codebase/trunk/homebase

MOTIVATION

To simplify doing the stuff which, while important and "good" for a codebase, is considered too cumbersome and "boring" to keep doing systematically and consistently. It may also be difficult to script because of codebase information not being easily available .

Here's a brain-dump of the Neptuner Vision or "The Itches".

  • Easy Browse - Just want to read through the code to understand it, making notes as you go? Without setting up a project-file or making the code build first? Syntax-highlighting is good, but what exactly does fooBarSkedaddle over there mean?
  • Self-contained - Do I really need to install and configure that server and database as well? I just wanna browse the code!
  • Open Data - If only I had the kind of data the IDE has, I could tweak the entire code-base with my magic-script! It is your code, and the meta-data regarding that should also be yours. Restrictive UIs...browsers are for browsing aren't they? It would be cool to use my favorite browser-plugin while I am browsing my code... :(
  • Macro-level perspective - So many functions, so many files. How good is the code? How complex is it? What has happened since the last release? Lost in the code-labyrinth...?
  • Code Management Unit - Code should be managed at the level of data-types and functions, rather than at "just the" file-level. A code-management tool should exploit and leverage the structured nature of code rather than treat it as "just text".

NAME - Since the project started out targeting C-like languages, it is named after the Roman god of the Sea, Neptune. As of 0.10, C is supported, other C-like languages should also work (with variable mileage); other scoped languages will also be supported later. The components for Neptuner are named with a naval/war theme; it is a war with a sea of possibly chaotic code... ;)

CONTRIBUTE!

To join and contribute to this project, drop in a mail to sonofdelphi (at) gmail (dot) com. As of now (0.20), help is needed for

  • Language-Parsing - Only C is currently supported. Experimental for C-like. HTML/Javascript and C++ are planned for 0.21
  • Builds for Linux and Mac - Only Windows builds available currently
  • Client-side JavaScript programming - Provide more features currently available only from the command-line through the browser
  • Database Design - No database yet; plan to use SQLite embedded database
  • Server-side Design - No server-side component yet; plan to use embedded web server

OVERVIEW

SCUBA dives into the code and put the information in ARK in order to enable COMMANDOs to operate!

STRATEGOs

Applications which simplify codebase management. UBoat - Code-browser. Creates a browseable version of your codebase.

COMMANDOs

Programs on specific "missions". No expansion :) ...

  • Submarine - Function analyzer. Provides information regarding the complexity, return-related, call-chain, data-dependency of your functions.
  • Periscope - HTML converter. Generates browseable (not just syntax-highlighting) and commentable (double-click to add comments) versions of your source-code.
  • Torpedo - Reformat your source code - reindent, add end-of-scope markers etc.
  • Minesweeper - Data analyzer. Provides symbol information etc.
  • Sonar - Basic source-file information. Also used for verifying neptuner-core operation.

CORE COMPONENTS

  • SCUBA - Scope Controlled Unit Block Analyzer. Code parsing module - contains a rudimentary and approximate scope-based parser and a stats gatherer.
  • ARK - Analysis Repository for Kode :) Modules for storing the information regarding the code analyzed.

TOOLS USED

HISTORY

  • 20100510 0.30 Release Updates
  • 20100314 Getting ready for 0.30, switch to NetBeans
  • 20091215 Post 0.20 release updates
  • 20091012 Post 0.10 release updates
  • 20090824 Tool info, formatting
  • 20081219 Forced to rename as neptuno was already taken. neptuner is also fine, I guess
  • 20081118 Initial version

N E P T U N E R
For Code's Sake!
(C)2009 The Oraclique

Powered by Google Project Hosting