Very often a project which is going to be packaged has in its source code tree additional things not required or used in run-time. For example:
- documentation sources
- tests (unit, functional, etc)
To handle mentioned above things package should contain additional build time requirements. These requirements are not always exist as a built earlier rpm package. To be able to do initial packaging of source code sometimes it is require to skip build of documentation and run tests from %check section. Also absence of these requirements could lead to circular dependency loops and this is another problem which should be solved by using minimal build.