Personal tools
You are here: Home Project Info To Do List LANDIS-II Extensions

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)
Document Actions