diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..6080206 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,9 @@ +Please answer the following questions and leave the below in as part of your PR. + +- [ ] I have read the [developer documentation](https://github.com/babashka/scittle/blob/main/doc/dev.md). + +- [ ] This PR corresponds to an [issue with a clear problem statement](https://github.com/babashka/scittle/blob/main/doc/dev.md#start-with-an-issue-before-writing-code). + +- [ ] This PR contains a [test](https://github.com/babashka/scittle/blob/main/doc/dev.md#tests) to prevent against future regressions + +- [ ] I have updated the [CHANGELOG.md](https://github.com/babashka/scittle/blob/main/CHANGELOG.md) file with a description of the addressed issue. diff --git a/doc/dev.md b/doc/dev.md index f6df31c..d149d94 100644 --- a/doc/dev.md +++ b/doc/dev.md @@ -1,5 +1,48 @@ # Dev +## Workflow + +### Start with an issue before writing code + +Before writing any code, please create an issue first that describes the problem +you are trying to solve with alternatives that you have considered. A little bit +of prior communication can save a lot of time on coding. Keep the problem as +small as possible. If there are two problems, make two issues. We discuss the +issue and if we reach an agreement on the approach, it's time to move on to a +PR. + +### Follow up with a pull request + +Post a corresponding PR with the smallest change possible to address the +issue. Then we discuss the PR, make changes as needed and if we reach an +agreement, the PR will be merged. + +### Tests + +Each bug fix, change or new feature should be tested well to prevent future +regressions. + +### Force-push + +Please do not use `git push --force` on your PR branch for the following +reasons: + +- It makes it more difficult for others to contribute to your branch if needed. +- It makes it harder to review incremental commits. +- Links (in e.g. e-mails and notifications) go stale and you're confronted with: + this code isn't here anymore, when clicking on them. +- CircleCI doesn't play well with it: it might try to fetch a commit which + doesn't exist anymore. +- Your PR will be squashed anyway. + +## Developing + +Run `bb dev` to start shadow-cljs compilation in watch mode. Then run `node out/nbb_main.js` to invoke nbb. + +## Testing + +You can run tests using `bb run-tests` and `bb run-integration-tests`. + ## Release Static files including compiled JS are hosted on Github. This is set up like