Pipcook is a community-driven open source project. We do our best to hope that every bug fixed, new feature, and how this project evolves is visible and transparent to everyone in this Community.
Therefore, we believe that from source code to our documentation are more friendly to contributors, so in order to make it easier for contributors to participate in Pipcook, some paths have been developed. If you want to get involved, you can follow it.
- If you are going to browse source code only, goto GitHub.
- If you are a rookie and no experience in contributing to any open source project, then we have organized good first issue for you, all of which are relatively simple tasks, easy to start with.
- If you want to learn machine learning through contributing this project, you can try our good first model to help us do some model implementation and migration tasks (rest assured, you only need to complete the call to the Python ecosystem through Boa).
- Otherwise, discussions on any of our issues are open to everyone, and you are welcome to contribute your ideas.
Next, let ’s take a look at how to submit patches to Pipcook.
- macOS / Linux
- Node.js >= 12
Clone the repository from GitHub:
$ git clone git@github.com:alibaba/pipcook.git
And install the requirements and build:
$ npm install
$ npm run build
We provide a way to use tuna mirror for downloading Python and packages:
$ BOA_TUNA=1 npm install
Or you could specify your custom miniconda mirror and Python index page:
$ export BOA_CONDA_MIRROR=https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda # this is for miniconda
$ export BOA_CONDA_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple # this is for pip
$ npm install
Run all the tests in the following
$ npm test
And run tests for single specific package:
$ ./node_modules/.bin/lerna run --scope <package_name>
$ sh run_pipeline.sh <pipeline_name>
The pipeline_name
is the name of the pipeline file under "test/pipelines", such as:
- "text-bayes-classification"
- "mnist-image-classification"
- "databinding-image-classification"
After the local test is passed, you can push the code and create a pull request:
$ git push git@github.com:<username>/pipcook.git <feature_branch>
You can refer here for Plugin Specification.
We have defined a set of interfaces for each plugin. Each type of plugin must be implemented strictly according to the interfaces. The detailed information is as follows:
For data reading and processing involved in the development, please refer to our Dataset Specification.