Open Library - One Web Page for every book ever Published
Salman Shah (~salman96) |
This Workshop is designed to guide developers who are interested in learning more about the basics of open source software and contributing to their first open source project. We'll look at Open Library, a mature open source project, and see how 20 open source contributors are able to make contributions which impact over a million international users. You’ll learn what tools, best practices, and processes help make an open source project successful and what beginning steps you can take to enter the open source world.
What is Open Library?
Open Library is a non-profit online library created by Aaron Swartz and Brewster Kahle in 2006 with the mission of “One Web Page for every book ever published”. Open Library is written in Python using the web.py micro-framework, and is open source on Github. Open Library uses Infobase, its own database framework based on PostgreSQL and Infogami which is its own Wiki Engine using Python.
Why Open Library?
Open Library has an active, supportive community, newcomer-friendly issues, and mature documentation , which makes it a good candidate for engineers who are looking to contribute to their first open source project . Some of the advantages of having Open Library as your entry to the world of Open Source Software are as follows:
- Open Library is very easy to install and has simple and straight-forward instructions.
- Issues for Beginners are labelled as first-timer-issues on the repository to help beginners get over their fear of contributing to Open Source and making it a simple process for them.
- Open Library has a community call every week in order to catch up the progress that each contributor is making.
- There is a Slack channel where anyone can be invited to and GitHub issues for communication.
- There is an updated Wiki which keeps getting updated as contributors contribute to the project.
- All coding procedures followed by Open Library are documented in a CONTRIBUTING / Getting Started guide.
Some of the opportunities for new developers looking to get started to contributing to Open Library are as follows:
- Open Library does poorly as compared to global standards (like a modern js build system) and this is a huge opportunity for people who want to contribute to Open Library.
- it relies on a lot of custom code like Infogami and Infobase which are not well maintained anymore and are mostly in Python 2. So there is huge opportunity here in building a complete system while migrating to Python 3 while making sure you do retain the ease of the old code.
- Creating a Github account and finding us on Github. Comment on the Slack Invite Issue to be added to the Open Library Slack Org. Understand how communication works on Open Library and getting familiar with using Github Issues and Slack for communication.
- Introducing yourself to the Open Library Community on Slack and initiating to become an 'Open Library Librarian'. This stage also involves talking with the Open Library community and finding Issues that match your interest.
- A simple and brief introduction to Git(clone, add, commit, push, pull) and Github (Fork, PRs, Issues).
- Setting up the project on your local dev environment. Reading Documentation as this is an important part of learning to contribute to Open Source Software.
- Using the Github Bug Tracker to find First Timer Issues to resolve and work on them.
- Making your first commit as a Open Library Librarian and submitting a Pull Request.
- Getting your Pull Request Merged after following community guidelines. Understanding the review process followed at Open Library and making sure to use that effectively to contribute to further Issues!
- Basic understanding of Python
- Ability to read documentation to understand the codebase
- Basic understanding of git and scm
Salman Shah is a Final Year Undergraduate Student at NITK Surathkal and a GSoC Student at Open Library, Internet Archive. Salman is a night owl whose primary interests include reading novels, participating in Hackathons and discussing technology. His language of choice is Python which he’s used to add thousands of books to openlibrary.