Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Homebrew Formula iris-edu/libmseed to v3 #59

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 21, 2024

This PR contains the following updates:

Package Update Change
iris-edu/libmseed major v2.19.8 -> v3.1.3

Release Notes

iris-edu/libmseed (iris-edu/libmseed)

v3.1.3

Compare Source

  • Use sequence number from extra headers (/FDSN/Sequence) if present when writing format v2

v3.1.2

Compare Source

  • When writing v2 derive the quality code from the publication version when the extra-header "/FDSN/DataQuality" is not present. Use quality indicator 'D' when the publication version cannot be mapped, e.g. > 4.
  • Add tests for msr3 utility functions.
  • Add msr3_nsperiod() to calculate the sample period in nanoseconds.
  • Add CRC values to diagnostic message when header values does not match calculated.
  • Replace ms_dabs() with macro to use system fabs(), document as deprecated.
  • Simplify mstl3_addmsr_recordptr() a bit.
  • Update yyjson to v0.9.0.

v3.1.1

Compare Source

  • Change library compatibility version in Makefile to MAJOR.1.0, as this is now incompatible with the x.0.0 releases.

v3.1.0

Compare Source

[!WARNING]
Breaking data structure and API changes relative to the v3.0.x releases.

The following data structure and API changes are included in this release:

  • MS3Record.encoding now int16_t instead of int8_t.
  • MS3Record.datalength now uint32_t instead of uint16_t (change in 3.0.18).
  • MS3Record.datasize and MS3TraceSeg.datasize now uint64_t instead of size_t.
  • ms3_detect() now returns int64_t instead of int.
  • mstl3_unpack_recordlist()'s outputsize argument is now uint64_t instead of size_t.
  • mseh_get_ptr_r()'s maxlength is now uint32_t instead of size_t.

The decision to change the API (and not move to a new major version) was not easy. The precipitating change
was that the MS3Record.datalength value was too small to accommodate the value in the format specification.
This means the library would not be future proof to properly detect all records of the format, and, while it could
read and write the commonly-used, small records, it would eventually fail in a bad way. With this unfortunate
breakage the opportunity was taken to apply a few more breaking changes, in particular the encoding value
can now represent the entire range allowed in the format.

The v3.1.0 release API is now stable and semantic versioning can be expected.

The fixes in this release include:

  • Fix to handle full range of allowed encoding values from 0-255.
  • Fix to handle detection of huge record lengths beyond MAXRECLEN gracefully.
  • Add more checks to avoid writing impossible values to miniSEED v2 blockette fields.
  • Fix all compiler warnings at level -Wextra for clang, gcc, and \W3 for MSVC.
  • Fix build of DLL target on Windows by defining exports in libmseed.def.
  • Improve formatting of gap list produced by mstl3_printgaplist().

v3.0.18

Compare Source

  • Increase MAXRECLEN from 131,172 to 10,485,760 (10 MiB) for v3 records.
  • Define MAXRECLENv2 as 131,172 (131+ KiB) to limit miniSEED v2 records and add test for sample counts beyond the 16-bit field limit in v2 records when packing.
  • Add LMIO_FD type of reading IO via arbitrary file descriptor and hooks for setting.
  • Add mseh_replace() to replace extra headers.
  • Consistently initialize header values to 0, fixing edge cases like header-only records.
  • Update link in documentation of ms_readleapsecondfile() for sources of leap-seconds.list.
  • ms_nslc2sid() requires all codes except location to be set to reduce misuse.
  • Fix raw, diagnostic generation of SIDs from miniSEED v2 when full codes are used.
  • Fix handling of data length field in miniSEED v3 as 32-bits instead of 16-bits.
  • Update yyjson to release 0.8.0.

v3.0.17

Compare Source

  • Add tests for default record length and encoding.
  • Document versioning schema as semantic versioning.
  • Add const qualifiers to packing routines that do not modify the passed MS3Record structure.

v3.0.16: , major new version release

Compare Source

This is the initial stable release of major version 3 of library.

This release supports reading and writing of both miniSEED 3 and miniSEED 2 (defined as a subset of SEED 2.4). When reading data the format version is auto-detected so programs using the library can be agnostic to the format version.

Documentation can be found here:
https://earthscope.github.io/libmseed

A guide for porting from previous major version releases is here:
https://earthscope.github.io/libmseed/porting-guide.html

Changes since the previous (pre-release) of this major version:

  • Optimize Steim 1 & 2 decoders
  • Fix logic in msr3_duplicate() for certain cases
  • Add many const qualifiers to pointer values where the library interface does not modify the data. Thanks @​damb!
  • Incorporate ms_gswapX() functions into libmseed.h to promote inlining
  • Change test for environment variable DECODE_DEBUG to compile-time define
  • Change test for environment variable ENCODE_DEBUG to compile-time define

v3.0.15

Compare Source

  • Print sample rate in Hz consistently in msr3_print()
  • Fix writing of SNR values field 9 of Blockette 201 (v2)
  • Read and write microsecond offsets to/from Blockette 500 (v2)
  • Fix addition of Clock Model field 9 of Blockette 500 (v2)

v3.0.14

Compare Source

WARNING: BREAKING API CHANGES - API is now frozen for the pre-releases

This is an extra large release in expectation of becoming the initial stable release of the major version 3 library.

This release contains the following API changes:

  1. The fpos and last arguments of ms3_readmsr(), ms3_readmsr_r(), and ms3_readmsr_selection() have been removed. The same capabilities are available and details are included in the porting guide.

  2. The MS3TraceList.numtraces member was renamed MS3TraceList.numtraceids to clarify.

  3. The ptr argument, previously named path, to mseh_get and mseh_set routines is now in JSON Pointer (RFC 6901) format. This is a more appropriate, and standardized, format than the pseudo-JSON Path, dotted string style previously used. It also allows more flexibility such as specification of an array element.

  4. The mseh_get_path_r() and mseh_set_path_r() were previously named without the _r suffix, now take a additional parsestate argument. This functionality allows the parsed extra headers to be retained between calls to avoid re-parsing. For advanced usage, this allows more efficient getting or setting of multiple extraheader values. If used, this state information must be free'd with mseh_free_parsestate(). If used with mseh_set_path_r() the headers must also be serialized with mseh_serialize().

  5. mstl3_printtracelist() now takes an additional versions argument. When non-zero the routine will decorate SIDs with publication versions.

  6. The MS3TraceID structure is no longer a simple linked list. Instead, it is a skip list, slightly changing the syntax for traversing the list as illustrated in the examples.

Furthermore, this release contains the following changes:

  • Add JSON Merge Patch capability to mseh_set_ptr_r() using the value type M. This allows flexible modification, including deletes, of extra header values.
  • New test suite based on Tau (https://github.com/jasmcaus/tau). Many tests were added and the suite now works on MS-Windows.
  • Replace JSON library with yyjson (https://github.com/ibireme/yyjson). Benefits include performance, shortest accurate real number representation, JSON Pointer support, and UTF-8 support.
  • Significant optimization for the case of constructing trace lists with large numbers of different source IDs, by using a skip list. Implementation inspired by: https://github.com/tdeck/c-skiplist, thanks @​tdeck!
  • Add new mstl3_findID() function for searching a trace list for specific SourceID and, optionally, publication version.
  • Optimize trace construction in mstl3_addmsr_recordptr() for the case of duplicate records.
  • Add cURL detection and full build support to example/Makefile.
  • Add 'const' declarations to ms_sid2nslc()and ms_nslc2sid() to guarantee input will not be modified.
  • Update example/lm_pack.c to a) use improved test data (a sinusoid) that contains all differences for Steim1 and Steim2 encoding, and b) add an -F option to set the format version to create.
  • mseh_get_path_r() and mseh_set_path_r() now accept a value type of i that is used with int64_t values.
  • Add nstime_t special value of NSTUNSET for use as "unset" meaning.
  • Fix logic test for LIBMSEED_NO_THREADING declaration.
  • Fix zero-padding of empty bytes following data in miniSEED v2 creation.
  • Rename DE_ASCII to DE_TEXT to generalize to UTF-8, legacy mapping provided.
  • Change sample type for text encoding to 't', value 'a' still supported as an alternative.
  • Add MS3Tolerance_INITIALIZER for MS3Tolerance values.
  • Handle special case of year 0 when parsing version 2 blockettes. These are now treated as "unset" and not included in the extra headers.
  • Added FAQ to documentation and update example code to match API changes.

v3.0.13

Compare Source

  • Embed current leap second list, used by default and replaced by ms_readleapsecondfile().
  • Add ISOMONTHDAY_DOY time string variant, with day-of-year added in parenthesis.
  • Add '_Z' variants of multiple time string formats that add a trailing Z versions.
  • Print record timestamp in new ISOMONTHDAY_DOY_Z format.
  • Deprecate the ms_nstime2timestrz() function and reformulate to use the '_Z' format definitions.
  • Re-brand to EarthScope.

v3.0.12

Compare Source

  • Change printing of bit flag sets to print each bit flag in most-significant-bit first order to match binary number representation.

v3.0.11

Compare Source

  • Generate proper HTTP Range header by always including a start value, defaulting to 0, when a range end is specified.
  • When time correction value is present always set the time correction applied bit when creating V2 records. Thanks @​nicoleroy-ipgp.
  • mseedview example: always emit accumulated log messages, and print basic summary correctly.

v3.0.10

Compare Source

  • Fix uninitialized file position in ms3_readtracelist_selection() (#​80) by @​anowacki.
  • Fix array index warning in crc32c.c.
  • Update embedded Parson to 1.4.0.
  • Simplify byte swapping routines (#​75) by @​QuLogic.
  • Initialize selection.pubversion to 0 in ms3_readtracelist_timewin() by @​Cuda-Chen.
  • Make logging facility thread safe, with per-thread parameters.
  • Add lm_pararead.c example to illustrate reading miniSEED in parallel using re-entrant interfaces and POSIX threading.
  • Add Add MS_HPTIME2NSTIME and MS_NSTIME2HPTIME macros to convert to/from version 2.x time values. HPTIME values in version 2.x support microsecond resolution, whereas NSTIME values in 3.x support nanosecond resolution.

v3.0.9

Compare Source

  • Update Source Identifier handling to the adopted specification of:
  FDSN:NET_STA_LOC_BAND_SOURCE_POSITION

v3.0.8

Compare Source

  • Add capability to read data from URLs. This feature is optional, enabled at build time with LIBMSEED_URL and requires libcurl to be available on the system.
  • Add registry for accumulation of error and warning log messages
  • Log and diagnostic printing callbacks now require const char *
  • Verbose-triggered messages are now sent to stdout instead of stderr
  • Copy only UTF-8 characters in ms_strncpclean(), ms_strncpcleantail(), and ms_strncpopen()

Note: the data format written by default by this library is not miniSEED 2 and cannot be read by any software that has not been updated to support the new format. miniSEED 2 can be written by this library if desired.

v3.0.7

Compare Source

  • Add conversion of epoch values via ms_timestr2nstime()
  • Allow trailing 'Z' in date-times in ms_timestr2nstime()

Note: the data format written by default by this library is not miniSEED 2 and cannot be read by any software that has not been updated to support the new format. miniSEED 2 can be written by this library if desired.

v3.0.6

Compare Source

  • Generalize ms_timestr2nstime() to detect all supported time formats
  • Rename old ms_timestr2nstime() to ms_mdtimestr2nstime()
  • Change minimum valid year from 1000 to 1678 to avoid wrap-around
  • ms_nstime2timestr(): fix printing of pre-epoch values for UNIXEPOCH
  • Add test for time string parsing and conversion

Note: the data format written by default by this library is not miniSEED 2 and cannot be read by any software that has not been updated to support the new format. miniSEED 2 can be written by this library if desired.

v3.0.5

Compare Source

  • Allow trace list packing with multiple data sample types
  • Portable printing of size_t values
  • License all libmseed code under the Apache License V2.0

Note: the data format written by default by this library is not miniSEED 2 and cannot be read by any software that has not been updated to support the new format. miniSEED 2 can be written by this library if desired.

v3.0.4

Compare Source

  • Add record record list capability, replacing segment-level record metadata
  • Add ability to pack miniSEED version 2 records
  • Allow packing records with no payload, i.e. header-only
  • Add pre-allocation of data buffers, enable on Windows and disable otherwise

v3.0.3

Compare Source

  • Fix version splitting, clarify behavior
  • Fix publication version filtering, thanks @​krischer!
  • Allow selections without time ranges, thanks @​krischer!
  • Normalize encoding string lookups, the SEED manual values are messy no need to perpetuate them
  • Add option to build PDF manual and clarifications in documentation
  • Remove steps in install target of Makefile that no longer function, thanks @​senshu!

Note: data written by this version of the library cannot be read by the previous version. A future release may include write support for miniSEED 2.

v3.0.2

Compare Source

  • Fix segment start time tracking in mstl3_pack().
  • mstl3_pack() can be called without modifying the Trace List with MSF_MAINTAINMSTL flag.
  • Add lm_pack_rollingbuffer.c example of generating records with a rolling buffer.
  • Consistently provide extra headers as terminated string from MS3Record.extra.

Note: data written by this version of the library cannot be read by the previous version. A future release may include write support for miniSEED 2.

v3.0.1

Compare Source

Note: this is a pre-release.
The API is more or less finished but should not be considered stable until a stable release.

Changes since pre-release v3.0.0:

  • Add mstl3_readbuffer_selection() and fix selection-based ms3_readmsr_selection()
  • Use callback functions for time and sample rate tolerance instead of fixed values
  • Fix progression of record start time when packing records
  • Optionally store record-level metadata, header flags and extra headers, in a MS3TraceList
  • More documentation and examples

Note: data written by this version of the library cannot be read by the previous version. A future release may include write support for miniSEED 2.

v3.0.0: Initial release of major version 3 of library

Compare Source

This release contains support for next generation miniSEED format.

Note: this is a pre-release.
The API is more or less finished but should not be considered stable until a stable release.

New documentation page is here:
https://iris-edu.github.io/libmseed/

A guide for porting from previous releases of the library is here:
https://iris-edu.github.io/libmseed/porting-guide.html

See the change log for details of major changes

Note: data written by this version of the library cannot be read by the previous version. A future release may include write support for miniSEED 2.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants