-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
Description
- set up the usual stuff to have a clean and friendly open source project on GitHub (i.e., the usual best practices):
- [TASK] Add a LICENSE file (Affero GPL V3) #23 add a LICENSE and decide on which license to use (currently, the README mentions both the GPL as well as the Affero GPL)
- [TASK] Add a package description to the README #42 clean up the README.md
- [TASK] Rework CONTRIBUTING.md and move it to .github/ #51 rework the CONTRIBUTING.md
- Add a CODE_OF_CONDUCT.md #29 add a CODE_OF_CONDUCT.md
- [TASK] Add a changelog #26 add a CHANGELOG.md
- [TASK] Add a changelog #26 adopt semantic versioning
- [TASK] Make the project PHP-7-only #27 go PHP-7-only (drop support for PHP 5.6)
- [CLEANUP] Streamline the .gitignore #47 update the .gitignore
- set up a CI chain to automate as much stuff as possible, thus making contributing and reviewing PRs less work:
- Add Travis builds #19, [TASK] Add build status and Packagist badges to the README #25 set up Travis CI builds and status badges
- lint the PHP code
- [FEATURE] AdministratorToken model #73 run PHP_CodeSniffer
- [FEATURE] Add PHPMD sniffing with a custom rule set #78 run PHPMD
- [FEATURE] Check the code using static analysis #83 run https://github.com/phpstan/phpstan
- [TASK] Remove all failing unit tests #44 run the unit tests and drop the broken tests ([BUGFIX] Load an existing config file in the unit tests #32, [TASK] Remove all failing unit tests #44)
- [TASK] Remove grumphp #46 drop grumphp
- [TASK] Drop HHVM support #45 drop HHVM support
- make updates with two commands possible (composer update and DB migrate)
- restructure the project into two projects (similar to the way TYPO3 CMS does it):
- the core (which will not be modified locally)
- a site package which includes the core, and which is intended to downloaded when installing a new site site with phpList, and then not re-downloaded, and where additional/changed HTML templates can be installed
- decide on whether and how we should provide an all-in-one package
- make (reversible) DB migrations via the command line possible
- restructure the project into two projects (similar to the way TYPO3 CMS does it):
- make automatic deployments of updates possible, e.g. via TYPO3 Surf, Capistrano etc.
- document which steps are needed for deployment (and the initial install)
- security:
- [CLEANUP] Move files out of the project root #54 move as much stuff as possible out of the document root
- remove or replace the code that has raw SQL queries and might have SQL injections
- reuse as much stuff from tested third-party libraries (via composer) instead of rolling our own (so we can focus on the stuff we really need to do for ourselves, avoiding the NIH problem):
- ORM: Doctrine ORM (and Doctrine QueryBuilder for parts where Doctrine ORM is too slow)
- Command line stuff: Symfony Console
- configuration: Symfony YAML
- Routing: Symfony Routing
- HTML templating: Twig
- Logging: Monolog (PSR-3 compatible) PSR-3 logging to replace output #2
- DB Migrations: Doctrine ORM
- creating emails: Swiftmailer (or maybe keep PHPMailer)
- HTML/CSS for the app: Twitter Bootstrap
- CSS for the emails: Zurb Foundation for emails/Zurb's email framework
- rich-text editing: CKEditor, Raptor Editor, Odoo
- inline CSS for emails (if needed): Emogrifier
- large data processing/search/statistics: Elasticsearch
- translation/localization: XLIFF
- tests:
- [FEATURE] Add an AdministratorToken repository #76 add integration tests in addition to the unit tests
- extensibility
- decide on whether and how we should allow different mailers
samtuke