2020-05-22 23:34:32 +02:00
|
|
|
---
|
2020-11-03 05:14:27 +01:00
|
|
|
title: Contribute to Libretime
|
2020-11-01 04:23:29 +01:00
|
|
|
layout: article
|
2020-11-03 05:14:27 +01:00
|
|
|
category: dev
|
|
|
|
permalink: /contribute
|
2020-05-22 23:34:32 +02:00
|
|
|
---
|
2020-05-19 03:34:56 +02:00
|
|
|
|
2020-11-19 17:59:27 +01:00
|
|
|
> LibreTime is a fork of AirTime due to stalled development of the open source version. For background on this,
|
2021-05-27 16:20:34 +02:00
|
|
|
> see this [open letter to the Airtime community](https://gist.github.com/hairmare/8c03b69c9accc90cfe31fd7e77c3b07d).
|
2020-05-23 04:07:51 +02:00
|
|
|
|
2020-05-19 03:34:56 +02:00
|
|
|
## Bug reporting
|
|
|
|
|
|
|
|
If you think you've found a bug, please report it on our [Github issues page](https://github.com/LibreTime/libretime/issues/new/choose).
|
|
|
|
Create a bug report by selecting **Get Started** next to **Bug Report**. That way, the LibreTime team can keep track of
|
|
|
|
your problem and notify you when it has been fixed. You can also suggest
|
|
|
|
improvements and new features for LibreTime on that site.
|
|
|
|
|
|
|
|
## Feature requests
|
|
|
|
|
2020-11-28 03:39:16 +01:00
|
|
|
Have an idea that would make Libretime even better than it is right now? Start a **Feature request** on our
|
2020-05-19 03:34:56 +02:00
|
|
|
[Github issues page](https://github.com/LibreTime/libretime/issues/new/choose).
|
|
|
|
|
2020-11-28 03:39:16 +01:00
|
|
|
## Translation
|
2020-05-19 03:34:56 +02:00
|
|
|
|
|
|
|
LibreTime can run in over 15 different languages due to the gracious help of our volunteers. Is your language not
|
2020-11-08 04:50:28 +01:00
|
|
|
supported? Follow [this guide](/docs/interface-localization) to add your language to LibreTime!
|
2020-05-19 03:34:56 +02:00
|
|
|
|
2020-11-28 03:39:16 +01:00
|
|
|
## Write documentation
|
2020-05-27 15:39:33 +02:00
|
|
|
|
2020-11-19 17:59:27 +01:00
|
|
|
Our site is now built by Jekyll, which has an installation guide [here](https://jekyllrb.com/docs/installation/) to help get you started.
|
2021-05-27 16:20:34 +02:00
|
|
|
After cloning our repo locally, enter the `docs/` directory and run
|
2020-06-27 17:36:58 +02:00
|
|
|
|
2020-05-27 15:39:33 +02:00
|
|
|
```
|
2020-06-27 17:36:58 +02:00
|
|
|
bundle install
|
2020-05-27 15:39:33 +02:00
|
|
|
jekyll serve
|
|
|
|
```
|
|
|
|
|
2020-11-28 03:39:16 +01:00
|
|
|
## Code
|
2020-05-19 03:34:56 +02:00
|
|
|
|
2021-05-27 15:59:00 +02:00
|
|
|
Are you familiar with coding in PHP? Have you made projects in Liquidsoap and some of the other services we use?
|
2020-11-08 04:50:28 +01:00
|
|
|
Take a look at the [list of bugs and feature requests](https://github.com/LibreTime/libretime/issues), and then
|
2020-05-19 03:34:56 +02:00
|
|
|
fork our repo and have a go! Just use the **Fork** button at the top of our **Code** page, clone the forked repo to
|
|
|
|
your desktop, open up a favorite editor and make some changes, and then commit, push, and open a pull request.
|
|
|
|
Knowledge on how to use [Github](https://guides.github.com/activities/hello-world/) and [Git](https://git-scm.com/docs/gittutorial)
|
|
|
|
will suit you well, use the links for a quick 101.
|
|
|
|
|
2020-11-28 03:39:16 +01:00
|
|
|
## Testing and CI/CD
|
2020-05-20 15:25:37 +02:00
|
|
|
|
2020-05-19 03:34:56 +02:00
|
|
|
Before submitting code to the project, it's a good idea to test it first. To do this, it's easiest to install
|
2021-05-27 15:59:00 +02:00
|
|
|
LibreTime in a virtual machine on your local system or in a cloud VM. We have instructions for setting up a virtual
|
2020-11-12 04:41:53 +01:00
|
|
|
instance of LibreTime with [Vagrant](/docs/vagrant) and [Multipass](/docs/multipass).
|
2020-05-20 15:25:37 +02:00
|
|
|
|
2020-05-20 15:33:03 +02:00
|
|
|
If you would like to try LibreTime in a Docker image,
|
|
|
|
Odclive has instructions [here](https://github.com/kessibi/libretime-docker) for setting up a test image
|
2021-05-27 15:59:00 +02:00
|
|
|
and a more persistent install.
|
2020-05-20 15:33:03 +02:00
|
|
|
|
2020-11-12 04:41:53 +01:00
|
|
|
## Modifying the Database
|
2021-05-27 16:20:34 +02:00
|
|
|
|
2020-05-19 03:34:56 +02:00
|
|
|
LibreTime is designed to work with a [PostgreSQL](https://www.postgresql.org/) database server running locally.
|
|
|
|
LibreTime uses [PropelORM](http://propelorm.org) to interact with the ZendPHP components and create the database.
|
|
|
|
|
|
|
|
If you are a developer seeking to add new columns to the database here are the steps.
|
|
|
|
|
|
|
|
1. Modify `airtime_mvc/build/schema.xml` with any changes.
|
|
|
|
2. Run `dev_tools/propel_generate.sh`
|
|
|
|
3. Update the upgrade.sql under `airtime_mvc/application/controllers/upgrade_sql/VERSION` for example
|
2021-05-27 16:20:34 +02:00
|
|
|
`ALTER TABLE imported_podcast ADD COLUMN album_override boolean default 'f' NOT NULL;`
|