- Allow
chunk_number
to be list or tuple indry_load_files
function by @dachengx in #921 - Fixing store_data_start in recursive peak splitter calls and peaklet["length'] fix in store_downsampled_waveform by @HenningSE in #920
- Run garbage collection after yield result in
Plugin.iter
by @dachengx in #922 - Add a function to get size of a single item of data_type in bytes by @dachengx in #923
- Speed up
get_dependencies
by @dachengx in #924 - Add more kwargs to
dry_load_files
by @dachengx in #925 - Add enforcement for
np.sort
andnp.argsort
by @yuema137 in #918
Full Changelog: https://github.com/AxFoundation/strax/compare/v2.0.0...v2.0.1
- Allow
_chunk_number
to be list or tuple by @dachengx in #856 - Filter out duplicated targets in function
get_iter
by @dachengx in #860 - Check duplicate
depends_on
ofPlugin
by @yuema137 in #859 - Set
lineage
andlineage_hash
simultaneously by @dachengx in #861 - Save run metadata in better format by @dachengx in #868
- Include
chunk_number
in lineage: Per chunk storage by @dachengx in #863 - Allow splitting in rechunking by @dachengx in #865
- Add subruns information in
DataKey
of superruns to track metadata by @dachengx in #866 - Use
pyproject.toml
to install strax by @dachengx in #870 - Save subruns information of hyperrun by @dachengx in #869
- Unify functionality of super and hyperrun by @dachengx in #871
- Add more tests about
PostOffice
andget_components
by @dachengx in #872 - Prohibit
chunk_number
forLoopPlugin
andOverlapWindowPlugin
by @dachengx in #877 - Only save combined
data_type
in only-combining mode by @dachengx in #878 - Remove
get_meta
function from Context by @dachengx in #879 - Remove redundant spaces by @dachengx in #881
- No
run_id
dependent plugin version by @dachengx in #880 - Show warning when the
chunk_number
is not needed by @dachengx in #883 - Refactor nv plugins by @WenzDaniel in #744
- Use
run_id_output
sortingfinal_result
inmulti_run
by @dachengx in #885 _base_hash_on_config
should not be an attribute by @dachengx in #882- Add
combining
into theDataKey
by @dachengx in #886 - Minor debug for the
pyproject.toml
by @dachengx in #888 - Fix the usage of scripts by @dachengx in #890
- Deprecate
selection_str
by @dachengx in #891 - Add
run_id
independent function to get the dependenciesdatat_type
by @dachengx in #892 - Allow get_df on all data_types by @lorenzomag in #887
- Select targeted software frontend in a clever way by @dachengx in #893
- Cancel usage of
chunk_number
if loading the whole dependency by @dachengx in #894 - Add function of dependency level of
data_types
by @dachengx in #896 - Add option to save first samples of peak(lets) waveform by @HenningSE in #867
- Set single thread of zstd and blosc by @dachengx in #899
- Set default
max_downsample_factor_waveform_start
as notNone
by @dachengx in #900 - Turn back to
zstd
becausezstandard
raise errors by @dachengx in #902 - Do not add producer that has been added by saver by @dachengx in #901
- Propagate n_top_channels to _add_lone_hits by @HenningSE in #907
- Add option to merge
lone_hits
intodata_start
by @HenningSE in #908 - Save
data_start
even there is no downsampling by @dachengx in #909 - Remove
max_downsample_factor_waveform_start
, simplify the saving ofdata_start
by @dachengx in #910 - Make variables names more robust in
peak_dtype
by @dachengx in #911 - Set
SingleThreadProcessor
as the default processor by @dachengx in #904 - Switch to master for docformatter by @dachengx in #912
- Add
max_time
which is the time when hit reaches its maximum by @dachengx in #913 - Small fix of dtype description by @dachengx in #914
- Exclude git repo from the package metadata for PyPI by @dachengx in #915
New Contributors
- @yuema137 made their first contribution in #859
- @lorenzomag made their first contribution in #887
- @HenningSE made their first contribution in #867
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.6.5...v2.0.0
- Single threaded alternative processor by @JelleAalbers in #773
- Patch sharedarray version due to numpy updating by @dachengx in #850
- Fix cache of Rechunker, zero chunk is not None by @dachengx in #849
- Print writable storage by @dachengx in #851
- Save multiple output when iteration stops in
PostOffice
by @dachengx in #852 - Do not cache numba decorated
split_array
by @dachengx in #854
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.6.4...v1.6.5
- Minor fix on
_is_superrun
variable names by @dachengx in #837 - Implement Hyperrun by @dachengx in #838
- Add function to collect
data_type
anddata_kind
by @dachengx in #839 - Check
include_tags
andexclude_tags
by @dachengx in #841
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.6.3...v1.6.4
- Install
graphviz
for the pytests by @dachengx in #817 - Increase the timing precision of progress bar by @dachengx in #819
- Initialize plugin because
depends_on
can be property by @dachengx in #820 - Update context.py by @WenzDaniel in #821
- Disable tqdm progress bar when
check_available
is empty by @dachengx in #822 - Check the consistency of number of items in metadata and data in
dry_load_files
function by @dachengx in #824 - Remove
strax.plugin
by @dachengx in #825 - Pick out selection applying function by @dachengx in #826
- Add
CutList
by @dachengx in #827 - Update tags handling, added comment field. Allows to define superuns … by @WenzDaniel in #798
- Prevent start being negative by @dachengx in #828
- Tiny change on the trailing space by @dachengx in #830
- Add
register_cut_list
by @dachengx in #831 - Record all base classes when multiple inheritance by @dachengx in #832
- Multiple output
DownChunkingPlugin
by @dachengx in #833 - Add
ExhaustPlugin
that exhausts all chunks when fetching data by @dachengx in #835
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.6.2...v1.6.3
- Use parentheses to separate the class name and attributes in the representation of StorageFrontend by @dachengx in #809
- Specifically install
lxml_html_clean
by @dachengx in #812 - Add a function to purge unused configs by @dachengx in #800
- Warn if user checks is_stored for plugin not always saved by @cfuselli in #796
- Bump urllib3 from 2.2.0 to 2.2.1 in /extra_requirements by @dependabot in #808
- Do not call
get_components
inis_stored
by @dachengx in #813
New Contributors
- @cfuselli made their first contribution in #796
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.6.1...v1.6.2
- Remove a redundant function and fix some style by @dachengx in #795
- Find the frontends which stored the targets by @dachengx in #802
- Simpler chunk length check, avoid recursion limit crash by @JelleAalbers in #803
- Deprecate the usage of
XENONnT/ax_env
by @dachengx in #804 - Add a function to directly load file from strax folder by @dachengx in #801
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.6.0...v1.6.1
np.float
is deprecated by @dachengx in #789- Update pymongo and solve the error of pytest by @dachengx in #791
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.5.5...v1.6.0
- Update readthedocs configuration by @dachengx in #763
- Proposal to use pre-commit for continuous integration by @dachengx in #762
- Update authorship and copyright info by @JelleAalbers in #771
- Guard hitlet entropy test from numerical errors by @JelleAalbers in #772
- Deregister partially replaced multi-output plugins by @JelleAalbers in #775
- Fix caching issue by @WenzDaniel in #768
- Add chunk yielding plugin and tests by @WenzDaniel in #769
- Avoid deprecated generated_jit by @JelleAalbers in #784
- Also copy dps and remove redundant checks. by @WenzDaniel in #777
- Add hot fix for copy_to_buffer by @WenzDaniel in #785
- Upgrade compare-metadata function by @KaraMelih in #778
- Add warning by @WenzDaniel in #776
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.5.4...v1.5.5
- Split compare_metadata into utils.compare_meta by @dachengx in #754
- Change endtime - time >= 0 to endtime >= time by @JYangQi00 in #756
- Mandatorily wrap
_read_chunk
in acheck_chunk_n
decorator by @dachengx in #758
New Contributors
- @JYangQi00 made their first contribution in #756
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.5.3...v1.5.4
- Add small selection functions by @WenzDaniel in #746
- Patch plugin cache by @WenzDaniel in #748
- Update version of urllib3, remove version control of deepdiff by @dachengx in #749
- Check chunk size right after loading chunk by @dachengx in #752
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.5.2...v1.5.3
- Use warning also in
abs_time_to_prev_next_interval
by @dachengx in #738
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.5.1...v1.5.2
- Fix argsort inside numba.jit using kind='mergesort' by @dachengx in #721
- Fix urllib3 version to 1.26.15 by @dachengx in #723
- Save other fields in the merged peaks to their default value by @dachengx in #722
- add a metadata comparison method by @KaraMelih in #706
- Accelerate select_runs by @shenyangshi in #727
- Stop assigning dependabot to Joran by @JoranAngevaare in #732
- Bump urllib3 from 1.26.15 to 2.0.2 in /extra_requirements by @dependabot in #729
- Add new general fucntion which computes dt to some interval by @WenzDaniel in #726
- Check whether
things
andcontainers
are sorted by @dachengx in #725 - Set start of further chunk to be the smallest start of dependencies by @dachengx in #715
- Fix touching window by @dachengx in #736
New Contributors
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.5.0...v1.5.1
- Fix ipython version by @dachengx in #719
- Do not change channel when sort_by_time by @dachengx in #718
- Save hits level information(hits time difference) in peaks by @dachengx in #716
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.4.3...v1.5.0
- Select max gaps from positive gaps by @dachengx in #708
New Contributors
- @dachengx made their first contribution in #708
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.4.2...v1.4.3
- Patch md access in the rechunker by @JoranAngevaare in #711
- Raise compression errors if unable by @JoranAngevaare in #714
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.4.1...v1.4.2
- Rechunker using Mailbox by @JoranAngevaare in #710
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.4.0...v1.4.1
- Add capability for building summed waveform over channel subset by @DCichon in #565
- Fixed delta peak timestamp problem by @FaroutYLq in #702
Notes
- Breaking changes in the peak-building chain due to #565 New Contributors
- @DCichon made their first contribution in #565
Full Changelog: https://github.com/AxFoundation/strax/compare/v1.3.0...v1.4.0
- Restructure plugins by @JoranAngevaare in #700
- Numpy caching of data in online monitor storage by @JoranAngevaare in #698
- Fix overflow bug in sort_by_time add little test by @WenzDaniel in #695
- Refactor in preparation for PyMongo 4.0 by @JoranAngevaare in #656
- Plugin log property by @jmosbacher in #588
- Prevent float/int funkyness in hitlet processing by @JoranAngevaare in #694
- Add option to ignore errors in multirun loading (#653)
- Auto version, fix #217 (#689)
- Add basics documentation - split Config and Plugin docs (#691)
- Add n_hits comment in code (#692)
- Rechunker script (#686)
- run dependabot remotely (#683)
- Docs fixing (#684)
- Allow different chunk size (#687)
- Added lone hit area to area per channel (#649)
- Fix saving behavior of multioutput plugins with different SaveWhens (#674)
- Change tempdirs in test (#657)
- Define extra kwargs based on cut_by (db14f809414fe91c4e16d04bd7f166970891e591)
- Update run_selection.py (#658)
- Ignore raises on testing (#669)
- Documentation tweaks (#670)
- Test for inline plugin (#673)
- Fix savewhen issues (#648)
- Fix testing from straxen (#650)
- Small fix superruns define run (#651)
- Extend search field to also print occurrences (#638)
- Extend save when (#631)
- test straxen for coverage and backward compatibility (#635)
- Failing example for test_conditional_entropy (#544)
- python 3.10 (#630)
- deprecate py3.6 py3.7 (#636)
- remove deprecated function (#632)
- Numba 0.55 (#634)
- StorageFrontend remoteness attribute and test (#617)
- fix line endings (#618)
- Bump numpy (#627)
- Don't cache
hitlet_properties
(#616)
- Make truly HDR (#613)
- Remove tight coincidence channel from data_type (#614)
- Add mode and tags to superrun. (#593)
- cache deps (#595)
- Fix online monitor bug for only md stored (#596)
- speedup get_source with lookupdict (#599)
- remove config warning and infer_dtype=False (#600)
- Require pymongo 3.* (#611)
- Descriptor configs (#550)
- Add funcs for getting stored source (#590)
- use logged warnings (#582)
- Fail for - run_ids (#567)
- Infer type from default value in Option (#569, #586, #587)
- Fix buffer issue in highest density regions, adds tests (#591)
- Fix memory usage multi runs (#581)
- Update CONTRIBUTING.md (#585)
Notes:
- PRs #569, #586, #587 may cause a lot of warnings for options
- Fix memory leak (#561)
- Fix superrun creation (#562)
- Add deregister plugins (#560)
- Script for testing python setup.py install (#557)
major / minor:
- Fix hitlet splitting (#549)
- Add tight channel (#551)
patch:
- Add read by index plus some extra checks (#529)
- Add drop column option (#530)
- Remove context.apply_selection (#531)
- Add option to support superruns for storage frontends. Adds test (#532)
- Fix issue #536 (#537)
- Two pbar patches (#538)
- Add get_zarr method to context (#540)
- Broken metadata error propagation (#541)
- few tests for MongoStorage frontend (#542)
- Fix caching (#545)
- dds information about failing chunk (#548)
- remove rucio (#552)
- Allow loading SaveWhen.EXPLICIT time range selection (#553)
- Changes to savewhen behavior (#554)
major / minor:
- Fixing peaklet baseline bias (#486)
- Fix double dependency (#512)
patch:
- Parallel plugin timeout (#489)
- Added pytest.ini (#492)
- Fix nveto processing (#491)
- disable testing py3.6 (#505)
- Fix peaks merging (#506)
- Added export (#508)
- Simplify get_components (#510)
- Allow creation and storing of superruns if SaveWhen > 0 (#509)
- re-use instance of plugin for multi output (#516)
- Add raise if instance are not equal (#517)
- Cached lineage if per run default is not allowed (#483, #485)
- Fix define runs and allow storing of superruns (#472, #488)
- Change default pbar behavior (for multiple runs) (#480)
- Reduce numpy warnings (#481, #484)
- Reduce codefactor (#487)
- Add select index to compute width (#465)
- int blaseline (#464)
- Fix #452 assert there is a mailbox for the final generator (#463)
- Document fuzzy-for and documentation itself (#471)
- Re ordered time field in cut plugins (#473)
- Github actions for CI (#454, #460)
- Remove travis for testing (#474)
- Remove outdated files/configs (#462)
- Remove overwrite from options (#467)
- Match cached buffer chunk start times OverlapWindowPlugin (#450)
- Prevent late creation of unattended mailboxes (#452)
- Temporary patch div/zero in hitlets (#447)
- Relax zstd requirements again (#443)
- Don't ignore if pattern also startswith underscore (#445)
- kB/s pbar (#449)
- Speed up run selection by ~100x for fixed defaults (#440)
- Use zstd for from base-env for testing (#441)
- Add MB/s pbar (#442)
- Refactor hitlets (#430, #436)
- Update classifiers for pipy #437
- Allow Py39 in travis tests (#427)
- Use int32 for peak dt, fix #397 (#403, #426)
- max peak duration (#420)
- Loopplugin touching windows + plugin documentation (#424)
- Move apply selection from context to utils (#425)
- Context testing functions + copy_to_frontend documented (#423)
- Apply function to data & test (#422)
- Check data availability for single run (#416)
- Allow re-compression at copy to frontend (#407)
- Bug fix, in processing hitlets (#411)
- Cleanup requirements for boto3 (#414)
- Allow multiple targets to be computed simultaneously (#408, #409)
- Numbafy split by containment (#402)
- Infer start/stop from any dtype (#405)
- Add property provided_dtypes to Context (#404)
- Updated OverlapWindowPlugin docs (#401)
- Clip progress progressbar (#399)
- Specify saver timeout at context level (#394)
- Allow dynamic function creation for dtype copy (#395)
- Close inlined savers on exceptions in multiprocessing (#390)
- Allow option to be overwritten to allow subclassing (#392)
- Fix availability checks (#389)
- Don't print for temp plugins (#391)
- Warn for non saved plugins in run selection (#387)
- Cleanup progressbar (#386)
- Nveto changes + highest density regions (#384)
- Parse requirements for testing (#383)
- Added keep_columns into docstring (#382)
- remove slow operators from mongo storage (#382)
- Better online monitor queries (#375)
- Multiprocess fix (#376)
- Bugfix (#377)
- Speed up st.select_runs by ~100x (#371)
- Finding latest OnlineMonitor data (#374)
- Fix bug in baselining (#367)
- Fix for select_runs with Nones(#370)
- Numpy requirement fix (#369)
- Documentation maintenance (cad6bce8, 9c023b0d)
- Muveto + hitlet fixes (#355)
- Add more tests to strax (#359)
- More clear print statement (#362)
- Fix reproducibility of peak split test (#363)
- Fix numpy deps (#364)
- Finally fix time selection bug (#345)
- Allow multioutput for loop plugin (#357)
- Allow copy from frontend to frontend (#351)
- Add more tests to strax (#359)
- Small bugfix progressbar (#353)
- Smooth database initiation CMT (#356)
- Remove s3 storage (#358)
- Limit mongo backend memory usage (#349)
- Small CMT simplification (#347)
- Updates to mongo.py (#335, #336 )
- Several bug-fixes (#340, #343, #344, #338)
- Contributions to documentation (#342, #344)
- Accommodate scada (#318)
- OnlineMonitor in mongo.py (#315, #323)
- Several bugfixes (#320, #321, #327, #329, #334)
- Option to give range to sum_waveform (#322)
- Added the "Corrections Management Tool" (#303)
- Check of loop dependency for multioutput plugins (#312)
- Fix memory leak peaksplitting (#309)
- Add backend for rucio (#300)
- Hitlets data types and utilities (#275)
- Apply function to data prior to delivering (#304)
- Child options for inherited plugins (#297)
- Introducing a template for pull-requests (#302)
- Make fuzzy_for option more intuitive (#306)
- bugfix in new progressbar feature (#296)
- new plugin type: CutPlugin (#274)
- add progressbar (#276)
- allow for plugin-specific chunk-sizes (#277)
- broaden scope of endtime check in chunk.py (#281)
- change dtype of saturated channels (#286)
- several (bug-)fixes (#289, #288, #284, #278, #273)
- Per-datatype rechunking control (#272)
- Check defaults are consistent across plugins (#271)
- Documentation / comment updates (#269, #268)
- Peak splitter test (#267)
- Fix bug in pulse_processing when not flipping waveforms (#266)
- Fix lineage hash caching (#263)
- Flexible run start time estimation (905335)
accumulate
method for basic out-of-core processing (#253)- Lone hit integration routines (#261)
- Record amplitude bit shift, fix saturation counting (#260)
- Make index_of_fraction more reusable (#257)
- DataDirectory does not
deep_scan
orprovide_run_metadata
by default - Numba 0.49 compatibility
- Disable timeout / make it 24 hours (#255)
- Minor fixes for warning messages
- Fix loading of incomplete data (#251)
- Fx exception handling (#252)
- Fix hitfinder buffer overrun if too few thresholds specified (bc2c2b)
- keep_columns selection option (4e2550)
- Assume all run metadata is in UTC (4e223e)
- Can now specify
*
in forbid_creation_of (86552f) - Simplify length computations (#250)
- Even lazier processing (#248)
- Fix multiprocessing bug for multi-output plugins (0f1b1d, 1e388a)
- Make baselining work in non-jitted mode (8f1f23)
- Better exception handling in estimate_run_start (9e2f88, #249)
- Disable run defaults by default (c1f094)
- Lazy mailbox for processing (#241)
- Baselining checks for nonzero first fragment (#243)
- Add
size_mb
context method - Force time range to be integer
- Update messages and exceptions (#244, #245)
- Fix bug in input synchronization
- Use chunks with defined start/end rather than plain arrays (#235)
- Mandate time fields in all datatypes (#235)
- Remove unnecessary fields from raw-records (#235, #237)
- Allow compute to take start and end fields (#239)
- Channel-dependent hitfinder threshold (#234)
- Wait on Executors during shutdown (#236)
- Protect hitfinder against buffer overruns
- Fixes for time range selection (#231)
- Mailbox timeout and max_messages accessible as context options
- Fix output inference for ParallelSourcePlugin (straxen #46)
- Sane default for max_workers in multi-run loading
- run_id field is now a string when loading multiple runs
- Small bugfixes:
- Fixes for multi-output plugins
- Use frozendict for Plugin.takes_config
- Peak merging code (from straxen)
- time_range selection for user-defined plugins that never save
- Add hit height, store fpart-baseline corrected hit area
- Preserve cached input on empty chunks in OverlapWindowPlugin
- Natural breaks splitting (#225)
- Add ptype, max_gap and max_goodness_of_split to peaks dtype
- Fixes for multiprocessing
- Fixes for time selection
- Fix for final data in same-length merging
- Export downsampling function (#224)
- Fix show_config
- Fix pulse_processing for empty chunks
- Fix for skipping data near end of run during multi-kind merge
- Add tight coincidence field to peaks dtype
- Pulse filtering optimization
max_messages
configurable per plugin, defaults to 4
- Specify defaults via run doc (#223)
- Fix hypothesis test deadline issue during build (5bf2ad7)
- Fix: use selection_str also when selecting time range (87faeab)
- Protect OverlapWindowPlugin against empty chunks (#212)
- Make test helpers accessible, test with numba on (#219)
- Superruns (#207)
- Pulse processing fixes (#207)
- LZ4 compression (#207)
- Fixes for edge cases (#201)
- Time selection refactor and context extensibility (#195)
- Fix availability checks (#194)
- Allow selection of runs by name (#192)
- Fix some context methods for multi-output plugins
- Multiple outputs per plugin (#190)
- Minor fixes and additions (#188, #182, #175, #185)
- Area per channel in PE (#187)
- Update pinned dependencies, notably numba to 0.44.0 (#186)
- Fixes to empty chunk handling and chunk_arrays
- Sum waveform now operates on all channels (#158)
- MongoDB output (#159)
- Better exception handling in saver (#160)
- Force plugins to produce correct dtype (#161)
- Pulse processing upgrades (filtering etc) (#154)
- Run selection and run-level metadata handling (#155)
- Stabilize and shorten lineage hash (#152)
- Shared memory transfers, parallel save/load (#150)
- Ensure unique filenames (#143)
- Many processing fixes (#134, #129)
- Many bugfixes from DAQ test (#118)
- Fix dtype merging bug, add saturation info (#120)
- Fixes to sum waveform (cd0cd2f)
- strax / straxen split (#107)
- Support incomplete data loading (#99)
- Fix for loading data made by ParallelSourcePlugin (#104)
- Runs DB frontend (#100) (moved to straxen)
- Fix MANIFEST.in
- Directory name delimiter changed from
_
to-
(#76) - Time-based random access (#80)
- Throw original exceptions on crashes (#87)
- Check for corrupted data (#88)
- FIX: edge cases in processing (#94)
- FIX: prevent saving during time range or fuzzy selection (#89)
- FIX: Workaround for memory leak in single-core mode (#91)
- XENON: Example cuts (#84)
- XENON: proper S1-S2 pairing (#82)
- XENON: Fix pax conversion (#95)
- DOCS: Datastructure docs (#85)
- S3-protocol I/O (#68, #71, #74)
- Fuzzy matching, context options (#66)
- Fix bug with PyPI lacking MANIFEST (e9771db79bd0c6a148afe1fa8c2ed3d13495da88)
- Zenodo badge (#58)
- Storage frontend/backend split, several fixes (#46)
- XENON: pax conversion fix (#47)
- Globally configurable mailbox settings (#55, #57)
- Start documentation
ParallelSourcePlugin
to better distribute low-level processing over multiple coresOverlapWindowPlugin
to simplify algorithms that look back and ahead in the data- Run-dependent config defaults
- XENON: Position reconstruction (tensorflow NN) and corrections
- Failed to make last patch release.
#19
: list subpackages in setup.py, so numba can find cached code- Autodeploy from Travis to PyPI
- README badges
- Initial release