Piral is developed as a monorepo.
- converters contains all the published converter plugins
- framework contains the core framework packages
- initializers provides available NPM initializers
- pages has the code for the basic Piral websites
- plugins contains all the published pilet API plugins
- samples has example applications for different parts of the solution
- tooling contains the Piral CLI and some plugin packages
- utilities has some Node.js utility packages
For development you need to have the following software installed:
- Git must be set up to clone / work with the repository
- Node.js with NPM (for instructions see Node.js website)
- Lerna, see official website
- Yarn, see official website
- Obviously, you'll also need a proper command line terminal
On the command line install Lerna and Yarn (if not done already):
npm install --global lerna yarnOnce you cloned the repository make sure to bootstrap it (installs all dependencies and more).
lerna bootstrapNow you are ready to build all contained modules:
lerna run buildIf you want to run the sample application you can already do it with our CLI tool (which should be available after building, otherwise use lerna bootstrap again):
yarn watch:demo-fullin the workspace.
This will open a development server sitting at http://localhost:1234. Right now the Piral CLI is just a tiny wrapper around Parcel 🚀.
For keeping parts of our documentation up-to-date we use a set of simple scripts. We added them to the global package.json, such that they are easily accessible.
For instance running
yarn docgenwill update the full documentation based on the current state of the source code. This includes updating the documentation for the pb command line tool.
The versioning is fully managed via the CHANGELOG.md file. If you make a change to the currently not yet released version block just add your lines. Otherwise, add a new version block. This looks as follows:
## 1.2.3 (not released yet)
* Awesome feature 1
* Awesome feature 2Changes to develop will always result in a preview build (pre-release) of the packages. For the pre-release the latest version from the CHANGELOG.md is used. In addition the build id is added to make the pre-release unique and easy to identify.
When merging into master the latest version block of the CHANGELOG.md will be changed to contain the current release date.