#tags #schema #manager #projects #tree #view #spiderman

nightly app spiderman-project-manager

The Weaving Project Manager

6 stable releases

1.0.5 Jan 17, 2023
1.0.3 Jan 16, 2023

#2227 in Database interfaces

24 downloads per month

MIT license

34KB
788 lines

spiderman: The weaving project manager

Spiderman manages your projects by associating each project with a set of tags and dynamically generating set of views based on these tags.

All projects live within a spiderman project root. All subcommands (except init which creates a new root) operate with respect to the current project root. The project root is either the next upstream directory (from the current working directory) that qualifies as a project root, or the default project root, which can be set in ~/.config/spiderman/config.toml.

A spiderman project root contains a .spiderman directory, which, in turn, contains the raw directory, holding all the projects managed by spiderman, and the schema.toml configuration file, describing how spiderman should build view trees based on tags.

The schema.toml file contains a list of schemas and a set of default tag values to use when a project does not have a tag, but that tag is used in a schema. Schemas consist of / separated components that are either plain strings, in which case they will be used in the view tree verbatim, or strings contained in curly braces ({ and }) in which case the string is interpreted as the name of a tag and substituted with the appropriate tag value when building the view tree.

A project's tags are specified in its spiderman.tags file, which can be edited using the tags subcommand. Each line in this file consists of colon (:) separated values. The first of these is the name of the tag, while the later ones are values for that tag. A project may have multiple values for one tag.

Example

schema.toml:

schemas = [
    "by-organization/{organization}/{type}",
    "by-type/{type}/{organization}"
]

[default_tag_values]
organization = "Personal"
type = "Random"

spiderman.tags:

organization:Uni
type:Software:Writing

Dependencies

~2.5–3.5MB
~62K SLoC