Commit Graph

276 Commits

Author SHA1 Message Date
Adam Hathcock fe964f4c8e Use IAsyncDisposable on scheduler which also waits for completion (#235)
* Use IAsyncDisposable on scheduler which also waits for completion

* formatting
2025-03-03 14:50:38 +00:00
Adam Hathcock 1fea4cc01b Add a logging statement for when batch size was larger than expected (25 megs) (#232) 2025-02-27 15:44:35 +00:00
Adam Hathcock c3d716f6fd fix: an exception in the underlying code results in UnobservedTaskExceptions and not ending of the send process. (#237)
* Cancel all channels when first exception happens then throw that exception

* Use single exception to end things.

* fix verifications

* fmt

* Fix tests as stacktrace was removed

* Handle one exception and cancel on receive

* moved ThrowIfFailed and made throw speckle exceptions

* Fixed tests

* fmt
2025-02-27 14:04:02 +00:00
Jedd Morgan 236cca2663 Updated docker compose file (#236) 2025-02-19 16:55:34 +00:00
Jedd Morgan 23f95dd38d Fixed mistake in Version Create Docs (#231) 2025-02-18 09:57:54 +00:00
Adam Hathcock 9eb767a4f6 Revert back to content read. Probably some timeout being hit but reverting for now. (#234) 2025-02-18 09:43:20 +00:00
Jedd Morgan 358680cb9a NET core target to return IReadonlySet for freeze (#233) 2025-02-17 16:56:57 +00:00
Adam Hathcock 87ae033f61 Batches size now affects sending size accurately. Use extensions to … (#230)
* Batches size now affects sending size accurately.  Use extensions to help test this

* format

* add more and use extensions

* Rework to make things clear
2025-02-17 15:52:30 +00:00
Adam Hathcock e5a09155a2 Serialize now waits for the scheduler to be completed before returning (#225)
* Serialize now waits for the scheduler to be completed before returning

* formatting

* wait in deserialize too

* Pass cancellation token to download, refactor how things are passed/created

* responses are now streamed and cancel them earlier

* format

* add manual empty message for sending that definitely knows when the channels are empty

* Fix configure awaits

* more configure await false
2025-02-17 10:59:10 +00:00
Adam Hathcock 988599fbb5 Update ranges to allow higher and update other deps (#229) 2025-02-14 10:07:43 +00:00
Claire Kuang baa5f54edb Merge pull request #217 from specklesystems/jedd/cnx-1114-add-support-for-vertex-normals
Vertex Normals
2025-02-13 12:41:57 +00:00
Jedd Morgan d580fd0bc1 Merge remote-tracking branch 'origin/dev' into jedd/cnx-1114-add-support-for-vertex-normals 2025-02-13 10:56:17 +00:00
Adam Hathcock 2352306269 add ability for objectloader to skip server too. (#228)
* add ability for objectloader to skip server too.  add test so both cache and server can't be skipped

* move testing project to correct dir

* remove extra file
2025-02-13 09:41:07 +00:00
Jedd Morgan f0bafee076 gql api changes (#226) 2025-02-12 13:50:13 +00:00
Jedd Morgan fe68607a52 Smaller chunks for consistency 2025-02-05 16:47:01 +00:00
Jedd Morgan 88d15a5c9c Merge remote-tracking branch 'origin/dev' into jedd/cnx-1114-add-support-for-vertex-normals 2025-02-05 15:54:47 +00:00
Adam Hathcock 3072047129 Use priority scheduler like serialize process to constrain Task enqueuing (#223)
* Use priority scheduler like serialize process to constrain Task enqueuing

* renamespace

* Fix tests and format
2025-02-05 15:36:26 +00:00
Adam Hathcock 316379b04c Update to AwesomeAssertions and update verify (#224)
* Update to AwesomeAssertions and update verify

* attempt to solve disposal problem
2025-02-05 14:03:28 +00:00
Adam Hathcock b056d98645 don't dispose the blocking collection when cancelling (#222)
* don't dispose the blocking collection

* dispose deserialize process correctly

* don't use enumerable and token

* format
2025-02-04 13:14:31 +00:00
Oğuzhan Koral 7329155d7a Fix: Return fast before traverse for wrong ids (#221)
* Return fast before traverse for wrong ids

* add and freeze all ids for a shortcut lookup

* add comment

---------

Co-authored-by: Adam Hathcock <adam@hathcock.uk>
2025-02-03 14:35:33 +00:00
Jedd Morgan c9a5103da7 added workflows back into sln (#219) 2025-02-03 12:49:59 +00:00
Adam Hathcock dbdf4892db dispose BC only when all threads are done. (#220)
* dispose BC only when all threads are done.

* format
2025-02-03 12:10:29 +00:00
Adam Hathcock 3aa993cecb Add cancellation tests (#218)
* Don't log cancelling

* redo exception handling for receive

* remove null test case

* clean up with Id/Json and more cancels

* Change the exception stacks

* fix serialization test

* make a custom scrubber for internalized exceptions

* clean up

* fix namespaces again :(

* adjust the scrubber

* try to make tests more predictable

* rework exceptions again

* strip out compile files used

* formatting

* custom exception validation

* fix init

* Move serialization to own class

* save serialize test

* add deep clean

* add cancellation test on save to cache

* cancellation tests

* format

* do DI correctly

* receive cancel works
2025-01-30 13:42:15 +00:00
Jedd Morgan 327f05adca Merge branch 'dev' into jedd/cnx-1114-add-support-for-vertex-normals 2025-01-27 13:40:48 +00:00
Jedd Morgan ec0d4bf1e3 Vertex Normals 2025-01-27 13:40:30 +00:00
Jedd Morgan 73afa28026 Reamed workflow actions for clarity (#215) 2025-01-27 13:35:06 +00:00
Jedd Morgan f0c7169be8 Small QOL tweaks to Version.Create and ProjectModelsFilter (#210)
* Version Create now returns a Version

* ProjectModelsFilter now has optional args
2025-01-24 12:19:54 +00:00
Jedd Morgan ee10e9d3fc author on Model is now made nullable (#214) 2025-01-24 12:09:12 +00:00
Adam Hathcock 93912d6712 Fix cancellation in schedular. It's no longer optional (#213)
* Fix cancellation in schedular.  It's no longer optional

* formatting

* fix tests because of stacktrace
2025-01-24 11:24:51 +00:00
Adam Hathcock f81fc97a91 Add exception handling for SerializeProcess with CancellationTokenSource (#211)
* Add exception handling for SerializeProcess with CancellationTokenSource

* formatting

* add exception test to make sure we handle a server exception

* add extra exception and handling to stop

* add comment and another test

* one last chance for user to cancel

* formatting
2025-01-23 17:06:08 +00:00
Claire Kuang cc23c147be Merge pull request #200 from specklesystems/claire/cnx-931-create-archicadobject-in-speckle-sharp-sdk
feat(objects): cnx 931 create archicadobject
2025-01-22 11:36:33 +00:00
Claire Kuang 02892a96fe Update ArchicadObject.cs 2025-01-21 20:51:19 +00:00
Claire Kuang ba143fe44b Merge branch 'dev' into claire/cnx-931-create-archicadobject-in-speckle-sharp-sdk 2025-01-21 18:02:07 +00:00
Jedd Morgan 3a71a10cf1 First pass increasing test coverage (#209)
* point tests

* Mesh Tests and removal of unused functions

* Vector tests

* more tests
2025-01-21 14:19:10 +00:00
Adam Hathcock bafd130ece Snapshot testing (#208)
* snapshot testing with verify

* formatting

* add back old serialization tests

* pass verify

* use json correctly

* formatting

* Don't use Quibble and order ourselves because ordering doesn't matter

* whitespace on snapshot

* Better json diffing?  Quibble is back

* add common project

* add object unit tests to see how verify would work

* format

* move random exes to new solution folder

* update lock files
2025-01-16 13:46:53 +00:00
Claire Kuang f79ae7e058 Merge pull request #202 from specklesystems/jedd/cxpla-154-enforce-nullability-analysers-in-objects-and-use-required
Jedd/cxpla 154 enforce nullability analysers in objects and use required
2025-01-15 18:54:08 +00:00
Claire Kuang 77170bf9f3 Merge branch 'dev' into jedd/cxpla-154-enforce-nullability-analysers-in-objects-and-use-required 2025-01-15 17:19:07 +00:00
Adam Hathcock 69167dc206 update some deps and add locks to versions for known packages (#207) 2025-01-15 16:11:04 +00:00
Adam Hathcock 19a5ccfb74 Merge branch 'dev' into claire/cnx-931-create-archicadobject-in-speckle-sharp-sdk 2025-01-14 08:44:47 +00:00
Adam Hathcock b3c6a75387 add a task.yield for a cached model to let progress happen (#204) 2025-01-14 08:44:10 +00:00
Oğuzhan Koral c6556fa2ef Merge branch 'dev' into claire/cnx-931-create-archicadobject-in-speckle-sharp-sdk 2025-01-14 10:37:40 +03:00
Claire Kuang 3bc40fb0bb removes classification and adds elements prop 2025-01-13 15:55:09 +00:00
Adam Hathcock 4370af5376 Allow SDK to report requested downloaded objects and minor adjustments (#203)
* Allow SDK to report requested downloaded objects and minor adjustments

* Remove xyz get server info test
2025-01-13 12:48:28 +00:00
Jedd Morgan 912971d8de reverted unnecessary change to DataObject 2025-01-10 18:29:57 +00:00
Jedd Morgan 9318d85cc8 Merge remote-tracking branch 'origin/dev' into jedd/cxpla-154-enforce-nullability-analysers-in-objects-and-use-required 2025-01-10 15:34:19 +00:00
KatKatKateryna deddb216e5 Gis objects cleaning (#181)
* add Polygon to Geometry; add GisObject

* cleaning objects

* removed final GIS classes

* remove IGisFeature interface

* required keywords for CRS

* required boundary; renaming

* delete the rest of the classes

---------

Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
2025-01-10 15:33:12 +00:00
Jedd Morgan 465d69ba00 Enforce correct nullability with required 2025-01-10 13:37:18 +00:00
Adam Hathcock 14d959834f Convert to Xunit (#196)
* xunit unit tests

* most pass with formatting

* convert objects to xunit

* remove nunit

* format

* merge fixes

* switch objects to fluent assertions

* update to fluent assertions

* more FA

* convert all to FA

* Format

* Fix tests

* formatting

* hopefully made credential test better

* Catch more specific exception

* use another more specific exception

* Fix tests

* update to xunit

* update packages
2025-01-09 15:32:28 +00:00
Adam Hathcock 465f635142 Add details to sqlite exceptions (#198)
* add ServerObjectManagerFactory

* add usage of a command pool

* add more disposal

* save saving increase

* fix tests

* fixes

* push out concurrency and disposablity

* Add a custom task scheduler

* Better usage, don't wait to enqueue to save to channels

* Completely pre-cal batch size to avoid spinning issues

* Try to fix cache counting

* properly dispose things

* format

* clean up

* adjust count and save on current thread

* move batch it's own file

* update a few packages

* fix build and add batch tests

* revert and format

* Revert "save saving increase"

This reverts commit 3b50c857fb.

* revert change

* adjust and add tests

* Dispose sqlite manager properly

* Make Batch a IMemoryOwner to allow for pooling

* Fix tests

* Upgrade some deps

* try to make tests more explicit

* remove return value

* Add detailed SqLiteJsonCacheException

* details changes
2025-01-09 11:04:14 +00:00
Adam Hathcock ed5bdc91ed Sqlite pooling for connections and commands (#193)
* add ServerObjectManagerFactory

* add usage of a command pool

* add more disposal

* save saving increase

* fix tests

* fixes

* push out concurrency and disposablity

* Add a custom task scheduler

* Better usage, don't wait to enqueue to save to channels

* Completely pre-cal batch size to avoid spinning issues

* Try to fix cache counting

* properly dispose things

* format

* clean up

* adjust count and save on current thread

* move batch it's own file

* update a few packages

* fix build and add batch tests

* revert and format

* Revert "save saving increase"

This reverts commit 3b50c857fb.

* revert change

* adjust and add tests

* Dispose sqlite manager properly

* Make Batch a IMemoryOwner to allow for pooling

* Fix tests

* Upgrade some deps

* try to make tests more explicit

* remove return value

* Use named tuple for all objects
2025-01-08 11:04:32 +00:00