Welcome | Get started | Dive into Lino | Contribute | Topics | Reference | More

Welcome

You are a software developer and want to contribute to the Lino framework? That's a great idea! The world needs people like you!

Audience

This website is meant for people who want to contribute to Lino by writing source code. To be more precise we should have called this website Programming Guide instead of Developer Guide. Because developing a software product is much more than writing source code. On the other hand, especially in synodal software development, it is difficult to separate programming from the many other activities of the software development business. Lino encourages programmers to care about the whole project.

This website is meant to make sense independently of your experience level.

It should be useful for students, volunteers, freelancers or employees working for themselves, for a development provider or for a site operator.

An internship at home

By following this guide you can virtually start an internship at home. If you need help. simply contact one of the team directly via email. There is no online application form because we are a small team. One of us will be your mentor and will communicate with you individually. You may interrupt or abandon your internship at any moment.

During your internship you will get quality support for free. You just need to ask. We help you to enter the business of software development with just your own time as your only investment. Try to do that with some proprietary framework!

Your time investment doesn't get lost in case you would decide to leave our team. Lino and its documentation, including this website, are available for free for everybody and forever. You will always be allowed to use what you learned for making money, either on your own or together with others (see How to make money with Lino). Try to do that with some proprietary framework!

We have a good reason for helping you with getting your business started: we want Lino to have a sustainable and diverse community of users.

During your internship you will

  • work independently and at a rhythm that suits you.

  • gain experience with working in a free open-source software project

  • increase your chances on the job market

You will learn among others

  • how to write and maintain source code in Python, Javascript and Sphinx

  • how to use Lino and its underlying framework, Django

  • how to use git for sharing your work with others

  • how to monitor and use continuous integration on GitLab

Possible outcome of your internship

Of course we provide this support only as much as our human resources allow. We do our best, not more.

Prerequisites

Experience with the Python programming language will accelerate your progress but is not required. Check out our collection of resources for Learning Python.

A requirement that might sound hard if you never tried it: you need to feel at home on a Linux computer. Lino is a web application framework. A typical Lino production site runs on a pure Debian VPS (see Set up a Lino production server). Lino itself does not require a specific operating system, but on a proprietary operating system you are likely to encounter problems that are not our business. Welcome to the world of Free Software :-)

In case you don't believe that this requirement is actually a chance: Seth Kenlon shares 21 reasons why I think everyone should try Linux. If you hesitate about which Linux distribution to start with, we recommend Ubuntu. If you can't stop using MS-Windows as your primary OS right now, check out Windows Subsystem for Linux (WSL). See here or here.

That's why we assume that you have a computer with a Linux operating system at your disposal.

We assume you are familiar with the Linux shell at least for basic file operations like ls, cp, mkdir, rmdir, file permissions, environment variables, bash scripts etc. Otherwise we suggest to read Working in a UNIX shell before going on.

The developer guide is written for Debian and derived distributions. Other Linuxes should be pretty similar.

How to read this guide

"Begin at the beginning," the King said, very gravely, "and go on till you come to the end: then stop." -- Lewis Carroll, Alice in Wonderland

As a first step, your mentor will ask you to read this guide sequentially.

Reading this guide sequentially means that you use the previous/next links. They are on the top and on the bottom of each page, they are even linked to the left / right arrows keys of your keyboard. Consider the inline links in this guide like footnotes of a book: You are welcome to follow these footnotes, but please take care to return to the place you left and continue your journey, because these footnotes lead you into the labyrinth of documentation.

We need you

Unlike Carroll's Wonderland, this guide is neither perfect nor definitive. Lino constantly evolves. The pages on this website can become obsolete, useless, boring, or turn out to be at the wrong place.

So don't be shy to ask questions. Tell your mentor when you get stuck or have the feeling that some page is useless, boring or difficult to understand.

Keep in mind that every feedback, even critical feedback, the mere fact of asking for help, is already a contribution to making this guide better. The Lino community thanks you in advance.

You don't need to be perfect, you will learn on your way, and we will help you to learn. And which is more: we will learn from you.

How to contact us