IProjectUpdater Interface
Properties
id
Unique identifier for the updater (e.g., “FORMATVER”, “MANIF”).title
Human-readable name describing what the updater fixes.Methods
update()
Performs the update operation on a project.project- The project to updateupdateId- Specific update to perform (fromgetUpdateIds())
getUpdateIds()
Returns all update IDs supported by this updater.getUpdaterData()
Returns metadata for a specific update.updaterId- The update ID to get data for
Update Results
Updaters returnProjectUpdateResult objects describing changes:
Update Result Types
Example Updater Implementation
Running Updaters
Updaters are executed through theProjectUpdateRunner:
Linking Updaters to Validation
Connect updaters to validation issues through topic data:Registering Updaters
Add your updater to the registration list:Best Practices
- Always backup: Consider project state before modifications
- Return meaningful results: Describe exactly what changed
- Handle errors gracefully: Use
internalProcessingErrorfor failures - Test thoroughly: Updaters modify user projects
- Be idempotent: Running twice should be safe
- Validate changes: Ensure updates actually fix the issue
- Provide clear titles: Help users understand what will happen
- Log operations: Track what was changed for debugging
Safety Considerations
Example: Format Version Updater
A typical updater might fix format versions in manifests:Related
- Info Generators - Validation tests that produce issues
- ProjectInfoSet - Container for validation results