Ugo is U's build system and package manager.
It's a good practice to split large U projects into small pieces. Ugo take care of everything so you can build your system with confidence. Ulet and your source code are connected to ensure your system works as expected.
See Ugo for the name origin.
Ugo Database¶
Ugo relies on its proper database to build your system. All files needed are stored in .ugo
folder. It allows ugo to only rebuild what's necessary.
Ugo configuration file¶
Ugo configuration file is w.up
. It contains all key/value pairs to drive ugo like dependencies, collections constraints, and memory strategies.
Pod¶
Pod is Ugo's logical unit. It's not your source files. Pod can thus contains multiple entities from differents files.
See Pod.
Robust Applications¶
To build correct systems, U relies on:
- your knowledge and experience,
- user defined syntax to express your knowledge into domain-specific syntax,
- its type system
- phasing: prototype, candidate, quality assurance, production. For each phase, ugo assists you in hardening your system as it becomes bigger, and more complex.
- Testing: proper requirements ensure good test cases. But deep testing when prototyping is not efficient(See SpaceX beginning). However, high performance and sensitive systems require deep testing. U customizes test cases based on your needs, phase, and project management.
- Debugging : debugging is a last resort when everything else has failed.