Join the Community¶
BigFunctions is fully open-source. Any contribution is more than welcome !
-
Join 200+ slack members. Get help or help others.
-
Add a star to bigfunctions GitHub to make it more visible and attract contributors.
-
Suggesting an idea is already a great contribution. Developers may develop it faster than you think.
-
Found a bug? Don't let it hidden! Report it!
-
Open a Pull-Request to create a new function or improve the framework.
-
Need professional support? Need we develop a custom function for you?
Contributors¶
Contribute¶
BigFunctions is fully open-source. Any contribution is more than welcome 🤗!
Before spending a lot of time to develop, share your idea on slack.
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¶
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.