OASIS

Architecture for building OCaml libraries and applications

Using OASIS

How to create a test?

TBD

How to report a bug?

TBD

How to create a string flag?

Flag in _oasis are only boolean. As of OASIS 0.4.7, there is no way to define a string flag. A string flag, can be useful when you want e.g. CCOpt: -D $(STR).

The reason why this has not been done are: * boolean flags are easy to switch on and off to test various branches, which can allow auto exploration for the package. * string flags would require a way to validate them, make sure that quoting is correct when they are used in substitution. * string flags are easily implementable directly in setup.ml.

The quick solution to have a string flag FOO is to add the following code to setup.ml:

(* OASIS_STOP *)
let _ = BaseEnv.var_define "FOO" (fun _ -> "123");;
let () = setup ();;

This can be used like this:

Executable "opam-build-revdeps"
  Path: src/bin/opam-build-revdeps
  MainIs: OPAMBuildRevdeps.ml
  CompiledObject: best
  CCOpt:-D $(FOO)

The value of the flag FOO can be set through command line and environment variable.

This bug tracks the progress and discussion around this topic.

Developing OASIS

How to send a patch?

TBD

Why the project doesn't use the Github bug tracker?

The OASIS project currently uses the [OCaml Forge bug tracker][1],

GitHub Issue tracker is a very nice tool and OASIS will probably greatly benefits from using it. But, the project needs a single bug tracker. This means that all bugs from the current bug tracker will have to be migrated to Github. It takes time to do this kind of migration and the time spends on this topic will not be spent coding.

The project would be glad to see someone stepping in to do the migration or find a way to do it automatically.

The migration is about time, as the project is OK to migrate. Currently we have a tracking bug for this migration.