Home

digitarald edited this page Sep 13, 2010 · 6 revisions
Clone this wiki locally

Work in progress, interface in subject to discussions.

Example repository is: github.com/digitarald/digitarald-more/

Manifest Components

Project: manifest.yml

Describes project-specific optional meta-data (e.g. authors, license, etc.) and resolves the nature (e.g. source, assets, docs etc.) of folders and files.

Example manifest.yml metadata:

Note: Quotes are optional and just added to show off best practices.

# Common metadata
description: 'Open Source JavaScript plugins from digitarald.de'
author: 'Harald Kirschner'
copyright: '2009, Harald Kirschner'
license:
  name: 'MIT License'
  url: 'http://www.opensource.org/licenses/mit-license.php'
homepage: 'http://digitarald.de'
# Nature
nature:
  source: Source/*
  assets: Assets/*
  docs: README.md
  compatibility: Compat.js

All nature fields have intelligent default values, filled after checking the existing files and folders. This way a manifest.yml needs no nature values at all if you have a well structured repository.

TODO: Show off default values.

Source Files: Inline YAML

Describes the meta-data and dependencies for a single source file.

Example:

/*=
description: Animates image background position for a smooth progress-bar effect.
require: ['Fx.Transitions', 'Element']
provide: 'Fx.ProgressBar/*'
*/

Fx.ProgressBar = new Class({ ...

Metadata Keys

Reduced, incomplete version of possible keys.

description

Short description of the project. allows markdown

author(s)

List of authors, can be a string or a hash with name, email and homepage.

require

Dependencies to other source files. Single string or array of strings.

provide

Dependencies to assets. Single string or array of strings.

Dependency paths

Paths are lax and can contain the wildcard *. The first matched element is returned. If a wildcard is used, more files are matched.

[[repository-owner/]repository-name:][path]file[.extension]

  • repository: Can be an official alias like core or more, a username/repo to github or a local repository alias
  • path: Can be the full or partial path to the file
  • file: File-name with optional extension

Example paths

  • Core – resolves to Core.js
  • Core/Core – resolves to Core.js
  • Core/* – resolves to all files in Core
  • core:Core – resolves to Core.js
  • core:Core/* – resolves to all files in Core

Roadmap

Tracked as Issues