From 5d668e2e3495dce1bbe86179e648d5fcd9f77254 Mon Sep 17 00:00:00 2001
From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com>
Date: Thu, 9 Apr 2026 19:24:13 +0000
Subject: [PATCH 1/4] Initial plan
From 8f6b3b0d5bb9abe0ef0f92f340a9eed1c1c1ebb0 Mon Sep 17 00:00:00 2001
From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com>
Date: Thu, 9 Apr 2026 19:26:56 +0000
Subject: [PATCH 2/4] Migrate DynamoText from .NET Framework 4.5 to .NET 8
- Convert DynamoText.csproj to SDK-style targeting net8.0-windows
- Migrate NuGet packages to PackageReference (DynamoServices 3.2.2.5494, ZeroTouchLibrary 3.1.0.4724)
- Delete packages.config and Properties/AssemblyInfo.cs
- Fix FormattedText constructor for .NET 8 (add NumberSubstitution and pixelsPerDip parameters)
- Add GitHub Actions CI workflow for windows-latest
Agent-Logs-Url: https://github.com/DynamoDS/DynamoText/sessions/17e83894-302a-4ab5-99cf-7ac0f9824b59
Co-authored-by: johnpierson <15744724+johnpierson@users.noreply.github.com>
---
.github/workflows/build.yml | 25 +++++++++++
DynamoText.csproj | 90 ++++++++++---------------------------
Properties/AssemblyInfo.cs | 36 ---------------
Text.cs | 4 +-
packages.config | 5 ---
5 files changed, 52 insertions(+), 108 deletions(-)
create mode 100644 .github/workflows/build.yml
delete mode 100644 Properties/AssemblyInfo.cs
delete mode 100644 packages.config
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..bc91ba8
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,25 @@
+name: Build
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '8.0.x'
+
+ - name: Restore dependencies
+ run: dotnet restore
+
+ - name: Build
+ run: dotnet build --no-restore --configuration Release
diff --git a/DynamoText.csproj b/DynamoText.csproj
index 6756921..6af4cf2 100644
--- a/DynamoText.csproj
+++ b/DynamoText.csproj
@@ -1,76 +1,34 @@
-
-
-
+
+
- Debug
- AnyCPU
- {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}
- Library
- Properties
- DynamoText
+ net8.0-windows
+ true
+ enable
+ disable
DynamoText
- v4.5
- 512
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
+ DynamoText
+ x64
+
+
+ DynamoText
+
+
+ DynamoText
+ Copyright © 2014
+ 2.0.0.0
+ 2.0.0.0
+
-
- packages\DynamoVisualProgramming.DynamoServices.2.0.0\lib\net45\DynamoServices.dll
- False
-
-
- packages\DynamoVisualProgramming.ZeroTouchLibrary.2.0.0\lib\net45\DynamoUnits.dll
- False
-
-
-
-
- packages\DynamoVisualProgramming.ZeroTouchLibrary.2.0.0\lib\net45\ProtoGeometry.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
Always
-
-
-
\ No newline at end of file
+
+
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6e3692a..0000000
--- a/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("DynamoText")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("DynamoText")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9e18679b-7f29-4503-8b9f-6ca29a0312b3")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.0.0.0")]
-[assembly: AssemblyFileVersion("2.0.0.0")]
diff --git a/Text.cs b/Text.cs
index f9582eb..2710fa0 100644
--- a/Text.cs
+++ b/Text.cs
@@ -33,7 +33,9 @@ public static IEnumerable FromStringOriginAndScale(string text, Point ori
fontWeight,
FontStretches.Normal),
1,
- System.Windows.Media.Brushes.Black // This brush does not matter since we use the geometry of the text.
+ System.Windows.Media.Brushes.Black, // This brush does not matter since we use the geometry of the text.
+ new NumberSubstitution(),
+ 1.0
);
// Build the geometry object that represents the text.
diff --git a/packages.config b/packages.config
deleted file mode 100644
index 6d0bab4..0000000
--- a/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
From df3d201508f6c7db8bfc89ea56a01e26efa401c8 Mon Sep 17 00:00:00 2001
From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com>
Date: Thu, 9 Apr 2026 19:41:50 +0000
Subject: [PATCH 3/4] Bump version to 3.0.0
Agent-Logs-Url: https://github.com/DynamoDS/DynamoText/sessions/17d8d9d4-2686-4429-b206-b30be20b046b
Co-authored-by: johnpierson <15744724+johnpierson@users.noreply.github.com>
---
DynamoText.csproj | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/DynamoText.csproj b/DynamoText.csproj
index 6af4cf2..e7ed052 100644
--- a/DynamoText.csproj
+++ b/DynamoText.csproj
@@ -15,8 +15,8 @@
DynamoText
Copyright © 2014
- 2.0.0.0
- 2.0.0.0
+ 3.0.0.0
+ 3.0.0.0
From 04af743c04d011114f40f522a9b9e76bbf72d3bc Mon Sep 17 00:00:00 2001
From: john pierson
Date: Thu, 9 Apr 2026 13:56:35 -0600
Subject: [PATCH 4/4] Move source files to src/, add dist packaging target
Reorganize repo to match standard Dynamo package layout: move
Text.cs, DynamoText.csproj, DynamoText.sln, pkg.json, Example.dyn,
and DynamoText_DynamoCustomization.xml into src/. Add CreatePackage
MSBuild target that assembles dist/DynamoText/ (pkg.json + bin/) on
every build, ready to drop into Dynamo's packages folder. OutputPath
redirected to repo-root bin/ to keep build artifacts out of src/.
---
.gitignore | 277 +++++-------------
DynamoText.csproj => src/DynamoText.csproj | 22 ++
DynamoText.sln => src/DynamoText.sln | 12 +-
.../DynamoText_DynamoCustomization.xml | 0
Example.dyn => src/Example.dyn | 0
Text.cs => src/Text.cs | 0
src/pkg.json | 1 +
7 files changed, 97 insertions(+), 215 deletions(-)
rename DynamoText.csproj => src/DynamoText.csproj (56%)
rename DynamoText.sln => src/DynamoText.sln (55%)
rename DynamoText_DynamoCustomization.xml => src/DynamoText_DynamoCustomization.xml (100%)
rename Example.dyn => src/Example.dyn (100%)
rename Text.cs => src/Text.cs (100%)
create mode 100644 src/pkg.json
diff --git a/.gitignore b/.gitignore
index b9d6bd9..c3f5e6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,215 +1,74 @@
-#################
-## Eclipse
-#################
-
-*.pydevproject
-.project
-.metadata
+# Compiled source #
+###################
+*.com
+*.class
+*.exe
+*.msi
+*.o
+*.so
+AnyCPU/
+Debug/
+Release/
+originalBinaries/
+runtimeGeneratedExtension/
+obj/
+int/
+packages/
bin/
-tmp/
-*.tmp
-*.bak
-*.swp
-*~.nib
-local.properties
-.classpath
-.settings/
-.loadpath
-
-# External tool builders
-.externalToolBuilders/
-
-# Locally stored "Eclipse launch configurations"
-*.launch
-
-# CDT-specific
-.cproject
-
-# PDT-specific
-.buildpath
-
-
-#################
-## Visual Studio
-#################
-
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-
-# User-specific files
-*.suo
-*.user
-*.sln.docstates
-
-# Build results
-
-[Dd]ebug/
-[Rr]elease/
-x64/
-build/
-[Bb]in/
-[Oo]bj/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
+dist/
-*_i.c
-*_p.c
-*.ilk
-*.meta
-*.obj
-*.pch
-*.pdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*.log
-*.vspscc
-*.vssscc
-.builds
-*.pidb
+# Packages #
+############
+# it's better to unpack these files and commit the raw source
+# git has its own built in compression methods
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.zip
+
+# Logs and databases #
+######################
*.log
-*.scc
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opensdf
-*.sdf
-*.cachefile
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# NCrunch
-*.ncrunch*
-.*crunch*.local.xml
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
+*.sql
+*.sqlite
+*.vc.db
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.Publish.xml
-*.pubxml
-
-# NuGet Packages Directory
-## TODO: If you have NuGet Package Restore enabled, uncomment the next line
-#packages/
-
-# Windows Azure Build Output
-csx
-*.build.csdef
-
-# Windows Store app package directory
-AppPackages/
-
-# Others
-sql/
-*.Cache
-ClientBin/
-[Ss]tyle[Cc]op.*
-~$*
-*~
-*.dbmdl
-*.[Pp]ublish.xml
-*.pfx
-*.publishsettings
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file to a newer
-# Visual Studio version. Backup files are not needed, because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
-# SQL Server files
-App_Data/*.mdf
-App_Data/*.ldf
-
-#############
-## Windows detritus
-#############
-
-# Windows image file caches
-Thumbs.db
+# OS generated files #
+######################
+.DS_Store*
ehthumbs.db
+Icon?
+Thumbs.db
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Mac crap
-.DS_Store
-
-
-#############
-## Python
-#############
-
-*.py[co]
-
-# Packages
-*.egg
-*.egg-info
-dist/
-build/
-eggs/
-parts/
-var/
-sdist/
-develop-eggs/
-.installed.cfg
-
-# Installer logs
-pip-log.txt
-
-# Unit test / coverage reports
-.coverage
-.tox
-
-#Translations
-*.mo
-
-#Mr Developer
-.mr.developer.cfg
+# DEBUG FILES #
+###############
+*.pdb
+*.cache
+*.suo
+*.user
+*.opendb
+.vs
+launchSettings.json
+
+# PYTHON #
+###############
+*.pyc
+
+# RESHARPER #
+###############
+*_ReSharper*
+
+# IDE #
+###############
+.idea
+.vscode/**/*
+!.vscode/extensions.json
+!.vscode/tasks.json
+
+# REPORTS #
+###############
+reports
diff --git a/DynamoText.csproj b/src/DynamoText.csproj
similarity index 56%
rename from DynamoText.csproj
rename to src/DynamoText.csproj
index e7ed052..4485f2c 100644
--- a/DynamoText.csproj
+++ b/src/DynamoText.csproj
@@ -8,6 +8,7 @@
DynamoText
DynamoText
x64
+ ..\bin\$(Configuration)\
DynamoText
@@ -31,4 +32,25 @@
+
+
+ $(MSBuildProjectDirectory)\..
+ $(RepoRoot)\dist\DynamoText
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DynamoText.sln b/src/DynamoText.sln
similarity index 55%
rename from DynamoText.sln
rename to src/DynamoText.sln
index d795db2..e179f57 100644
--- a/DynamoText.sln
+++ b/src/DynamoText.sln
@@ -5,14 +5,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamoText", "DynamoText.cs
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Debug|x64.ActiveCfg = Debug|x64
+ {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Debug|x64.Build.0 = Debug|x64
+ {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Release|x64.ActiveCfg = Release|x64
+ {95C2F500-BDC7-4140-A2D7-48EBE3A0A5E2}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/DynamoText_DynamoCustomization.xml b/src/DynamoText_DynamoCustomization.xml
similarity index 100%
rename from DynamoText_DynamoCustomization.xml
rename to src/DynamoText_DynamoCustomization.xml
diff --git a/Example.dyn b/src/Example.dyn
similarity index 100%
rename from Example.dyn
rename to src/Example.dyn
diff --git a/Text.cs b/src/Text.cs
similarity index 100%
rename from Text.cs
rename to src/Text.cs
diff --git a/src/pkg.json b/src/pkg.json
new file mode 100644
index 0000000..45b31c9
--- /dev/null
+++ b/src/pkg.json
@@ -0,0 +1 @@
+{"license":"MIT","file_hash":null,"name":"Dynamo Text","version":"2.0.1","description":"A library for creating text in Dynamo.","group":"","keywords":["text"],"dependencies":[],"contents":"","engine_version":"2.0.0.4383","engine":"dynamo","engine_metadata":"","site_url":"http://www.dynamobim.org","repository_url":"https://github.com/DynamoDS/DynamoText","contains_binaries":true,"node_libraries":["DynamoText, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"]}
\ No newline at end of file