oleganza/iopackage
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
iopackage - Io code package manager based on Git repositories. Examples: Amanda := Package select("git://github.com/oleganza/amanda.git", "8ebe4510990cdc010e9") load # guess "amanda.io" or "main.io" Amanda := Package select("git://github.com/oleganza/amanda.git", "8ebe4510990cdc010e9") load("somefile.io") Design notes. 1. Each program is a package. 2. Each package requires other packages specifying strict version. 3. Each package is loaded into local context. Therefore, multiple different versions of the same package could be loaded in the same state. Real world example: 1. App requires A5, B5, C5. 2. A5 requires B3, C5 requires A3. 3. A5, B5 and C5 are the first-level libraries (App is a zero-level library). Each of them could be hacked/forked: App may specify development versions like A5.1 or B5.2. 4. Package system should allow use of different medias and repositories: tarballs, git, mercurial, bazaar, subversion, name-your-repository. Thus, multiple versions could be defined. Example: Package Git := Package Source clone do( # returns a path on local filesystem to the package root folder prepare := method(version, urls, ) ) p := Package clone p addSource(Package Git clone setVersion("fb127e87fa78bc3761") appendURL("...soft.git")) p addSource(Package Hg clone setVersion("fb127e87fa78bc3761") appendURL("...soft.hg")) p addSource(Package Tarball clone setVersion("fb127e87fa78bc3761") appendURL("...soft.tar.gz")) p setup MySoft := p load("init.io") # Shorter (sets version for all URLs): MySoft := Package withURLs("git://", "file://...", "") setVersion("1.0") load("package-init.io") 5.
About
Io code package manager based on Git repositories
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published