DLPS DLXS Development Environment
A brief discussion of the elements of our development environment. Supports a ~10 person work group of developers and collection managers. There are several elements that make it up.
- CVS is an open source version control system
- multiple users work on a single contolled set of source files
- Provides commands:
- initially populate a directory structure (cvs checkout)
- update files with the latest version from the repository (cvs update)
- submit changes to the repository (cvs commit)
- find out your status with respect to the repository (cvs status)
- automatically merges changes upon update
- prevents submission of out-of-date files
- provides a change log of comments written by submitting authors
- shows diffs between versions
Back to top
- each developer has a full copy of the repository in /l1/dev/username (DLXSROOT)
- initialized via cvs checkout and kept up to date by cvs update
- a private sandbox for that developer
- The "release area":
- special directory tree directly under /l1
- updated read-only
- less volatile
- acts as source for production machine updating
- Workflow
Back to top
Middleware, collection manager and database structure cooperate through environment variables
- DLPS_DEV (== username) environment variable set by a developer's virtual host tells middleware which set of database rows to read. "Release" rows are read when DLPS_DEV == 1. Authorization system is in effect to mimic production.
- REMOTE_USER (== username) environment variable is set by your authentication system or by Basic HTTP Authentication when you log in to use collmgr. Tells collmgr which set of database rows to read/write
- collection manager (collmgr) supports checkout/checkin per user when REMOTE_USER is not dlxsadm.
- DLXSROOT (== /l1/dev/username) environment variable set by a developer's virtual host tells middleware where to find all its pieces
- DLXSDATAROOT (== /l1) environment variable set by a developer's virtual host tells middleware where to find data to avoid duplicating large datasets.
- no authentication/authorization system in effect for developer. Instead middleware looks at a list of collections in DLXSROOT/cgi/c/clsss/AUTHZD_COLL file.
Back to top
- A virtual host is configured for each developer to set the environment when running from the browser.
- When running under the debugger, the shell must set these variables.
Back to top
Back to top