summaryrefslogtreecommitdiffstats
path: root/CHANGELOG
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CHANGELOG702
1 files changed, 702 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000..a0fe07a
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,702 @@
+orcus 0.19.2
+
+* general
+
+ * fixed a build issue with gcc 14 due to a missing include for std::find_if
+ and std::for_each.
+
+ * fixed a segmentation fault with the orcus-test-xml-mapped test which
+ manifested on hppa hardware, as originally reported on
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054376.
+
+* xls-xml
+
+ * fixed a crash when loading a document that includes a style record
+ referencing an unnamed style record as its parent. In Excel-generated
+ documents, styles only reference named styles as their parents. But in
+ 3rd-party generated documents, styles referencing unnamed styles as their
+ parents can occur.
+
+* gnumeric
+
+ * fixed a crash when the document model returned a null pointer when a
+ reference resolver interface was requested.
+
+orcus 0.19.1
+
+* general
+
+ * implemented orcus::create_filter() which instantiates a filter object of
+ specified type. The returned object is of type
+ orcus::iface::import_filter.
+
+ * moved test cases for format detection to the respective filter test files.
+
+* gnumeric
+
+ * fixed a bug where the import filter did not set the formula grammer prior
+ to importing.
+
+orcus 0.19.0
+
+* general
+
+ * added support for allowing use of std::filesystem,
+ std::experimental::filesystem or boost::filesystem per build
+ configuration.
+
+* xlsx
+
+ * refactored styles import to use style indices returned by the document
+ model implementer rather than using the indices stored in the file. This
+ allows the implementer to aggregate some style records and re-use the same
+ index for records that are stored as different records in the original
+ file.
+
+* xls-xml
+
+ * fixed a bug where column styles were not applied to the correct columns
+ when the starting column index was not 0.
+
+* gnumeric
+
+ * overhauled the Gnumeric import filter to fix many bugs and support many
+ missing features relative to the other filters included in orcus. Most
+ notable mentions are:
+
+ * cell styles
+
+ * rich-text strings
+
+ * named ranges
+
+ * row heights and column widths
+
+ * merged cells
+
+* parquet
+
+ * added partial support for Apache Parquet import filter. This is still
+ heavily experimental.
+
+orcus 0.18.1
+
+* sax parser
+
+ * added support for optionally skipping multiple BOM's in the beginning of
+ XML stream. This affects all XML-based file format filters such as
+ xls-xml (aka Excel 2003 XML).
+
+* xml-map
+
+ * fixed a bug where XML documents consisting of simple single-column records
+ were not properly converted to sheet data.
+
+* xls-xml
+
+ * fixed a bug where the filter would always pass border color even when it
+ was not set.
+
+* buildsystem
+
+ * added new configure switches --without-benchmark and --without-doc-example
+ to optinally skip building of these two directories.
+
+orcus 0.18.0
+
+* general
+
+ * fixed the flat output mode to properly calculate the lengths of UTF-8
+ encoded strings.
+
+ * replaced all uses of std::strtol() to parse_integer() to properly parse
+ strings that are not necessarily null-terminated.
+
+ * added a new output format type 'debug-state' which dumps the internal
+ state of the populated document model in detail. This can be useful
+ during debugging.
+
+ * separated the import_shared_string interface implementation from the
+ backend shared strings store per separation of responsibility.
+
+ * merged the foo_t and foo_active_t struct pair, such as font_t and
+ font_active_t, in the styles store into a single type using std::optional.
+
+ * revised the documentation and public API and cleaned things up where
+ necessary.
+
+* ods
+
+ * reimplemented the number format styles import to correctly keep track of
+ element stacks and correctly perform structure checks to detect malformed
+ documents.
+
+ * added new interface to import named styles applied to columns.
+
+ * added new interface to import attributes for asian and complex scripts for
+ the folloiwng font attributes:
+
+ * font name
+
+ * font size
+
+ * font style
+
+ * font weight
+
+ * re-designed the styles import interface to make it multi-level.
+
+ * re-worked the import of the style:text-underline-width attribute to make
+ its handling more in line with the specifications.
+
+* xls-xml
+
+ * added support for importing wrap-text and shrink-to-fit cell format
+ attributes.
+
+ * added support for importing cell-hidden and locked attributes.
+
+ * added support for importing direct and named cell formats applied to
+ columns and rows.
+
+* xlsx
+
+ * added support for importing wrap-text and shrink-to-fit cell format
+ attributes.
+
+ * added support for importing direct and named cell formats applied to
+ columns and rows.
+
+* xml-map
+
+ * added a new interface to pass the encoding information to the document
+ model so that it can correctly decode non-UTF-8-encoded string values.
+
+orcus 0.17.2
+
+* ods
+
+ * fixed a bug where the state of style:cell-protect="none" was not
+ explicitly pushed, thereby having had the same effect as not having this
+ attribute. After the fix, style:cell-protect="none" will explicitly push
+ the hidden state to false, locked state to false, and the formula-hidden
+ state to false.
+
+orcus 0.17.1
+
+* general
+
+ * addressed a number of coverity issues.
+
+ * removed a variety of compiler warnings.
+
+* ods
+
+ * re-generated sax parser tokens from ODF v1.3.
+
+ * revised the style import code to only push style attributes that are
+ actually specified in the XML.
+
+* xls-xml
+
+ * revised the XML structure validation strategy to ignore any mis-placed
+ elements and their sub structures rather than aborting the import.
+
+orcus 0.17.0
+
+* general
+
+ * set the baseline C++ version to 17.
+
+ * cleaned up the public API to replace pstring with std::string_view, union
+ with std::variant, and boost::optional with std::optional. With this
+ change, the public API no longer has dependency on boost.
+
+* spreadsheet document
+
+ * switched to using ixion::model_iterator for horizontal iteration of cells
+ instead of using mdds::mtv::collection.
+
+ * fixed a bug where exporting a spreadsheet document containing adjacent
+ merged cells regions to html incorrectly exported the merged cell areas.
+
+* xlsx
+
+ * cached cell values are now correctly loaded from the file.
+
+* sax parser
+
+ * utf-8 names are now allowed as element and attribute names.
+
+* css parser
+
+ * unquoted utf-8 property values are now allowed.
+
+* orcus-json
+
+ * fixed segmentation fault when using --mode structure with the Windows
+ build.
+
+ * added yaml output option.
+
+* xml-map
+
+ * fixed a bug where mapping of an XML document with namespace aliases
+ sometimes corrupts the alias values.
+
+* python
+
+ * added orcus.FormulaTokenOp enum type which describes type formula token
+ operator types in a more finer grained manner.
+
+* documentation
+
+ * added notes to how to use orcus-xml and orcus-json to map XML and JSON
+ documents to spreadsheet documents.
+
+orcus 0.16.1
+
+* fixed a build issue on 32-bit linux platforms, which was indirectly caused
+ by ixion.
+
+* fixed json parsing bug caused by an uninitialized variable, which manifested
+ itself on debian 32-bit platform.
+
+* removed compiler warnings on unused variables from the base parser handlers.
+
+orcus 0.16.0
+
+* general
+
+ * full formula recalculations are now optional when loading documents. It
+ makes more effective use of cached formula results.
+
+ * added the option of failing on the first faulty cell, or skipping them.
+
+ * fixed a bug that caused the threaded_sax_token_parser to deadlock.
+
+ * added base parser handler classes in the public headers so that they can
+ be sub-classed to overwrite necessary handler methods.
+
+* json-parser
+
+ * parsing of numeric values are now more strict for better conformance to
+ the specs.
+
+* ods
+
+ * added support for loading named expressions from ods documents.
+
+ * fixed an infinite loop when loading one of the attached ods documents from
+ https://bugs.documentfoundation.org/show_bug.cgi?id=82414
+
+* xlsx
+
+ * fixed a segfault when loading the xlsx document from
+ https://bugs.documentfoundation.org/show_bug.cgi?id=83711.
+
+* xls-xml
+
+ * fixed a bug that prevented formulas from referencing cells located in
+ later sheets.
+
+* xml-map
+
+ * adjusted the xml path expressions to be more like XPath. Previously, an
+ attribute was expressed as '@' in the old expression, but XPath uses '/@'.
+ The new expression uses '/@' for an attribute.
+
+ * added the ability to identify and import ranges from XML documents without
+ map file.
+
+ * added the ability to generate map file from XML documents for user
+ customization.
+
+ * added support to specify default namespace in the map file.
+
+* python
+
+ * added orcus.Cell class to represent individual cell values and attributes.
+
+ * fixed several memory leaks in the python binding layer.
+
+ * modified orcus.csv.read() function to take string input, instead of bytes.
+
+ * added __version__ attribute to the orcus module.
+
+ * cleaned up orcus.detect_format function to only take the stream parameter.
+
+ * added named_expressions properties to Document and Sheet class objects.
+
+ * added Python API to bulk-process a number of spreadsheet documents
+ (orcus.tools.file_processor).
+
+ * added Python API to download attachments from bugzilla services via REST
+ API (orcus.tools.bugzilla).
+
+orcus 0.15.4
+
+* fixed a build error with gcc 10 with LTO. For more details, visit
+ (https://bugs.gentoo.org/715154).
+
+* removed potentially non-free specification and schema files from the
+ package.
+
+orcus 0.15.3
+
+* xml-map
+
+ * fixed another bug related to filling of cells down the column in a linked
+ range with nested repeat elements. The bug would occur when the field in
+ a linked range is more than one level deeper than the nearest row group
+ element.
+
+* xls-xml
+
+ * fixed a bug where TopCell and LeftCell attributes of the Table element
+ were not properly honored.
+
+orcus 0.15.2
+
+* xml-map
+
+ * fixed a bug that prevented filling of cells down the column in a linked
+ range with nested repeat elements. The bug would occur when the field in
+ a linked range is associated with an element content rather than an
+ attribute.
+
+* xls-xml
+
+ * added code to properly pick up and pass the number format codes, including
+ named number format values such as 'General Date', 'Long Time, 'Currency'
+ etc.
+
+* fixed a build issue on older macOS environment, related to passing an rvalue
+ to a tuple expecting a const reference. The root cause was a bug in libc++
+ of LLVM < 7.
+
+* fixed a build issue with gcc5.
+
+orcus 0.15.1
+
+* switched xml_map_tree to using boost::object_pool to manage the life
+ cycles of the objects within xml_map_tree, to avoid memory
+ fragmentation.
+
+* fixed incorrect handling of newly created elements in xml_map_tree.
+
+* fixed segfault caused by double deletion of allocated memory for
+ xml_map_tree::element, which seemed to happen only on 32-bit gcc builds.
+
+* fixed weird test failures related to equality check of two double-precision
+ values, caused probably by aggressive compiler optimization which only seems
+ to get triggered in 32-bit gcc builds.
+
+orcus 0.15.0
+
+* spreadsheet interface
+
+ * import_sheet::fill_down_cells() has been added as a required method, to
+ allow the import filter code to duplicate cell value downward in one step.
+
+* json parser
+
+ * added test cases from JSONTestSuite.
+
+ * fixed a bug on parsing an empty array containing one or more blank
+ characters between the brackets.
+
+* sax parser
+
+ * fixed a bug on parsing an attribute value with encoded character
+ immediately followed by a ';', such as '&amp;;'.
+
+ * fixed a bug on parsing an assignment character '=' that either preceded or
+ followed by whitespaces in attribute definition.
+
+ * optionally use SSE4.2 intrinsics to speed up element name parsing.
+
+* orcus-xml
+
+ * revised its cli interface to make use of boost's program_options.
+
+ * orcus-xml-dump's functionality has been combined into orcus-xml.
+
+ * map mode now supports nested repeat elements to be mapped as range fields.
+
+* orcus-json
+
+ * map mode has been added to allow mapping of JSON documents to spreadsheet
+ document model. This mode either takes explicit mapping rule via map
+ file, or performs automatic mapping by auto-identifying mappable ranges by
+ analyzing the structure of the JSON document.
+
+ * structure mode has been added to display the logical structures of JSON
+ documents.
+
+ * significantly improved performance of json document tree by utilizing
+ object pool to manage the life cycles of json value instances.
+
+* xls-xml
+
+ * added support for importing named color values in the ss:Color attributes.
+
+ * added support for handling UTF-16 streams that contains byte order marks.
+
+* spreadsheet document
+
+ * significantly improved performance of flat format output generation.
+
+* internal
+
+ * string_pool now uses boost's object_pool to manage the instances of stored
+ strings.
+
+ * file_content class has been added to memory-map file contents instead of
+ loading them in-memory.
+
+ * memory_content class has been added to map in-memory buffer with the
+ optional ability to perform unicode conversion.
+
+ * dom_tree has been renamed to dom::document_tree, and its interface has
+ been cleaned up to hide its implementation details.
+
+orcus 0.14.1
+
+* addressed a number of coverity issues.
+
+* improved precision of points-to-twips measurement conversions by
+ reducing the number of numeric operations to be performed. This
+ especially helps on i386 platforms.
+
+orcus 0.14.0
+
+* spreadsheet interface
+
+ * import_data_table::set_range() now receives a parameter of type
+ range_t.
+
+ * import_sheet::set_array_formula() interface methods have been
+ removed and replaced with import_sheet::get_array_formula() that
+ returns an interface of type import_array_formula.
+
+ * import_formula interface class has been added to replace the
+ formula related methods of import_sheet. As a result,
+ set_formula(), set_shared_formula(), and set_formula_result()
+ methods have been removed from the import_sheet interface class.
+
+ * import_auto_filter::set_range() now receives a parameter of type
+ range_t, rather than a string value representing a range.
+
+ * import_sheet::set_fill_pattern_type() interface method now takes
+ an enum value of type fill_pattern_t, rather than a string value.
+
+* xls-xml
+
+ * pick up the character set from the XML declaration, and pass it
+ to the client app via import_global_settings interface.
+
+ * support importing of array formulas.
+
+* xlsx
+
+ * support importing of array formulas.
+
+ * fixed a bug where sheet indices being passed to the append_sheet()
+ interface method were incorrect.
+
+* shared formula handling code has been re-worked.
+
+* spreadsheet::sheet class has been de-coupled from the import and
+ export interfaces.
+
+* previously known as import_styles class is now split into styles
+ class and import_styles factory wrapper class.
+
+* sax_parser now gracefully ignores leading whitespace(s) if any,
+ rather than aborting the parsing for it's not a valid XML stream
+ to have leading whitespace(s). In the future we should make this
+ behavior configurable.
+
+* python
+
+ * add orcus.xlsx.read() function that takes a file object to load
+ an xlsx file as a replacement for orcus.xlsx.read_file().
+
+ * add orcus.ods.read(), orcus.xls_xml.read(), orcus.csv.read(),
+ and orcus.gnumeric.read() functions.
+
+ * add orcus.Sheet.write() method which exports sheet content to
+ specified format. For now only the csv format type is
+ supported.
+
+* xml_map_tree no longer requires the source stream persisted in
+ memory between the read and write.
+
+* the sax parser now stores the offset positions of each element
+ rather than their memory positions, in order to make the position
+ values usable between duplicated stream instances.
+
+* xml_structure_tree to support selection of an element by element
+ path.
+
+* document
+
+ * correctly set the argument separator depending on the formula
+ grammar type. This change fixes loading of ods documents with
+ formula cells.
+
+* fixed a build issue with boost 1.67.
+
+orcus 0.13.4
+
+* xls-xml
+
+ * fix incorrect handling of formula cells without result caches.
+
+* fix incorrect parsing of invalid XML documents with multiple
+ self-closing root elements.
+
+orcus 0.13.3
+
+* fix the handling of alpha values passed to set_fill_fg_color() and
+ set_fill_bg_color(). A value of 255 means fully opaque whereas a
+ value of 0 means fully transparent.
+
+* fix the solid fill color import, to use the foreground color
+ instead of the background color.
+
+* xlsx
+
+ * import colors to disgonal borders.
+
+ * remove carriage returns from multi-line cell strings.
+
+* xls-xml
+
+ * import border colors.
+
+ * import hidden row and column flags.
+
+orcus 0.13.2
+
+* xls-xml
+
+ * import column width and row height properties.
+
+ * import solid fill colors in cells.
+
+ * import text alignment properties.
+
+ * import cell borders.
+
+* xlsx
+
+ * import justified and distributed text alignment properties.
+
+ * fix exception being thrown when the diagonal element is
+ encountered.
+
+ * import diagonal cell borders.
+
+orcus 0.13.1
+
+* use a more efficient way to set format ranges in spreadsheet
+ model.
+
+* support single quoted strings in the css parser.
+
+orcus 0.13.0
+
+* fix incorrect parsing of XML 1.0 documents that don't include
+ header declarations.
+
+* fix incorrect parsing of XML elements and attributes whose names
+ start with an underscore.
+
+* orcus-csv: add an option to split content into multiple sheets in
+ case it doesn't fit in one sheet.
+
+* add csv dump mode for all spreadsheet document based filter
+ commands.
+
+* orcus-ods: suppress debug outputs unless the debug flag is set.
+
+* orcus-xlsx: correctly import boolean cell values.
+
+* add experimental cmake-based build support, primarily for Windows.
+
+* add initial support for importing select sheet view settings in
+ xlsx and xls-xml.
+
+* add API for directly constructing json document trees.
+
+* support import of cell formats for xls-xml.
+
+* support single-quoted attribute values in the sax xml parser.
+
+* orcus-xml: fix incorrect mapping of XML range data to sheet range
+ when the first column contains one or more empty elements.
+
+* support import of named expressions for xlsx and xls-xml.
+
+* support import of formula cells for xls-xml.
+
+* implement pivot cache import for xlsx.
+
+* fix a number of crashes in the csv parser.
+
+* fix a number of crashes in the json parser.
+
+* fix a number of crashes in the yaml parser.
+
+* integrate orcus into gitlab's continuous integration.
+
+orcus 0.12.1
+
+* fix build when --disable-spreadsheet-model is specified and the
+ ixion headers are not present.
+
+* fix loading of file streams on Windows.
+
+* get the debug flag to work again.
+
+orcus 0.12.0
+
+* handle escaped unicode in the xml parser
+
+* improve odf styles import
+
+* implement threaded xml parser
+
+* implement threaded json parser
+
+orcus 0.11.2
+
+* make it buildable with mdds-1.2.
+
+orcus 0.11.1
+
+* fixed various build issues with MSVC and clang on OSX.
+
+orcus 0.11.0
+
+* remove boost dependency from the public headers.
+
+* implement JSON parser and document storage model.
+
+* implement YAML parser and document storage model.
+
+* add orcus-json.
+
+* add orcus-yaml.
+
+* improve parse error output from the XML parser.
+
+* use enum class in import_style::set_border_style().
+
+* support non-local file import.
+
+orcus 0.1.0
+
+* initial release.