Commit Graph

108 Commits

Author SHA1 Message Date
oleibman a3921d20bc
Upgrade ezyang/htmlpurifier for Php8.2 (#3073)
They have just issued a new release. Using that should eliminate the last of our Php8.2 unit test problems, so we will be able to change that to non-experimental when it is convenient for us.
2022-09-19 06:20:48 -07:00
oleibman c465b1c283
Minor Changes for Cygwin (#3070)
No source code changes. Mitoteam added a change to better accomodate Cygwin; pick up their new release. While testing, discovered one test that was already skipped on Windows and needs to be skipped on Cygwin as well.
2022-09-17 07:32:12 -07:00
oleibman 8513c6418c
Memory Leak in Sample35 (#3062)
* Memory Leak in Sample35

All but 6 chart samples can be rendered by Sample35. Of those 6, 3 of the problems are because the script runs out of memory processing them. Adopting a suggestion from @MAKS-dev in issue #2092, adding a call to gc_collect_cycles after the charts from each spreadsheet is rendered appears to make it possible to include those 3 spreadsheets in Sample35 after all.

Also take advantage of this opportunity to correct a number (hopefully all) of Scrutinizer problems with JpgraphRendererBases.

* Minor Fix

Problem running 8.1 unit tests.

* Resolve Problems with Pie 3D Charts

Minor fix, leaving only one spreadsheet unusable in Sample35. The reasons for its unusability are now documented in the code.

* Mitoteam Made Changes

Discussing this problem with them, they decided they should make a change for Pie3D rather than forcing us to use the workaround pushed earlier. Change to require mitoteam 10.2.3, revert workaround.
2022-09-14 10:12:53 -07:00
oleibman 2fe66d097f
Upgrade mitoteam/jpgraph for Php8.2 Usage (#3058)
They just released a Php8.2-compatible version. We should use that version going forward. Some tests had been disabled in 8.2 due to the problems which the new release fixes; these are now restored.
2022-09-12 08:23:43 -07:00
MarkBaker e67de6f300 Support for SimpleCache Interface versions 1.0, 2.0 and 3.0; to stop people moaning; even though it requires a second implementation of the Memory cache for Cells 2022-08-20 21:27:05 +02:00
oleibman bb072d1ca7
Upgrade Dev TCPDF to 6.5 (#3006)
* Upgrade Dev TCPDF to 6.5

Implementation of https://github.com/tecnickcom/TCPDF/pull/467, which is available in just-released Tcpdf 6.5, will improve look of Tcpdf rendering for PhpSpreadsheet. Fix #1164.

One test had been suppressed for Tcpdf, ostensibly because it was not compatible with Php8. As it turns out, the PhpSpreadsheet code which invokes Tcpdf was (harmlessly) incorrect, so the Php8 issue was actually with PhpSpreadsheet, not Tcpdf. That code is corrected, and the test is no longer suppressed.

* Update Change Log

Pick up some earlier changes as well as this one, and deprecations which had been omitted from the 1.24 change log.
2022-08-14 10:57:34 -07:00
oleibman 5c13b179a1
Replace Dev jpgraph/jpgraph with mitoteam/jpgraph (#2997)
* Replace Dev jpgraph/jpgraph with mitoteam/jpgraph

PR #2979 added support for mitoteam/jpgraph as an alternative to jpgraph/jpgraph. The package jpgraph/jpgraph is abandoned in composer, and the version loaded with composer has been unusable for some time. This PR removes the dev requirement for jpgraph/jpgraph, and adds a dev requirement for mitoteam/jpgraph in its place.

With a usable graph library, a number of tests and samples that had been disabled are now re-enabled. A lot of new functionality has been added to Charts recently. Some of that new code has exposed bugs in JpgraphRendererBase. I have fixed those where I could. A handful of exceptions remain; I will investigate, and hopefully fix, those over time, but I don't feel it is necessary to fix them all before installing this PR - we are already way ahead of the game with the graphs that are working.

Three members had been ignoring code coverage in whole or in part because of the unavailability of a usable graph libray. Code coverage is restored in them. I am relieved to report that, although they aren't completely covered, adding them did not reduce code coverage by much - it is still over 90.4%.

I took a look at JpgraphRendererBase and Phpstan. Phpstan reports 128 problems. When I added some docblocks to correct some of those, the number increased to 284. Sigh. I will investigate over time, but, for now, we will still suppress Phpstan for JpgraphRendererBase.

I do not find a License file for mitoteam. However, there also wasn't one for jpgraph in the first place. Based on that and the discussion in #2996 (mitoteam will be used in exactly the same manner as mpdf), I don't think this is a problem. IANAL.

* PHP 8.2 Problems

Tons of "cannot create dynamic property" deprecations in jpgraph. Disable the test with most of those for now; leave the two with only a handful of messages enabled.

* Correct Failures in 2 Stock Charts

Down to 6 templates on which Render fails.
2022-08-13 18:14:25 -07:00
dependabot[bot] 0719c7cb87
Bump dompdf/dompdf from 1.2.2 to 2.0.0 (#2917)
Bumps [dompdf/dompdf](https://github.com/dompdf/dompdf) from 1.2.2 to 2.0.0.
- [Release notes](https://github.com/dompdf/dompdf/releases)
- [Commits](https://github.com/dompdf/dompdf/compare/v1.2.2...v2.0.0)

---
updated-dependencies:
- dependency-name: dompdf/dompdf
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-01 05:21:24 -07:00
MarkBaker 3b55689ec1 phpcs update to version 3.7.0 to ensure it catches all the PHP 8.1 updates 2022-06-15 13:33:42 +02:00
dependabot[bot] ed7efb05f0
Bump mpdf/mpdf from 8.0.17 to 8.1.1 (#2793)
Bumps [mpdf/mpdf](https://github.com/mpdf/mpdf) from 8.0.17 to 8.1.1.
- [Release notes](https://github.com/mpdf/mpdf/releases)
- [Changelog](https://github.com/mpdf/mpdf/blob/development/CHANGELOG.md)
- [Commits](https://github.com/mpdf/mpdf/compare/v8.0.17...v8.1.1)

---
updated-dependencies:
- dependency-name: mpdf/mpdf
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-01 07:17:07 -07:00
Kevin Bond 3a4da89bfe
allow psr/simple-cache 2.x 2022-03-11 11:33:16 -05:00
dependabot[bot] 9e591d8540
Bump mpdf/mpdf from 8.0.15 to 8.0.17 (#2543)
Bumps [mpdf/mpdf](https://github.com/mpdf/mpdf) from 8.0.15 to 8.0.17.
- [Release notes](https://github.com/mpdf/mpdf/releases)
- [Changelog](https://github.com/mpdf/mpdf/blob/development/CHANGELOG.md)
- [Commits](https://github.com/mpdf/mpdf/compare/v8.0.15...v8.0.17)

---
updated-dependencies:
- dependency-name: mpdf/mpdf
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-02 18:15:07 -08:00
oleibman 2f0668017b
Plugin in composer.json (#2502)
Per https://getcomposer.org/doc/06-config.md#allow-plugins, Composer has added an extra layer of security in V2.2, and will start enforcing it in July of this year. Phpcodesniffer uses a plugin and will be affected if composer.json isn't updated before that date.

Co-authored-by: Mark Baker <mark@lange.demon.co.uk>
2022-01-20 12:03:21 +01:00
Mark Baker 0df5daaa8b
Fix mpdf to version 8.0.15, as 8.0.16 has logger signature issues (#2514) 2022-01-20 11:48:44 +01:00
Adrien Crivelli 49d47d4bb4 Update all deps 2021-11-08 10:20:47 +09:00
dependabot[bot] 2bffcf9fa8 Bump phpunit/phpunit from 8.5.21 to 9.5.10
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.21 to 9.5.10.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-8.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.21...9.5.10)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 08:54:58 +09:00
dependabot[bot] 10b1371c6e
Bump friendsofphp/php-cs-fixer from 2.19.2 to 3.2.1 (#2365)
* Bump friendsofphp/php-cs-fixer from 2.19.2 to 3.2.1

Bumps [friendsofphp/php-cs-fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) from 2.19.2 to 3.2.1.
- [Release notes](https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases)
- [Changelog](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.2.1/CHANGELOG.md)
- [Commits](https://github.com/FriendsOfPHP/PHP-CS-Fixer/compare/v2.19.2...v3.2.1)

---
updated-dependencies:
- dependency-name: friendsofphp/php-cs-fixer
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adrien Crivelli <adrien.crivelli@gmail.com>
2021-11-08 00:32:24 +09:00
Adrien Crivelli 858e073063 Drop PHP 7.2
This is according to our formal, published, policy to only support
eol PHP after 6 months.

See https://phpspreadsheet.readthedocs.io/en/latest/#php-version-support
2021-11-01 12:01:54 +09:00
MarkBaker 10a69f9983 Update matrix library to version 3 2021-07-02 11:55:59 +02:00
Mark Baker 3ddd12a49b
Update complex numbe library to version 3 (#2198) 2021-06-29 19:28:56 +02:00
MarkBaker f89bfc9e02 Additional language data, and improved automated build of translation files for Calculation Engine locale 2021-05-20 20:41:09 +02:00
MarkBaker e5bfc3c899 Add phpcs version compatibility check to pipeline 2021-05-10 22:55:32 +02:00
Adrien Crivelli 49f87de165
Reduce PHPStan error in tests 2021-04-12 11:10:23 +09:00
Adrien Crivelli a189d933f2
Introduce PHPStan
To improve the feedback loop on code quality with a process
that can be run locally by the developers, instead of only
on Scrutinizer.
2021-04-03 16:13:21 +09:00
Adrien Crivelli 924347c05a
Update PHP deps
Simplify our constraints thanks to PHPUnit 8.5 that supports PHP 8+
2021-03-28 13:52:43 +09:00
MarkBaker cd2f260db1 Additional method call/return typing 2021-01-29 17:31:28 +01:00
MarkBaker 65837daa98 Named formula fix for empty formula value 2021-01-29 15:43:49 +01:00
Mark Baker 9289ab11b2
Replace anti-xss with html purifier (#1751)
* Replace voku/anti-xss with ezyang/htmlpurifier. Despite anti-xss being a smaller footprint dependency, an a better license fit with our MIT license, there are issues with it's automatic it sanitisation of global variables causing side effects
* Additional unit tests for xss in html writer cell comments
2020-12-10 21:03:54 +01:00
Mark Baker 0ed5b800be
Resolve XSS Vulnerability in the HTML Writer (#1719)
Resolve XSS Vulnerability in the HTML Writer
2020-11-19 11:59:57 +01:00
MarkBaker 2d93c36a1a Update composer suggestions 2020-10-10 12:11:00 +02:00
MarkBaker 7d05e0557c Update to versions of complex and matrix libraries 2020-10-01 11:30:09 +02:00
MarkBaker 23e3a09dd3 Update to versions of complex and matrix libraries 2020-09-01 11:02:07 +02:00
MarkBaker 91185a93dc Starting from scratch again: PHP8 nightly build included in test run, and it should pickup PHPUnit >= 9.3 2020-08-09 14:12:17 +02:00
Adrien Crivelli 48f8b5c1f2
Move phpcs config to file 2020-07-26 14:48:06 +09:00
MarkBaker 16a9ff14d4 Experiment 2020-07-25 23:17:26 +02:00
Adrien Crivelli 7cb4884b96
WEBSERVICE is HTTP client agnostic
HTTP client must be configured via `Settings::setHttpClient()`. This is
a small breaking change, but only for the very few people who started using
WEBSERVICE from last version.

Fixes #1562
Closes #1568
2020-07-19 11:33:01 +09:00
paulkned 7f23ccb69d
Added support for the WEBSERVICE function (#1409)
Co-authored-by: Paul Kievits <kievits@rsm.nl>
2020-06-29 10:17:58 +09:00
Adrien Crivelli 321dfc7a3d
Upgrad PHP deps 2020-06-28 16:29:13 +09:00
basbl 1bcdf15533
Add maennchen/zipstream-php dependency
The built-in ZipArchive class does not have the ability
to accept streams. This means that we would always have to
write the zip to disk. The ZipStream library does offer
support for writing to streams.
2020-04-27 21:26:54 +02:00
Adrien Crivelli f1a019e492
Upgrad PHP deps 2020-04-27 19:29:45 +09:00
Adrien Crivelli 03c587fe0b
Drop PHP 7.1
This is according to our formal, published, policy to only support
eol PHP after 6 months.

See https://phpspreadsheet.readthedocs.io/en/latest/#php-version-support
2020-04-27 18:42:32 +09:00
Adrien Crivelli 86bb4f9356
Change license from LGPL 2.1 to MIT
Fixes #140
2019-11-17 18:08:34 +01:00
Adrien Crivelli a38de08344
Update deps to be installable with PHP 7.1-7.3 2019-11-10 17:04:56 +01:00
Adrien Crivelli b2070fd181
Upgrade to phpunit 7.5 2019-07-24 23:45:43 -07:00
Adrien Crivelli 454d942c13
Drop PHP 5.6 and 7.0
This is according to our formal, published, policy to only support
eol PHP after 6 months.

See https://phpspreadsheet.readthedocs.io/en/latest/#php-version-support
2019-07-24 23:12:45 -07:00
Mark Baker 1e711541f1
Refactoring xlsx reader (#1033)
Start work on breaking up monolithic Reader and Writer classes into dedicated subclasses to make maintenance work easier
2019-06-30 23:42:25 +02:00
Mark Baker 2adaad3b01
Minor improvements (#1028)
* Initial tweaks

* Move signatures for abstract BaseReader methods to the IReader interface

* Appease the great whitespace gods
2019-06-22 21:24:51 +02:00
Mark Baker 71f3631cfb
Rectorification (#1010)
* A few loose to strict comparisons

* More loose to strict comparisons

* Revert accidental composer hacks that shouldn't have been committed
2019-06-14 08:31:27 +02:00
MarkBaker fc78cd5422 Minimum PHP 7.0 and updated travis 2019-05-30 11:59:01 +02:00
Adrien Crivelli 3b0c686630
Fix iconv unsupported `//IGNORE//TRANSLIT` on IBM i
Fixes #791
2019-01-02 14:23:34 +11:00