CONTRIBUTING#

Help Wanted#

  • tackling roadmap issues

  • improving testing

  • improving (self-hosted) documentation

  • improving the binder demo

  • improving continuous integration and developer experience

Prerequisites#

  • jupyterlab >=3,<4

  • nodejs >=12

  • doit >=0.32

Get to a working Lab#

doit

Start JupyterLab#

doit serve:lab

Start JupyterLite#

doit serve:demo

Prepare a Release#

doit dist

Do everything#

doit all

Updating drawio#

  • update the version in packages/ipydrawio-webpack/package.json

  • update dependencies in other package.json

pushd packages/ipydrawio-webpack/drawio
git fetch
git checkout v<the new version>
popd
doit dist
  • validate everything looks good!

Releasing#

  • [ ] start a release issue with a checklist (maybe like this one)

  • [ ] merge all outstanding PRs

  • [ ] ensure the versions have been bumped (check with doit test:integrity)

  • [ ] ensure the CHANGELOG is up-to-date

    • [ ] move the new release to the top of the stack

  • [ ] validate on binder

  • [ ] validate on ReadTheDocs

  • [ ] wait for a successful build of master

  • [ ] download the dist archive and unpack somewhere (maybe a fresh dist)

  • [ ] create a new release through the GitHub UI

    • [ ] paste in the relevant CHANGELOG entries

    • [ ] upload the artifacts

  • [ ] actually upload to npm.com, pypi.org

    cd dist
    twine upload ipydrawio*
    npm login
    npm publish deathbeds-ipydrawio-$VERSION.tgz
    npm publish deathbeds-ipydrawio-jupyter-templates-$VERSION.tgz
    npm publish deathbeds-ipydrawio-notebook-$VERSION.tgz
    npm publish deathbeds-ipydrawio-pdf-$VERSION.tgz
    npm publish deathbeds-ipydrawio-webpack-$OTHER_VERSION.tgz
    npm logout
    
  • [ ] postmortem

    • [ ] handle conda-forge feedstock tasks

    • [ ] validate on binder via simplest-possible gists

    • [ ] activate the version on ReadTheDocs

    • [ ] bump to next development version

    • [ ] update release procedures

Copyright 2022 ipydrawio contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.