Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

35 create contributor docs #71

Merged
merged 3 commits into from
Aug 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 2 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,22 +145,11 @@ The `web_radio` file is able to take in a web radio address and play it through
streams don't work.

## Feature Requests
I've built this out for my specific use case and released it to the public when I considered it feature complete. Currently, my focus is on fixing bugs I've found during usage and making the development experience better.
Suggestions are welcome for adding additional features.

## Development Setup
Note: steps 3 & 4 assume a developer is on some distribution of Debian/Ubuntu. If not on that distribution,
you can simply look at what is happening in `taskfile.yaml` and replicate that in your environment.

1. Install [golang](https://go.dev/doc/install)
2. Install [taskfile.dev](https://taskfile.dev/installation/) on your machine.

3. Run `task install_deps` in the root of this repo.

4. Run `task run` in the root of this repo.
## Development Setup

If all passes without errors, you should be set to use this binary. Checkout the `taskfile.dev` for additional features
commands you can run.
Follow the steps in [development.md](https://github.com/jmillerv/go-dj/blob/main/docs/development.md) to get started.

### Linting
Linting is performed by [golangci-lint](https://golangci-lint.run/)
70 changes: 70 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Introduction

Thanks for taking a look and considering contributing to go-dj. This isn't an ambitious tool, but an endeavor to get people interested
in local first music solutions and possibly [Part 15 of Title 47 CFR](https://en.wikipedia.org/wiki/Title_47_CFR_Part_15).

Following these guidelines will help you to report and fix bugs, as well as, submit and suggests features.

## Contributions

I've built this out for my specific use case and released it to the public when I considered it feature complete. Currently, my focus is on fixing bugs I've found during usage and making the development experience better.
My hope is to get this into a state where most people, especially non-developers, could get a hold of go-dj and start experimenting with it. To that end,
improving documentation, bug triaging, or writing tutorials are all welcome contributions. Suggestions are also welcome for adding additional features, they just might not be priority.

### What Isn't Sought

At this time, the goal of go-dj isn't to become a competitor to any other dj software. The goal is to be an easily configurable, lightweight tool for scheduling audio content to be played locally. Anything that expands beyond
those goals likely won't be prioritized.


## Repository Rules

> Responsibilities
> * Ensure cross-platform compatibility for every change that's accepted. Currently, this is Ubuntu/Debian Linux.
> * Create issues for any major changes and enhancements that you wish to make.
> * Keep feature versions as small as possible, preferably one new feature per version.
> * Be welcoming to newcomers and encourage diverse new contributors from all backgrounds.

## Your First Contribution

Unsure where to begin contributing to go-dj? You can start by looking through the [good first issue](https://github.com/jmillerv/go-dj/labels/good%20first%20issue) and the [help wanted](https://github.com/jmillerv/go-dj/labels/help%20wanted) tags:

**Good first issues**: issues which should only require a few lines of code, and a test or two.
**Help wanted issues**: issues which should be a bit more involved than beginner issues.

If you have never submitted a pull request before, check out: http://makeapullrequest.com/ and http://www.firsttimersonly.com/.
You can also check out this series: [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github).

# Getting started

* Code coverage should not fall below 80 percent when code is submitted to the repository.
* The code should be linted before making the pull request, else it will fail the pipeline.

For something that is bigger than a one or two line fix:
1. Create your own fork of the code
2. Do the changes in your fork
3. If you like the change and think the project could use it run through the following checklist:
- [ ] Code linted
- [ ] Unit tests written
- [ ] Unit tests passing
- [ ] Code works locally without issue


### Reporting Bugs & Submitting Issues

> When filing an issue, make sure to answer these five questions:
>
> 1. What version of Go are you using (go version)?
> 2. What operating system and processor architecture are you using?
> 3. What did you do?
> 4. What did you expect to see?
> 5. What did you see instead?


# Code review process
When a merge request is submitted, after it passes the pipelines, I will test and review the changes locally and make any necessary comments on the suggested changes.

I endeavor to check on this project at least once a week.

## Acknowledgements
https://github.com/nayafia/contributing-template
15 changes: 15 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## Development Setup
Note: steps 3 & 4 assume a developer is on some distribution of Debian/Ubuntu. If not on that distribution,
you can simply look at what is happening in `taskfile.yaml` and replicate that in your environment.

1. Install [golang](https://go.dev/doc/install)
2. Install [taskfile.dev](https://taskfile.dev/installation/) on your machine.

3. Run `task install_deps` in the root of this repo.

4. Run `task run` in the root of this repo.

If all passes without errors, you should be set to use this binary. Checkout the `taskfile.dev` for additional features
commands you can run.

**Note**: You can read through the [first_time_setup.md](https://github.com/jmillerv/go-dj/blob/main/docs/first_time_setup.md) document for troubleshooting help if the taskfile doesn't work.