First off, thank you for considering contributing to Laconia. It's people like you that make Laconia such a great framework. Laconia is still early in its infancy and it is no way close to the vision I have, so I would definitely invite contributors and maintainers. If this section is not helping what you are trying to do, please do have a chat with us in gitter, we won't bite at all, and don't be shy!
All members of our community are expected to follow our Code of Conduct. In summary, "Don't be a jerk" in this space and you will help grow a friendly community amongst passionate people.
These are some of the contribution you can help with, and not limited to:
- review a pull request
- file an issue
- improve the documentation
- write a tutorial or blog post. Look out for
blog
label.
Especially for support questions, we would appreciate it if you don't use GitHub issue tracker. This is so that when other people are encountering a similar issue, it will be beneficial for them to be able to come to the same answer. You can do the following to ask support questions:
- Ask on Stack Overflow. At the point of writing this document, the Stack Overflow tag has not been created yet, so please ping us in gitter if you need help. If you don't get answeres in Stack Overflow, please also ping us in gitter!
- Alternatively, talk to us in gitter. To help other people discover your answer, you can always self-answer your own question in Stack Overflow after.
Working on your first pull request? You can learn how from this free series:
We have a list of issue GitHub,
whether it's a bug or feature. Look out for help-wanted
or good first issue
label.
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first.
We love pull requests! Here are some guide:
-
First, ensure that no one else is actively working on the issue.
-
The project is using
standard
andprettier
for linter and code style. They are quite strict, so it will be painful if you are fixing the errors manually. The project contains Visual Studio Code configuration under.vscode
. These settings will ensure that code style and standard are automatically fixed for you. It also contains a list of extensions that we recommend. -
We love tests. Tests ensure that our releases are safe and don't break our users code. There are multiple level of tests and they are outlined below. We will require unit tests to be the minimum, especially for new APIs, we would love to have additional acceptance tests. As always, do reach out if you need help!
-
TypeScript type tests
- Example: here
- Command: Included in
npm test
-
Unit tests. Your test will fail if the new code doesn't have full test coverage. Please don't be intimidated by this, and we are here to support your pull request if you can't figure out how to test a particular code.
- Example: here.
- Command: Included in
npm test
. If you love TDD,npm run test:watch
-
Integration tests. These are the test that involve external process, like local DynamoDB
- Example: here
- Command: Included in
npm test
-
Acceptance tests. These tests simulate almost real world scenario and are running in the cloud. It's okay if you don't want to run these as it will involve some cost in AWS.
- Example: here
- Command:
npm run test:acceptance
, or included innpm run test:all
-
-
For API changes, we would encourage you to design the API with us first before starting to implement them. Laconia's documentation must be updated too!
-
Once you are done implementing, file the pull request!
There isn't any special process at the moment for code reviews. Expect us to reply within 1 week, and we'll let you know if we're struggling to cope or haven't got the time to review them yet! We are all friendly, so don't be afraid to ping us back if don't hear anything from us.