In 2019, my team embraced the philosophy that any library or package we create should be open sourced with a permissive license in a public source repo. This is not just the right thing to do — it’s also a more productive approach. It’s the right thing to do because we get to collaborate effectively with the larger development community and benefit from public tools like Github’s neat dependency update bot. It’s more productive because we avoid maintaining a shadow infrastructure of private package repos.
Some of these libraries are very minor, but the point is not to open source only perfect, polished, popular things. If you only open source perfection, you’ll open source nothing. Perfect is the enemy of good.
The thing that impresses me the most of the most of our open source projects is a dashboard for monitoring a Gluster storage cluster that some very brilliant people on my team put together.
We also open sourced a Ruby client for Kubernetes. Its distinguishing feature is being able to update among other things all of Pods, Services, Deployments, Endpoints, and Ingresses.
Another thing we released publicly was our extensible backup framework, Backwork. We deploy lots of little, inconsequential databases and files that we nevertheless need to be able to back up with one tool rather than memorizing the syntax of MySQL backup tool for one thing, the MongoDB backup tool for another, and so on.
- https://github.com/IBM/backwork
- https://github.com/IBM/backwork-backup-files
- https://github.com/IBM/backwork-backup-mongo
- https://github.com/IBM/backwork-backup-mysql
- https://github.com/IBM/backwork-backup-postgresql
- https://github.com/IBM/backwork-backup-xtrabackup
- https://github.com/IBM/backwork-notifier-sentry
- https://github.com/IBM/backwork-upload-cos – COS is an S3-compatible storage service
- https://github.com/IBM/backwork-upload-swift – This is for OpenStack SWIFT storage
- https://github.com/IBM/backwork-docker – Docker image packaging Backwork so that it’s easy to schedule as a job in a containerized environment
We use JupyterLab a lot in our Skills Network Labs environment that lets learners learn Python, machine learning, and other technologies. To that end, we’ve put together several plugins.
- https://github.com/IBM/jupyterlab-cognos-dashboard-embedded
- https://github.com/IBM/jupyterlab-s3-browser
I also open sourced an older Ruby on Rails library I put together when I needed to write several REST services in quick succession. It catches common Rails exceptions and transforms them into an appropriate RESTful status code (401, 404, 422, etc.)
I expect there are a lot more contributions coming in 2020, including several tools for the Open edX ecosystem for online courses.