Saturday, January 5, 2008

Requirements as versioned documents

A requirements document is almost always under revision control. Any requirements management process worth it's salt has a change process. But individual requirements as versioned documents... Again, requirements can be tied to code releases. And it should make the change process easier, as well as querying for requirements. A requirements compatibility matrix could be generated (based on versions of each requirement.) Requirements implemented in this release is just another generated document, based on the source control logs.

Tests as versioned documents

A test under version control could also be branched with a code release. A versioned test suite could change to meet new requirements. A tag of tests could be a suite. Versions could even keep track of test completion status and actual results, but that might be going too far.

Bugs as versioned documents

A bug that is a document under version control could have the heading and description edited without worrying about affecting credibility. Previous versions of the bug would contain the original text. A bug under version control could be branched, and branches could be tied to certain code branches or tags.

Document centrism

A test is a document
A bug is a document
A requirement is a document
A task is a document

A document should have the following capabilities:
Editing,
Versioning,
Commenting,
Sharing,
Searching

A semantic document (like XML) could also be queryable, and have better searching. It could be populated from a template plus data.

Reports are documents generated from a template plus data.
Forms are applications that retrieve data, potentially by processing documents.

A collection of tests, requirements, or bugs is a report generated by querying multiple documents.

System Integrator

According to wikipedia, One Shore pretty much matches the definition of a system integrator.
We pretty much build a QA system from open source parts. A QA site is a hosting solution, a Linux server or VPS, a collection of open source tools, including version control (svn,cvs), build automation (ant, maven, luntbuild), bug tracking (bugzilla, trac, mantis), test management (qatraq, test-site, testopia), automated tests(fit, testng, junit, selenium, watir, samie)project management (dotproject, phprojekt, trac), document management (knowledgetree, alfresco), wiki (dokuwiki, dekiwiki, moinmoin, trac), forum(punbb), blogs(wordpress-mu), etc. and integrating them.

I noticed trac is in there three times. Fit and trac are popular for a reason, and I think it has to do with document-centrism.

Friday, January 4, 2008

Java EE5 setup

Installation Directory [/opt/SDK]: /opt/java/ee5/sdk
Admin User [admin] : admin
Admin Password : secret123
Admin Port: 4848
HTTP Port: 8080
HTTPS Port: 8181
The following items for the product Java Platform, Enterprise Edition 5 SDK
will be installed:

Product: Java Platform, Enterprise Edition 5 SDK
Location: /opt/java/ee5/sdk
Space Required: 215.65 MB
------------------------------------------------
Java 2 SDK, Standard Edition 5.0
Sun Java System Message Queue 4.0
Sun Java System Application Server Platform Edition 9 Update 1
Sample Applications
Java BluePrints
First Cup of Java Tutorial
Open ESB Starter Kit with JBI and BPEL

------------------------------------------------


Installation Successful.

Next Steps:

1. Access the About Application Server PE 9 welcome page at:
file:///opt/java/ee5/sdk/docs/about.html

2. Start the Application Server by executing:
/opt/java/ee5/sdk/bin/asadmin start-domain domain1

3. Start the Admin Console:
http://localhost:4848

Java 6 on Fedora, CentOS5, RHEL5 needs compat-libstdc++-33.i386

I downloaded Java 1.6 with EE 5 and tried to install it on CentOS 5. But it complained about libstdc++.

./java_ee_sdk-5_01-linux.bin: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

I have libstdc++ installed, but have /usr/lib/libstdc++.so.6.0.8

Sun has a bug on it.

Aparently, Fedora, Redhat, and CentOS are not supported. What they needed was to statically link. The solution is to install a previous version of libstdc++ (libstdc++.s0.5). You can do that with yum:

yum install compat-libstdc++-33.i386

and then run the java installer:

./java_ee_sdk-5_01-linux.bin

--

I got Java 1.6 installed, but java_ee_sdk-5 is still hanging:

see http://docs.sun.com/app/docs/doc/820-0135/gazry?a=view

export JAVA_HOME=/usr/java/jdk1.6.0_03

Bugzilla, CPAN, CentOS, VMWare, VPSLAND

I've been fighting with VMWare, CPAN and CentOS this week.

Okay, really only fighting with VPSLAND, who say they've fixed my account and allow me to re-order. Wrongo. Account not fixed. Ability to order (even with a new account) not possible. So I guess I have to look for another hosting provider.


What I've been doing in the mean time is setting up a VMWare server instance of CentoOS 5. My first goal is getting a development version of Bugzilla running so I can start on writing some tests and dig into improving the Bugzilla Webservice module. That was three days ago.

To be fair, I've been sick, and yesterday I mostly played Tower Defense, a cool flash strategy game. Possibly my new favorite after Dicewars.

VMWare has been flaky with network connections, making it difficult to download dependencies. Part of the problem is my piece of junk Gateway MT3423 laptop, combined with Windows Vista Ultimate, which has made losing wifi a frequent occurence. The other part is with either VMWare or Vista, or the two in cohoots, dropping the connection. It seems VMWare is unable to establish a connection after Windows loses it and regains it. Not without a hard boot at least. I plugged into the router today to fix that, and have been merrily downloading, building, and testing all day.

That's right. It took all day to resolve the dependencies, using CPAN, Yum, RPMFind, and building from scratch when necessary. This is not a process I look forward to with client sites. I still don't have mod_php or java set up.

I wanted to have hand compiled perl,php,apache, apache modules, perl modules, etc. that I could copy from my CentOS VM to a production site, but that's not happening yet. I'm itching to do some development.

CPAN truly is a fragile monstrosity that makes DLL hell look like Nirvana and RPM hell like Moksha. It's the number one reason not to use Perl. But unfortunately, also the number noe reason to use Perl.

I have a working Bugzilla on Windows, using PPMs, but 001compile.t fails on install_module.pl and CPAN.pm. I talked to someone on #mozwebtools about it, but didn't get any info. I wouldn't want to support a Windows/ActivePerl install either. It looks to me like it's just coded to use 'cpan install', and not 'ppm install.' I could have got by, but want to have as clean a test environment as possible for when I ask questions.

Once I got all the bugzilla perl dependencies installed (XML::Parser has circular dependencies that can't be resolved vi CPAN, Chart::Base apparently wasn't on any of the mirrors, and GD just plain doesn't work), then I ran into what I thought was a breaker. It looked like VMWare was up to no good with the network interface, but I guessed, and discovered that CentOS has restrictive firewall rules that prevent anything but localhost from accessing all but port 22 (SSH) and ping requests. I just turned IPTables off for now, and then, after some messing with httpd.conf, I finally got bugzilla working.

Email is next. I can send email from the command line now, but bugzilla didn't send an admin email.