Current list of Contributors.
By participating in this project you agree to our Code of Conduct.
Current issue tracker is on GitHub.
Even if you are uncomfortable with code, an issue or question is welcome.
Note: If you are reporting a bug or feature request for ferretci.com itself, please see forthright/ferretci.com instead.
See the Docs section.
All you need to do is submit a Pull Request.
- Please consider tests and code quality before submitting.
- Please try to keep commits clean, atomic and well explained (for others).
Note: If you prefer to submit a patch
then please open an issue and link to it.
Ferret is centered around the exectution of plugins that generate various types of data.
A plugin can be written in JavaScript, or easily shell out to another language.
The core library and cli is written in TypeScript.
Test code is written in CoffeeScript.
For core lib development:
For non-essential dev tasks (docs, packaging, etc):
Additional OSes required for all non-essential builds and testing:
If on Windows:
choco install zip unzip git nodejs curl mkdocs mkdocs-material
If on macOS:
brew install zip unzip git nodejs python
pip install mkdocs mkdocs-matertial
If on Arch Linux:
pacman -S zip unzip git nodejs python-pip
pip install mkdocs mkdocs-matertial
Clone the repos:
git clone [email protected]:forthright/ferret.git
cd ferret
Install packages:
npm i -g yarn npm
npm i
See all available build commands:
npm run
Compile from src
to lib
:
npm run -s c
To run the CLI locally:
node bin/ferret -h
To run tests:
npm -s t
Everything resides in docs
.
To develop run mkdocs serve
in your project root:
To run compile task with file watch in the background:
npm run dev
To build packages:
./bin/build
Note: Extracting Node.js's zipfile might hit the Windows path limit for CMD.exe and PowerShell.
If it is regarding node_modules/npm...
you can safely ignore this as this is not copied over
during packaging.