0install: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(Add referencing files using relative links consistently as further advantages of the development setup.)
(Remove lone round opening bracket. Remove subjective adjective epic.)
Zeile 22: Zeile 22:
  
 
==How to package==
 
==How to package==
A module package version is released directly in the Git repository. (see epic 0install <-> git interaction outlined under [[#Why]]
+
A module package version is released directly in the Git repository. See 0install, git interaction outlined under [[#Why]].
  
 
It is packaged using the repository contents. => No magic extra ingredients to be figured out, then merged.
 
It is packaged using the repository contents. => No magic extra ingredients to be figured out, then merged.

Version vom 28. Dezember 2016, 01:30 Uhr

Why

0install is used as cross-platform dependency resolver for not having to package the projects' releases for multiple package managers.

This allows:

  • modular, flexible development (single source principle).
  • using the same toolchain for developing all kinds of projects (not only code)
  • on all operating systems.
  • version control.
  • distributing, depending on modules in any revision and not only a certain release. (Releasing/tagging revisions is optional for development but still useful for indicating stable versions.)
  • automatic backup of projects.
  • easy testing of modules locally without breaking the system due to multiple versions of a package.
  • developer interaction (world wide team work) without being forced to release just to allow other developers to fetch the new changes (because Git is the base system)
  • users turning into developers with ease (because 0install is used for releases and can fetch the sources, i.e. the Git repository contents).
  • easily fetching, inspecting the sources of a project in a certain version. (e.g. to debug or further develop / fork a local version, this can be rebased later on)
  • preventing dependency mess.
  • linear project history (not mandatory but possible) and all other Git powers.
  • having the 0install XML file under version control where it belongs: in the same repository where the project sources reside.
  • aliasing filenames a project depends upon to a functional general name to be able to exchange a file (e.g. a used image or schematic) later without updating all used references e.g. in FreeCAD or blender files (which may be binary where search replace does not work easily).
  • referencing files of dependencies using relative links (as if the dependencies were located as a folder in the current working directory
  • to increase development consistency.


How to package

A module package version is released directly in the Git repository. See 0install, git interaction outlined under #Why.

It is packaged using the repository contents. => No magic extra ingredients to be figured out, then merged.

The resulting package can be hosted in the version control repository but it might be desirable to have it separate for big release data amounts. The package URI is provided in the 0install XML file.


How to install, depend on a module

Install a module / package:

   0install add <repository.uri>/<module>.xml

Depend on a module by using the 0install XML file URI of the corresponding module repository.