1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 13:12:41 +00:00
The clean & modern RSS server that doesn't give you any crap.
Find a file
2019-08-04 21:00:21 -04:00
dist Consolidate configuration samples 2019-07-31 09:12:12 -04:00
docs Fill out general info 2019-08-04 16:55:08 -04:00
lib Documentation for user management and OPML 2019-07-31 14:57:43 -04:00
locale Do not necessarily ignore blank tags in import 2019-07-24 14:20:17 -04:00
sql Add access tokens to the db, with relevant code 2019-03-09 16:23:56 -05:00
tests Slight fixes to Robo and PHPUnit 2019-08-04 19:21:09 -04:00
vendor-bin Use Robo to extract zip archive 2019-08-03 22:06:57 -04:00
www/tt-rss/images Whitespace cleanup 2018-10-26 14:58:04 -04:00
.gitattributes Use Robo for programming task execution 2017-12-08 14:37:49 -05:00
.gitignore First attempt at a custom Daux theme 2019-08-02 11:15:48 -04:00
.php_cs.dist Style fixes 2018-12-05 17:28:11 -05:00
arsse.php Upgrade to Diactoros 2.x 2019-04-09 16:15:36 -04:00
AUTHORS Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
CHANGELOG Date 0.8.0 release 2019-07-26 09:43:45 -04:00
composer.json Merge branch 'fever' into opml 2019-07-24 14:04:04 -04:00
composer.lock Merge branch 'fever' into opml 2019-07-24 14:04:04 -04:00
CONTRIBUTING.md Update test-running examples 2017-12-08 15:19:14 -05:00
LICENSE Add license file and skeleton of readme 2017-05-26 10:01:35 -04:00
package.json Procedure for downloading highlight.js 2019-08-02 22:34:41 -04:00
phpdoc.dist.xml Docblocks for Conf 2017-07-16 22:27:55 -04:00
postcss.config.js First attempt at a custom Daux theme 2019-08-02 11:15:48 -04:00
README.md Rededicate the README file as a programmer's guide 2019-08-04 21:00:21 -04:00
robo Slight fixes to Robo and PHPUnit 2019-08-04 19:21:09 -04:00
robo.bat Fix error in Windows robo script 2017-12-20 09:27:15 -05:00
RoboFile.php Add manual to packaging 2019-08-04 20:49:50 -04:00
UPGRADING Documentation update; fixes #168 2019-07-25 19:23:35 -04:00
yarn.lock Procedure for downloading highlight.js 2019-08-02 22:34:41 -04:00

The Advanced RSS Environment

The Arsse is a news aggregator server, written in PHP, which implements multiple synchronization protocols. Unlike most other aggregator servers, The Arsse does not include a Web front-end (though one is planned as a separate project), and it relies on existing protocols to maximize compatibility with existing clients.

Information on how to install and use the software can be found in the manual, which is available online as well as with every copy of the software. This readme file instead focuses on how to set up a programming environment to modify the source code.

Installing from source

The main repository for The Arsse can be found at code.mensbeam.com, with a mirror also available at GitHub. The main repository is preferred, as the GitHub mirror can sometimes be out of date.

Composer is required to manage PHP dependencies. After cloning the repository or downloading a source code tarball, running composer install will download all the required dependencies, and will advise if any PHP extensions need to be installed.

Common tasks

We use a tool called Robo to simplify the execution of common tasks. It is installed with The Arsse's other dependencies, and its configured tasks can be listed by executing ./robo without arguments.

Running tests

The Arsse has an extensive PHPUnit test suite; tests can be run by executing ./robo test, which can be supplemented with any arguments understoof by PHPUnit. For example, to test only the Tiny Tiny RSS protocol, one could run /robo test --testsuite TTRSS.

There is also a test:quick Robo task which excludes slower tests, and a test:full task which includes redundant tests in addition to the standard test suite

Testing PostgreSQL and MySQL

TODO

Test coverage

Computing the coverage of tests can be done by running ./robo coverage. Either phpdbg or Xdebug is required for this. An HTML-format coverage report will be written to ./tests/coverage/.

Enforcing coding style

The php-cs-fixer tool, executed via ./robo clean, can be used to rewrite code to adhere to The Arsse's coding style. The style largely follows PSR-2 with some exceptions:

  • Classes, methods, and functions should have their opening brace on the same line as the signature
  • Anonymous functions should have no space before the parameter list

Building the manual

The Arsse's user manual, made using Daux, can be compiled by running ./robo manual, which will output files to ./manual/. It is also possible to serve the manual from a test HTTP server on port 8085 by running ./robo manual:live.

Rebuilding the manual theme

The manual employs a custom theme derived from the standard Daux theme. If the standard Daux theme receives improvements, the custom theme can be rebuilt by running ./robo manual:theme. This requires that NodeJS and Yarn be installed, but JavaScript tools are not required to modify The Arsse itself, nor the content of the manual.

The Robo task manual:css will recompile the theme's stylesheet without rebuilding the entire theme.

Packaging a release

Producing a release package is done by running ./robo package. This performs the following operations:

  • Duplicates a working tree with the commit (usually a release tag) to package
  • Generates the manual
  • Installs runtime Composer dependencies with an optimized autoloader
  • Deletes numerous unneeded files
  • Exports the default configuration of The Arsse to a file
  • Compresses the remaining files into a tarball

Due to the first step, Git is required to package a release.