Skip to content

Configuring the builder

cjshawMIT edited this page May 4, 2017 · 2 revisions

Required files

You need to download and include the xosid spec files (XML format) from here. Then include them in a sibling directory to the builder, like:

dlkit_builders/
    |- build_dlkit.py
xosid/
    |- osid.assessment.xosid

You only need to include the .xosid files for the packages that you want to build.

Configuration

You need a config.py file in the builder directory to indicate what packages, managers, sessions, etc., will be built. A skeleton is provided, config.py.skel, and you can copy this over and use it directly. As you add more things to build, you may find some patterns or templates do not exist, and you will have to debug those.

The configuration can be very granular and should only include what you need built. Even if a package is built, you may not need all the sessions -- for example, if you're not doing AssessmentNotification but you want to build other things in the assessment package, then you just don't include the AssessmentNotificationSession in the sessions_to_implement list.

packages_to_implement

These packages are the ones you want to implement. The xosid files for each of them must be in the xosid/ directory.

packages_to_test

These packages are the ones for which tests will be built, if you run the builder with that option. Any of the following will generate tests for these packages:

python build_dlkit.py tests
python build_dlkit.py --all
python build_dlkit.py

managers_to_implement

For non-test builds, determines which packages have their managers generated.

sessions_to_implement

For non-test builds, determines which sessions (assuming the package is being generated) are generated. Allows for more granular control over what features you get.

objects_to_implement

These are the catalogs and objects that the builder will generate.

variants_to_implement

These are the OSID "variants" of the listed objects that you also want implemented. For example, if Bank is in the list of objects_to_implement, and Form is in the list of variants_to_implement, then BankForm will be generated by the builder.