diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c46be1601..5c0bc23ceb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,12 @@
# Changelog
-## 13.5.0 (unreleased)
+## 13.5.1 (unreleased)
+
+## 13.5.0 (2024-10-17)
* Added support for reading and writing Resource Role Assignments for Primavera schedules. The `Resource.getRoleAssignments()` method retrieves a map representing the roles a resource is assigned to, along with the skill level for each assignment. The `Resource.addRoleAssignment()` and `Resource.removeRoleAssignment()` methods allow role assignments to be added and removed.
* Added support for the Resource Primary Role attribute, which is read from and written to Primavera schedules.
+* Improve handling Boolean attributes with default values when reading XER files.
+* Added the `getShowStartText`, `getShowFinishText` and `getShowDurationText` methods to the `Task` class. When working with manually scheduled tasks in Microsoft Project, users can potentially supply arbitrary text for the Start, Finish and Duration attributes. Microsoft Project still stores appropriate values for these attributes, which can be accessed in MPXJ as Start, Finish and Duration, but where the user has supplied text, these attributes are available as Start Text, Finish Text, and Duration Text. The methods added by this change allow the caller to determine which version of each attribute should be shown to the user in order to replicate what they see in Microsoft Project.
## 13.4.2 (2024-10-08)
* Added the `ProjectCalendarDays.getCalendarHours()` method to allow direct access to the `ProjectCalendarHours` instances for each day of the week.
diff --git a/build.xml b/build.xml
index fa4247e75c..8c88e3e97d 100644
--- a/build.xml
+++ b/build.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/pom.tests.xml b/pom.tests.xml
index 251da4f44b..882e8d1d0a 100644
--- a/pom.tests.xml
+++ b/pom.tests.xml
@@ -7,7 +7,7 @@
4.0.0
net.sf.mpxj
mpxj-tests
- 13.4.2
+ 13.5.0
MPXJ Tests
diff --git a/pom.xml b/pom.xml
index 8a9655569f..bd4f935d92 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
4.0.0
net.sf.mpxj
mpxj
- 13.4.2
+ 13.5.0
MPXJ
http://mpxj.org
diff --git a/src.net/samples/MpxjConvert/Properties/AssemblyInfo.cs b/src.net/samples/MpxjConvert/Properties/AssemblyInfo.cs
index fe2271efaa..2a7aef7840 100644
--- a/src.net/samples/MpxjConvert/Properties/AssemblyInfo.cs
+++ b/src.net/samples/MpxjConvert/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyFileVersion("13.4.2.0")]
+// [assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyFileVersion("13.5.0.0")]
diff --git a/src.net/samples/MpxjCreate/Properties/AssemblyInfo.cs b/src.net/samples/MpxjCreate/Properties/AssemblyInfo.cs
index 0dbe4a08e6..6ec05a6323 100644
--- a/src.net/samples/MpxjCreate/Properties/AssemblyInfo.cs
+++ b/src.net/samples/MpxjCreate/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyFileVersion("13.4.2.0")]
+// [assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyFileVersion("13.5.0.0")]
diff --git a/src.net/samples/MpxjPrimaveraConvert/Properties/AssemblyInfo.cs b/src.net/samples/MpxjPrimaveraConvert/Properties/AssemblyInfo.cs
index 218850e9cf..50acce20cc 100644
--- a/src.net/samples/MpxjPrimaveraConvert/Properties/AssemblyInfo.cs
+++ b/src.net/samples/MpxjPrimaveraConvert/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyFileVersion("13.4.2.0")]
+// [assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyFileVersion("13.5.0.0")]
diff --git a/src.net/samples/MpxjQuery/Properties/AssemblyInfo.cs b/src.net/samples/MpxjQuery/Properties/AssemblyInfo.cs
index 39965dff3b..d908fe31b1 100644
--- a/src.net/samples/MpxjQuery/Properties/AssemblyInfo.cs
+++ b/src.net/samples/MpxjQuery/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyFileVersion("13.4.2.0")]
+// [assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyFileVersion("13.5.0.0")]
diff --git a/src.net/samples/MpxjTest/Properties/AssemblyInfo.cs b/src.net/samples/MpxjTest/Properties/AssemblyInfo.cs
index 288a630cd6..dbecb9d973 100644
--- a/src.net/samples/MpxjTest/Properties/AssemblyInfo.cs
+++ b/src.net/samples/MpxjTest/Properties/AssemblyInfo.cs
@@ -32,6 +32,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyFileVersion("13.4.2.0")]
+// [assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyFileVersion("13.5.0.0")]
diff --git a/src.net/utilities/AssemblyInfo.cs b/src.net/utilities/AssemblyInfo.cs
index f10a08ea08..d411dff647 100644
--- a/src.net/utilities/AssemblyInfo.cs
+++ b/src.net/utilities/AssemblyInfo.cs
@@ -32,6 +32,6 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyVersion("13.4.2.0")]
-[assembly: AssemblyFileVersion("13.4.2.0")]
+// [assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyVersion("13.5.0.0")]
+[assembly: AssemblyFileVersion("13.5.0.0")]
diff --git a/src.net/utilities/MpxjUtilities.nca31.csproj b/src.net/utilities/MpxjUtilities.nca31.csproj
index 087909c0d0..ba23b94fd7 100644
--- a/src.net/utilities/MpxjUtilities.nca31.csproj
+++ b/src.net/utilities/MpxjUtilities.nca31.csproj
@@ -6,7 +6,7 @@
netcoreapp3.1
true
..\mpxj.snk
- 13.4.2.0
+ 13.5.0.0
Copyright © Packwood Software
diff --git a/src.python/mpxj/setup.py b/src.python/mpxj/setup.py
index e6a7d8d8ac..ef225d05ee 100644
--- a/src.python/mpxj/setup.py
+++ b/src.python/mpxj/setup.py
@@ -5,7 +5,7 @@
setuptools.setup(
name="mpxj",
- version="13.4.2",
+ version="13.5.0",
author="Jon Iles",
author_email="jon@timephased.com",
description="Python wrapper for the MPXJ Java library for manipulating project files",
diff --git a/src.ruby/mpxj/lib/mpxj/resource_methods.rb b/src.ruby/mpxj/lib/mpxj/resource_methods.rb
index fcd3f588eb..f532c3a4dd 100644
--- a/src.ruby/mpxj/lib/mpxj/resource_methods.rb
+++ b/src.ruby/mpxj/lib/mpxj/resource_methods.rb
@@ -3329,6 +3329,13 @@ def pool
get_float_value(attribute_values['pool'])
end
+ # Retrieve the Primary Role Unique ID value
+ #
+ # @return Primary Role Unique ID value
+ def primary_role_unique_id
+ get_integer_value(attribute_values['primary_role_unique_id'])
+ end
+
# Retrieve the Priority value
#
# @return Priority value
@@ -4372,6 +4379,7 @@ def work_variance
'phone' => :string,
'phonetics' => :string,
'pool' => :numeric,
+ 'primary_role_unique_id' => :integer,
'priority' => :numeric,
'project' => :string,
'proposed_finish' => :date,
diff --git a/src.ruby/mpxj/lib/mpxj/task_methods.rb b/src.ruby/mpxj/lib/mpxj/task_methods.rb
index fb872b796a..daa8cfcaa5 100644
--- a/src.ruby/mpxj/lib/mpxj/task_methods.rb
+++ b/src.ruby/mpxj/lib/mpxj/task_methods.rb
@@ -6234,6 +6234,20 @@ def sequence_number
get_integer_value(attribute_values['sequence_number'])
end
+ # Retrieve the Show Duration Text value
+ #
+ # @return Show Duration Text value
+ def show_duration_text
+ get_boolean_value(attribute_values['show_duration_text'])
+ end
+
+ # Retrieve the Show Finish Text value
+ #
+ # @return Show Finish Text value
+ def show_finish_text
+ get_boolean_value(attribute_values['show_finish_text'])
+ end
+
# Retrieve the Show On Board value
#
# @return Show On Board value
@@ -6241,6 +6255,13 @@ def show_on_board
attribute_values['show_on_board']
end
+ # Retrieve the Show Start Text value
+ #
+ # @return Show Start Text value
+ def show_start_text
+ get_boolean_value(attribute_values['show_start_text'])
+ end
+
# Retrieve the SPI value
#
# @return SPI value
@@ -7769,7 +7790,10 @@ def work_variance
'secondary_constraint_type' => :constraint,
'section' => :string,
'sequence_number' => :integer,
+ 'show_duration_text' => :boolean,
+ 'show_finish_text' => :boolean,
'show_on_board' => :string,
+ 'show_start_text' => :boolean,
'spi' => :numeric,
'splits' => :date_range_list,
'sprint' => :string,
diff --git a/src.ruby/mpxj/lib/mpxj/version.rb b/src.ruby/mpxj/lib/mpxj/version.rb
index 997e8befb1..97c5629ca1 100644
--- a/src.ruby/mpxj/lib/mpxj/version.rb
+++ b/src.ruby/mpxj/lib/mpxj/version.rb
@@ -1,5 +1,5 @@
# MPXJ gem module
module MPXJ
# MPXJ gem version number
- VERSION = "13.4.2"
+ VERSION = "13.5.0"
end
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index efb8387c53..cdb774b7a8 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -5,7 +5,9 @@
Jon Iles
-
+
+
+
Added support for reading and writing Resource Role Assignments for Primavera schedules. The `Resource.getRoleAssignments()` method retrieves a map representing the roles a resource is assigned to, along with the skill level for each assignment. The `Resource.addRoleAssignment()` and `Resource.removeRoleAssignment()` methods allow role assignments to be added and removed.
Added support for the Resource Primary Role attribute, which is read from and written to Primavera schedules.
Improve handling Boolean attributes with default values when reading XER files.
diff --git a/src/main/java/net/sf/mpxj/MPXJ.java b/src/main/java/net/sf/mpxj/MPXJ.java
index 19e80a20d9..8f3c9d629a 100644
--- a/src/main/java/net/sf/mpxj/MPXJ.java
+++ b/src/main/java/net/sf/mpxj/MPXJ.java
@@ -28,5 +28,5 @@
*/
public final class MPXJ
{
- public static final String VERSION = "13.4.2";
+ public static final String VERSION = "13.5.0";
}