LANDIS-II Extensions
To-do list for LANDIS-II extensions
General
- Update for the last round of additions to Plugs.ICore (random #s, UI, Log) (priority=high)
- Add VerifyFileAccess check to all input text files and maps (high).
- Example problem: user has output summary log open in Excel, and then re-runs the scenario. The extension cannot overwrite the log and a stack trace results. Improve error reporting.
- Do we have a method in the core for this? e.g., Landis.Util.CreateTextFile, which could catch errors on opening.
- Replace any tabs in source files (low)
- Checklist of to-do items:
- Move project and solution files into src directory (not in sub-directory)
- Replace all Damage and DamageBy functions with the KillSiteCohorts, MarkCohortsForDeath, KillMarkedCohorts.
- Remove Editable Classes
- Change name spaces to the new convention
- All extensions should reference the BaseCohorts library, not AgeOnly or other specific libraries.
- Doxygen run for each extension.
Extension Admin Tool
- Add commands to modify entries in dataset:
- Install: give just .dll and get name, type & className by reflection (medium*)
- Rename entry (medium)
- Update: takes extension info file like Add command; if name already in dataset, then it's removed before new entry added. If it's not present, then works just like Add command (low)
- Implement as "-update" or "-replace" flag to the Add command?
- Evaluate if Remove command with non-existant name should return non-zero exit status (medium)
- Useful for uninstallers to be able to silently remove a name
- Perhaps have a "-silent" option for Remove command (returns 0 even if name doesn't exist)
- Make tool more robust (low)
- during a save( ), rename existing file & if save fails, restore old (previous) file back in place os that way, a file is always consistent
- should a file be deleted if save as fails? -> nice to leave around for debugging purposes.
- Maybe rename bad file, e.g., {file} (bad) or {file} (bad YYYYMMDDHHMMSS-PID###)
Deploying Extensions
- Simplify extension installers - multiple versions of same extension WILL NOT BE ALLOWED (high) (students)
- Help developers install from a zip file (low)
- Include directions for L-II on how to do with drap & drop
- Develop tool for bundling extension source code and related files into a package for release (low)
- Idea: a target in Landis build file which creates a zip file
- Determine if one package format could be used on multiple platforms (Windows, OS X)
- There'd be a platform-specific installer which would process the extension packages
Age-Only Succession
- Verify: Does death during growth trigger resprouting? Should Plug.CohortDied call CheckForResprouting when DisturbanceType == null? It shouldn't.
Output Cohorts
- Release? (low)
Output Shade
- Release? (low)
Biomass Succession
- Move Flel.Util.Testing class from test project to Flel.TestUtil lib (low)

