|
|
|
# Getting a .war
|
|
|
|
|
|
|
|
Airsonic is using [Maven](https://maven.apache.org/) to manage its build
|
|
|
|
process. Any version above 3.3+ should do the job.
|
|
|
|
|
|
|
|
If you want to run the testsuite and get a `.war` is everything went fine,
|
|
|
|
you this command:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ mvn clean package
|
|
|
|
```
|
|
|
|
|
|
|
|
If you don't care about the result of the testsuite, but only
|
|
|
|
want a `.war` as quick as possible, you can use this instead:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ mvn -Dmaven.test.skip=true clean package
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
# Suggesting modifications
|
|
|
|
|
|
|
|
Airsonic's source code is hosted on [github](https://github.com/airsonic/airsonic/),
|
|
|
|
who provides a [lot of documentation](https://help.github.com/en) on how
|
|
|
|
to contribute to projects hosted there.
|
|
|
|
|
|
|
|
Keep in mind that this is a non-funded community-driven project maintained by
|
|
|
|
a relatively small group of contributors who have many other responsibilities
|
|
|
|
and demands on their time. Development, maintenance, and administration of the
|
|
|
|
project is done on a best-effort basis, as time and other constraints permit.
|
|
|
|
|
|
|
|
|
|
|
|
# Getting your pull-requests reviewed and merged
|
|
|
|
|
|
|
|
Once you have submitted a pull-request, a number of factors may determine how
|
|
|
|
much attention it receives, how quickly it may be reviewed, and whether or not
|
|
|
|
it eventually gets accepted and merged. Here are a few guidelines that can help
|
|
|
|
speed the process and increase the chances of a pull request being accepted and
|
|
|
|
merged in a timely fashion:
|
|
|
|
|
|
|
|
- Limit the scope to the minimum changes necessary to accomplish a discrete and
|
|
|
|
well defined task.
|
|
|
|
- If your changes could be broken down into smaller units, then they are much
|
|
|
|
less likely to be accepted.
|
|
|
|
- Try not to address unrelated issues in the same set of changes, unless
|
|
|
|
failing to do so would cause other problems (like merge conflicts).
|
|
|
|
- Do your best to maintain prior functionality while eliminating (or at least
|
|
|
|
minimizing) side effects.
|
|
|
|
- Changes that affect backward compatibility or make it more difficult to
|
|
|
|
upgrade or downgrade versions of libraries or installations will be the most
|
|
|
|
heavily scrutinized and take the longest.
|
|
|
|
- Maintain the style and coding standards represented by the codebase.
|
|
|
|
- Consistent, simple, and easy-to-understand changes are usually preferred.
|
|
|
|
- Do not mix functional changes with code cleanups or style changes.
|
|
|
|
- Make it as easy as possible for others to review your changes. Rebasing your
|
|
|
|
PR to address issues is strongly preferred over adding additional commits
|
|
|
|
that make changes to (or undo parts of) prior commits.
|
|
|
|
- In general, the more commits in a PR, the harder it is to review and the
|
|
|
|
longer it will take to be reviewed. But do not sacrifice good change
|
|
|
|
isolation by combining commits unnecessarily.
|
|
|
|
- If your PR needs more than 2 or 3 commits, then you *probably* need to reduce
|
|
|
|
the scope of your PR. If a single commit touches more than a few files or
|
|
|
|
more than 30-50 lines, then the scope of the commit *probably* needs to be
|
|
|
|
reduced.
|
|
|
|
- Keep in mind that we strive to balance stability with new features while best
|
|
|
|
utilizing everybody's limited available free time. As such, a pull request may
|
|
|
|
be rejected if it doesn't strike that balance.
|
|
|
|
|
|
|
|
And finally:
|
|
|
|
|
|
|
|
- Actively maintain your PR. If any concerns are raised, or tests fail, or some
|
|
|
|
other change occurs in the codebase that affects your PR (like a merge
|
|
|
|
conflict) before your PR is accepted and merged, you are expected to address
|
|
|
|
and resolve those issues or the PR may be rejected.
|
|
|
|
|
|
|
|
Once all concerns have been addressed, having a change accepted usually
|
|
|
|
requires two (or more, depending on complexity and impact) [core
|
|
|
|
contributors](https://github.com/airsonic/airsonic/graphs/contributors): one to
|
|
|
|
explicitly approve the pull-request, and another to perform the actual merge.
|
|
|
|
|
|
|
|
If you keep sending great code, you might be invited to become a *core
|
|
|
|
contributor*.
|
|
|
|
|
|
|
|
Normal releases do not happen on any fixed schedule. They happen when the
|
|
|
|
maintainers collectively decide that enough changes and testing have taken
|
|
|
|
place that a new release is warranted. Bugfix releases (when a problem has been
|
|
|
|
discovered that is likely to impact users significantly), may happen more
|
|
|
|
quickly if needed. Even after acceptance, the inclusion of larger changes may
|
|
|
|
be delayed until a major version release in order to ensure that the impact to
|
|
|
|
users is minimized and that stability is maintained.
|
|
|
|
|
|
|
|
# Getting help
|
|
|
|
|
|
|
|
The documentation is hosted [here](https://airsonic.github.io/) (you can
|
|
|
|
contribute to it [here](https://github.com/airsonic/documentation)), and aims
|
|
|
|
at being comprehensive. You can also use [irc](irc://irc.freenode.net/airsonic)
|
|
|
|
and [reddit](https://www.reddit.com/r/airsonic/) if you want to discuss or ask
|
|
|
|
questions.
|