documentation

developer documentation
Log | Files | Refs | README | git clone https://git.ne02ptzero.me/git/documentation

commit db2eb4961ce787694b0451547c50d5cd5fded17c
parent 0c5fe7cbd6f70b025aa621fadda1e01fc194bd75
Author: Ne02ptzero <louis@ne02ptzero.me>
Date:   Mon, 21 Nov 2016 16:50:05 +0100

Update(Infrastructure)

Diffstat:
MInfrastructure.md | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 53 insertions(+), 2 deletions(-)

diff --git a/Infrastructure.md b/Infrastructure.md @@ -11,7 +11,7 @@ Morphux Server Infrastructure └──────────────────────┘ ``` -Website that list all the packages available on the distribution. +oWebsite that list all the packages available on the distribution. Languages: PHP / HTML / CSS ``` @@ -24,6 +24,7 @@ Languages: PHP / HTML / CSS System that build new packages / new versions of packages, on multiple arch through VMs. + Languages: Python ? ``` @@ -35,6 +36,7 @@ Languages: Python ? ``` Server that respond to an user request to install a package. + Languages: C, Go, C++ ? ``` @@ -46,10 +48,22 @@ Languages: C, Go, C++ ? ``` Server that stores informations about packages + Language: SQL +``` +┌──────────────────────┐ +│ │ +│ Git Server │ +│ │ +└──────────────────────┘ +``` + +Server that stores maintainers and previous versions of a package. + -# Life of a package + +# Life of a package in a nutshell - Maintainer create a package - Package is send to the build system @@ -60,3 +74,40 @@ Language: SQL - Files installed by the package - Extract the binaries installed by the package - The build system add the package to the Package database + +# Step by step + +## Creation of a package + +- If the package is new to Morphux, the maintainer / admin create a new Git +repository: gitpkg.morphux.org/packagename.git +- The master branch is the dev version of the package +- The git repository should contain the all package, sources included +- As soon as the maintainer / admin push the data into a branch like `version-XX.XX`, +the build system automatically test the package. + +## Test a package +- The build system is mostly 'Vanilla' VMs of Morphux +- The build system test the package by cloning the maintainer repository, and execute +a test mpm binary. +- This binary will try to compile the package, with the informations provided by the maintainer in `package.json` +- If the compilation works, the system will try to deduce some information: + - Size of the installed package + - Compilation time + - Files installed and modified by the package + - Extract the binaries installed by the package +- Then, the build system will add these informations into the package +- If all of those steps are sucessfull, the version is marked as good, +and the database server will take over + +## Add a package to the database +- Some basic informations is extracted from the package, in order to respond quickly +on an install request: + - Name of the package + - Version of the package + - Dependencies of the package + - Compilation time of the package + - Installed size of the package + - Files installed by the package +- Once that's done, the package will be compressed and encrypted, and moved to a +ftp server.