# Developer Information.

Hacker Public Radio (HPR) is a long term project run by volunteers. 

## Project Principles 

There are a few things you need to be aware of before you decide to contribute to HPR.

Our prime directive is that "HPR is dedicated to sharing knowledge".

Any software development is done with the goal of supporting the distribution of the podcast media, [locally](directory-structure.md) so they can be played on as many devices as possible.

The priority is to keep the flow of shows coming in and going out, fix any accessibility issue that arise, then work on any other feature requests.

Some things we can change without discussion but other things we need to get input from the [HPR Community](https://hackerpublicradio.org/about.html#governance).

Changes can take a long time, community approval can take several months, while other changes require a lot of work from volunteers who are focused on other priorities.

We allow redistribution by releasing all our content under a [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). In the same vein all our code is released under [aGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html), or other [OSI approved licenses](https://opensource.org/licenses).

We do not track statistics to the detriment of our prime directive.

We make the entire delivery ecosystem redundant using native Internet standards, and the cooperation of community members.

All Data is available by default.

Community Members, sponsors, and hosting platforms will change over time.

We have a distrust of online platforms, libraries and niche tools (that we do not support ourselves) as they can and have [disappeared overnight](https://killedby.tech/).

We are very conservative in our choice of tech. As a rule of thumb, all software choices tend to be technology that was developed years ago, and is likely to be around for years to come. 

We make our code as simple to understand as possible as our replacement may not have the skill set we do.

That said, we move with the times when there is a clear advantage to do so.

We run up to date patched stable software.

We have a long tradition of supporting and sharing hacker culture. Any identified vulnerabilities are fixed with credit if requested.

We use [RSS](https://www.rssboard.org/rss-specification) as a delivery mechanism, which is by default fault tolerant.

Our primary domains HackerPublicRadio.com and HackerPublicRadio.org are registered with different providers, and the DNS is served from different locations.

All our code is on [GitTea](https://repo.anhonesthost.net/HPR), please clone locally.

[Our database](https://hackerpublicradio.org/hpr.sql) is updated frequently, please copy locally.

Our media is served from our [Community Content Delivery Network (CCDN)](https://repo.anhonesthost.net/HPR/hpr_documentation/ccdn/).

Bug reports, and patches are welcome from anyone without commitment.

If you are contributing new code, or new technology we ask you commit to supporting it for a *minimum of two years*. This allows the other Janitors time to learn the new tech and support it when you leave.

## Create an Account

If you're happy with all that, then...

In order to contribute you need to [create an account](https://repo.anhonesthost.net/user/sign_up), but you **also** need to notify the admins@hpr either via email, mastodon, or matrix that you have created an account. Due to the level of spam accounts we need to approve each one by one.

Once you have set up your account, you will need to set up your local
development environment. [Instructions here](set-up-development-environment.md)

Changes can be submitted as described in [hpr3797 :: How to submit changes to HPR](https://hackerpublicradio.org/eps/hpr3797/index.html).

