diff --git a/Cargo.lock b/Cargo.lock index 18bbeb231..34a8cb68c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1674,7 +1674,7 @@ dependencies = [ [[package]] name = "htsget-actix" -version = "0.2.0" +version = "0.2.1" dependencies = [ "actix-cors", "actix-web", @@ -1697,7 +1697,7 @@ dependencies = [ [[package]] name = "htsget-config" -version = "0.2.0" +version = "0.3.0" dependencies = [ "async-trait", "clap 4.2.7", @@ -1718,7 +1718,7 @@ dependencies = [ [[package]] name = "htsget-http" -version = "0.2.0" +version = "0.2.1" dependencies = [ "futures", "htsget-config", @@ -1733,7 +1733,7 @@ dependencies = [ [[package]] name = "htsget-lambda" -version = "0.2.0" +version = "0.2.1" dependencies = [ "async-trait", "bytes", @@ -1757,7 +1757,7 @@ dependencies = [ [[package]] name = "htsget-search" -version = "0.2.0" +version = "0.3.0" dependencies = [ "async-trait", "aws-config", @@ -1794,7 +1794,7 @@ dependencies = [ [[package]] name = "htsget-test" -version = "0.2.0" +version = "0.2.1" dependencies = [ "async-trait", "base64 0.21.0", diff --git a/htsget-actix/CHANGELOG.md b/htsget-actix/CHANGELOG.md index 2a2c41e7c..bf2e6bb06 100644 --- a/htsget-actix/CHANGELOG.md +++ b/htsget-actix/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.1](https://github.com/umccr/htsget-rs/compare/htsget-actix-v0.2.0...htsget-actix-v0.2.1) - 2023-05-04 + +### Other +- updated the following local packages: htsget-config, htsget-search + ## [0.2.0](https://github.com/umccr/htsget-rs/compare/htsget-actix-v0.1.4...htsget-actix-v0.2.0) - 2023-04-28 ### Added diff --git a/htsget-actix/Cargo.toml b/htsget-actix/Cargo.toml index 3b2f92f13..a2e54c31f 100644 --- a/htsget-actix/Cargo.toml +++ b/htsget-actix/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "htsget-actix" -version = "0.2.0" +version = "0.2.1" rust-version = "1.64" authors = ["Daniel del Castillo de la Rosa ", "Marko Malenic "] edition = "2021" @@ -20,10 +20,10 @@ actix-cors = "0.6" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" futures-util = { version = "0.3" } -htsget-http = { version = "0.2.0", path = "../htsget-http", default-features = false } -htsget-search = { version = "0.2.0", path = "../htsget-search", default-features = false } -htsget-config = { version = "0.2.0", path = "../htsget-config", default-features = false } -htsget-test = { version = "0.2.0", path = "../htsget-test", features = ["server-tests", "cors-tests"], default-features = false } +htsget-http = { version = "0.2.1", path = "../htsget-http", default-features = false } +htsget-search = { version = "0.3.0", path = "../htsget-search", default-features = false } +htsget-config = { version = "0.3.0", path = "../htsget-config", default-features = false } +htsget-test = { version = "0.2.1", path = "../htsget-test", features = ["server-tests", "cors-tests"], default-features = false } futures = { version = "0.3" } tokio = { version = "1.25", features = ["macros", "rt-multi-thread"] } diff --git a/htsget-config/CHANGELOG.md b/htsget-config/CHANGELOG.md index 1c50b25cc..70748504b 100644 --- a/htsget-config/CHANGELOG.md +++ b/htsget-config/CHANGELOG.md @@ -6,6 +6,104 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.0](https://github.com/umccr/htsget-rs/compare/htsget-config-v0.2.0...htsget-config-v0.3.0) - 2023-05-04 + +### Added +- *(storage)* Add support for custom S3 endpoints (i.e: Minio) +- use serve_at in data server rather than a constant +- *(config)* set `Local` resolvers from data server config after parsing the `Config` +- *(config)* add automatic config inference for local and s3 storage, and rearrange modules +- [**breaking**] simplify storage config by allowing untagged enum representation + +### Fixed +- *(release)* Bump all crates to 0.1.2 as explored in https://github.com/MarcoIeni/release-plz/issues/507#issuecomment-1422187766 + +### Other +- Merge pull request #171 from umccr/configurable_s3_endpoint +- *(config)* fix typo +- *(config)* rename test +- *(config)* add tests for resolving responses +- *(config)* fix incorrectly using resolved id when searching for regex capture groups +- a few style changes, changed default resolver +- *(config)* add tests for default tagged storage type +- *(config)* document new features and how to use them +- [**breaking**] rename `HttpTicketFormatter` and remove `UrlFormatter` implementation for it +- [**breaking**] move htsget structs to config, and resolve storage type in config +- *(config)* leverage tagged enum types to allow selecting storage type without manually specifying config values +- manually bump crate versions to 0.1.4 +- bump crate versions to 0.1.3 manually +- [**breaking**] move CertificateKeyPair to config to simplify data server logic +- release +- Downgrade release after fixing cargo publish circular dep issues as discussed in https://github.com/MarcoIeni/release-plz/issues/507#issuecomment-1420254400 +- Update cargo files (#152) +- release (#148) +- Set MSRV on all sub-crates (#146) +- Better CI (#98) +- add missing environment variable options +- remove unnecessary default column for environment variables, surround environment variables in backticks. +- reword resolvers description +- clarify how the resolvers work +- reword usage string +- remove duplicate config module +- Merge branch 'main' of https://github.com/umccr/htsget-rs into more-flexible-config-rename +- fix feature flag compile errors +- add test for long resolvers from environment variable config +- fix broken data server optional by introducing boolean flag to enable data server +- add documentation for reworked config +- flatten data server config +- clippy and fmt +- update config file with default values, add option to print a default config +- allow specifying tags, reference names, fields with an 'All' value +- remove setters, add constructors, add documentation. +- reduce some options for cors, remove repeated code when configuring cors +- fix tests affected by config, change some default values and move around config options +- remove custom deserializer for None option and instead use custom enum +- fix logic involving allowed attributes +- apply changes to other crates from reworked config +- update getter return types +- deserialize empty string as None value +- add cors tests and environment variable tests +- remove public fields, add public getters +- allow configuring multiple data servers +- add expose headers cors option +- move cors config to separate file +- add case insensitive aliases to enum variants +- add allow origins, and separate out tagged and untagged enum variants +- add generic allow type configuration option for allow headers and allow methods +- add cors max age option +- add cors allow header types for cors config +- add CorsConfig shared struct +- add UrlResolver, separate data server config from resolver +- fix errors relating to new config +- use figment instead of config because it is simpler to set defaults +- move config into separate module +- add tests for checking for contained value in interval +- implement query matcher logic +- move fields, tags, no tags, query, and interval to config +- add separate config for local server and s3 storage +- add config file from command line or env option +- swap out envy for config dependency +- Add documentation for cors +- Implement configurable origin for cors +- Add cors allow credentials option to data server config +- Move data server config to separate struct +- Move server config into separate struct +- Implement cors for htsget-http-actix. +- Add more spans and tracing calls. +- Move tracing setup to config. +- Bump dependencies, fix clippy warnings. +- Improve errors so that they are more informative. +- Update README instructions. +- Add ticker server addr test. +- Clean up code, format, update dependencies. +- Implement non-tls ticket server alongside tls ticket server. +- Fix localstorage path (#86) +- Fix tests and errors (#83) +- Deploy htsget-http-lambda. (#81) +- Enable choosing between storage types. (#80) +- Remove file from localstorage (#79) +- Htsget http lambda (#76) + ## [0.2.0](https://github.com/umccr/htsget-rs/compare/htsget-config-v0.1.4...htsget-config-v0.2.0) - 2023-04-28 ### Added diff --git a/htsget-config/Cargo.toml b/htsget-config/Cargo.toml index a48314d7d..2d9dbcb4a 100644 --- a/htsget-config/Cargo.toml +++ b/htsget-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "htsget-config" -version = "0.2.0" +version = "0.3.0" rust-version = "1.64" authors = ["Daniel del Castillo de la Rosa ", "Marko Malenic "] edition = "2021" diff --git a/htsget-http/CHANGELOG.md b/htsget-http/CHANGELOG.md index 200abb9c3..008b74cde 100644 --- a/htsget-http/CHANGELOG.md +++ b/htsget-http/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.1](https://github.com/umccr/htsget-rs/compare/htsget-http-v0.2.0...htsget-http-v0.2.1) - 2023-05-04 + +### Other +- updated the following local packages: htsget-config, htsget-search + ## [0.2.0](https://github.com/umccr/htsget-rs/compare/htsget-http-v0.1.4...htsget-http-v0.2.0) - 2023-04-28 ### Added diff --git a/htsget-http/Cargo.toml b/htsget-http/Cargo.toml index 0fb913db1..0e2a1cb40 100644 --- a/htsget-http/Cargo.toml +++ b/htsget-http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "htsget-http" -version = "0.2.0" +version = "0.2.1" rust-version = "1.64" authors = ["Daniel del Castillo de la Rosa ", "Marko Malenic "] edition = "2021" @@ -18,9 +18,9 @@ default = ["s3-storage"] thiserror = "1.0" serde = { version = "1.0", features = ["derive"] } http = "0.2" -htsget-search = { version = "0.2.0", path = "../htsget-search", default-features = false } -htsget-config = { version = "0.2.0", path = "../htsget-config", default-features = false } -htsget-test = { version = "0.2.0", path = "../htsget-test", default-features = false } +htsget-search = { version = "0.3.0", path = "../htsget-search", default-features = false } +htsget-config = { version = "0.3.0", path = "../htsget-config", default-features = false } +htsget-test = { version = "0.2.1", path = "../htsget-test", default-features = false } futures = { version = "0.3" } tokio = { version = "1.25", features = ["macros", "rt-multi-thread"] } tracing = "0.1" diff --git a/htsget-lambda/CHANGELOG.md b/htsget-lambda/CHANGELOG.md index cddab16d8..da245a07d 100644 --- a/htsget-lambda/CHANGELOG.md +++ b/htsget-lambda/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.1](https://github.com/umccr/htsget-rs/compare/htsget-lambda-v0.2.0...htsget-lambda-v0.2.1) - 2023-05-04 + +### Other +- updated the following local packages: htsget-config, htsget-search + ## [0.2.0](https://github.com/umccr/htsget-rs/compare/htsget-lambda-v0.1.4...htsget-lambda-v0.2.0) - 2023-04-28 ### Added diff --git a/htsget-lambda/Cargo.toml b/htsget-lambda/Cargo.toml index b6cec236d..45528a8bc 100644 --- a/htsget-lambda/Cargo.toml +++ b/htsget-lambda/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "htsget-lambda" -version = "0.2.0" +version = "0.2.1" rust-version = "1.64" authors = ["Marko Malenic ", "Roman Valls Guimera "] edition = "2021" @@ -19,10 +19,10 @@ tokio = { version = "1.25", features = ["macros", "rt-multi-thread"] } tower-http = { version = "0.3", features = ["cors"] } lambda_http = { version = "0.7" } lambda_runtime = { version = "0.7" } -htsget-config = { version = "0.2.0", path = "../htsget-config", default-features = false } -htsget-search = { version = "0.2.0", path = "../htsget-search", default-features = false } -htsget-http = { version = "0.2.0", path = "../htsget-http", default-features = false } -htsget-test = { version = "0.2.0", path = "../htsget-test", features = ["server-tests", "cors-tests"], default-features = false } +htsget-config = { version = "0.3.0", path = "../htsget-config", default-features = false } +htsget-search = { version = "0.3.0", path = "../htsget-search", default-features = false } +htsget-http = { version = "0.2.1", path = "../htsget-http", default-features = false } +htsget-test = { version = "0.2.1", path = "../htsget-test", features = ["server-tests", "cors-tests"], default-features = false } serde = { version = "1.0" } serde_json = "1.0" mime = "0.3" diff --git a/htsget-search/CHANGELOG.md b/htsget-search/CHANGELOG.md index 318513aba..c33696715 100644 --- a/htsget-search/CHANGELOG.md +++ b/htsget-search/CHANGELOG.md @@ -6,6 +6,182 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.0](https://github.com/umccr/htsget-rs/compare/htsget-search-v0.2.0...htsget-search-v0.3.0) - 2023-05-04 + +### Added +- *(storage)* Add support for custom S3 endpoints (i.e: Minio) +- *(test)* add multiple resolvers for server tests and test resolution +- use serve_at in data server rather than a constant +- *(config)* add automatic config inference for local and s3 storage, and rearrange modules +- [**breaking**] simplify storage config by allowing untagged enum representation + +### Fixed +- *(release)* Bump all crates to 0.1.2 as explored in https://github.com/MarcoIeni/release-plz/issues/507#issuecomment-1422187766 +- fixes for byte range ends +- fix IOError name +- fixes & model improvements & bam search progress +- fixes & model improvements & bam search progress +- fix docs + +### Other +- Merge pull request #171 from umccr/configurable_s3_endpoint +- *(search)* convert match to if let +- *(search)* add warning when a non-valid PL read group header is found +- *(search)* add additional tests for searching resolvers and from storage +- *(search)* implement `ResolveResponse` on `HtsGetFromStorage` +- [**breaking**] rename `HttpTicketFormatter` and remove `UrlFormatter` implementation for it +- [**breaking**] move htsget structs to config, and resolve storage type in config +- manually bump crate versions to 0.1.4 +- make htsget-test a regular dependency +- bump crate versions to 0.1.3 manually +- allow htsget-test to be published and bump deps +- specify htsget-test version +- [**breaking**] move CertificateKeyPair to config to simplify data server logic +- *(search)* apply rustfmt +- Merge pull request #154 from umccr/release-plz/2023-02-07T21-45-42Z +- release +- Downgrade release after fixing cargo publish circular dep issues as discussed in https://github.com/MarcoIeni/release-plz/issues/507#issuecomment-1420254400 +- Update cargo files (#152) +- Remove s3-server and dependencies (#150) +- *(deps)* bump tokio from 1.24.0 to 1.24.2 (#151) +- *(fix)* Remove version from htsget-test and mark it for publish=false to avoid circular dependency as recommended by @Marcoleni in https://github.com/MarcoIeni/release-plz/pull/452#issuecomment-1409835221 +- release (#148) +- Set MSRV on all sub-crates (#146) +- Better CI (#98) +- Merge branch 'main' of https://github.com/umccr/htsget-rs into more-flexible-config-rename +- add test for long resolvers from environment variable config +- clippy and fmt +- allow specifying tags, reference names, fields with an 'All' value +- reduce some options for cors, remove repeated code when configuring cors +- fix tests affected by config, change some default values and move around config options +- apply changes to other crates from reworked config +- deserialize empty string as None value +- move cors config to separate file +- fix errors relating to new config +- add tests for checking for contained value in interval +- add safe cast for conversion between i64 and u64 +- move fields, tags, no tags, query, and interval to config +- Make search structs public +- Remove ReferenceSequenceInfo +- Remove unused code and logic +- Add tests for no end position +- Remove requirement for default end position when converting to noodles interval +- Merge branch 'main' of https://github.com/umccr/htsget-rs into exports +- Export some functions for use as a dependency +- Re-export htsget-config as a dependency from other crates +- Update non-noodles dependencies +- Http and tls server test uses test utils +- Convert preflight server test to test utils +- Convert data server test to use test utils +- Implement http test traits for data server +- Add CorsLayer responses to htsget-http-lambda +- Move configure_cors to module file +- Bump deps for noodles and simplify logic around maximum reference sequence length using new noodles types +- List out allowed methods rather than sending wildcard +- Add ticket server cors tests +- Add cors options request test +- Fix tests implementation +- Can't use base directory function in test +- Implement additional cors test +- Add base path only function in tests for code reuse +- Add cors tests +- Layer should go after merge +- Implement cors for data server +- Rename ticket server to data server +- Move data server config to separate struct +- Implement cors for htsget-http-actix. +- Changes to deployment (#116) +- Remove some trace log details to avoid making them overly long. +- Add more detail to gzi traces. +- Add more spans and tracing calls. +- Add buffered reading to bai and gzi. +- Add buffered reading to cram search. +- Remove logging chunks as it is too noisy. +- Emit trace logs from functions. +- Add some more instrument targets, use span in_scope. +- Remove sleep call. +- Add a few more tracing span targets. +- Add span tracing to test timings. +- Small changes related to indices (#114) +- Bump dependencies, fix clippy warnings. +- Avoid reading index unless it is required. +- Remove some unnecessary unwraps. +- Improve errors so that they are more informative. +- Remove RangeBounds on BytesPosition as its use is less readable with classes. +- Fix tests related to response class. +- Remove headers from response if empty. +- Simplify JsonUrl logic. +- Responses should contain a class for all ranges, or no ranges. +- Fix tests. +- Implement RangeBounds for BytesPosition. +- Perform byte position merging when creating data blocks. +- Byte position records class, Header for only header bytes, Body for only body bytes, and None if there is a mix of bytes. +- Allow BytesPosition to record its own class. +- Fix unneseccary storage queries (#107) +- Simplify querying for all records by determining file size. +- Server benchmarks should use non-tls ticket server as this is a fairer comparison to the htsget-refserver. +- Clean up code, format, update dependencies. +- Tests run independently by using dynamic port allocation. +- The GC info field should have a Float type rather than an Integer type. +- Implement non-tls ticket server alongside tls ticket server. +- Rename some traits and structs to clarify their purpose. +- Bump many deps (except querymap) and avoid pulling full tokio in, we just need macros and rt-multi-thread (#96) +- Out of order urls (#95) +- Pinning to noodles-tabix =0.9.0 as suggested in https://github.com/zaeleus/noodles/issues/90#issuecomment-1150361623 as a result of getting CI errors on https://github.com/umccr/htsget-rs/runs/6803593182?check_suite_focus=true#step:6:90 +- Fix eof errors (#87) +- Add benchmarks (#59) +- Fix localstorage path (#86) +- Fix tests and errors (#83) +- Deploy htsget-http-lambda. (#81) +- Enable choosing between storage types. (#80) +- Remove file from localstorage (#79) +- Spawn s3-server once so that tests don't have to be run on one thread. (#78) +- Remove blocking (#77) +- Htsget http lambda (#76) +- Storage class for s3 (#74) +- Decouple File struct from Search trait. (#70) +- Fix runtime panics from curl (#69) +- Bump all tokio versions and stay on track with Noodles versioning instead of working from its git /cc @andrewpatto +- Implement id resolver (#60) +- Convert Storage and HtsGet traits to use async/await (#56) +- Bump up noodles across crates, otherwise several versions get mixed up +- Add the service info endpoints (#54) +- Add the htsget-http-core and htsget-http-actix crates (#45) +- Track crates.io version of noodles (#53) +- Use file size for end bytes ranges. +- Refactor commonalities across all formats. +- Providing the file size through the Storage abstraction. (#49) +- Implement CRAM search backend. (#44) +- Add BCF support (#43) +- Improve the bytes ranges for the BAM header (#42) +- VCF search interface implementation (/variants endpoint) (#37) +- Adapt tests to noodles changes (#41) +- Htsget tests (#40) +- Calculate BAM byte ranges more accurately (#35) +- Remove duplicity in Query, UrlOptions and Url (#29) +- Fix Local Storage always adding the Range header (#31) +- Storage model tests (#28) +- Merge pull request #25 from chris-zen/vcf_bcf_test_data +- Add some tests for LocalStorage::url (#22) +- Add the rest of the builder methods to Query (#21) +- Implement class attribute for reads. (#19) +- Update references and README (#18) +- add tests for BytesRange (#14) +- merge byte ranges +- some renames +- Fix BAM search for unmapped & clippy errors +- add search by reference name and range +- add TODO for BamSearch::url tests +- add TODO for BamSearch::url tests +- added test for HtsGetFromStorage +- added 2 tests for BamSearch +- preparing tests for BamSearch +- add tests and fixes for LocalStorage +- reorganized + rustdocs +- introduced the concept of Storage +- failed attempt to use a BAI index +- work in progress + ## [0.2.0](https://github.com/umccr/htsget-rs/compare/htsget-search-v0.1.4...htsget-search-v0.2.0) - 2023-04-28 ### Added diff --git a/htsget-search/Cargo.toml b/htsget-search/Cargo.toml index 355d6a8c5..527b041df 100644 --- a/htsget-search/Cargo.toml +++ b/htsget-search/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "htsget-search" -version = "0.2.0" +version = "0.3.0" rust-version = "1.64" authors = ["Christian Perez Llamas ", "Marko Malenic ", "Roman Valls Guimera "] edition = "2021" @@ -43,8 +43,8 @@ aws-credential-types = { version = "0.55", features = ["test-util"] } # Error control, tracing, config thiserror = "1.0" -htsget-config = { version = "0.2.0", path = "../htsget-config", default-features = false } -htsget-test = { version = "0.2.0", path = "../htsget-test", features = ["cors-tests"], default-features = false } +htsget-config = { version = "0.3.0", path = "../htsget-config", default-features = false } +htsget-test = { version = "0.2.1", path = "../htsget-test", features = ["cors-tests"], default-features = false } tracing = "0.1" base64 = "0.21" serde = "1.0" diff --git a/htsget-test/CHANGELOG.md b/htsget-test/CHANGELOG.md index 7d23cf636..2611f28eb 100644 --- a/htsget-test/CHANGELOG.md +++ b/htsget-test/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.1](https://github.com/umccr/htsget-rs/compare/htsget-test-v0.2.0...htsget-test-v0.2.1) - 2023-05-04 + +### Other +- updated the following local packages: htsget-config + ## [0.2.0](https://github.com/umccr/htsget-rs/compare/htsget-test-v0.1.4...htsget-test-v0.2.0) - 2023-04-28 ### Added diff --git a/htsget-test/Cargo.toml b/htsget-test/Cargo.toml index 3cf22ea4c..d71a39a26 100644 --- a/htsget-test/Cargo.toml +++ b/htsget-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "htsget-test" -version = "0.2.0" +version = "0.2.1" rust-version = "1.60" authors = ["Marko Malenic "] edition = "2021" @@ -34,7 +34,7 @@ default = ["s3-storage"] [dependencies] # Server tests dependencies -htsget-config = { version = "0.2.0", path = "../htsget-config", default-features = false, optional = true } +htsget-config = { version = "0.3.0", path = "../htsget-config", default-features = false, optional = true } noodles-vcf = { version = "0.24", features = ["async"], optional = true } noodles-bgzf = { version = "0.19", features = ["async"], optional = true }