Skip to content

Commit

Permalink
Add PR template. New impl checklist in template and FAQ
Browse files Browse the repository at this point in the history
  • Loading branch information
kanaka committed Aug 27, 2024
1 parent 5549585 commit e47d3a7
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
16 changes: 16 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Pull request requirements:

- [ ] Commits are well written and well organized.
- [ ] Commits for a specific implementation should be prefixed with
the implementation name.
- [ ] Github Actions CI passes all checks (including self-host)

Additional requirements if your are adding a new implementation (see
[FAQ](docs/FAQ.md#add_implementation) for details):

- [ ] Follow incremental structure (no common eval code)
- [ ] Add `impls/<IMPL>/Dockerfile`
- [ ] Add `impls/<IMPL>/Makefile`
- [ ] Add to `IMPLS.yml`
- [ ] Add to `Makefile.impls`
- [ ] Update `README.md`
29 changes: 27 additions & 2 deletions docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,33 @@ deferrable until later. But I am always open to suggestions.
Absolutely! I want mal to have a idiomatic implementation in every
programming language.

Here are a few guidelines for getting your implementation accepted
into the main repository:
Here is a quick checklist of what you need to do to merge a new
implementation:
- Follow the incremental layout (no extracted eval code)
- Dockerfile that defines requirements for building and running you
implementation and has this LABEL and
```
LABEL org.opencontainers.image.source=https://github.com/kanaka/mal
```
- Makefile: if it is a compiled/built implementation then add rules
for building each step and a clean rule.
- Add your implementation to IMPLS.yml
- if takes a long time to build add `SLOW: 1`
- Add implemenation to `Makefile.impls`
- Add to `IMPLS` variable (alphabetical order)
- Add a `*_STEP_TO_PROG` line for resolving artifacts to build and
run (if not compiled, just point to the step file itself)
- Update the top-level README.md:
- Increment the implementation and runtime counts
- Add to the table of implementations
- Add a build/run notes sub-section to the `Implementation
Details` section
- Create a pull request (this will trigger CI and allow review)
- Make sure that CI passes for your implementation including
self-hosting (some esoteric languages can have an exception to this)

Here are more detailed guidelines for getting your implementation
accepted into the main repository:

* Your implementation should follow the existing mal steps and
structure: Lisp-centric code (eval, eval_ast, quasiquote,
Expand Down

0 comments on commit e47d3a7

Please sign in to comment.