From a50930fc14c6ec6255ec7ce8d36343f27222a8cb Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Fri, 26 Nov 2021 23:18:25 +0100 Subject: [PATCH] PR template [skip ci] --- .github/pull_request_template.md | 5 ++++ doc/dev.md | 39 +++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..0a94c3d3 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,5 @@ +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/babashka/blob/master/doc/dev.md). + +- [ ] This PR correponds to an [issue with a clear problem statement](https://github.com/babashka/babashka/blob/master/doc/dev.md#start-with-an-issue-before-writing-code). diff --git a/doc/dev.md b/doc/dev.md index 91d96b2f..8b248a9d 100644 --- a/doc/dev.md +++ b/doc/dev.md @@ -1,5 +1,42 @@ # Developing Babashka +## 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. + +## Requirements + You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-21.3.0. ## Clone repository @@ -81,7 +118,7 @@ To progress work on sqlite and mySQL, I need a working Clojure example. If you want to contribute, consider making a an example Clojure GraalVM CLI that puts something in a sqlite / mysql DB and reads something from it. -## ADR +## Design decisions Some design decisions: