Projects

Overview

The intent of IgorExchange is to offer a way for you to share Projects with other users and to provide tools for groups of developers to collaborate on project development.

A project generally starts as code that you create on your own personal computer to do something specific within Igor Pro. Projects can range from a single file that adds a specific feature to several files that together accomplish one goal. Project files can be procedures, XOPs, notebooks, experiments, and help files for Igor Pro. Projects can also include documentation in such file formats as PDF, text, Word, or LaTeX.

Project downloads are available on IgorExchange as .zip archives. The archive contains all of the files that you designate as being part of the project. A user who wants to have the functionality provided by your project will download the archive for the project and, following instructions that you provide, install the files in the appropriate places on his or her computer.

Project Terminology

The first stage of a project is its creation. This is done on your personal computer. In essence, you create what can be called as an initial working copy of the project.

As you work on the project, you develop it to do what you want it to do. You are in this case the primary project developer.

At some point, you will likely be satisfied with the general operation of the project and wish to share it with others. This stage is called releasing the project. Generally, when you release a project, you assign it a version number. This number designates something about how far along it is in its development steps.

After being released, a project may continue to go through continual stages of development, typically on your personal computer. You may want to release new versions of the project, either at incremental steps as it is being developed or at points where its development has been proven to meet your desired objectives. The former type of release version is called a development release or development snapshot. The latter is called an official release version.

After you release a project, you may be lucky to be contacted by someone who wants to help develop the project. As the primary project developer, you have the option to allow the person to modify, remove, and include files into the project. This is called sharing the project development.

After you release a project, you will certainly be contacted by users who have questions. The questions can include requests for help or new features. They can also be bug reports. Together, the set of questions that are posed to you and, in most cases, the responses that you generate to them are called issues for the project.

The entire process of creating, developing, releasing, and sharing a project as well as the process of handling issues for the project is the administration of the project. As the primary developer of a given project, the responsibility for administering it usually falls solely on your hands. At some point, you may however decide to share or turn over the project administration to someone else. At this point, you can become just a developer, or you may decide to just be a happy user of the project.

Administering Projects

You will always create and develop ongoing versions of the project on your own personal computer. IgorExchange provides two ways to oversee these and the other steps in project administration.

Manually (this is the default option)

When you use this option to administer a project, the only interaction you have with the IgorExchange site is to create releases of your project.

Basically, in this mode, you use IgorExchange as a way to post the file(s) for your project so that others can download and use them. Otherwise, you are responsible for all others aspects of project administration, such as knowing its current development or release version, what files have been changed since the last release, when and how those files where changed, and how issues are being handled.

See Creating a release by attaching a file for more information about how to release a project manually.

Via Subversion

This option to administer a project provides an automated system to track development and release versions as well as to oversee issues. It also allows you to share interactively in development of a project, including tracking when and what changes were made to every file associated with the project.

Basically, in this mode, you use IgorExchange as a central repository to store administrative documents on the history of every file associated with the project. These administrative documents are invisible to you - the Subversion system tracks them automatically. You can refer to them in many ways to see exactly where you are in the administration of a project.

The use of Subversion does not take away the obligations to post project releases and handle their issues, it only makes easier the process of overseeing how all of these steps are progressing. In this regard, the second option is more powerful. The power comes at a cost. The cost is, you must have access to and know how to use Subversion software on your personal computer.

See Using Subversion for version control for more information about Subversion to administer a project.

Back to top