From b4a16493e8e3f42c941d0a998be8af35cbf3fe35 Mon Sep 17 00:00:00 2001 From: Michael Milette Date: Wed, 24 Apr 2024 00:48:10 -0400 Subject: [PATCH] Added GitHub CI workflows. --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- .github/workflows/moodle-ci.yml | 223 +++++++++++++++++ .gitignore | 3 + CHANGELOG.md | 339 +++++++++++++------------- CONTRIBUTING.md | 38 +-- README.md | 4 +- SECURITY.md | 5 + composer.json | 1 - phpcs.xml.dist | 1 + 9 files changed, 421 insertions(+), 197 deletions(-) create mode 100644 .github/workflows/moodle-ci.yml create mode 100644 SECURITY.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index b4d8e28..f3bf851 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -65,7 +65,7 @@ body: id: moodle attributes: label: Moodle version - placeholder: e.g. Moodle 4.0.4+ (Build 20220919) + placeholder: e.g. Moodle 4.4.0+ (Build 20240422) validations: required: true - type: checkboxes @@ -104,7 +104,7 @@ body: Client Web Browser: (e.g. Chrome, Edge, Firefox, Safari, Safe Exam Browser, Moodle Mobile App) Server Operating System: (e.g. Windows, Linux, Mac OS, Other - specify) Server Webserver: (e.g. Apache, Nginx, IIS, Other - specify) - Server PHP: (e.g. 7.3, 7.4, 8.x, Other - specify) + Server PHP: (e.g. 7.4, 8.0, 8.1, 8.2, 8.3, Other - specify) - type: checkboxes attributes: label: Code of Conduct diff --git a/.github/workflows/moodle-ci.yml b/.github/workflows/moodle-ci.yml new file mode 100644 index 0000000..a590ac0 --- /dev/null +++ b/.github/workflows/moodle-ci.yml @@ -0,0 +1,223 @@ +# Runs tests and code analysis. +# Based on: +# https://github.com/moodlehq/moodle-plugin-ci/blob/main/gha.dist.yml + +# Title of the workflow +name: Moodle Plugin CI + +# Run this workflow every time a new commit pushed to your repository or PR created. +on: [push, pull_request] + +# Give just enough permissions to fetch code (actions/checkout). +permissions: + contents: read + +jobs: + # Set the job key. The key is displayed as the job name when a job name is not provided + test: + # Virtual environment to use. + runs-on: ubuntu-22.04 + + # DB services you need for testing. + services: + postgres: + image: postgres:13 + env: + POSTGRES_USER: 'postgres' + POSTGRES_HOST_AUTH_METHOD: 'trust' + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 + + mariadb: + image: mariadb:10.6.7 + env: + MYSQL_USER: 'root' + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + MYSQL_CHARACTER_SET_SERVER: "utf8mb4" + MYSQL_COLLATION_SERVER: "utf8mb4_unicode_ci" + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3 + + # Determines build matrix. This is a list of PHP versions, databases and + # branches to test our project against. For each combination a separate + # build will be created. For example below, builds will be created in + # total (7.4-pgsql, 7.4-mariadb, 8.0-pgsql, 8.0-mariadb, etc.). + strategy: + fail-fast: false + matrix: + include: + # Next version of Moodle (main). + # - php: '8.3' + # moodle-branch: 'main' + # database: 'pgsql' + # - php: '8.3' + # moodle-branch: 'main' + # database: 'mariadb' + # - php: '8.2' + # moodle-branch: 'main' + # database: 'mariadb' + # Moodle 4.4.x (MOODLE_404_STABLE). + - php: '8.3' + moodle-branch: 'MOODLE_404_STABLE' + database: 'pgsql' + - php: '8.3' + moodle-branch: 'MOODLE_404_STABLE' + database: 'mariadb' + - php: '8.2' + moodle-branch: 'MOODLE_404_STABLE' + database: 'mariadb' + - php: '8.1' + moodle-branch: 'MOODLE_404_STABLE' + database: 'pgsql' + # Moodle 4.3.x (MOODLE_403_STABLE). + - php: '8.2' + moodle-branch: 'MOODLE_403_STABLE' + database: 'pgsql' + - php: '8.0' + moodle-branch: 'MOODLE_403_STABLE' + database: 'mariadb' + # Moodle 4.2.x (MOODLE_402_STABLE). + - php: '8.2' + moodle-branch: 'MOODLE_402_STABLE' + database: 'mariadb' + - php: '8.0' + moodle-branch: 'MOODLE_402_STABLE' + database: 'pgsql' + # Moodle 4.1.x (MOODLE_401_STABLE). + - php: '8.1' + moodle-branch: 'MOODLE_401_STABLE' + database: 'pgsql' + - php: '7.4' + moodle-branch: 'MOODLE_401_STABLE' + database: 'mariadb' + + steps: + # Check out this repository code in ./plugin directory + - name: Check out repository code + uses: actions/checkout@v4 + with: + path: plugin + + # Install PHP of required version. For possible options see https://github.com/shivammathur/setup-php + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: ${{ matrix.extensions }} + ini-values: max_input_vars=6000 + # If you are not using code coverage, keep "none". Otherwise, use "pcov" (Moodle 3.10 and up) or "xdebug". + # If you try to use code coverage with "none", it will fallback to phpdbg (which has known problems). + coverage: pcov + + # Install this project into a directory called "ci", updating PATH and locale, define nvm location. + - name: Initialise moodle-plugin-ci + run: | + composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^4 + echo $(cd ci/bin; pwd) >> $GITHUB_PATH + echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH + sudo locale-gen en_AU.UTF-8 + echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV + + # Run the default install. + # Optionally, it is possible to specify a different Moodle repo to use + # (https://github.com/moodle/moodle.git is used by default) and define + # ignore directives or any other env vars for install step. For more + # details on configuring for specific requirements please refer to the + # 'Help' page. + # + # env: + # MOODLE_REPO=https://github.com/username/moodle.git + # IGNORE_PATHS: 'ignore' + # IGNORE_NAMES: 'ignore_name.php' + # MUSTACHE_IGNORE_NAMES: 'broken.mustache' + # CODECHECKER_IGNORE_PATHS: 'ignoreme' + # CODECHECKER_IGNORE_NAMES: 'ignoreme_name.php' + # + # Other env vars are available for install, namely: + # - DB_USER / DB_PASS / DB_NAME / DB_HOST / DB_PORT: used + # by install to feed the corresponding --db-xxxx options. + # - MOODLE_APP: used to install dependencies to run Behat tests + # using the Moodle App. + - name: Install moodle-plugin-ci + run: moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 + env: + DB: ${{ matrix.database }} + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + # Uncomment this to run Behat tests using the Moodle App. + # MOODLE_APP: 'true' + + # Steps that are run for the purpose of testing. Any of these steps + # can be re-ordered or removed to your liking. And of course, you can + # add any of your own custom steps. + - name: PHP Lint + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci phplint + + - name: PHP Copy/Paste Detector + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpcpd + + - name: PHP Mess Detector + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpmd + + - name: Moodle Code Checker + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpcs --max-warnings 0 + + - name: Moodle PHPDoc Checker + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpdoc --max-warnings 0 + + - name: Validating + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci validate + + - name: Check upgrade savepoints + if: ${{ !cancelled() }} + run: moodle-plugin-ci savepoints + + # This plugin does not use Mustache templates. + # - name: Mustache Lint + # if: ${{ !cancelled() }} + # run: moodle-plugin-ci mustache + + - name: Grunt + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci grunt --max-lint-warnings 0 + + - name: PHPUnit tests + continue-on-error: true # This step will show errors but will not fail + if: ${{ !cancelled() }} + run: moodle-plugin-ci phpunit --fail-on-warning + + # - name: Behat features + # id: behat + # if: ${{ !cancelled() }} + # run: moodle-plugin-ci behat --profile chrome + + # This step allows to upload Behat faildump (screenshots) as workflow artifact + # so it can be downloaded and inspected. You don't need this step if you + # are not running Behat test. Artifact will be retained for 7 days. + + # - name: Upload Behat Faildump + # if: ${{ failure() && steps.behat.outcome == 'failure' }} + # uses: actions/upload-artifact@v4 + # with: + # name: Behat Faildump (${{ join(matrix.*, ', ') }}) + # path: ${{ github.workspace }}/moodledata/behat_dump + # retention-days: 7 + # if-no-files-found: ignore + + - name: Mark cancelled jobs as failed. + if: ${{ cancelled() }} + run: exit 1 diff --git a/.gitignore b/.gitignore index 17ddb62..d62ba8a 100644 --- a/.gitignore +++ b/.gitignore @@ -103,6 +103,9 @@ test.php *.tmp *.temp +##### Git Patches +*.patch + ##### GPG secring.* diff --git a/CHANGELOG.md b/CHANGELOG.md index 9714893..5891339 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,165 +1,174 @@ -# Change Log -All notable changes to this project will be documented in this file. - -## [3.1.0] - 2024-02-22 -### Added -- Now tests domain for SPF configuration. -- Now tests Moodle and domain for DKIM configuration. -- Now tests domain for DMARC configuration. -- Now tests domain for BIMI configuration. -- Updated copyright for 2024. - -## [3.0.1] - 2023-10-23 -### Updated -- Now only run the tests that make sense in order to reduce unlikely recommendations. -- Now displays missing recommendations. -- Tested compatible with PHP 5.6 to 8.2. - -## [3.0.0] - 2023-10-20 -### Added -- New diagnostic feature provides issue-specific information and some common solutions. -- New detection of SMTP credential issue. -- New detection of SMTP server connection failure/timeout. -- New detection of SMTP server rejection. -- New detection of connection timeout issues. -- New detection of DNS resolution failure. -- New detection of missing port or SSL/TLS protocol/port mismatch. -- New detection of closed port. -- New in-app information to help you troubleshoot if you don't receive the test email. -### Updated -- Documentation. Links to http:// have been replaced with https://. -- Compatible with Moodle up to v4.3. - -## [2.0.2] - 2022-05-06 -### Updated -- Fix-31: Corrected deprecated FILTER_SANITIZE_STRING deprecation notice in PHP 8.1. -- Fix-30: Corrected undefined $CFG->branch error when installing at the same time as initial Moodle install. -- Fix-20: Now correctly handles site names with special characters such as ampersands. -- Compatible with PHP 5.6 to 8.1. -- Compatible with Moodle up to v4.2. -- Copyright notice for 2023. - -## [2.0.1] - 2022-12-11 -### Added -- Added documentation for sending email via Gmail. -### Updated -- Added missing string for Moodle 2.4 to 3.9. -- Compatible with PHP 5.6 to 8.0. -- Compatible with Moodle up to v4.1. - -## [2.0.0] - 2022-04-24 -### Added -- Detects and reports the log location if mail.log is set in php.ini. -- Detects if email diverting is enabled. -- Detects if email/messaging is disabled by way of $CFG->noemailever. -### Updated -- Removed db directory as there are no tables used by this plugin. -- .gitignore -- Compatible with PHP 5.6 to 7.4. -- Compatible with Moodle up to v4.0. -- Copyright notice for 2022. - -## [1.4.0] - 2020-09-20 -### Added -- composer.lock -### Updated -- Fixed display issue with Moodle 3.9. -- Compatibility with PHP 5.6 to 7.3. -- Copyright notice. -- Fixed composer installation issues with mediamaisteri/moodle-installer. See https://github.com/juho-jaakkola/moodle-project -- Compatible with Moodle up to v3.11. - -## [1.3.0] - 2019-11-17 -### Added -- If PHP mail() function method is used instead of SMTP, it is not possible to capture the dialogue between Moodle and an SMPT server. Information will now be displayed showing potential locations for a server log. -- Documentation suggesting adding a port number to the SMTP server address. -### Updated -- Fixed compatibility with Moodle 3.8 due to $CFG->debugsmtp now being optional. -- Copyright notice. - -## [1.2.1] - 2018-05-21 -### Added -- Support for Privacy API. -- More answers in FAQ section of README.md. -- From and To addresses in status message. -- Support for Reply-to address. -### Updated -- Fixed a PHP notice that rarely but occasionally occurred when reloading the results page without going through the form again. -- Documentation. -- phpDocs error. - -## [1.1.3] - 2018-04-30 -No code changes. -### Updated -- Moodle eMailTest has been successfully tested for compatibility with Moodle 2.5 to 3.5. -- More answers in FAQ section of README.md. -- Documentation. -- Copyright for 2018. - -## [1.1.2] - 2017-10-29 -No code changes. -### Updated -- Moodle eMailTest has been successfully tested for compatibility with Moodle 2.5 to 3.3. - -## [1.1.1] - 2016-05-12 -No code changes. -### Added -- CONTRIBUTE.md. -### Updated -- Removed Limitations notice in the README.md file. This plugin is confirmed to work with PHP 7.1 (thanks davidpesce) -- Moodle eMailTest has been successfully tested for compatibility with Moodle 2.5 to 3.3. -- Reorganized README.md (New: logo, status badges, table of contents, contributing, etc). - -## [1.1.0] - 2016-02-03 -### Added -- Option to always show SMTP connection log, even if there is no error. -- Now detects whether Moodle should be always sending from no-reply address. -- Now notifies you if an email address is invalid. -- New option to send from primary admin user's email address. -- Now displays Moodle informative debug messages from email_to_user(). -- Added more answers to FAQ section of documentation relating to cron and Moodle 3.2+. - -## [1.0.1] - 2016-01-02 -### Updated -- Made source code comments clearer and phpdoc valid. -- Corrected and updated copyright notice to include 2017. -- Corrected missing closing

tag in English language file. (Thanks lucaboesch!) - -## [1.0.0] - 2016-11-27 -### Added -- A notification will now be displayed if cron hasn't run in the last 24 hours. -- FAQ, in README.md, indicating what to do if you see the new cron notification. -- Provides better recommendations depending on whether the SMTP server - refused communications from Moodle or it refused delivery of the message. -### Changed -- Changed the visible name of the plugin to eMail Test to help people find it. -- Since there have been no issues reported, the plugin is now considered STABLE. -- The link to eMail Test will now appear in the Email section of the Server tab - in Moodle 3.2's new Site Adminstration page. -- Moodle eMailTest has been successfully tested for compatibility with - Moodle 2.5 to 3.2. - -## [0.3.0] - 2016-05-21 -### Added -- This CHANGELOG.md file. -- French Translation in AMOS - Update your French language packs! -- Link to plugin's discussion forum in the plugin's Moodle.org Plugins directory. -- README.md now contains answers to common questions. -- Displays whether using PHP mail() function or talking directly to the SMTP server. -- Option to choose whether test email will be sent from your email address, - the noreply user email address, or the support email address. -- Moodle MailTest is now compatible with Moodle 2.5 to 3.1 LTS. - -## [0.2.0] - 2015-11-05 -### Added -- Moodle MailTest is Now also compatible with Moodle 2.8, 2.9 and 3.0. -- Added link to plugin's discussion forum in the plugin's Moodle.org Plugins directory. -### Updated -- Plugin's status changed from ALPHA to BETA. -- Corrected links from the plugin's page in the Moodle.org Plugins directory. -- Corrected documentation and added formatting to make it easier to read on GitHub. - -## [0.1.0] - 2015-11-02 -### Added -- Initial public release on Moodle.org and GitHub. -- Plugin officially compatible and tested with Moodle 2.5, 2.6 and 2.7. +# Change Log +All notable changes to this project will be documented in this file. + +## [3.1.0] - 2024-04-23 +### Added +- Github CI Workflows. +- Github security reporting +### Updated +- Updated bug report +- Tested compatible with PHP 5.6 to 8.3. +- Compatible with Moodle up to v4.4. + +## [3.1.0] - 2024-02-22 +### Added +- Now tests domain for SPF configuration. +- Now tests Moodle and domain for DKIM configuration. +- Now tests domain for DMARC configuration. +- Now tests domain for BIMI configuration. +- Updated copyright for 2024. + +## [3.0.1] - 2023-10-23 +### Updated +- Now only run the tests that make sense in order to reduce unlikely recommendations. +- Now displays missing recommendations. +- Tested compatible with PHP 5.6 to 8.2. + +## [3.0.0] - 2023-10-20 +### Added +- New diagnostic feature provides issue-specific information and some common solutions. +- New detection of SMTP credential issue. +- New detection of SMTP server connection failure/timeout. +- New detection of SMTP server rejection. +- New detection of connection timeout issues. +- New detection of DNS resolution failure. +- New detection of missing port or SSL/TLS protocol/port mismatch. +- New detection of closed port. +- New in-app information to help you troubleshoot if you don't receive the test email. +### Updated +- Documentation. Links to http:// have been replaced with https://. +- Compatible with Moodle up to v4.3. + +## [2.0.2] - 2022-05-06 +### Updated +- Fix-31: Corrected deprecated FILTER_SANITIZE_STRING deprecation notice in PHP 8.1. +- Fix-30: Corrected undefined $CFG->branch error when installing at the same time as initial Moodle install. +- Fix-20: Now correctly handles site names with special characters such as ampersands. +- Compatible with PHP 5.6 to 8.1. +- Compatible with Moodle up to v4.2. +- Copyright notice for 2023. + +## [2.0.1] - 2022-12-11 +### Added +- Added documentation for sending email via Gmail. +### Updated +- Added missing string for Moodle 2.4 to 3.9. +- Compatible with PHP 5.6 to 8.0. +- Compatible with Moodle up to v4.1. + +## [2.0.0] - 2022-04-24 +### Added +- Detects and reports the log location if mail.log is set in php.ini. +- Detects if email diverting is enabled. +- Detects if email/messaging is disabled by way of $CFG->noemailever. +### Updated +- Removed db directory as there are no tables used by this plugin. +- .gitignore +- Compatible with PHP 5.6 to 7.4. +- Compatible with Moodle up to v4.0. +- Copyright notice for 2022. + +## [1.4.0] - 2020-09-20 +### Added +- composer.lock +### Updated +- Fixed display issue with Moodle 3.9. +- Compatibility with PHP 5.6 to 7.3. +- Copyright notice. +- Fixed composer installation issues with mediamaisteri/moodle-installer. See https://github.com/juho-jaakkola/moodle-project +- Compatible with Moodle up to v3.11. + +## [1.3.0] - 2019-11-17 +### Added +- If PHP mail() function method is used instead of SMTP, it is not possible to capture the dialogue between Moodle and an SMPT server. Information will now be displayed showing potential locations for a server log. +- Documentation suggesting adding a port number to the SMTP server address. +### Updated +- Fixed compatibility with Moodle 3.8 due to $CFG->debugsmtp now being optional. +- Copyright notice. + +## [1.2.1] - 2018-05-21 +### Added +- Support for Privacy API. +- More answers in FAQ section of README.md. +- From and To addresses in status message. +- Support for Reply-to address. +### Updated +- Fixed a PHP notice that rarely but occasionally occurred when reloading the results page without going through the form again. +- Documentation. +- phpDocs error. + +## [1.1.3] - 2018-04-30 +No code changes. +### Updated +- Moodle eMailTest has been successfully tested for compatibility with Moodle 2.5 to 3.5. +- More answers in FAQ section of README.md. +- Documentation. +- Copyright for 2018. + +## [1.1.2] - 2017-10-29 +No code changes. +### Updated +- Moodle eMailTest has been successfully tested for compatibility with Moodle 2.5 to 3.3. + +## [1.1.1] - 2016-05-12 +No code changes. +### Added +- CONTRIBUTE.md. +### Updated +- Removed Limitations notice in the README.md file. This plugin is confirmed to work with PHP 7.1 (thanks davidpesce) +- Moodle eMailTest has been successfully tested for compatibility with Moodle 2.5 to 3.3. +- Reorganized README.md (New: logo, status badges, table of contents, contributing, etc). + +## [1.1.0] - 2016-02-03 +### Added +- Option to always show SMTP connection log, even if there is no error. +- Now detects whether Moodle should be always sending from no-reply address. +- Now notifies you if an email address is invalid. +- New option to send from primary admin user's email address. +- Now displays Moodle informative debug messages from email_to_user(). +- Added more answers to FAQ section of documentation relating to cron and Moodle 3.2+. + +## [1.0.1] - 2016-01-02 +### Updated +- Made source code comments clearer and phpdoc valid. +- Corrected and updated copyright notice to include 2017. +- Corrected missing closing

tag in English language file. (Thanks lucaboesch!) + +## [1.0.0] - 2016-11-27 +### Added +- A notification will now be displayed if cron hasn't run in the last 24 hours. +- FAQ, in README.md, indicating what to do if you see the new cron notification. +- Provides better recommendations depending on whether the SMTP server + refused communications from Moodle or it refused delivery of the message. +### Changed +- Changed the visible name of the plugin to eMail Test to help people find it. +- Since there have been no issues reported, the plugin is now considered STABLE. +- The link to eMail Test will now appear in the Email section of the Server tab + in Moodle 3.2's new Site Adminstration page. +- Moodle eMailTest has been successfully tested for compatibility with + Moodle 2.5 to 3.2. + +## [0.3.0] - 2016-05-21 +### Added +- This CHANGELOG.md file. +- French Translation in AMOS - Update your French language packs! +- Link to plugin's discussion forum in the plugin's Moodle.org Plugins directory. +- README.md now contains answers to common questions. +- Displays whether using PHP mail() function or talking directly to the SMTP server. +- Option to choose whether test email will be sent from your email address, + the noreply user email address, or the support email address. +- Moodle MailTest is now compatible with Moodle 2.5 to 3.1 LTS. + +## [0.2.0] - 2015-11-05 +### Added +- Moodle MailTest is Now also compatible with Moodle 2.8, 2.9 and 3.0. +- Added link to plugin's discussion forum in the plugin's Moodle.org Plugins directory. +### Updated +- Plugin's status changed from ALPHA to BETA. +- Corrected links from the plugin's page in the Moodle.org Plugins directory. +- Corrected documentation and added formatting to make it easier to read on GitHub. + +## [0.1.0] - 2015-11-02 +### Added +- Initial public release on Moodle.org and GitHub. +- Plugin officially compatible and tested with Moodle 2.5, 2.6 and 2.7. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c261ad9..8a73603 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ Contributing ------------------- -1. File an issue to notify the maintainers about what you're working on. +1. File an issue to notify the maintainers about what you are working on. 2. Fork the repo, develop and test your code changes, add docs. 3. Make sure that your commit messages clearly describe the changes. 4. Send a pull request. @@ -9,44 +9,28 @@ Contributing File an Issue ------------------- -Use the issue tracker to start the discussion. It is possible that someone -else is already working on your idea, your approach is not quite right, or that -the functionality exists already. The ticket you file in the issue tracker will -be used to hash that all out. +Use the issue tracker to start the discussion. It is possible that someone else is already working on your idea, your approach is not quite right, or that the functionality exists already. The ticket you file in the issue tracker will be used to hash that all out. -Keep in mind that the maintainers get final say on whether new features will be -integrated into the project. +Keep in mind that the maintainers get final say on whether new features will be integrated into the project. Style Guides ------------------- -1. Write in UTF-8 in PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4 and 8.0. -2. Follow the official[Moodle Coding Style Guide](https://docs.moodle.org/dev/Coding_style). -3. Fully test your code with Moodle **Debug Messages** setting set to -**DEVELOPER: extra Moodle debug messages for developers** and -**Display debug messages** setting checked. -Ensure that there are no errors or warnings at all. -4. Test your code using the [Moodle Code Checker](https://moodle.org/plugins/local_codechecker) -and [Moodle PHPdoc check](https://moodle.org/plugins/local_moodlecheck) plugins. -Ensure that there are no errors or warnings at all. +1. Write in UTF-8 in PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1 and 8.2. +2. Follow the official[Moodle Coding Style Guide](https://moodledev.io/general/development/policies/codingstyle). +3. Fully test your code with Moodle **Debug Messages** setting set to **DEVELOPER: extra Moodle debug messages for developers** and **Display debug messages** setting checked. Ensure that there are no errors or warnings at all. +4. Ensure that your code passes all tests using the [Moodle Code Checker](https://moodle.org/plugins/local_codechecker) and [Moodle PHPdoc check](https://moodle.org/plugins/local_moodlecheck) plugins. Ensure that there are no errors or warnings at all. 5. Look at the existing style and adhere accordingly. Fork the Repository ------------------- -Be sure to add the relevant tests before making the pull request. The -documentation will be updated automatically when we merge to `master`, -but you should also build the documentation yourself and make sure it is -readable. +Be sure to add the relevant tests before making the pull request. The documentation will be updated automatically when we merge to the **master** branch, but you should also build the documentation yourself and make sure it is readable. Make a Pull Request ---------------------- +------------------- -Once you have made all your changes, tests, and updated the documentation, -make a pull request to move everything back into the main branch of the -`repository`. Be sure to reference the original issue in the pull request. -Expect some back-and-forth with regards to style and compliance of these -rules. +Once you have made all your changes, tests, and updated the documentation, make a pull request to move everything back into the main branch of the **repository**. Be sure to reference the original issue in the pull request. Expect some back-and-forth with regards to style and compliance of these rules. Versioning ---------------------- +------------------- We use [SemVer](https://semver.org/) for versioning. diff --git a/README.md b/README.md index 02f0467..8ea9301 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ Local eMailTest plugin for Moodle ================================= -![PHP](https://img.shields.io/badge/PHP-v5.6%20to%208.2-blue.svg) -![Moodle](https://img.shields.io/badge/Moodle-v2.5%20to%20v4.3-orange.svg) +![PHP](https://img.shields.io/badge/PHP-v5.6%20to%208.3-blue.svg) +![Moodle](https://img.shields.io/badge/Moodle-v2.5%20to%20v4.4-orange.svg) [![GitHub Issues](https://img.shields.io/github/issues/michael-milette/moodle-local_mailtest.svg)](https://github.com/michael-milette/moodle-local_mailtest/issues) [![Contributions welcome](https://img.shields.io/badge/contributions-welcome-green.svg)](#contributing) [![License](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](#license) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..f5efff7 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +# Security Policy + +## Reporting a Vulnerability + +Please report (suspected) security vulnerabilities to https://tngconsulting.ca/contact. diff --git a/composer.json b/composer.json index fb1492f..7bed641 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,6 @@ }, "support": { "issues": "https://github.com/michael-milette/moodle-local_mailtest/issues", - "forum": "https://moodle.org/mod/forum/discuss.php?d=322747", "source": "https://github.com/michael-milette/moodle-local_mailtest/", "wiki": "https://github.com/michael-milette/moodle-local_mailtest/wiki", "docs": "https://github.com/michael-milette/moodle-local_mailtest/blob/master/README.md" diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 7c11221..4b57ef3 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -3,4 +3,5 @@ thirdparty vendor + test.php