views:

177

answers:

2

What's the right way to automate a lotus notes build process? I'm working with some folks who are using domino designer to build an NTF from lss files. I'd like to automate this process and get my hudson continuous integration server to build it without ruining the user experience for the developers.

Is there a standard way to script the production of NTF files from lss files?

+4  A: 

There is no real concept of a build process in Notes. All the artifacts are in the nsf file and to change them you need to go in with Domino Designer and modify / create them. You never have a bunch of source files outside of the nsf that then need to be built. You might be importing resources, but that would need to be orchestrated with the artifacts that can only be created by Domino Designer in the nsf itself.

Can you describe the problem you are trying to solve better? Do you understand how your Notes devs work?

It would be possible to inject artifacts into an nsf in such a way that it resembled a build process, but you'd have to have pretty deep knowledge of Notes / Domino to do it. There are Notes tools shops that have that knowledge and they may have a tool that solves your problem. But they will charge you for it. Try looking at ytria or teamstudio

Update

Creating an NSF file that will actually function as a usable app requires more than simple .lss or .java files. The NSF is made up of many other domino specific artifacts that would have to be considered. So first things first, your source control system is going to have to know about all of these artifacts. If you only have .lss files then you will need to get all the other artifacts.

DXL (mentioned in another post) will give you lots of the artifacts, but the last time I looked it was far from complete. In most places it will allow you to export binary versions of artifacts, that can then be imported back in. You'll want to test the round trip ability of these. Certainly the non-binary versions suffer from an inability to round trip with full fidelity in all circumstances.

If the fidelity of DXL isn't good enough for what you want then you would be left with dealing with the internal design notes using the Notes C API. This will give you all the access you could want and is what the previosly mentioned companies use for the their developer tools.

You would also need to consider the implications of security. Some artifacts may need to be signed with different credentials to others, depending on the security policies in place at your organisation.

While I don't know how IBM manage the process of maintaining the nsf files that come with Domino I strongly suspect that the nsf file itself remains the central point of control and that they are never built from a seperate collection of indivitual artifacts. They may be using tools like those from the companies above to help manage the development process, but that would not involve a traditional build process as you envision it.

kerrr
My goal is an automated process that takes what was committed to source control and produces an output artifact (a zip containing an NTF) following the pattern that IBM must use for the production of the 100s of NTF files in the standard notes distribution.If there is a way to script the designer, then that's enough for me.There must be otherwise the notes build for IBM would be a burden.
Peter Kahn
You're assertion that IBM *must* be using a process that takes individual external files and constructs ntf files, betrays your lack of knowledge of how domino works.I'll update my answer with some more details.
kerrr
+2  A: 

Depending on your details, an option may be to automate the process of creating a DXL file (Domino-specific XML schema) which can contain design element structures. You can then import the DXL to create a new NSF (or NTF).

These may help:

Discussion of the schema:

http://www.ibm.com/developerworks/lotus/library/domino-dxl/index.html

Articles with some sample import code:

http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/the-missing-dxl-import-menu-option?opendocument&comments

http://searchdomino.techtarget.com/tip/0,289483,sid4_gci1006378,00.html

Ed Schembor
Source files comprising DXL could work well with traditional build and source control systems if it weren't for the fact that DXL doesn't yet offer full fidelity in terms of describing a Notes database and its content.
Ben Poole