rearange sections between CONTRIBUTING and the website

This commit is contained in:
Kyle Robbertze 2021-06-13 13:26:27 +02:00
parent 6cbe769471
commit fec0aec26d
2 changed files with 63 additions and 63 deletions

View File

@ -16,7 +16,7 @@ find explanation about most of the development workflows for LibreTime.
- [Suggesting enhancements](#suggesting-enhancements) - [Suggesting enhancements](#suggesting-enhancements)
- [Financially](https://libretime.org/contribute#financial) - [Financially](https://libretime.org/contribute#financial)
- [Contributing to documentation](https://libretime.org/contribute#write-documentation) - [Contributing to documentation](https://libretime.org/contribute#write-documentation)
- [Contributing to code](https://libretime.org/contribute#code) - [Contributing to code](#code)
## Reporting bugs ## Reporting bugs
@ -62,8 +62,68 @@ as possible. Fill in [the template](https://github.com/libretime/libretime/issue
including the steps that you imagine you would take if the feature you're including the steps that you imagine you would take if the feature you're
requesting existed. requesting existed.
## Code, documentation and financial contributions ## Code
More information about how to contribute code, documentation or financially Are you familiar with coding in PHP or Python? Have you made projects in
Liquidsoap and some of the other services we use? 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 [GitHub page](https://github.com/LibreTime/libretime), 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.
LibreTime uses the [black](https://github.com/psf/black) coding style for Python
and you must ensure that your code follows it. If not, the CI will fail and your
Pull Request will not be merged. Similarly, the Python import statements are
sorted with [isort](https://github.com/pycqa/isort). There is configuration
provided for [pre-commit](https://pre-commit.com/), which will ensure that code
matches the expected style and conventions when you commit changes. It is set up
by running:
```bash
sudo apt install pre-commit
pre-commit install
```
You can also run it anytime using:
```bash
pre-commit run --all-files
```
## 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 LibreTime in a virtual machine on your local
system or in a cloud VM. We have instructions for setting up a virtual 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
and a more persistent install.
## Modifying the Database
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. The version 2
API uses Django to interact with the same 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
`ALTER TABLE imported_podcast ADD COLUMN album_override boolean default 'f' NOT NULL;`
4. Update the models under `api/libretimeapi/models/` to reflect the new
changes.
## Documentation and financial contributions
More information about how to contribute documentation or financially
through our [OpenCollective](https://opencollective.com/libretime) can be found through our [OpenCollective](https://opencollective.com/libretime) can be found
on our [website](https://libretime.org/contribute). on our [website](https://libretime.org/contribute).

View File

@ -95,63 +95,3 @@ directory and run
bundle install bundle install
jekyll serve jekyll serve
``` ```
## Code
Are you familiar with coding in PHP or Python? Have you made projects in
Liquidsoap and some of the other services we use? 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 [GitHub page](https://github.com/LibreTime/libretime), 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.
LibreTime uses the [black](https://github.com/psf/black) coding style for Python
and you must ensure that your code follows it. If not, the CI will fail and your
Pull Request will not be merged. Similarly, the Python import statements are
sorted with [isort](https://github.com/pycqa/isort). There is configuration
provided for [pre-commit](https://pre-commit.com/), which will ensure that code
matches the expected style and conventions when you commit changes. It is set up
by running:
```bash
sudo apt install pre-commit
pre-commit install
```
You can also run it anytime using:
```bash
pre-commit run --all-files
```
## 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 LibreTime in a virtual machine on your local
system or in a cloud VM. We have instructions for setting up a virtual 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
and a more persistent install.
## Modifying the Database
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. The version 2
API uses Django to interact with the same 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
`ALTER TABLE imported_podcast ADD COLUMN album_override boolean default 'f' NOT NULL;`
4. Update the models under `api/libretimeapi/models/` to reflect the new
changes.