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), we recommend version 14 or later
- Lerna, see official website
- Yarn, see official website
- You'll also need a proper command line terminal
On the command line install Yarn (if not done already):
npm install --global yarn
Once you cloned the repository make sure to bootstrap it (installs all dependencies and more).
yarn install
Now you are ready to build all contained modules:
npx lerna run build
If you want to run the sample application you can already do it with our CLI tool (which should be available after building, otherwise use npx lerna bootstrap
again):
yarn watch:demo-full
in 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 docgen
will 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 2
Changes to develop
will always result in a preview build (pre-release) of the packages. For the pre-release, the latest version from CHANGELOG.md is used. In addition, the build id is added to make the pre-release unique and easy to identify.
When merging into main the latest version block of the CHANGELOG.md will be changed to contain the current release date.