Compare commits

...

271 commits

Author SHA1 Message Date
1ae3c33344 Be more specific about coverage of Database class
This has uncovered a bug with nextFetch calculation, it seems. Fixing it is deferred for now.
2024-07-10 16:28:19 -04:00
aed3749da8 Shore up coverage 2024-07-09 14:58:31 -04:00
b68a68b500 Update changelog 2024-07-06 12:28:41 -04:00
ade1c79361 Fix language-loading loop by applying incrementally 2024-07-06 12:24:16 -04:00
0170ec19c7 Fix language-loading infinite loop when throwing exceptions
This loop has existed since the very beginning, and was only ever papered over instead of actually fixing it.
2024-07-06 11:01:00 -04:00
8834a65e4c Address case where user is already arsse 2024-01-10 11:00:08 -05:00
b1154359e4 Prepare release 2024-01-09 19:04:28 -05:00
3838cdc0af Merge branch 'arch2' 2024-01-09 18:42:55 -05:00
1f9beb85a5 Fix socket path 2024-01-09 18:13:36 -05:00
2670ed4ab8 Typo 2024-01-07 12:33:58 -05:00
4df97eefcb Oops 2024-01-07 12:30:40 -05:00
82f94d1dae Remove obsolete systemd patching 2024-01-07 12:28:47 -05:00
7f6b36d4da Remove references to Pandoc 2024-01-07 11:23:46 -05:00
06ec67816a Update arsse-git PKGBUILD
This includes both adaptations for php-legacy as well as for the new mdoc manual
2024-01-05 11:20:56 -05:00
e647d79e1e Update dependencies 2024-01-05 09:17:08 -05:00
f853851568 Run with the correct executable name visible to PHP 2024-01-05 09:16:57 -05:00
4131531bff Tweaks
- Add new files to PKGBUILD backup
- Adjust Robo caller to use ARSSE_PHP variable; Windows will need adjusting later
2023-12-29 19:42:33 -05:00
9086a5d9b1 Add interpreter adaptation for service, with documentation 2023-12-24 14:39:42 -05:00
cce48878e7 Add pool for php-legacy 2023-12-22 16:35:09 -05:00
185ae88ba3 Correct outdated documentation 2023-12-22 13:47:26 -05:00
29fb134633 First steps in supporting php-legacy in Arc
This sorts out HTTP servers, hopefully. Adaptation for systemd and documentation are still required
2023-12-22 13:27:02 -05:00
9951b44932 Update changelog 2023-11-01 12:48:30 -04:00
692af39768 Use mdoc manual directly without any preprocessing 2023-10-29 22:20:14 -04:00
73446887f5 Editorial tweak 2023-10-28 08:06:49 -04:00
e20937f98f The rest of the mdoc manual 2023-10-27 23:23:15 -04:00
2ff3286aa9 More work on mdoc manual 2023-10-27 20:44:01 -04:00
174ed544b2 Start on an mdoc-format manual 2023-10-27 12:28:22 -04:00
5579144fee Complete native groff manual 2023-10-26 18:15:20 -04:00
7613142221 Start on a native groff manual 2023-10-25 17:24:54 -04:00
d9b90390e7 Update style rules 2023-06-17 11:09:03 -04:00
59a9329032 Upgrade dependencies where possible with PHP 7.3 2023-03-24 10:28:20 -04:00
be3adf7026 Document RoboFile better 2023-03-23 11:31:33 -04:00
eb371b75fe Fix documentation errors 2023-03-22 23:45:56 -04:00
1b80ad37bc Merge branch 'csfixer3'
Code style cleanup to mostly conform to PSR-12
2023-03-22 23:33:05 -04:00
3c83fc9139 Update php-cs-fixer rules 2023-03-22 23:14:19 -04:00
711f87aad8 Housekeeping
- Update Docopt
- Switch toin-house Picofeed branch for now
- Update composer-bin
- Update php-cs-fixer

Daux has been left as-is for now even though we're using an old version
2023-03-22 22:57:58 -04:00
0a8d19d37d Require PHP 7.3
This addresses the last of the deprecation warnings in PHP 8.2
2023-01-28 12:43:42 -05:00
fe06ffc176 Avoid dynamic property creation with PicoFeed
This only leaves the Laminas XML deprecated behaviour to handle
2023-01-28 11:18:14 -05:00
0d6f8d2921 Avoid most deprecation warnings
The Feed class sets dynamic properties on Picofeed classes; this will
need to be completely rewritten. Version 1.2 of the Laminas XML class
also uses a deprecated function, but upgrading it to 1.3 will require
PHP 7.3.
2023-01-27 15:33:34 -05:00
92b1a840a1 Support PHP 8.2 properly 2023-01-24 15:12:21 -05:00
a25e777ec6 Version bump 2022-09-14 08:06:22 -04:00
44e2c9c13e Update documentation 2022-09-13 19:56:01 -04:00
866800dcc5 Finish last Guzzle-related tests 2022-09-13 19:52:29 -04:00
136d3782e3 Update changelog 2022-08-07 20:16:27 -04:00
3be3f43bab Start on tests for response wrappers 2022-08-06 22:59:25 -04:00
d2f3f19128 Fix failures 2022-08-06 16:16:18 -04:00
459e44e041 Address remaining errors
Still many failures to fix
2022-08-06 16:03:50 -04:00
56f015bfb9 More Guzzle conversion 2022-08-06 13:40:02 -04:00
64ec3f6ae4 Use unused variable 2022-08-05 22:10:36 -04:00
4d18bf27e2 Adjust most uses of Diactoros to Guzzle PSR-7 2022-08-05 22:08:36 -04:00
e588a52e88 Replace ServerRequestFactory 2022-08-04 22:15:43 -04:00
6c0183faea Replace instances of Diactoros' EmptyResponse 2022-08-04 22:04:39 -04:00
560d4db139 Remove Diactoros in favour of Guzzle PSR-7
For now this only adds convenience wrappers around Guzzle to somewhat
emulate Diactoros (albeit with a different API). Code and tests will be
adjusted in due course.
2022-08-04 09:26:17 -04:00
2557c22410 Update dependencies 2022-06-22 15:33:17 -04:00
4ca7b65a65 Update dependencies 2022-06-09 21:21:17 -04:00
4d37ae30ae Update dependencies
Addresses a Guzzle vulnerability, though it does not affect The Arsse
2022-06-05 21:38:08 -04:00
d1da6fbe5e Use cases rather than casting bools to int in SQL 2022-05-30 17:29:34 -04:00
d54733ad98 Update link to Nextcloud News documentation again
The URL has changed again since it was updated two weeks ago
2022-05-02 10:48:52 -04:00
a0c31fac5d Merge branch 'reader' 2022-04-30 17:34:29 -04:00
59358ec35b More PHP 7 fixes 2022-04-30 17:11:18 -04:00
90b66241b3 Fixes for PHP 7 2022-04-30 13:50:35 -04:00
761b3d5333 Return removed articles correctly in Miniflux 2022-04-29 23:28:47 -04:00
d64dc751f9 Tests for query filters 2022-04-29 20:53:05 -04:00
f51acb4264 Build exceptions correctly in Miniflux for clarity 2022-04-29 19:10:11 -04:00
300225439c Fix trivial error in Miniflux
This is not a bug as the behaviour that should have been implemented was
not being relied upon
2022-04-29 19:04:08 -04:00
c6cc2a1a42 Restore coverage for Query class 2022-04-29 17:23:41 -04:00
a44fe103d8 Prototype for nesting query filters 2022-04-29 16:37:16 -04:00
630536d789 Tests for union context 2022-04-29 16:35:46 -04:00
206c5c0012 Fill in union context 2022-04-28 22:32:10 -04:00
0c8f33c37c Remove setCTE and pushCTE from query builder 2022-04-28 21:24:57 -04:00
26e431b1a5 Simplify more queries 2022-04-28 17:57:31 -04:00
336207741d Add missing API documentation 2022-04-28 17:37:10 -04:00
6863c182d7 Update reference to the "Reeder" client 2022-04-27 10:22:43 -04:00
f2aad7188c Update links to TT-RSS documentation 2022-04-27 10:16:20 -04:00
65b1bb4fcd Allow multiple dates in TT-RSS searches 2022-04-26 17:13:16 -04:00
2c5b9a6768 Fix missing TTRSS coverage 2022-04-26 12:13:15 -04:00
17832ac63e Allow timezone in TT-RSS search queries
Does not quite work yet
2022-04-25 22:28:16 -04:00
e65069885b Clean up obsolete FIXMEs 2022-04-25 18:30:13 -04:00
7e5d8494c4 Tests for selecting arrays of ranges 2022-04-25 14:33:19 -04:00
e6505a5fda Work around possible MySQL bug 2022-04-25 09:56:13 -04:00
2acacd2647 Implement handling for arrays of ranges
Multiple ranges of articles or editions were not implemented, but the
functionality is generic and could be extended if later needed.
2022-04-24 20:13:08 -04:00
f6799e2ab1 Tests for date ranges in contexts 2022-04-24 12:25:37 -04:00
33a3478a58 Avoid use of PHP 7.4 feature 2022-04-23 17:24:25 -04:00
2489743d0f Further simplifications 2022-04-23 13:21:52 -04:00
0bd01849bb Remove unnecessary in() clause 2022-04-23 11:51:53 -04:00
895c045c9b Simplify folder selection in article queries 2022-04-23 11:15:57 -04:00
fe02613214 Fix coverage 2022-04-22 22:46:13 -04:00
427bddd3b7 Allow multiple date ranges 2022-04-22 20:09:07 -04:00
53ba591720 Finish up article selection refactor 2022-04-22 19:22:50 -04:00
97dfef3267 Fix typos 2022-04-21 23:30:19 -04:00
396ca86482 Start on removal of conditional CTEs
This breaks the code for now, but will make clearer queries once done
2022-04-21 23:19:19 -04:00
4a87926dd5 Fix up context tests 2022-04-21 14:37:28 -04:00
6f1332c559 Start to shore up testing 2022-04-20 19:11:04 -04:00
308b592b18 Clean up coontext classes 2022-04-19 23:20:20 -04:00
983fa58ec8 Convert article and edition ranges to atomic
Unit tests for ranges are still missing
2022-04-19 22:53:36 -04:00
2c2bb4a856 Retrofits dates to use ranges
Article and edition ranges still need work
2022-04-19 20:19:51 -04:00
c993168002 Update URL of Nextcloud News documentation 2022-04-19 19:33:35 -04:00
73497688fc Break contexts up into traits
This will make their expansion easier and will also be useful for using
typed properties later
2022-04-18 22:04:48 -04:00
1b0256d6ce Abandon automation of binary packaging for now 2022-04-04 14:19:53 -04:00
144a41e061 Prepare new version 2022-04-04 14:05:04 -04:00
60b4002329 Revert "Document that we actually emulate Miniflux 2.0.29"
This reverts commit d379aa2253.
2022-04-04 13:43:20 -04:00
f24ec8b00b Address security vulnerability in Guzzle's PSR-7
implementation, used by PicoFeed
2022-04-04 13:40:39 -04:00
d379aa2253 Document that we actually emulate Miniflux 2.0.29
At the time The Arsse 0.9.0 was released the new feature in 2.0.29 was
already implemented, but that version of Miniflux had not been released.
2022-03-14 13:16:46 -04:00
b707ecc942 Tag new version 2022-01-17 19:31:06 -05:00
afe26fb8e1 Style fixes 2022-01-14 19:28:42 -05:00
3a219a591d Update dependencies 2022-01-14 16:27:01 -05:00
b5579d6e43 Support PHP 8.1 2022-01-11 17:54:02 -05:00
b660508009 Improve MySQL test performance 2021-12-30 18:22:50 -05:00
3c884f521b Update dependencies 2021-10-29 14:31:23 -04:00
70b063e028 Make parts of generic packaging conditional
This should allow to rebuild old releases from before Debian packages,
Arch ppackages, manpages, or even the HTML manual were added
2021-07-17 07:12:24 -04:00
cf3d270077 Merge branch 'deb' 2021-07-17 00:20:28 -04:00
1fa75aba4a Generate Debian source package without deb tooling 2021-07-17 00:19:55 -04:00
317d23c1bb Fix copy-paste error in manual 2021-07-12 10:30:53 -04:00
75dbe380ba Add Pandoc to AUR arsse-git build dependencies 2021-07-11 20:33:56 -04:00
08250841a0 Don't sign packages 2021-07-11 17:25:14 -04:00
2452264893 Date release 2021-07-11 17:12:05 -04:00
c1e57eb01f Add manual installation instructions 2021-07-11 13:45:56 -04:00
e75e0dfd2f Clarify exactly what "older Debians" is
This is relevant because Debian 11 (Bullseye) is not yet released
2021-07-11 10:58:33 -04:00
6c11c9e485 Fix Debian bugs 2021-07-10 22:47:34 -04:00
40a2856ae8 Use correct PHP_FPM socket paths for Debian 2021-07-10 10:02:59 -04:00
c7dcc36ba1 Update version 2021-07-09 22:41:00 -04:00
a31fb896d9 Update changelog 2021-07-09 21:57:16 -04:00
def4a3bc77 Move Debian adaptations to Debian packaging rules
Also add lintian to pbuilder packages
2021-07-09 20:45:52 -04:00
cd89472575 Fix up Debian documentation 2021-07-09 17:43:44 -04:00
beea98040c Initial documentation for Debian packages 2021-07-09 17:32:59 -04:00
59ff88f3b6 Add all-in-one packaging task 2021-07-08 23:11:58 -04:00
4070870421 Enforce external tooling requirements 2021-07-08 23:11:58 -04:00
5ab9dc3840 Add missing pbuilder script 2021-07-08 23:07:59 -04:00
20ffb2484a Simply Robo input for Arch and Deb packaging 2021-07-08 18:04:15 -04:00
f91b3c0120 Output packages to a "release" directory
Further fixups still needed for Arch
2021-07-08 15:55:59 -04:00
4121fc3e21 Database server ports must be integers 2021-07-07 16:19:01 -04:00
7ad3611a84 Set up configuration file for Debian properly 2021-07-07 16:03:34 -04:00
5412eb348f Clean up maintainer scripts 2021-07-07 15:24:45 -04:00
c936ecc1af Fix another typo 2021-07-07 15:04:03 -04:00
99c923b1b1 Fix typos 2021-07-07 14:57:06 -04:00
c2237532eb Add glue for dbconfig-common configuration 2021-07-07 14:51:16 -04:00
9687ce026e Add MySQL back to Debian depeendencies
Recent Debian seems to favour MySQL over MariaDb again,
removing the compatibility problem
2021-07-07 11:50:24 -04:00
30bed8a9d5 Typo 2021-07-07 11:27:41 -04:00
cf9059c2b0 Update tooling 2021-07-07 11:26:35 -04:00
93bcf93685 Prototype Debian maintainer scripts 2021-07-07 08:22:19 -04:00
46e20be983 Test for service reloading 2021-07-06 10:07:56 -04:00
ad32bf3340 Style fixes 2021-07-05 21:47:44 -04:00
b8ac646d22 Fix up hangup signal handling 2021-07-05 20:57:05 -04:00
37c58e186a Handle hangup signal 2021-07-05 20:57:05 -04:00
88fe3e76cb Fix up missing-extension message 2021-07-05 20:57:05 -04:00
3c8ee42666 Basic tests for exception checking 2021-07-05 20:57:05 -04:00
04adc3b997 Document forking in the manpage 2021-07-05 20:57:05 -04:00
c49cb72528 Fail gracefully when extensions are missing
This still needs tests
2021-07-05 20:57:05 -04:00
c9a2393a4e Note requirement for filter extension 2021-07-05 20:57:05 -04:00
75e87f31a0 Prototype code to check for missing extensions
This is useful in general, but will also provide clear error text if
trying to fork without the posix or pcntl extensions
2021-07-05 20:57:05 -04:00
3b51d4daea Fix license for Debian package 2021-07-05 20:57:05 -04:00
ce9dfc3f30 Add init script to Debian files 2021-07-05 20:57:05 -04:00
cbc7cd8ea7 Add an explicit path to init script 2021-07-05 20:57:05 -04:00
2e29f3f76e Correct typo 2021-07-05 20:57:05 -04:00
8a1a1eee42 Prototype init script
It should work, but testing it is not altogether obvious
2021-07-05 20:57:05 -04:00
e160189224 Handle exceptions from child processes 2021-07-05 20:57:05 -04:00
e9394e8599 More forking tweaks 2021-07-05 20:57:05 -04:00
577356cd3d Fork error test 2021-07-05 20:57:05 -04:00
514cb0a351 Ow 2021-07-05 20:57:05 -04:00
0bb5e916d2 Test PID writing 2021-07-05 20:57:05 -04:00
2767ab755e Use D modifier in pattern 2021-07-05 20:57:05 -04:00
a4036afbf8 Partial tests for PID file reading 2021-07-05 20:57:05 -04:00
32c9d761c3 Clean up more exceptions 2021-07-05 20:57:05 -04:00
5b3e8fbef0 Refine some exceptions 2021-07-05 20:57:05 -04:00
b9fd9ac32e Tweaks 2021-07-05 20:57:05 -04:00
23749b51aa Tests for path resolution 2021-07-05 20:57:05 -04:00
dfaf44ac68 Basic path resolution tests 2021-07-05 20:57:05 -04:00
bab64add9b Separate PID conflict checking from PID claiming 2021-07-05 20:57:05 -04:00
822158d1bd Update dependencies 2021-07-05 20:57:05 -04:00
f1c29c99c7 Finish testing PID file path checking 2021-07-05 20:57:05 -04:00
59cf27089a More daemon cleanup 2021-07-05 20:57:05 -04:00
4e1193bab2 Move forking daemon support code to own class 2021-07-05 20:57:05 -04:00
32e04e3938 Move forking and related to Service class 2021-07-05 20:57:05 -04:00
55acb87577 Start on PI(D file resolution tests 2021-07-05 20:57:05 -04:00
e8cab78bd6 Handle last possible PID failures
Opening the PID file can still fail separately, though this is unlikely
2021-07-05 20:57:05 -04:00
9595c4f019 Start filling out PID file exceptions 2021-07-05 20:57:05 -04:00
372bf9f630 Exclude code from coverage 2021-07-05 20:57:05 -04:00
4ffc29781d Remove references to oldpass param 2021-07-05 20:57:05 -04:00
47af739e47 Catch more PID path failures 2021-07-05 20:57:05 -04:00
2c7b16ed27 Respond to termination signals and delete PID file 2021-07-05 20:57:05 -04:00
410310282f Load configuration after forking 2021-07-05 20:57:05 -04:00
29b83b4453 Prototype forking daemon 2021-07-05 20:57:05 -04:00
fc2abc1203 Use D modifier for all patterns with $ anchors 2021-06-24 11:58:50 -04:00
59c5c2eb14 Oops 2021-05-31 13:11:22 -04:00
3cd3ac4a51 Correct filename conflict 2021-05-31 13:10:16 -04:00
837895fd6a Adapt dist files for Debian 2021-05-31 12:12:56 -04:00
b4c9413130 Update README 2021-05-30 17:14:01 -04:00
bafb788b02 Correct errors in manual 2021-05-30 15:51:18 -04:00
68e3cd82ca Don't include section number in title 2021-05-30 10:04:33 -04:00
c3fa4788d6 Use proper metadata block for manpage 2021-05-30 09:48:10 -04:00
3567f294a6 Merge branch 'manpage' 2021-05-30 09:22:10 -04:00
8c0f047747 Update HTML manual to mention man page 2021-05-30 09:19:08 -04:00
fd76b1b611 Add examples to manual page 2021-05-29 23:37:02 -04:00
4317a96db1 Work around double spacing 2021-05-29 22:45:13 -04:00
62d49e0d3c Fill out most of the manual page
Removed most of the online help as a consequence since maintaining
both is frought
2021-05-29 21:48:02 -04:00
88487d27a2 Expand manual page 2021-05-29 17:40:20 -04:00
46c88f584f Fix copying of man page in PKGBUILDs 2021-05-29 16:29:53 -04:00
92823d5bc2 Create directories before executing Pandoc 2021-05-29 16:19:52 -04:00
3e55ab3849 Move man pages to their own directory 2021-05-29 15:44:51 -04:00
2ec7acc50b Turn off "smart" character substitution in Pandoc 2021-05-29 14:13:45 -04:00
d3a983e7f0 Move the markdown manpage
Daux uses Cmmonmark, which does not support indention, required for
proper formatting of manual pages. Consequently, the manul page will
instead be standalone.
2021-05-29 14:05:30 -04:00
176aac0ad7 Fix stupid typo properly 2021-05-29 12:37:32 -04:00
e439dd8277 Fix manpage in Arch PKGBUILD 2021-05-29 12:26:51 -04:00
6cc9f96728 Prototype manual page 2021-05-29 11:13:19 -04:00
d4569c77a9 Add database location to tmpfiles 2021-05-29 11:09:11 -04:00
add1acc87a Fix more lintian complaints 2021-05-28 16:23:42 -04:00
14d3cdfe58 Hopefully fix some Debian problems 2021-05-28 12:33:52 -04:00
281760be71 Address some lintian complaints 2021-05-28 08:29:49 -04:00
758a02d667 Move generic configuration file 2021-05-27 19:39:53 -04:00
18846c19cb Add install list for Debian package 2021-05-27 19:00:29 -04:00
b5bbdc2bc6 Date release 2021-05-25 17:22:48 -04:00
3be6c9984d Update Apache documentation in manual 2021-05-25 17:16:40 -04:00
6c84b2199e More Apache fixes 2021-05-25 17:03:08 -04:00
f9cbac2c31 Hopefully fix Apache configuration 2021-05-25 15:13:18 -04:00
32ca0c3fe4 Appease GitHub once and for all 2021-05-24 19:22:37 -04:00
a81bd0e45c Add whitespace 2021-05-24 14:51:21 -04:00
86d82a2586 Use global flag when replacing with sed 2021-05-24 14:50:21 -04:00
f0bf55f9cf Add ExecStart to parent systemd unit 2021-05-24 14:07:11 -04:00
1055611940 Add version constraints to Arch dependencies 2021-05-24 12:40:11 -04:00
2ccfb1fd33 Fix packaging process 2021-05-23 22:03:47 -04:00
9eabfd0f27 Fix up sed usage in PKGBUILD 2021-05-23 19:01:51 -04:00
0236b42052 Use tmpfiles to create link to config file 2021-05-23 17:57:50 -04:00
8aa9d81fd1 Update changelog 2021-05-23 12:46:13 -04:00
11fc83da60 Significant edits to the manual 2021-05-23 12:24:42 -04:00
de55290746 Fix build dependencies for Deb package 2021-05-22 15:05:31 -04:00
f844c17a94 More Debian fixes 2021-05-22 07:16:48 -04:00
0de9647809 Add compat file 2021-05-21 22:03:40 -04:00
e653fb3f73 Enhancements to Debian files 2021-05-21 21:11:22 -04:00
b7909d7cd3 Downgrade tool dependencies for Ubuntu 2021-05-21 15:13:23 -04:00
3c9f4dd66f Prototype Debian rules file 2021-05-21 12:51:20 -04:00
3537e74d49 Update dependencies 2021-05-21 12:11:50 -04:00
d031d931a5 Tidy up the Robo file further 2021-05-21 06:43:17 -04:00
38cb1059b2 Shorten output of packaging task 2021-05-20 23:53:25 -04:00
16174f11b6 Add changelog parsing to packaging task 2021-05-20 23:38:03 -04:00
073f6b3c39 Prototype Debian control file and other changes 2021-05-20 17:47:02 -04:00
3f3f449da1 Re-organize manual 2021-05-20 10:20:32 -04:00
2260b7cc50 Back up all Web server configuration 2021-05-20 10:20:08 -04:00
61eb4a252e Fix doc URLs 2021-05-20 09:05:00 -04:00
3f401f1cfa Fix typo 2021-05-19 23:10:01 -04:00
6c750d2dc0 Documentation for installing on Arch
Documentations for Debian still needs to be amended
2021-05-19 23:03:10 -04:00
6d790c5efd Add prototype for new Apache configuration
Needs testing
2021-05-19 18:59:20 -04:00
3a3b9231df Use generic configuration where possible 2021-05-19 15:06:37 -04:00
fbe03a2534 Use chmod instead of touch 2021-05-19 11:34:54 -04:00
e75f8cebfb Add Arch packaging to Robo file 2021-05-19 11:27:21 -04:00
79391446cd Start moving Arch build responsibility to Robo
Also clean up the generic packaging task
2021-05-19 08:51:17 -04:00
19ab9df063 Fix more bugs 2021-05-18 18:42:42 -04:00
568b12600b Drop privileges when executing CLI 2021-05-18 09:46:42 -04:00
488af80a85 Update changelog 2021-05-18 09:44:52 -04:00
44612cfe8f Add tmpfiles 2021-05-17 21:43:52 -04:00
d1fd6e9653 Correct permissions
A tmpfiles.d configuration is still required
2021-05-17 20:08:32 -04:00
a97ca23631 Don't try to enable extensions 2021-05-17 18:03:47 -04:00
e2b182ebe6 Fix errors in Arch config file 2021-05-17 15:47:26 -04:00
3eab5aad5d Fix adding users to a blank database 2021-05-17 15:46:46 -04:00
805a508ea6 Use correct state path 2021-05-17 09:30:10 -04:00
3ebc23ab13 Tweaks 2021-05-17 07:27:22 -04:00
7abdf05b7f Make package from local files for now 2021-05-16 23:06:49 -04:00
971c12ff9f Rename sample to example 2021-05-16 20:21:41 -04:00
febc7c7ca4 Add configuration for Nginx 2021-05-16 18:44:42 -04:00
edb146b826 Use PHP-FPM instead of uWSGI 2021-05-16 15:59:52 -04:00
7ba4cabdde Prototype Arch PKGBUILD and supporting files
The package will be created, but the result itself has yet to be tested.
2021-05-15 22:26:06 -04:00
4080b2d09d Apply new rules 2021-04-14 11:17:01 -04:00
73731fa9db Fix up CS config file 2021-04-14 11:16:36 -04:00
18d296dcd6 Clean up CS fixer rules 2021-04-14 10:10:04 -04:00
114dcc568f Update dependencies 2021-04-14 09:50:25 -04:00
1331b14a04 Reverting for now 2021-04-09 18:18:42 -05:00
035feae0ce Removed postcss in favor of sass for building manual theme 2021-04-09 16:31:04 -05:00
8e063bea2f Appease GitHub again 2021-04-08 09:27:15 -04:00
4a9e66d872 Fix inconsistent grammar 2021-03-18 10:50:45 -04:00
fa4ab3218a Version bump 2021-03-18 10:45:28 -04:00
c4260323bc Answer 201 to PUTs like Miniflux
This does not apply to PUTs to /v1/entries, which were always 204
2021-03-18 10:38:20 -04:00
abc291460c Update Web server configuration in manual 2021-03-18 09:54:03 -04:00
311 changed files with 8815 additions and 6653 deletions

26
.gitignore vendored
View file

@ -1,16 +1,25 @@
# Temporary files and dependencies
# Temporary files
/release/
/documentation/
/manual/
/tests/coverage/
/dist/arch/arsse/
/dist/arch/src/
/dist/arch/pkg/
/arsse.db*
/config.php
/.php_cs.cache
/.php-cs-fixer.cache
/tests/.phpunit.result.cache
# Dependencies
/vendor/
/vendor-bin/*/vendor
/node_modules
/documentation/
/manual/
/tests/coverage/
/arsse.db*
/config.php
/.php_cs.cache
/yarn.lock
/yarn-error.log
/tests/.phpunit.result.cache
# Windows files
@ -36,6 +45,7 @@ $RECYCLE.BIN/
*.zip
*.7z
*.tar.gz
*.tar.xz
*.tgz
*.deb
*.rpm

View file

@ -4,6 +4,7 @@
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
const BASE = __DIR__.DIRECTORY_SEPARATOR;
@ -13,7 +14,10 @@ $paths = [
BASE."arsse.php",
BASE."RoboFile.php",
BASE."lib",
BASE."tests",
BASE."tests/cases",
BASE."tests/lib",
BASE."tests/bootstrap.php",
BASE."tests/server.php",
];
$rules = [
// house rules where PSR series is silent
@ -35,6 +39,7 @@ $rules = [
'no_blank_lines_after_phpdoc' => true,
'no_empty_comment' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_extra_blank_lines' => true, // this could probably use more configuration
'no_mixed_echo_print' => ['use' => "echo"],
'no_short_bool_cast' => true,
@ -48,28 +53,16 @@ $rules = [
'pow_to_exponentiation' => true,
'set_type_to_cast' => true,
'standardize_not_equals' => true,
'trailing_comma_in_multiline_array' => true,
'trailing_comma_in_multiline' => ['elements' => ["arrays"]],
'unary_operator_spaces' => true,
'yoda_style' => false,
// PSR standard to apply
'@PSR2' => true,
// PSR-12 rules; php-cs-fixer does not yet support PSR-12 natively
'compact_nullable_typehint' => true,
'declare_equal_normalize' => ['space' => "none"],
'function_typehint_space' => true,
'lowercase_cast' => true,
'lowercase_static_reference' => true,
'no_alternative_syntax' => true,
'no_empty_statement' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_whitespace_in_blank_line' => true,
'return_type_declaration' => ['space_before' => "none"],
'single_trait_insert_per_statement' => true,
'short_scalar_cast' => true,
'visibility_required' => ['elements' => ["const", "property", "method"]],
'@PSR12' => true,
// house exceptions to PSR rules
'braces' => ['position_after_functions_and_oop_constructs' => "same"],
'curly_braces_position' => [
'functions_opening_brace' => "same_line",
'classes_opening_brace' => "same_line",
],
'function_declaration' => ['closure_function_spacing' => "none"],
'new_with_braces' => false, // no option to specify absence of braces
];
@ -82,4 +75,4 @@ foreach ($paths as $path) {
$finder = $finder->in($path);
}
}
return \PhpCsFixer\Config::create()->setRiskyAllowed(true)->setRules($rules)->setFinder($finder);
return (new \PhpCsFixer\Config)->setRiskyAllowed(true)->setRules($rules)->setFinder($finder);

View file

@ -1,3 +1,78 @@
Version 0.??.? (2024-??-??)
===========================
Bug fixes:
- Do not hang when language files are missing or corrupted
Version 0.10.5 (2024-01-10)
===========================
Changes:
- Require PHP 7.3
- Adapt the Arch package to make using alternative PHP interpreters easier
(see manual for details)
- Multiple editorial and stylistic changes to the UNIX manual page
Version 0.10.4 (2023-01-24)
===========================
Changes:
- Support PHP 8.2
Version 0.10.3 (2022-09-14)
===========================
Bug fixes:
- Return all removed articles when multiple statuses are requested in Miniflux
- Allow multiple date ranges in search strings in Tiny Tiny RSS
- Honour user time zone when interpreting search strings in Tiny Tiny RSS
- Perform MySQL table maintenance more reliably
- Address CVE-2022-31090, CVE-2022-31091, CVE-2022-29248, and CVE-2022-31109
Version 0.10.2 (2022-04-04)
===========================
Changes:
- Update Guzzle PSR-7 due to CVE-2022-24775
Version 0.10.1 (2022-01-17)
===========================
Changes:
- Support PHP 8.1
Version 0.10.0 (2021-07-11)
===========================
New features:
- Complete Unix manual page
- Support for running service as a forking daemon
- Respond to TERM and HUP signals when possible
Changes:
- Packages for Debian and related are now available (see manual for details)
Version 0.9.2 (2021-05-25)
==========================
Bug fixes:
- Do not fail adding users to an empty database (regression since 0.9.0)
- Cleanly ignore unknown configuration properties
- Set access mode to rw-r---- when creating SQLite databases
Changes:
- Packages for Arch Linux are now available (see manual for details)
- Numerous improvements to the manual
Version 0.9.1 (2021-03-18)
==========================
Bug fixes:
- Respond to PUT requests with 201 rather than 200 in Miniflux
Changes:
- Correct Web server configuration in manual
Version 0.9.0 (2021-03-06)
==========================
@ -12,7 +87,7 @@ Bug fixes:
- Further relax Fever HTTP correctness, to fix more clients
- Use icons specified in Atom feeds when available
- Do not return null as subscription unread count
- Explicitly forbid U+003A COLON and control characters in usernames, for
- Explicitly forbid U+003A COLON and control characters in usernames, for
compatibility with RFC 7617
- Never return 401 in response to an OPTIONS request
- Accept "t" and "f" as booleans in Tiny Tiny RSS
@ -109,7 +184,7 @@ Bug fixes:
Version 0.6.1 (2019-01-23)
==========================
Bug Fixes:
Bug fixes:
- Unify SQL timeout settings
- Correctly escape shell command in subprocess service driver
- Correctly allow null time intervals in configuration when appropriate
@ -229,4 +304,5 @@ Bug fixes:
Version 0.1.0 (2017-08-29)
==========================
Initial release
New features:
- Initial release

View file

@ -8,7 +8,7 @@ Information on how to install and use the software can be found in [the manual](
The main repository for The Arsse can be found at [code.mensbeam.com](https://code.mensbeam.com/MensBeam/arsse/), with a mirror also available [at GitHub](https://github.com/mensbeam/arsse/). The GitHub mirror does not accept bug reports, but the two should otherwise be equivalent.
[Composer](https://getcomposer.org/) 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. If not installing as a programming environment, running `composer install --no-dev` is recommended.
[Composer](https://getcomposer.org/) 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. If not installing as a programming environment, running `composer install -o --no-dev --no-scripts` is recommended.
# Repository structure
@ -34,13 +34,15 @@ Also necessary to the functioning of the application is the `/vendor/` directory
The `/locale/` and `/sql/` directories contain human-language files and database schemata, both of which are occasionally used by the application in the course of execution. The `/www/` directory serves as a document root for a few static files to be made available to users by a Web server.
The `/dist/` directory, on the other hand, contains samples of configuration for Web servers and init systems. These are not used by The Arsse itself, but are merely distributed with it for reference.
The `/dist/` directory, on the other hand, contains general and system-specific build files, manual pages, and samples of configuration for Web servers and other system integration. These are not used by The Arsse itself, but are used during the process of preparing new releases for supported operating systems.
## Documentation
The source text for The Arsse's manual can be found in `/docs/`, with pages written in [Markdown](https://spec.commonmark.org/current/) and converted to HTML [with Daux](#building-the-manual). If a static manual is generated its files will appear under `/manual/`.
In addition to the manual the files `/README.md` (this file), `/CHANGELOG`, `/UPGRADING`, `/LICENSE`, and `/AUTHORS` also document various things about the software, rather than the software itself.
The Arsse also has a UNIX manual page written in [mdoc](https://man.archlinux.org/man/extra/mandoc/mandoc_mdoc.7.en) format, which can be found under `/dist/man/`.
In addition to the manuals the files `/README.md` (this file), `/CHANGELOG`, `/UPGRADING`, `/LICENSE`, and `/AUTHORS` also document various things about the software, rather than the software itself.
## Tests
@ -50,7 +52,7 @@ The `/tests/` directory contains everything related to automated testing. It is
|--------------------|------------------------------------------------------------------------------------|
| `cases/` | The test cases themselves, organized in roughly the same structure as the code |
| `coverage/` | (optional) Generated code coverage reports |
| `docroot/` | Sample documents used in some tests, to be returned by the PHP's basic HTTP server |
| `docroot/` | Sample documents used in some tests, to be returned by PHP's basic HTTP server |
| `lib/` | Supporting classes which do not contain test cases |
| `bootstrap.php` | Bootstrap script, equivalent to `/arsse.php`, but for tests |
| `phpunit.dist.xml` | PHPUnit configuration file |