Skip to content

Commit

Permalink
1
Browse files Browse the repository at this point in the history
  • Loading branch information
metux committed Sep 8, 2023
1 parent 4e58d78 commit 95faaf1
Showing 1 changed file with 22 additions and 20 deletions.
42 changes: 22 additions & 20 deletions doc/GlobalSpec.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,39 +48,41 @@ Most cases *(for now)* should be sufficient w/ just one pool, named `default`.
The path of the finally installable repo will be a subdir, named by the pool, under the
per-target directory.

For future releases it is planned to support importing of pools into others: in this case, the per-package
build job will also add the imported pool's target repo *(so it's packages can be directly used)* and skip
building dependencies that are already supplied by the imported pools. This allows better separation, eg.
when some packages have some special build-only dependencies, that shouldn't be shipped in the same target repo.
*(classic case: golang packages often require newer toolchain than shipped by the distro)*
For future releases it is planned to support importing of pools into others: in this case, the
per-package build job will also add the imported pool's target repo *(so it's packages can be
directly used)* and skip building dependencies that are already supplied by the imported pools.
This allows better separation, eg. when some packages have some special build-only dependencies,
that shouldn't be shipped in the same target repo. *(classic case: golang packages often require
newer toolchain than shipped by the distro)*

Packages section:
-----------------

Under the `packages` section, all packages are defined - one subkey per package. The package key may either be
just the package name, or package name + "@" + version string. Inside the package config, the fields `package.name`
and `package.version` *(if version is present)* are automatically set.
Under the `packages` section, all packages are defined - one subkey per package. The package key
may either be just the package name, or package name + `"@"` + version string. Inside the package
config, the fields `package.name` and `package.version` are automatically set.

The packages defined here are only built, when explicitly pulled in by a pool's package list or as some other
package's dependency.
The packages defined here are only built, when explicitly pulled in by a pool's package list or
as some other package's dependency.

Package config:
---------------

The package config defines everyhing needed for an individual package, which is loaded into a separate object
*(thus: separate variable namespace)*. When loaded from the global config, the fields `package.name` and
`package.version` *(if version is present)* are automatically set from the package key.
The package config defines everyhing needed for an individual package, which is loaded into a
separate object *(thus: separate variable namespace)*. When loaded from the global config, the
fields `package.name` and `package.version` *(if version is present)* are automatically set from
the package key.

Most of the common data, eg. source repo locations, is loaded from CSDB - looked up by the package *name*
*(w/o the version qualifier)*. See topic CSDB for details.
Most of the common data, eg. source repo locations, is loaded from CSDB - looked up by the package
*name* *(w/o the version qualifier)*. See topic CSDB for details.

### Important fields:

variable | description
---|---
package.name | *(intrinsic)* the name of the package, w/o version qualifier
package.version | *(intrinsic)* the version string *(if present)*
package.fqname | *(intrinsic)* full package name, including version suffix
skip-on-targets | list of targets which skips the package
depends | list of dependency packages
autobuild-ref | git ref to check out by default
package.version | *(intrinsic)* the version string *(if present)*
package.fqname | *(intrinsic)* full package name, including version suffix
skip-on-targets | list of targets which skips the package
depends | list of dependency packages
autobuild-ref | git ref to check out by default

0 comments on commit 95faaf1

Please sign in to comment.