Thank you for thinking of contributing to this project!
This document outlines the ways you can contribute to this project, what your development setup will need to be, and what workflows exist for you to develop with.
If you encounter a bug while using postdfm
, please feel free to raise an issue detailing the bug. Please create the bug report by answering the following questions:
- What versions am I using of...
**
nodejs
**npm
/yarn
**postdfm
- What did I do?
- What was I expecting?
- What happened instead?
- What do I think is the problem?
- Am I willing to make a pull request with failing tests to help speed up the fix?
- Am I willing to make a pull request with the fix as well?
If you find postdfm
to be lacking in a certain feature, please feel free to raise a new issue explaining what the missing feature is.
At this point, I'm not sure what direction to take postdfm
in, if any (it might even be finished already, seeing as Delphi is already pretty unused as a language, and dfm
files even less so).
If you find documentation (either README.md
s or typedocs) lacking or full of errors, please feel free to directly raise a pull request to fix the documentation.
Please avoid raising a pull request to change code without first raising an issue detailing either a bug or a feature.
You will need the following software to help develop this project:
git
nodejs >= 7.6.0
npm
yarn
Before running any commands, you'll likely have to run the following:
~/postdfm (main)
$ yarn install
In order to see all of the operations that would be run in the Continuous Integration, run:
~/postdfm (main)
$ yarn ci
We use prettier
for formatting and eslint
with typescript-eslint
for linting. The linting and formatting are separated into two steps.
To see the linting and formatting issues, run:
~/postdfm (main)
$ yarn lint:check
$ yarn format:check
To have as many issues as possible fixed by the tools, run:
~/postdfm (main)
$ yarn lint:fix
$ yarn format:fix
Make sure to run format:fix
last, as that's what the CI will perform. If there are conflicts between the linter and the formatter, the formatter will win.
postdfm
uses TypeScript and Nearley.js, so some compilation is required. Run:
~/postdfm (main)
$ yarn compile
postdfm
uses Jest to run and report coverage of all tests in the project. Run:
~/postdfm (main)
$ yarn test
Besides the README.md files for each project, postdfm
uses TypeDoc to produce basic API documentation (viewable online at http://spiltcoffee.com).
~/postdfm (main)
$ yarn docs
The release step is performed automatically by the CI. You can run the command, but it won't do anything.
~/postdfm (main)
$ yarn release
When writing a commit message, your message should follow the conventional commit format. The format is enforced by commitlint
, so see that project for more info about the format.
You should list any issues your commits close in the commit message, as fix #<issue>
.
When making a commit, your code in the commit will be automatically linted, formatted and tested. If any of this fails, the commit won't work.
You should try to fix whatever problems are occurring, but if you can't (like you're trying to add failing tests), please commit using the following:
~/postdfm (main)
$ git commit --no-verify
Once you've made changes in a branch in your forked repo, make a pull request against this repo. This will trigger CircleCI to run all checks, and if successful, CodeCov will then report on your code coverage.