Commit Graph

40 Commits

Author SHA1 Message Date
Eliot Jones
8408c98aec Draft release on master build (#1145)
* remove alpha postfix, releases will increment version

* update the master build job to draft a release

* add publish action to publish full release

* enable setting assembly and file version

* bump assembly and file version for package project

---------

Co-authored-by: BobLd <38405645+BobLd@users.noreply.github.com>
2025-09-08 20:07:36 +01:00
Chuck B.
1ed9e017f4 Performance improvements and .Net 9 support (#1116)
* Refactor letter handling by orientation for efficiency

Improved the processing of letters based on their text orientation by preallocating separate lists for each orientation (horizontal, rotate270, rotate180, rotate90, and other). This change reduces multiple calls to `GetWords` and minimizes enumerations and allocations, enhancing performance and readability. Each letter is now added to the appropriate list in a single iteration over the `letters` collection.

* Update target frameworks to include net9.0

Expanded compatibility in `UglyToad.PdfPig.csproj` by adding
`net9.0` to the list of target frameworks, alongside existing
versions.

* Add .NET 9.0 support and refactor key components

Updated project files for UglyToad.PdfPig to target .NET 9.0, enhancing compatibility with the latest framework features.

Refactored `GetBlocks` in `DocstrumBoundingBoxes.cs` for improved input handling and performance.

Significantly optimized `NearestNeighbourWordExtractor.cs` by replacing multiple lists with an array of buckets and implementing parallel processing for better efficiency.

Consistent updates across `Fonts`, `Tests`, `Tokenization`, and `Tokens` project files to include .NET 9.0 support.

* Improve null checks and optimize list handling

- Updated null check for `words` in `DocstrumBoundingBoxes.cs` for better readability and performance.
- Changed from `ToList()` to `ToArray()` to avoid unnecessary enumeration.
- Added `results.TrimExcess()` in `NearestNeighbourWordExtractor.cs` to optimize memory usage.

---------

Co-authored-by: Chuck Beasley <CBeasley@kilpatricktownsend.com>
2025-08-01 22:24:16 +01:00
EliotJones
b6bd0a3169 bump version to 0.1.12-alpha001 2025-07-26 13:43:28 -05:00
EliotJones
3d2e12cb16 version 0.1.11 2025-07-26 13:16:01 -05:00
BobLd
a4a0fe220a Bump version to 0.1.11-alpha001
Some checks are pending
Build and test / build (push) Waiting to run
Run Integration Tests / build (push) Waiting to run
2025-03-08 13:42:57 +00:00
BobLd
d36e9a900f version 0.1.10 2025-03-08 13:00:43 +00:00
BobLd
bcc8ccecbe Stop treating Warnings as Errors (#941) 2024-11-23 18:23:22 +00:00
Eliot Jones
c46722fa26 version 0.1.9
Some checks failed
Build and test / build (push) Has been cancelled
Run Integration Tests / build (push) Has been cancelled
2024-10-06 15:40:24 +01:00
Jason Nelson
907181d5ce Bump .net4.7 target to .net4.7.1 and eliminate System.ValueTuple depedency 2024-03-15 13:10:25 +00:00
Jason Nelson
4653671b2d Set LangVersion to 12 2024-03-15 13:10:25 +00:00
Jason Nelson
6da9c90042 Add .NET 8.0 target 2024-03-15 13:10:25 +00:00
Jason Nelson
8e0500e833 Drop unsupported .NET frameworks 2024-03-15 13:10:25 +00:00
Eliot Jones
2be4c69c16 set nightly release version
also toggles class back to public for nightly
versions #538
2023-06-05 21:37:34 +01:00
Eliot Jones
16ac297d10 version 0.1.8 2023-06-05 21:36:00 +01:00
Eliot Jones
35ff13732e remove completely out of support net 4.5 2023-05-17 20:20:05 +01:00
Eliot Jones
d2944e14e5 change alpha version for nightly builds 2023-01-08 12:01:48 -05:00
Eliot Jones
03692cf42f set version to alpha of 0.1.7 for future nightly builds 2022-04-25 10:06:46 -04:00
Eliot Jones
5597a8f38c version 0.1.6 2022-04-25 09:22:47 -04:00
Eliot Jones
d7898d851c add net 6 as a target framework and dual target tests 2022-04-03 14:48:50 -04:00
Eliot Jones
a538aaf0de bump version so that nightly builds for pre-release have correct version 2022-01-10 12:40:47 +00:00
Eliot Jones
4c36f84a0d version 0.1.5 2021-09-17 11:16:43 -04:00
Eliot Jones
16d26effc5 0.1.5-alpha002 2021-05-09 13:05:54 -04:00
Eliot Jones
b930924b9b 0.1.5-alpha001 2021-02-28 13:55:25 -04:00
Plaisted
feb6117e1e fix EOL issues 2021-01-19 18:39:51 -06:00
Plaisted
9bfe69aef1 removing locking 2021-01-19 18:06:50 -06:00
Eliot Jones
237fd96f9e version 0.1.4 2020-11-29 14:02:42 -04:00
Eliot Jones
ad0fb4ec5b version 0.1.3 2020-11-15 12:08:37 -04:00
Eliot Jones
58ecfbf963 0.1.3-alpha001 2020-09-04 13:19:03 +01:00
Eliot Jones
98af575ee3 version 0.1.2 2020-07-04 16:55:14 +01:00
Eliot Jones
5fb04582a7 0.1.2-alpha003 2020-06-20 12:54:31 +01:00
Eliot Jones
256c2833ab 0.1.2-alpha002 2020-05-10 16:36:14 +01:00
Eliot Jones
98dd736f94 0.1.2-alpha001 2020-04-25 15:20:07 +01:00
Eliot Jones
9abe9f4b2f #158 add strong naming to the solution 2020-04-04 16:59:51 +01:00
Eliot Jones
4ed1600cab version 0.1.1 2020-03-18 20:10:51 +00:00
Eliot Jones
8ac4195b83 0.1.1-alpha001 2020-03-15 16:52:28 +00:00
Eliot Jones
8df2f9cf6b generate all xml docs and pack them #148
after we split the solution into multiple projects the xml doc comments were no longer packed in the generated nuget package. in addition they were only generated for the net standard 2.0 target framework.

this change generates comments for all target frameworks and makes sure they're included in the generated package. it also adds missing doc comments where they weren't included on the public api and clears up a couple of minor formatting issues in the affected files.
2020-03-08 13:44:09 +00:00
Eliot Jones
0fcc4e54c8 add istestproject setting to all projects
indicates which projects are test projects to the test runner.
2020-02-27 12:35:40 +00:00
Eliot Jones
0183c0af5f add project for nuget package #119
in order to include all projects from the solution we create a new solution with an entry-point assembly which references all projects. calling dotnet pack on this single project then packages all assemblies into the produced nuget package.

also remove old glyph list references from the main project since they have moved to the fonts project.
2020-01-06 11:31:41 +00:00
Eliot Jones
e0a45e3774 include dependencies as dlls in the published nuget
by default nuget pack does not include project dependencies. this is suboptimal since it would require managing at least 5 nuget packages. this uses a workaround detailed here https://github.com/nuget/home/issues/3891 to copy the dependent dlls to the generated nuget package. this doesn't resolve the issue of how we publish the documentlayoutanalysis project, since it is the top of the dependency tree and we publish its parent, rather than it.
2020-01-05 13:56:14 +00:00
Eliot Jones
bbde38f656 move tokenizers to their own project
since both pdfs and Adobe Type1 fonts use postscript type objects, tokenization is needed by the main project and the fonts project
2020-01-05 10:40:44 +00:00