sintonia/docs/_docs/contribute.md

68 lines
3.2 KiB
Markdown
Raw Normal View History

---
title: Contribute to Libretime
layout: article
category: dev
permalink: /contribute
---
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
## 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
[Github issues page](https://github.com/LibreTime/libretime/issues/new/choose).
2020-11-28 03:39:16 +01:00
## Translation
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-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
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
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
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).
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-11-12 04:41:53 +01:00
## Modifying the Database
2021-05-27 16:20:34 +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;`