👋 Contribute to BigFunctions¶
BigFunctions is fully open-source. Any contribution is more than welcome 🤗!
- Add a ⭐ on the repo to show your support
- Join our Slack and talk with us
- Suggest a new function here
- Raise an issue there
- Open a Pull-Request! See instructions below.
How to submit pull requests¶
To make a change to this repository:
- Fork the repository and create your branch from
main
. - Clone your fork
- Create a virtual env then install the packages (including dev packages) with
pip install -e .[dev]
- Make your changes.
- Run pre-commit to follow the repo rules using
precommit run
- Commit and Push your changes to your fork.
- Create a pull request.
(If the change is particularly small, these steps are easily accomplished directly in the GitHub UI.)
How to create a new open-source BigFunction¶
Before spending a lot of time to develop a new bigfunction, don't hesitate to reach out through bigfunctions slack (or by email --> paul.marcombes@unytics.io).
To start, the best is to duplicate an existing yaml file in 'bigfunctions' folder. Make sure to duplicate a file with the same type (function_sql, aggregate_function_sql, function_js, function_py, procedure) as the one you target.
Before submitting a Pull-Request, make sure:
- your BigFunction is really useful. If it takes more time to call it than to write its own code, there may be something wrong. For instance, it does not seem appropriate to create a bigfunction that we would call by
bigfunctions.eu.is_date_in_range(my_date, start_date, end_date)
rather than to write directlymy_date between start_date and end_date
. - bigfunction name is explicit. If the function returns a boolean, it should start with
is_
orhas_
. It the function create a vizualisation in BigQuery console it should start withexplore_
. - all arguments/output names are explicit.
- descriptions are concise.
- you provide enough examples (edge cases must be provided) but not too much (you should not provide a second example that does not provide more understanding about the function than the first one).
- you deployed sucessfully your bigfunction by calling
bigfun deploy your_bigfunction
- you tested the bigfunction for all the examples you provided and you each time got the expected output. (we plan to create a test command line soon).
- sql keywords must me lowercased (such as
select
)
First contributor?¶
You can contribute by selecting one of these issues which were tagged good-first-issue
. If you need any help, don't hesitate to reach out through bigfunctions slack.
License¶
By contributing to this repository, you agree that your contributions will be licensed under its MIT License.