Rosella is a collection of modular building-block libraries, each of which implements a particular family of patterns, best practices, or other useful utilities.
Rosella is not a framework and is not monolithic. Rosella is offered as a collection of individual libraries with very few dependencies between them. The goal is to be able to provide small features to programmers who want them without burdening anybody with unwanted overhead.
For complete details and documentation about Rosella and its component libraries, see the Rosella website
Current Rosella Version: 1 (23 April 2011) For Parrot 3.3
See the file VERSION for detailed version information about each individual library.
Get a copy of the latest Rosella code from the Git repository with the following command:
git clone https://github.com/Whiteknight/Rosella.git Rosella
To build Rosella you need to use Winxed:
winxed setup.winxed build
winxed setup.winxed test
winxed setup.winxed install
Winxed is a language compiler for Parrot with a syntax similar to JavaScript. Rosella libraries are written in Winxed, although they should be usable by any software written in any language targetting Parrot.
If you update the source code of your local Rosella git repo and want to build the updated version, make sure to run the clean target before recompiling to avoid strange errors caused by partial recompilation:
winxed setup.winxed clean build test install
The Rosella release tarball ships with all the .pir
files from the
development build, and all the necessary utilities to build and install
Rosella with or without Winxed. With the release tarball extracted to a
directory, you can use the following sequence to build, test and install
Rosella:
parrot setup.pir build
parrot setup.pir test
parrot setup.pir install
Rosella is composed of several libraries. Some are relatively mature, stable, usable, and tested. Some are still young, in development, or unstable. For details about all libraries, what they do, and how to use them, see the Rosella website.
These libraries are considered stable enough for most uses. These are all tested and documented.
- Core (rosella/core.pbc)
- Action (rosella/action.pbc)
- Container (rosella/container.pbc)
- Test (rosella/test.pbc)
- TAP Harness (rosella/tap_harness.pbc)
- Proxy (rosella/proxy.pbc)
- Mock Object (rosella/mockobject.pbc)
- Event (rosella/event.pbc)
- Winxed (rosella/winxed.pbc)
- Memoize (rosella/memoize.pbc)
- Query (rosella/query.pbc)
- FileSystem (rosella/filesystem.pbc)
- Path (rosella/path.pbc)
- String (rosella/string.pbc)
There are a number of additional libraries in earlier stages of development
which are not considered to be "stable". These libraries are located in the
directory src/unstable/
. Libraries which are built as part of the
setup.winxed
command and which are listed in the VERSION
file may be
usable, but are not considered stable and are subject to be changed or even
deleted on a whim.
Rosella is open source software, and is always open to new contributors and contributions. You can report bugs or request new features at the Rosella Issue Tracker. You can also create forks and submit pull requests on Github.
functions prefixed with "private_", "protected_" or "internal_" are intended for use by Rosella only, and should not be used in by external code. These functions are not part of the external interface, are explicitly not tested, and no guarantees are made about their performance or their continued existance.
If you need a feature which is not exposed by the current public API, you can request a feature addition or put together a patch to add it.
Rosella is influenced by a number of other libraries and technologies. A list of contributors and specific points of influence will be listed in the "CREDITS" file.