Skip to content

Commit 413e199

Browse files
committed
Merge branch 'release/1.0.0'
2 parents 43071aa + 8ced713 commit 413e199

File tree

379 files changed

+18818
-25396
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

379 files changed

+18818
-25396
lines changed

.github/workflows/audit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
build:
77
strategy:
88
matrix:
9-
node-version: [ '14' ]
9+
node-version: [ '15' ]
1010
os: [ 'ubuntu-latest' ]
1111
name: AUDIT
1212
runs-on: ${{ matrix.os }}
@@ -20,4 +20,4 @@ jobs:
2020

2121
- name: Run audit
2222
run: |
23-
npm audit
23+
npm audit --omit='dev'

.npmignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
!dist/**/*
88
!es/**/*
99
!typings/**/*
10-
!non-commercial-license.pdf
1110
!github-hf-logo-blue.svg
12-
!agpl-3.0.txt
11+
!gpl-3.0.txt
12+
!CHANGELOG.md

.typedoc.md.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module.exports = {
22
...require('./.typedoc.ts'),
33
"theme": "./docs/.vuepress/subtheme",
44
"out": "docs/api",
5-
"name": "Introduction",
5+
"name": "HyperFormula API reference",
66
"categorizeByGroup": true,
77
"readme": "./docs/api-template.md",
88
"plugin": ["typedoc-plugin-markdown"],

CHANGELOG.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,78 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [1.0.0] - 2021-07-15
10+
11+
### Changed
12+
- **Breaking change**: Changed API of many sheet-related methods to take sheetId instead of sheetName as an argument. (#645)
13+
- **Breaking change**: Removed support for matrix formulas (`{=FORMULA}`) notation. Engine now supports formulas returning array of values (instead of only scalars). (#652)
14+
- **Breaking change**: Removed numeric matrix detection along with matrixDetection and matrixDetectionThreshold config options. (#669)
15+
- **Breaking change**: Changed API of the following methods to take `SimpleCellRange` type argument: `copy`, `cut`, `getCellDependents`, `getCellPrecedents`, `getFillRangeData`, `getRangeFormulas`, `getRangeSerialized`, `getRangeValues`, `isItPossibleToMoveCells`, `isItPossibleToSetCellContents`, `moveCells`. (#687)
16+
- **Breaking change**: Changed the AGPLv3 license to GPLv3.
17+
- **Breaking change**: Removed the free non-commercial license.
18+
- **Breaking change**: Changed behaviour of `setCellContents` so that it is possible to override space occupied by spilled array. (#708)
19+
- **Breaking change**: Changed behaviour of `addRows/removeRows` so that it is possible to add/remove rows across spilled array without changing array size. (#708)
20+
- **Breaking change**: Changed behaviour of `addColumns/removeColumns` so that it is possible to add/remove columns across spilled array without changing array size. (#732)
21+
- **Breaking change**: Changed config options (#747):
22+
23+
| before | after |
24+
|-----------------------|----------------------|
25+
| matrixColumnSeparator | arrayColumnSeparator |
26+
| matrixRowSeparator | arrayRowSeparator |
27+
28+
- **Breaking change**: Changed CellType.MATRIX to CellType.ARRAY (#747)
29+
- **Breaking change**: Changed API methods (#747):
30+
31+
| before | after |
32+
|--------------------|-------------------|
33+
| matrixMapping | arrrayMapping |
34+
| isCellPartOfMatrix | isCellPartOfArray |
35+
36+
- **Breaking change**: Changed Exceptions (#747):
37+
38+
| before | after |
39+
|------------------------------|-----------------------------|
40+
| SourceLocationHasMatrixError | SourceLocationHasArrayError |
41+
| TargetLocationHasMatrixError | TargetLocationHasArrayError |
42+
43+
- Changed SWITCH function, so it takes array as its first argument.
44+
- Changed TRANSPOSE function, so it works with data of any type. (#708)
45+
- Changed the way how we include `gpu.js` making it even more optional (#753)
46+
47+
### Added
48+
- Added support for array arithmetic. (#628)
49+
- Added performance improvements for array handling. (#629)
50+
- Added ARRAYFORMULA function. (#630)
51+
- Added FILTER function. (#668)
52+
- Added ARRAY_CONSTRAIN function. (#661)
53+
- Added casting to scalars from non-range arrays. (#663)
54+
- Added support for range interpolation. (#665)
55+
- Added parsing of arrays in formulas (together with respective config options for separators). (#671)
56+
- Added support for vectorization of scalar functions. (#673)
57+
- Added support for time in JS `Date()` objects on the input. (#648)
58+
- Added validation of API argument types for simple types. (#654)
59+
- Added named expression handling to engine factories. (#680)
60+
- Added `getAllNamedExpressionsSerialized` method. (#680)
61+
- Added parsing of arrays in formulas (together with respective config options for separators). (#671)
62+
- Added utility function for filling ranges with source from other range. (#678)
63+
- Added pretty print for detailedCellError. (#712)
64+
- Added `simpleCellRangeFromString` and `simpleCellRangeToString` helpers. (#720)
65+
- Added `CellError` to exports. (#736)
66+
- Added mapping policies to the exports: `AlwaysDense`, `AlwaysSparse`, `DenseSparseChooseBasedOnThreshold`. (#747)
67+
- Added `#SPILL!` error type. (#708)
68+
- Added large tests for CRUD interactions. (#755)
69+
- Added support for array arithmetic in plugins. (#766)
70+
- Added a flag to `getFillRangeData` to support different types of offsetting. (#767)
71+
72+
### Fixed
73+
- Fixed an issue with arrays and cruds. (#651)
74+
- Fixed handling of arrays for ROWS/COLUMNS functions. (#677)
75+
- Fixed an issue with nested namedexpressions. (#679)
76+
- Fixed an issue with matrixDetection + number parsing. (#686)
77+
- Fixed an issue with NOW and TODAY functions. (#709)
78+
- Fixed an issue with MIN/MAX function caches. (#711)
79+
- Fixed an issue with caching and order of evaluation. (#735)
80+
981
## [0.6.2] - 2021-05-26
1082

1183
### Changed

LICENSE.txt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,15 @@ registered with the National Court Register under number 538651,
66
EU tax ID number: PL5862294002, share capital: PLN 62,800.00.
77

88
This software is protected by applicable copyright laws, including
9-
international treaties, and triple-licensed.
9+
international treaties, and double-licensed.
1010

11-
First, if your use involves only such purposes as education, research, study,
12-
and personal use, testing and demonstration, you agree to be bound by
13-
the terms included in the “non-commercial-license.pdf” file, available
14-
in the main directory of this software repository.
15-
16-
Second, commercial purposes dictate more individual approach
11+
First, commercial purposes dictate individual approach
1712
and the terms of such use are subject to negotiations.
1813

19-
Third, at your option, your use of this Software – either commercial, non-commercial, or both –
20-
may be subject to the GNU Affero General Public License
21-
in such version as included in the “agpl-3.0.txt” file,
14+
Second, at your option, your use of this Software –
15+
either commercial, non-commercial, or both –
16+
may be subject to the GNU General Public License
17+
in such version as included in the “gpl-3.0.txt” file,
2218
available in the main directory of this software repository.
2319

2420
HANDSONCODE PROVIDES THIS SOFTWARE ON AN “AS IS” BASIS,

README.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ import { HyperFormula } from 'hyperformula';
6262

6363
// define the options
6464
const options = {
65-
licenseKey: 'agpl-v3',
65+
licenseKey: 'gpl-v3',
6666
};
6767

6868
// define the data
@@ -116,23 +116,19 @@ Your help is much appreciated in any of the following topics:
116116

117117
## License
118118

119-
HyperFormula is a triple-licensed software. You can use it under the
120-
open source [AGPLv3 license](https://github.com/handsontable/hyperformula/blob/master/agpl-3.0.txt),
121-
or a [free license](https://github.com/handsontable/hyperformula/blob/master/non-commercial-license.pdf)
122-
in all your non-commercial projects. There is also a
123-
[commercial license](https://handsontable.github.io/hyperformula/guide/contact.html),
124-
and support services available.
119+
HyperFormula is a double-licensed software. In all your non-commercial projects, you can use it under the
120+
open source [GPLv3 license](https://github.com/handsontable/hyperformula/blob/master/gpl-3.0.txt). Additionally, there is also a [commercial license](https://handsontable.github.io/hyperformula/guide/contact.html), and support services available.
125121

126-
## Acknowledgements
122+
## Acknowledgments
127123

128124
You should know that this project wouldn’t exist without co-financing from European Union funds under the European Regional Development Funds as a part of the Smart Growth Operational Programme. Project implemented as a part of the Polish National Centre for Research and Development: “Fast Track”.
129125

130126
- Name of the programme: Smart Growth Operational Programme 2014-2020
131127
- Project name: “Development of the high-performance calculation engine for processing tabular data of the significant size on mobile devices and workstations using parallel computing and GPU.”
132128
- Project number: POIR.01.01.01-00-0223/18-00
133129
- Beneficiary: Handsoncode sp. z o.o.
134-
- Total budget: PLN 1 121 375.00 (USD ~295 000)
135-
- Amount of grant: PLN 774 742.00 (USD ~204 000)
130+
- Total budget: PLN 1 117 275.87 (USD ~295 000)
131+
- Amount of grant: PLN 771 807.73 (USD ~204 000)
136132
- Duration: 2018-2019
137133

138134
![eu-funds](docs/.vuepress/public/eu-logos.png)

docs/.vuepress/config.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ module.exports = {
148148
['/guide/supported-browsers', 'Supported browsers'],
149149
['/guide/dependencies', 'Dependencies'],
150150
['/guide/licensing', 'Licensing'],
151-
['/guide/changelog', 'Changelog'],
152151
['/guide/support', 'Support'],
153152
]
154153
},
@@ -216,9 +215,18 @@ module.exports = {
216215
['/guide/building', 'Building'],
217216
['/guide/testing', 'Testing'],
218217
['/guide/custom-functions', 'Custom functions'],
218+
['/guide/arrays', 'Arrays'],
219219
['/guide/performance', 'Performance'],
220220
]
221221
},
222+
{
223+
title: 'Upgrade and migration',
224+
collapsable: false,
225+
children: [
226+
['/guide/release-notes', 'Release notes'],
227+
['/guide/migration-from-0.6-to-1.0', 'Migrating from 0.6 to 1.0'],
228+
]
229+
},
222230
{
223231
title: 'Miscellaneous',
224232
collapsable: false,
@@ -229,7 +237,7 @@ module.exports = {
229237
['/guide/acknowledgements', 'Acknowledgments'],
230238
['/guide/contact', 'Contact'],
231239
]
232-
}
240+
},
233241
],
234242
},
235243
}

docs/README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# HyperFormula documentation
2+
3+
HyperFormula comes with a dedicated, regularly-updated documentation portal.
4+
5+
View the documentation's latest production version at https://handsontable.com/docs/hyperformula.
6+
7+
## About HyperFormula documentation
8+
9+
The HyperFormula documentation is built with [VuePress](https://vuepress.vuejs.org/), a Vue-powered Static Site Generator.
10+
11+
When editing the docs, you can use features described [here](https://vuepress.vuejs.org/guide/markdown.html).
12+
13+
## Getting started with HyperFormula documentation
14+
15+
To start a local HyperFormula docs server:
16+
17+
1. Make sure you're running [Node.js](https://nodejs.org/en/) 14+.
18+
2. From the main `hyperformula` directory, install the docs dependencies:
19+
```bash
20+
npm install
21+
```
22+
3. From the main `hyperformula` directory, build HyperFormula:
23+
```bash
24+
npm run bundle-all
25+
```
26+
4. From the main `hyperformula` directory, generate the API reference:
27+
```bash
28+
npm run docs:api
29+
```
30+
5. From the main `hyperformula` directory, start your local docs server:
31+
```bash
32+
npm run docs:dev
33+
```
34+
6. In your browser, go to: http://localhost:8080/hyperformula/.
35+
36+
## HyperFormula documentation npm scripts
37+
38+
From the `hyperformula` directory, you can run the following npm scripts:
39+
40+
* `npm run docs:dev` - Starts a local docs server at http://localhost:8080/hyperformula/.
41+
* `npm run docs:api` - Generates the HyperFormula API reference into `/docs/api`.
42+
* `npm run docs:build` - Builds the docs output into `/docs/.vuepress/dist`.
43+
* `npm run docs` - Builds both the API reference and the docs output.
44+
45+
## HyperFormula docs directory structure
46+
47+
```bash
48+
docs # All documentation files
49+
├── .vuepress # All VuePress files
50+
│ ├── components # Vue components
51+
│   ├── dist # The docs output. Both the docs and the API reference are built into this folder.
52+
│   ├── public # Public assets
53+
│   ├── styles # Style-related files
54+
│   ├── subtheme # Subtheme files
55+
│   ├── templates # HTML templates
56+
│   ├── config.js # VuePress configuration
57+
│   ├── enhanceApp.js # VuePress app-level enhancements
58+
│   └── highlight.js # Code highlight configuration
59+
├── api # The API reference files, generated automatically from JsDoc. Do not edit!
60+
├── guide # The docs source files: Markdown content
61+
├── api-template.md # The API reference welcome page
62+
├── index.md # The main docs portal welcome page
63+
└── README.md # The file you're looking at right now!
64+
```

docs/api-template.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Welcome to HyperFormula `v{{ $page.version }}` API!
1+
Welcome to the HyperFormula `v{{ $page.version }}` API!
22

33
The API reference documentation provides detailed information for methods, error types, event types, and all the configuration options available in HyperFormula.
44

@@ -28,7 +28,7 @@ This section contains information about options that allow you to configure the
2828
An example set of options:
2929
```javascript
3030
const options = {
31-
licenseKey: 'agpl-v3',
31+
licenseKey: 'gpl-v3',
3232
precisionRounding: 10,
3333
nullDate: { year: 1900, month: 1, day: 1 },
3434
functionArgSeparator: '.'

docs/guide/acknowledgements.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ engine for processing tabular data of the significant size on mobile
1212
devices and workstations using parallel computing and GPU."
1313
* Project number: POIR.01.01.01-00-0223/18-00
1414
* Beneficiary: Handsoncode sp. z o.o.
15-
* Total budget: PLN 1 121 375.00
16-
* Amount of grant: PLN 774 742.00
15+
* Total budget: PLN 1 117 275.87 (USD ~295 000)
16+
* Amount of grant: PLN 771 807.73 (USD ~204 000)
1717
* Duration: 2018-2019
1818

19-
<img :src="$withBase('/eu-logos.png')">
19+
<img :src="$withBase('/eu-logos.png')">

0 commit comments

Comments
 (0)