news/CONTRIBUTING.md

4.7 KiB

Contributing

News is developed by volunteers in their free time with some support through the Nextcloud organization and community. To keep this project alive we need contributions from volunteers, the software is provided under the AGPL v3.0 license.

Read this when you want to:

General

  • Be as precise in your issues as possible and make it as easy as possible to understand, this heavily influences the possibility to actually help you.
  • Follow the code of conduct. Being a dick and insulting people will get your posts deleted and issues locked.
  • Please follow the issue template and fill all the sections as much as you can, if not we might close your issue without any comment.

Feed issues

For feed parsing issues, check:

Hints for reporting bugs

Debugging issues

  • Enable debug mode in your config/config.php:
  • Add the debug attribute to config array (if not already present) and set it to true:
<?php
$CONFIG = array(
   // other options
   // ...
   'debug' => true,
);

When Requesting Features

Please always provide the use case in addition solution, e.g.:

  • "If I read feed that has comics, the newest first ordering does not work well because I have to read from the bottom up"

is much more helpful than just writing:

  • "Please add reverse ordering".

Features don't belong into the issues section, instead discuss them in discussions.

Translation

For translations in other languages than English, we rely on the Transifex platform.

If you want to help with translating the app, please do not create a pull request. Instead, head over to https://www.transifex.com/projects/p/nextcloud/resource/news/ and join the team of your native language.

If approved, the translation will be automatically ported to the code within 24 hours.

Development

You can first create a discussion where you explain why, what and how you want to make a change before writing any code. If you want to agree on a solution first.

This not required however.

How to set up a development environment

To get started setup an developer environment. Inside the apps directory clone the news repository and enable the app with occ. Make sure you have all dependencies installed.

To build the app run:

make

in the app directory to fetch all dependencies and compile the JavaScript. The News app uses Composer for PHP dependencies, Gulp for building the JavaScript "binary" and Bower/npm as JavaScript package manager. For more information on JavaScript development check out the README.md in the js folder

For running all tests suites you can run:

make test

Packaging is done via:

make dist

The packages are inside the top level build/artifacts folder

Coding Style Guidelines

The PHP code should all adhere to PSR-2. Note that this is a different codestyle than nextcloud itself uses. To test the codestyle you can run make phpcs.

For linting JavaScript, a jshint file is used that is run before compiling the JavaScript