No edit summary |
mNo edit summary |
||
Line 3: | Line 3: | ||
Author: Stephen Tweedie | Author: Stephen Tweedie | ||
== Summary == | === Building modular things TOC === | ||
# [[Modularity/Getting_Started/Building_modular_things/The_package|The package]] | |||
# [[Modularity/Getting_Started/Building_modular_things/The_module|The module]] | |||
# [[Modularity/Getting_Started/Building_modular_things/The_stack|The stack]] | |||
# [[Modularity/Getting_Started/Building_modular_things/The_image_or_artifact|The image or artifact]] | |||
# [[Modularity/Getting_Started/Building_modular_things/How_do_these_parts_fit_together|How do these parts fit together?]] | |||
---- | |||
=== Summary === | |||
We have some basic terminology confusion around modules. Is a container image the same thing as a module? Is a software collection a single module, or a group of modules? We can often get away with being vague, but for technical planning we need to be able to distinguish between all these concepts. | We have some basic terminology confusion around modules. Is a container image the same thing as a module? Is a software collection a single module, or a group of modules? We can often get away with being vague, but for technical planning we need to be able to distinguish between all these concepts. | ||
Line 18: | Line 27: | ||
* A '''Build''' of a package: a process which involves compiling source code and creating a packaged output; and | * A '''Build''' of a package: a process which involves compiling source code and creating a packaged output; and | ||
* A '''Compose''' of a module: a process which assembles pre-compiled packages into an organised module, but which includes no compilation step itself. | * A '''Compose''' of a module: a process which assembles pre-compiled packages into an organised module, but which includes no compilation step itself. | ||
Revision as of 18:12, 9 September 2016
And an attempt to get the vocabulary consistent
Author: Stephen Tweedie
Building modular things TOC
Summary
We have some basic terminology confusion around modules. Is a container image the same thing as a module? Is a software collection a single module, or a group of modules? We can often get away with being vague, but for technical planning we need to be able to distinguish between all these concepts.
I propose we use these terms:
- Package. Essentially, the same thing as an rpm. In the future it might be non-rpm content but should fit the same role.
- Module. A set of packages tested and released together as a distinct unit, complete with the metadata needed to manage it as a unit. May depend on other modules.
- Stack. A complete tree of modules. A stack can be thought of as a top-level module, with the understanding that we’re implicitly including all of that module’s dependencies in the stack.
- Artifact or image. An actual set of bits built out of modules, in a format intended to be distributed or deployed in some way.
Generally, these serve distinct purposes. A module is a building block; a stack contains all the software for a complete solution; an artifact is a concrete object containing a stack (or stacks) for distribution to users.
We will also distinguish between:
- A Build of a package: a process which involves compiling source code and creating a packaged output; and
- A Compose of a module: a process which assembles pre-compiled packages into an organised module, but which includes no compilation step itself.