Falkor Operations Library
The falkor-library
project is a collection of devops tools written in strict ES6 TypeScript to be used with the Falkor Framework.
Usage
See the following projects consuming the falkor-library
:
-
@falkor/falkor-commander
: plugin based task runner / -sequencer -
falkor-plugin-example
: examplefalkor-commander
plugin to demonstrate framework capabilities
Configuration
The falkor-library
looks for shared configurations in the Current Working Directory from where the application consuming it was executed (files could be named .falkorrc
, .ops.json
, .ops.jsonc
, falkor.json
, or falkor.jsonc
- whichever is found first).
To see all available settings, and also example falkor-commander
and plugin customizations check out the big .ops.jsonc
file provided as example in falkor-plugin-example
.
Further Development
The project uses the @falkor/falkor-bundler
module to compile sources. To clone the repository and compile falkor-library
one can use the commands:
$ git clone --branch develop git@github.com:theonethread/falkor-library.git
$ cd falkor-library
$ npm install
$ npm run [ debug | release ]
SEE:
"scripts"
entry inpackage.json
for further reference.
NOTE: Compiling the
develop
sources might need locally linkeddevelop
versions of downstream module:SEE:
npm-link
for further reference.
Documentation
To generate HTML documentation from the TypeScript sources under the ignored .doc
directory using Typedoc run:
$ npm run doc
Or one can visit the exported online documentation.
Linting
The project uses prettier
for code formatting and cspell
to avoid general typos in both sources and documentation - it is advised to install these packages as extensions in your IDE to prevent CI errors beforehand. To lint the project run:
$ npm run lint
SEE:
.prettierrc
and.cspell.json
for further reference.
- To fix formatting issues run
$ npx prettier --write <path-to-file>
. This will overwrite the file with the default formatting applied locally, so then you can review the changes ingit
and ensure those did not affect production artifacts. - To fix spelling errors run
$ npx cspell lint --wordsOnly --unique --gitignore --exclude .git ** .*
for details, and either make the fixes in the sources listed, addcspell
favored comments, or extend the project-wide.cspell.json
accordingly.
Versioning and Branching Strategy
Release sources can be found on the master
branch, this one always points to the latest tagged release. Previous sources of releases can be found using git
version tags (or browsing GitHub releases). Released packages can be found on npmjs.
The repository's main branch is develop
(due to technical reasons), this holds all developments that are already decided to be included in the next release. Usually this branch is ahead of master
one patch version (but based on upcoming features to include this can become minor, or major), so prepared external links may yet be broken.
The feature/*
branches usually hold ideas and POC code, these will only be merged into develop
once their impact measured and quality meets release requirements.
The project uses SemVer,
git
tags are prefixed with av
character.
GitHub Actions
The workflows can be found here.
Continuous Integration
Automatic builds are achieved via GitHub actions, CI will make nightly builds of the develop
branch (using Ubuntu image), and test master
when there is a pull request, or commit on it (using Ubuntu - Win - MacOS image matrix).
API Documentation
There is also a manually triggered workflow, that deploys generated documentation to GitHub Pages.
Security
The project uses CodeQL and Snyk to ensure standard security.
The Falkor Framework supports a healthy and ubiquitous Internet Immune System enabled by security research, reporting, and disclosure. Check out our Vulnerability Disclosure Policy - based on disclose.io's best practices.
Free and Open Source
The latest sources can always be found on GitHub.
Getting Involved
We believe - and we hope you do too - that learning how to code, how to think, and how to contribute to free- and open source software can empower the next generation of coders and creators. We value first time contributors just the same as rock stars of the OSS world, so if you're interested in getting involved, just head over to our Contribution Guidelines for a quick heads-up!
License
©2020-2022 Barnabas Bucsy - All rights reserved.