GB2428498A - Software build management system - Google Patents

Software build management system Download PDF

Info

Publication number
GB2428498A
GB2428498A GB0515039A GB0515039A GB2428498A GB 2428498 A GB2428498 A GB 2428498A GB 0515039 A GB0515039 A GB 0515039A GB 0515039 A GB0515039 A GB 0515039A GB 2428498 A GB2428498 A GB 2428498A
Authority
GB
United Kingdom
Prior art keywords
instant messaging
robot
build
software build
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0515039A
Other versions
GB0515039D0 (en
Inventor
Michael Desmond
Mark Ernest Wallace
Richard Pitkin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to GB0515039A priority Critical patent/GB2428498A/en
Publication of GB0515039D0 publication Critical patent/GB0515039D0/en
Publication of GB2428498A publication Critical patent/GB2428498A/en
Application status is Withdrawn legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Abstract

A software build management system comprises a computing architecture, the architecture running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application. The instant messaging robot is configured to monitor the progress of each software build. The architecture preferably comprises a software build machine and an instant messaging server, the software build machine running each software build.

Description

SOFTWARE BUILD MANAGEMENT SYSTEM

This invention relates to a software build management system and to a method of software build management. The software build management system uses an instant messaging application.

It is common for software products or components to be created by a team of software engineers. Usually the software build process will be initiated by one or more engineers and the build will continue until a satisfactory product had been developed.

With technologies such as Apache ANT the software build process is now fully automated. A build engineer will begin a build using a build script on a build machine and will monitor the progress of the build. When the build engineer realizes that the build is complete they will notify interested parties of the status of the build. The typical mechanism is to write up and send an email to the interested parties.

Build technologies such as Apache ANT also contain mechanisms that allow the automated sending of email notifications as the build completes.

For example, see http://ant.apache.org/faq.html The build script can also append the build results to a web page of builds that have been completed.

For smaller development teams it is sometime awkward to have a single build engineer controlling the build, the engineer may be sometimes out of action. Also build engineers and developers must access a single build machine and know how to initiate the build. Finally, using email to notify of build status is an asynchronous communication mechanism and may not be immediately noticed by the party receiving the mail.

It is therefore an object of the invention to improve upon the known art.

According to a first aspect of the present invention, there is provided a software build management system comprising a computing architecture, the architecture running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application, the instant messaging robot being configured to monitor the progress of the or each software build.

According to a second aspect of the present invention, there is provided a method of software build management comprising running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application, the instant messaging robot being configured to monitor the progress of the or each software build.

According to a third aspect of the present invention, there is provided a computer program product on a computer readable medium, for operating a software build management system and comprising instructions for running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application, the instant messaging robot being configured to monitor the progress of the or each software build.

Owing to the invention, it is possible to provide a solution that will simplify the initiation of a software build, make the ability to start a build available to other members of a software team in a simple, secure and effective manner and provide instant notification of build events and build logs to interested parties.

Advantageously, the architecture comprises a software build machine and an instant messaging server, the software build machine running each software build.

The use of an instant messaging application to provide an interface to the build system and also use the instant messaging application to notify interested parties of build status (such as duration, success/failure, build logs) provides a simple solution to the problem of software build management. The instant messaging applications security mechanisms can be used to control visibility and access to the build functionality, and the instant messaging naming scheme is used to identify and contact (text messaging and file transfer of build logs) parties (users and groups) interested in build status and events.

An instant messaging robot (a headless instant messaging client programmatically controlled) is created and represents an interface to the build process. The robot is just like any other instant messaging user, but understands structured commands. The robot can be configured to manage a number of build configurations specified in an xml format that can be modified on the build machine.

Any instant messaging user can create a chat session with the instant messaging build robot, which the user can use to query the build configurat05 available and to initiate a build using very simple structured commands for example, build <project>. The robot will initiate the build process on the build machine and add listeners to notify the initiator of the build of the build status and also create instant messaging sessions to other parties that are configured as being interested in the build.

Using this mechanism (or a similar mechanism) users can manage their builds remotely and transparently, security is handled by the instant messaging application. Dissemination of build information and build logs is handled automatically by the instant messaging applicationS Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:- Figure 1 is a schematic diagram of a software build management system, Figure 2 is a flowchart of a method of operating a messaging system robot, Figure 3 is a screen shot of an instant messaging application, Figure 4 is a screen shot of a chat window of an instant messaging application, Figure 5 is a flowchart of a sample robot operation, Figure 6 is a further screen shot of a chat window of an instant messaging application, Figure 7 is a flowchart of a second sample robot operation, Figure 8 is a further screen shot of a chat window of an instant messaging application, Figure 9 is a flowchart of a third sample robot operation, Figure 10 is a flowchart of a fourth sample robot operation, Figure 11 is a further screen shot of a chat window of an instant messaging application, Figure 12 is a screen shot of a notification from the robot, and Figure 13 is a screen shot of an announcement from the robot.

Figure 1 shows a software build management system comprising a computing architecture io. The architecture 10 comprises a software build machine 12 and an instant messaging server 14. The architecture 10 runs one or more software builds 16, the software build machine 12 running each software build 16. In addition, the architecture 10 is also running an instant messaging application 18, which will be run Predominantly by the instant messaging server 14, but is effectively a distributed application with the server 14 being in communication with multiple clients 20.

The system 10 also includes an instant messaging robot 22 as a client of the instant messaging application 18, the instant messaging robot 22 being configured to monitor the progress of each software build 16. In the embodiment sho in Figure 1, the software build machine 12 is running the instant messaging robot 22. The robot 22 has access to project manifests 24 on the build machine 12.

The robot 22 is configured with a project specification file; this file is encoded as 1 and contains the list of build projects (build configurations) . The term "project" refers to a build project and not the more conventional software project. One or multiple build projects can refer to a single physical software project, where each build project may build a different configuratj0 of the physical software project or a particular part of the physical software project. The project (build configuration) contains all the information that the build service needs in order to Physically execute the build and provide notifications. The project specifies the path to the build file which contains information concerning how to physically carry out the build, the file also contains other options such as access control, notification list, what to name the log file, where to store the log file and other pertinent options. All projects (build configurations) are stored in a single file, each project is represented as a sub element in this file, and each sub element is called a project manifest' The build engineer or a developer must write this file. The robot reads this file in order to know what projects are available for users to build and the details of how to build them when the time Comes The build robot 22 is implemented as an instant messaging robot 22 (Programmaticaly controlled headless client). The robot 22 runs on the assigned build machine 12. The robot 22 has an identity in the same manner as any other instant messaging user and logs into, and communicates with, the instant messaging server in the same way as any other client 20 of the instant messaging application 18. A user of the instant messaging application 18 sees the robot 22 as a user of the instant messaging application 18.

Once the robot 22 is up and running, it can be contacted by any other instant messaging user 20 using chat. The robot 22 can be hidden from those users who are unauthorized to perform builds by setting an appropriate Privacy list. Figure 2 illustrates the chain of communication for a client who wishes to contact the instant messaging robot 22.

The first stage of the communication with the robot 22 is the step 210, which is the action of the client 22 logging into the instant messaging application 18. The user will then check (step 212) whether the robot 22 is present in the contact list of their client 20. If the robot 22 is not present, then the user can add the robot 22 to their contact list (step 214) . Figure 3 shows a screen shot of an instant messaging client 20, showing the users contact list, with the robot 22 present, at the bottom of the list of contacts, described as Build Bot".

Once the user has the robot 22 in their contact list they can contact the software build robot 22, at step 216. This can be achieved in the conventional manner, by double_clicking on the contact in the contact list, or using the cursor keys to highlight the Build Bot" and then Pressing the return key to select that contact. Once the user has selected the robot 22, then a new window will be launched, an example of which is shown in Figure 4.

Figure 4 shows the chat window 28 that opens when a user contacts the robot 22. The instant messaging robot 22 is configured to respond to structured commands from other clients 20 of the instant messaging application 18. If the robot 22 is contacted by a client 20, in a defined manner, the robot 22 will send to the user a list of commands that the robot 22 supports. In the screen image shown in Figure 4, the user has typed "help' into the text entry portion of the interface and sent that chat to the robot 22. The robot 22 has replied with a list of the structured cornands that the robot 22 understands, with a short explanation of each command The user is effectively now at step 218 of Figure 2 and can select in turn one or more services offered by the robot 22.

Four services are sho in Figure 4, by way of illustration, but extra and different services could be off ered according to the needs of the software build process The first service [show], which corresponds to the step 220 in Figure 2, will instruct the robot 22 to display a list of all currently configured projects The second service [show] [project], which corresponds to the step 222, will instruct the robot 22 to display the details of the named project. The third service [status] [project], which corresponds to the step 224, will instruct the robot 22 to display the current status of the named project. The fourth service [build] [project] [buildTag] will instruct the robot 22 to begin a new software build 16 under the specified tag name selected by the user.

Figure 5 shows a flowchart of the operations of the robot 22 when the step 220 of Figure 2 is executed. Figure 6 shows the corresponding screen shot 28 of the chat window, following the sending of the structured command "show" by a user from a client 20 to the robot 22. Step 510 shows the receipt by the robot 22 of the request for details of the available projects The robot 22 executes the step 512, retrieving the project details, and the step 514, sending the list to the client 20 making the request and then terminating (returning to step 218 in Figure 2).

As can be seen in Figure 6, when the user types in "show", triggering the robot 22 to retrieve and send the list of current projects, the instant messaging application 18 will display the list of projects in the chat window 28. In the example shown in Figure 6, three projects are currently available, with the names: com. ibm. sametirne. bot, com.ibm.sametirne. buildlistefler and corn. ibm. sametirnebuilderbot Any client 20 who has access to the robot 22 through the instant messaging application 18 can send this structured coand to the robot 22 and discover the current projects being monitored by the robot 22.

Figure 7 shows a flowchart of the operations of the robot 22 when the step 222 of Figure 2 is executed. Figure 8 shows the corresponding screen shot 28 of the chat window, following the sending of the structured command show com.ibm.sametjme hot" by a user from a client 20 to the robot 22.

This command is used by the user to obtain the details of the specific project.

Step 710 shows the receipt by the robot 22 of the reest for details of the specific project The robot 22, at step 712, first checks that the named project does exist, and if it does not, then at step 714, the robot sends an error message back to the user. If the project does exist, then the robot 22 executes the step 716, retrieving the project details, and the step 718, sending the details to the client 20 making the reest, and then terminating (returning to step 218 in Figure 2).

As can be seen in Figure 8, when the user types in show com. ibmsametimebot. the robot 22 retrieves and sends the details of the requested project The instant messaging application 18 will display the details of the project in the chat window 28. The content of the information concerning each project is defined by the prograing controlling the robot 22. Depending upon the needs of the users of the system 10, the information can include details such as the name and location of the build file containing the project and the details of the users with access to the robot 22.

Figure 9 shows a flowchart of the operations of the robot 22 when the step 224 of Figure 2 is executed. Step 910 shows the receipt by the robot 22 of the request for the status of the specific project The robot 22, at step 912, first checks that the named project does exist, and if it does not, then at step 914, the robot 22 sends an error message back to the user. Users can query the status of projects using the command interface.

If the project does exist, then the robot 22 executes the step 916, retrieving the project details, and then, at step 918, checks to see whether the project is building. If the named project is building, then a project building message is sent back to the requesting client 20 (step 920) . If the named project is not building, then a project available message is sent back to the requesting client 20 (step 922). Following the sending of either message to the client 20 making the request, the execution cycle terminates (returning to step 218 in Figure 2) The robot 22 has a number of configured projects that it knows how to build. The projects are configured Using an xml file deployed by a build engine and available to the robot 22 at runtime. The configuratj file Consists of a number of project elements.

An example of an xml COflfigurat file is given below: <?xml versjon'l Qfl <projec_> <proj ect> <name>com. ibm. sametime. builderbot</flame>

<description>Bujlder robot project</descripj0>

<build-f ile>D* \workspace\comibmsamet.b.ld </build- file> <log-f ile>build log</log_fj> <log-fj1e_pat>. \web\</1ogfi1e_p> <transfer_1og_file>t</tf1 <bui ld-args>< /bUild-args> <acl>User</acl> <flOtify>us, ls colleague</notjfy> </proj ect> <project> <narne>com ibm. sametime. bot< /name> <description>Sametime robot framework proj ect</descript ion> <bUild-f ile>* \workspace\comibmgametib\b </build-file> <log-fi1e>bui log</log_fj> <log-fi1e_pat>. \web\</1og_file_p> <lO_file_ur1>p: //9.128.25.93 /</log-file_ur> <timestap_log_f> true</timestamp_1og_fj> <build-args></ ld-args> <acl>user</acl> <notify>user, 1 colleague, 2nd COlleague</notify> </project> <proj ect> <name>com. ibm. sametimebuildlistener</nam <description>Setime robot build listener</descrjption> <build-file> D: \workspace\comibmset.b.ldl.

</build-fjle> <log-file>buil log</log_fjle> <log-fi1e_path>. \web\</log_fjle_p> <log_file_url>http.//9 128.25. 93/</log-file-url> <transfer_log_file>true</tfl5f10gf.1 <timestarnp_log_file>tru</tj1.

<build_args></bui1d_g5> <acl>user</acl> <noti fy>user< /noti fy> </proj ect> </proj ect-set> Using the configurati file the robot 22 knows how to initiate a build 16. Users can start builds 16 using a simple build command from their instant messaging client 20, this means that the build mechanism is completely location independent. Once the build 16 is initiated the robot 22 monitors the build process and adds build listeners (See Apache ANT BuildListener mechanism) to get build information from the running build 16.

During the build 16 the robot 22 Periodically sends instant messages to the build initiator describing the build progress. When the build starts/completes/during the robot 22 notifies interested parties of build status as configured in the project configuration The robot 22 also posts the build log to a web server and includes the URL in the build notifications.

The robot also transfers the build log to the user directly, this is an optional feature specified in the project configuration Interested parties can be configured to receive chat sessions or announcements describing the build that is taking place.

Figure 10 summarises the actions taken by the robot 22 when a request to initiate a build is sent from a client 20 to a robot 22. Figure 10 is split into Figures lOa and lOb, with lOb defining a routine contained within the step identified as Fig lob in Figure lOa. Figure 11 shows a sample screen shot 28 of a chat window when a user has made the structured comjand "build com.ibm.sametime hot" Once the robot 22 has received the request to begin a build (step 1010), the robot 22 will make a check (step 1012) to ensure that a project of the same name exists. If no such project exists then the build initiation process will terminate via the sending of an error message (step 1038) . If a project does exist, then the robot 22 will retrieve the details of the project (step 1014) and make a check to see if that project is already being built (step 1016) . If the project is already underway as a software build, then again the process will terminate via the sending of an error message.

If the project exists, and is not already being built, then the robot 22 will make a check (step 1018) that the user making the request to initiate the build is correctly authorised, according to the authorisations in the project details. If the user is not authorised, then again, the process will terminate via the sending of the error message back to the client 20 of the user.

If the user is authorised then at step 1020, the robot 22 locks the project, and, at step 1021 begins the build. The build details are then transmitted to the original user who initiated the build (step 1022) . At step 1024, the project details are accessed to see if there are any interested parties (users who wish to be notified that the specific project is now building) and if so, then at step 1026 they are notified.

A build log (log file) may be generated during the physical build of a project. Whether or not the build log is generated is specified in the project manifest containing the details of the build. If the log file is generated there is an option to transfer the log file to both the initiator of the build (step 1031) and the "interested parties" (step 1030) as listed in the project manifest. If specified in the project manifest the build service, after a build has completed will file transfer the build log to both the initiator of the build and the "interested parties".

Log files can get large and use a lot of network bandwidth. The build service (robot) also allows the option to post the build log to a web page and then send the address (URL) of the web page. This is the build file tJRL and is again specified in the project manifest. The robot 22 checks (step 1032) whether to send the log file tJRL, according to the information in the project details, and sends the URL to the interested parties (if so specified) at step 1034, and to the build initiator at step 1035.

Figure 12 shows an example of a screen shot 30 a notification that will be sent to a user notifying them of the build log for a software build.

The robot 22 then completes the initiation of the software build process by unlocking the project details at step 1036, and terminates, returning to the step 218 in Figure 2. Once a build has been started, periodic notifications are sent by the robot 22. Figure 13 is an example of a screen shot 32 that will be sent to interested parties by the robot 22, when a build completes successfully. The robot 22 provides instant notification of build events and build results in real time via instant messaging. Awareness of the build process (ie getting the status of project - whether building or not) via instant messaging is provided to all those interested in the build process.

Claims (14)

1. A software build management system comprising a computing architecture, the architecture running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application, the instant messaging robot being configured to monitor the progress of the or each software build.
2. A management system according to claim 1, wherein the architecture comprises a software build machine and an instant messaging server, the software build machine running the or each software build.
3. A management system according to claim 2, wherein the software build machine is running the instant messaging robot.
4. A management system according to claim 1, 2 or 3, wherein the instant messaging robot is Configured to respond to structured Commands from other clients of the instant messaging application.
5. A management system according to any preceding claim, wherein the instant messaging robot is configured to initiate a software build upon receipt of a specific Structured command from another client of the instant messaging applicati
6. A management system according to any preceding claim, wherein the instant messaging robot is configured to Periodically Communicate with other clients of the instant messaging application, according to a defined scheme.
7. A method of software build management comprising running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application, the instant messaging robot being configured to monitor the progress of the or each software build.
8. A method according to claim 7, and further comprising receiving structured commands from other clients of the instant messaging application, at the instant messaging robot, and responding to the structured commands
9. A method according to claim 7 or 8, and further comprising receiving a specific structured command from another client of the instant messaging application and initiating a software build in response to the specific Command
10. A method according to claim 7, 8 or 9, and further comprising Periodically transmitting, from the instant messaging robot, a message to other clients of the instant messaging application according to a defined scheme.
11. A computer program product on a computer readable medium, for operating a software build management system and comprising instructions for running one or more software builds, an instant messaging application, and an instant messaging robot as a client of the instant messaging application, the instant messaging robot being configured to monitor the progress of the or each software build.
12. A computer program product according to claim 11, and further comprising instructions for receiving structured commands from other clients of the instant messaging application, at the instant messaging robot, and responding to the structured commands.
13. A computer program product according to claim 11 or 12, and further comprising instructions for receiving a specific Structured command from another client of the instant messaging application, and initiating a software build in response to the specific command.
14. A computer program product according to claim 11, 12 or 13, and further comprising instructions for Periodically transmitting, from the instant messaging robot, a message to other clients of the instant messaging application, according to a defined scheme.
GB0515039A 2005-07-22 2005-07-22 Software build management system Withdrawn GB2428498A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0515039A GB2428498A (en) 2005-07-22 2005-07-22 Software build management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0515039A GB2428498A (en) 2005-07-22 2005-07-22 Software build management system

Publications (2)

Publication Number Publication Date
GB0515039D0 GB0515039D0 (en) 2005-08-31
GB2428498A true GB2428498A (en) 2007-01-31

Family

ID=34976354

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0515039A Withdrawn GB2428498A (en) 2005-07-22 2005-07-22 Software build management system

Country Status (1)

Country Link
GB (1) GB2428498A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138132A1 (en) * 2003-12-22 2005-06-23 International Business Machines Corporation Method and system for instant messaging bots specification using state transition methodology and XML

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138132A1 (en) * 2003-12-22 2005-06-23 International Business Machines Corporation Method and system for instant messaging bots specification using state transition methodology and XML

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'JBuddy by Zion Software', 5th May 2005, Ryan Cuprak, obtained from http://java.sys-con.com/read/44704.htm on 29/12/2005 *

Also Published As

Publication number Publication date
GB0515039D0 (en) 2005-08-31

Similar Documents

Publication Publication Date Title
Dolan NEOS Server 4.0 administrative guide
CN1231028C (en) Distributed system to intelligently establish sessions between anonymous users over various networks
JP5354776B2 (en) Distributed acquisition and aggregation of dynamic application usage information
US6633907B1 (en) Methods and systems for provisioning online services
US7136913B2 (en) Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US7676562B2 (en) Computer system for accessing instrumentation information
US8416935B2 (en) Methods and systems for calling conference participants to establish a conference call
US5933601A (en) Method for systems management of object-based computer networks
US7562388B2 (en) Method and system for implementing security devices in a network
US7549153B2 (en) Apparatus and method for content and context processing of web service traffic
US8812731B2 (en) Service providing system allowing flexible cooperation between applications exploiting different protocols
US7222305B2 (en) Method of sharing a desktop with attendees of a real-time collaboration
EP1025507B1 (en) Combined internet and data access system
US8495434B2 (en) Failure source server and mail server administrator alert management programs, systems, and methods
US8707336B2 (en) Data event processing and application integration in a network
US7216142B2 (en) Network application program interface facilitating communication in a distributed network environment
US6385642B1 (en) Internet web server cache storage and session management system
Daigneau Service Design Patterns: fundamental design solutions for SOAP/WSDL and restful Web Services
US6041365A (en) Apparatus and method for high performance remote application gateway servers
Davies et al. L 2 imbo: a distributed systems platform for mobile computing
US7272782B2 (en) System and method for providing offline web application, page, and form access in a networked environment
CN102202102B (en) Network service polymerization system and polymerization method thereof based on cloud computing configuration
US7206811B2 (en) System and method for facilitating real-time collaborating by collapsing a queue for a slow client
US8224886B2 (en) System for an open architecture deployment platform with centralized synchronization
US7720910B2 (en) Interactive filtering electronic messages received from a publication/subscription service

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)