We are super happy that you intend to contribute to the nbextensions! You can discuss improvements in issues and implement them in pull requests.
Because this is a volunteer effort, we cannot provide support for all of the extensions. So if you contribute a new extension, please stick around and help others using it.
Do not hesitate to open up an issue, you can discuss bugs, improvements or new extensions in them. Creating an issue is a good starting point for code contributions. The community can support you with experience of similar extensions, pros and cons, what to look for etc.
Here is an example issue of how @benelot did it that worked pretty smoothly: #1193
For small things like fixing typos in documentation, you can make edits through GitHub, which will handle forking and making a pull request (PR) for you. For anything bigger or more complex, you'll probably want to set up a development environment, a quick procedure for which is as folows:
-
Fork and clone First fork this repo, then clone your fork. In this way you become prepared to make a pull request.
# clone your fork git clone https://github.com/<your-github-username>/jupyter_contrib_nbextensions.git cd jupyter_contrib_nbextensions
-
Setup
If you're using python in combination with some form of virtual environment (e.g. conda, virtualenv), make sure you have the correct environment (the one from which you run
jupyter notebook
) active before running these commands!# run from the main directory, where setup.py is pip install --editable . # on windows, remove the --symlink flag and re-run the command each time you make changes jupyter-contrib-nbextension install --sys-prefix --symlink
Add a folder with the name of your new extension to jupyter_contrib_nbextensions/nbextensions. Check out the Jupyter Notebook extension structure link to know what has to be in that folder and what the general conventions are.
As you are ready with your code contribution, make a pull-request to the main repo and briefly explain what you have done.
Here is an example pull request of how @benelot did it that worked super well: #1213
Please also update the unreleased section of the CHANGELOG.md to note what you've added or fixed.