NEPTUNER - Code-Base Management SuiteBrowse, Discover, Tweak!
Neptuner 0.20 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 is a codebase management system. 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.
Neptuner (as of 0.20) 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. Check out http://neptuner.googlecode.com/files/demo_uboat_neptuner_0_20.zip for a quick look at some Neptuner UBoat output. Read more at UboatQuickStart.
RELEASEThe current release is 0.20. Download it from http://neptuner.googlecode.com/files/neptuner_0_20.zip. Just unzip 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.
Beta release - UI comments/feedback would be a great help! UBoat - Code Browser which enables you to "Show Me The Code!" easily No need to run, demo output available in the unzipped demo directory. Packaged executables will work on self-complete C source files. You may also try it on C-like languages C#, Java, C++... Even if you don't have a C code-base at hand, you can still get some functionality out of this.
The latest tag for the Neptuner is 0.20, which has been released.
The next release Neptuner 0.30 is slated for March 28, 2010 (Neptuner2K9). Highlights are:
Linux builds Minor-edit support Export functionality Fixes for C++
Latest builds of the trunk should be available from http://code.google.com/p/neptuner/source/browse/codebase#codebase/trunk/homebase
MOTIVATIONTo 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
OVERVIEWSCUBA dives into the code and put the information in ARK in order to enable COMMANDOs to operate!
STRATEGOsApplications which simplify codebase management. UBoat - Code-browser. Creates a browseable version of your codebase.
COMMANDOsPrograms 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 COMPONENTSSCUBA - 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 USEDPrimary IDE, Build - Visual Studio Express C++ 2008 - http://www.microsoft.com/express/vc/ Secondary IDE - NetBeans - www.netbeans.org/ UML diagrams - StarUML - http://staruml.sourceforge.net/en/ Brainstorming - FreeMind - [http://freemind.sourceforge.net/ HISTORY20100314 Getting ready for 0.30, switch to NetBeans 20091215 Post 0.20 release updates 20091012 Post 0.10 release updates 20090824 Tool info, formatting 20091219 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